From c4e39fec7e64f988e18247bd26e0229810547bfa Mon Sep 17 00:00:00 2001 From: Benjamin Linnik Date: Wed, 6 Dec 2017 17:43:47 +0100 Subject: [PATCH] Analyzer: Added F1 histogram --- MABS_run_analyzer/ChargeSpektrum.c | 10 ++++++++++ MABS_run_analyzer/Run.c | 26 ++++++++++++++++++++++++++ MABS_run_analyzer/Run.h | 10 +++++++--- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/MABS_run_analyzer/ChargeSpektrum.c b/MABS_run_analyzer/ChargeSpektrum.c index ac756af..f1d6803 100644 --- a/MABS_run_analyzer/ChargeSpektrum.c +++ b/MABS_run_analyzer/ChargeSpektrum.c @@ -411,6 +411,16 @@ void ChargeSpektrum(TString runnumber = "") CompareHistograms(&compareHistogramVectorF0); compareHistogramVectorF0.clear(); + // Plot overall F0 and F1 signal + vector compareHistogramVectorF0F1; + compareHistogramVectorF0F1.push_back(runs[runi]->averageF0Distr); + compareHistogramVectorF0F1.push_back(runs[runi]->averageF1Distr); + CompareHistograms(&compareHistogramVectorF0F1); + compareHistogramVectorF0F1.clear(); + + compareHistogramAllRunsVectorF0.push_back(runs[runi]->averageF0Distr); + runs[runi]->plot1DHistogram( runs[runi]->averageF0Distr, "gaus", true); + compareHistogramAllRunsVectorF0.push_back(runs[runi]->averageF0Distr); runs[runi]->plot1DHistogram( runs[runi]->averageF0Distr, "gaus", true); } diff --git a/MABS_run_analyzer/Run.c b/MABS_run_analyzer/Run.c index bfa8e9b..30503df 100644 --- a/MABS_run_analyzer/Run.c +++ b/MABS_run_analyzer/Run.c @@ -1314,12 +1314,26 @@ Bool_t Run::binF0() averageF0Distr->SetNameTitle(Form("%d AvgF0",labbook.runnumber),Form("%d Average F0",labbook.runnumber)); averageF0Distr->SetLineColor(2); averageF0Distr->itsHistogramType = histogram; + averageF1DistrStart = (TH1FO*) averageF0DistrStart->Clone(); + averageF1DistrStart->SetNameTitle(Form("%d AvgF1, first 1000 frames",labbook.runnumber),Form("%d Average F1, first 1000 frames",labbook.runnumber)); + averageF1DistrStart->SetLineColor(1); + averageF1DistrStart->itsHistogramType = histogram; + averageF1DistrEnd = (TH1FO*) averageF0DistrStart->Clone(); + averageF1DistrEnd->SetNameTitle(Form("%d AvgF1, last 1000 frames",labbook.runnumber),Form("%d Average F1, last 1000 frames",labbook.runnumber)); + averageF1DistrEnd->SetLineColor(1+100); + averageF1DistrEnd->itsHistogramType = histogram; + averageF1Distr = (TH1FO*) averageF0DistrStart->Clone(); + averageF1Distr->SetNameTitle(Form("%d AvgF1",labbook.runnumber),Form("%d Average F1",labbook.runnumber)); + averageF1Distr->SetLineColor(2); + averageF1Distr->itsHistogramType = histogram; Double_t const probabilities[] = {0.158655254, 0.5, 1-0.158655254}; // sigma/2 from gaus to the left and to the right //{0.17, 0.5, 1-0.17}; Double_t avgF0ForPixel [cursensorinfo.columns*cursensorinfo.rows]; + Double_t avgF1ForPixel [cursensorinfo.columns*cursensorinfo.rows]; Double_t numberofconsideredpixel = 0; Int_t* fF0matrix; + Int_t* fF1matrix; for (Int_t pixeli=0; pixeliGetF0Frame(); + fF1matrix = processed->GetF1Frame(); avgF0ForPixel[pixeli] += fF0matrix[pixeli]; // sum up all pedestals for a given pixel, we need this to calculate an average F0 (average signal) + avgF1ForPixel[pixeli] += fF1matrix[pixeli]; // sum up all pedestals for a given pixel, we need this to calculate an average F0 (average signal) numberofconsideredpixel++; } } } for (Int_t pixeli=0; pixeliFill(pixeli+1, avgF0ForPixel[pixeli]); averageF0DistrStart->Fill(avgF0ForPixel[pixeli]); + averageF1DistrStart->Fill(avgF1ForPixel[pixeli]); } @@ -1346,6 +1364,7 @@ Bool_t Run::binF0() numberofconsideredpixel = 0; for (Int_t pixeli=0; pixelifHitTree->GetEntries()-1000; frameifHitTree->GetEntries(); framei++) { // loop over all frames @@ -1353,7 +1372,9 @@ Bool_t Run::binF0() for (Int_t pixeli=0; pixeliGetF0Frame(); + fF1matrix = processed->GetF1Frame(); avgF0ForPixel[pixeli] += fF0matrix[pixeli]; // sum up all pedestals for a given pixel, we need this to calculate an average F0 (average signal) + avgF1ForPixel[pixeli] += fF1matrix[pixeli]; // sum up all pedestals for a given pixel, we need this to calculate an average F0 (average signal) numberofconsideredpixel++; } } @@ -1361,16 +1382,21 @@ Bool_t Run::binF0() for (Int_t pixeli=0; pixeliFill(pixeli+1, avgF0ForPixel[pixeli]); averageF0DistrEnd->Fill(avgF0ForPixel[pixeli]); + averageF1DistrEnd->Fill(avgF1ForPixel[pixeli]); } // sum up end and beginning averageF0Distr->Add(averageF0DistrStart); averageF0Distr->Add(averageF0DistrEnd); + averageF1Distr->Add(averageF1DistrStart); + averageF1Distr->Add(averageF1DistrEnd); for (Int_t bini=1; bini <= averageF0Distr->GetXaxis()->GetNbins(); bini++) { // loop over all pixel averageF0Distr->SetBinContent(bini, averageF0Distr->GetBinContent(bini)/2); + averageF1Distr->SetBinContent(bini, averageF1Distr->GetBinContent(bini)/2); } diff --git a/MABS_run_analyzer/Run.h b/MABS_run_analyzer/Run.h index ad48f65..b1d811f 100644 --- a/MABS_run_analyzer/Run.h +++ b/MABS_run_analyzer/Run.h @@ -408,12 +408,16 @@ public: TH1FO* averageF0Hist = 0; /** @brief The average F0 value of the run over some frames, for each pixel */ - TH1FO* averageF0PixelwiseStart = 0; // Over first 1000 frames - TH1FO* averageF0PixelwiseEnd = 0; // Over last 1000 frames + TH1FO* averageF0PixelwiseStart = 0; // Over first 1000 frames for each pixel + TH1FO* averageF0PixelwiseEnd = 0; // Over last 1000 frames for each pixel TH1FO* averageF0DistrStart = 0; // Over first 1000 frames TH1FO* averageF0DistrEnd = 0; // Over last 1000 frames - TH1FO* averageF0Distr = 0; // Over all frames + TH1FO* averageF0Distr = 0; // Over first 1000 frames and last 1000 frames + + TH1FO* averageF1DistrStart = 0; // Over first 1000 frames + TH1FO* averageF1DistrEnd = 0; // Over last 1000 frames + TH1FO* averageF1Distr = 0; // Over first 1000 frames and last 1000 frames /** @brief Plots all histograms from #Run::HistogramType into one canvas * -- 2.43.0