From f514d3e771e5da03e8b3429086e432aab0ada55d Mon Sep 17 00:00:00 2001 From: Benjamin Linnik Date: Mon, 11 May 2015 14:45:49 +0200 Subject: [PATCH] Anylyzer: Fixed noise label for threshold spectra, added possibility to select summary type: threshold, calibrated and normal --- MABS_run_analyzer/ChargeSpektrum.c | 104 +++++++++-------------------- MABS_run_analyzer/Run.c | 4 ++ MABS_run_analyzer/Run.h | 1 + 3 files changed, 36 insertions(+), 73 deletions(-) diff --git a/MABS_run_analyzer/ChargeSpektrum.c b/MABS_run_analyzer/ChargeSpektrum.c index 0ad1ba1..d861245 100644 --- a/MABS_run_analyzer/ChargeSpektrum.c +++ b/MABS_run_analyzer/ChargeSpektrum.c @@ -29,7 +29,7 @@ Int_t* ReadRunList(); void plotAllRuns(); -void plotAllRunsThreshold(); +void plotAllRuns(TString); Run** runs; Int_t numberRuns; @@ -88,7 +88,7 @@ void ChargeSpektrum(Int_t runnumber = -1) runs[runi]->analyzeRun(false); // creates or opens .root file, can analyze the RAW data // gROOT->SetBatch(kTRUE); // runs[runi]->plotSeed(); - runs[runi]->plotSeedThreshold(); +// runs[runi]->plotSeedThreshold(); // runs[runi]->plotSum(); // runs[runi]->plotVeto(); // runs[runi]->plotNoise(); @@ -99,8 +99,8 @@ void ChargeSpektrum(Int_t runnumber = -1) // runs[runi]->plotAllHistogramsCalibrated(); runs[runi]->writeAllHistogramsToFile(); } - plotAllRuns(); - plotAllRunsThreshold(); + plotAllRuns(""); + plotAllRuns("threshold"); } Int_t* ReadRunList() @@ -132,65 +132,22 @@ Int_t* ReadRunList() // // } -void plotAllRuns() + +void plotAllRuns(TString histogramtype) { - if (numberRuns > 1) - { - Float_t lastbin; - TTimeStamp* time = new TTimeStamp(); - - TCanvas* canvas = new TCanvas(Form("%d",time->GetNanoSec()), "Summary", 1600, 1000); - if (isBatch) - canvas->SetCanvasSize(3200,2000); - - canvas->Divide(2,2); - Float_t height = numberRuns * 0.04; - TLegend* leg1 = new TLegend(0.3,0.89-height,0.89,0.89);//(0.6,0.7,0.89,0.89); - TLegend* leg2 = new TLegend(0.6,0.89-height,0.89,0.89);//(0.6,0.7,0.89,0.89); - leg1->SetTextSize(0.02); - leg2->SetTextSize(0.02); - leg1->SetFillColor(0); leg1->SetBorderSize(0); - leg2->SetFillColor(0); leg2->SetBorderSize(0); - TString legendEntry; - - for(Int_t runi=0;runicd(1); - runs[runi]->histogram.Seed->Draw("SAME"); - lastbin = runs[runi]->histogram.Seed->GetBinCenter(runs[runi]->histogram.Seed->FindLastBinAbove(2,1)); - runs[runi]->histogram.Seed->SetAxisRange(0,lastbin*1.1,"X"); - gPad->SetLogy(1); - legendEntry = Form("%s", runs[runi]->histogram.Seed->GetTitle()); - leg1->AddEntry(runs[runi]->histogram.Veto, legendEntry, "l"); - leg1->Draw("SAME"); - canvas->cd(2); - runs[runi]->histogram.Sum->Draw("SAME"); - lastbin = runs[runi]->histogram.Sum->GetBinCenter(runs[runi]->histogram.Sum->FindLastBinAbove(2,1)); - runs[runi]->histogram.Sum->SetAxisRange(0,lastbin*1.1,"X"); - canvas->cd(3); - runs[runi]->histogram.Veto->Draw("SAME"); - runs[runi]->histogram.Veto->SetAxisRange(runs[runi]->histogram.posVeto*0.7,runs[runi]->histogram.posVeto*1.4,"X"); - canvas->cd(4); - runs[runi]->histogram.Noise->Draw("SAME"); - legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->histogram.avgNoise); - leg2->AddEntry(runs[runi]->histogram.Veto, legendEntry, "l"); - leg2->Draw("SAME"); - } - - // canvas -> Print( runs[0]->savepathresults + "/" + canvastitle + ".eps"); - TImageDump *img = new TImageDump(runs[0]->savepathresults + "/" + Form("%s - %s",runs[0]->runcode.Data(), runs[numberRuns-1]->runcode.Data()) + ".png"); - canvas->Paint(); - img->Close(); - - TFile *f = new TFile(runs[0]->savepathresults + "/" + Form("%s - %s",runs[0]->runcode.Data(),runs[numberRuns-1]->runcode.Data()) + ".root","RECREATE"); - f->cd(); - f->Append(canvas); - f->Append(img); - f->Write(); - } + if (histogramtype.Contains("threshold")) + for(Int_t runi=0;runihistogrampointer = &runs[runi]->histogramthreshold; } + else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron")) + for(Int_t runi=0;runihistogrampointer = &runs[runi]->histogramCalibrated; } + else + for(Int_t runi=0;runihistogrampointer = &runs[runi]->histogram; } + plotAllRuns(); } -void plotAllRunsThreshold() +void plotAllRuns() { if (numberRuns > 1) { @@ -214,24 +171,24 @@ void plotAllRunsThreshold() for(Int_t runi=0;runicd(1); - runs[runi]->histogramthreshold.Seed->Draw("SAME"); - lastbin = runs[runi]->histogramthreshold.Seed->GetBinCenter(runs[runi]->histogramthreshold.Seed->FindLastBinAbove(2,1)); - runs[runi]->histogramthreshold.Seed->SetAxisRange(0,lastbin*1.1,"X"); + runs[runi]->histogrampointer->Seed->Draw("SAME"); + lastbin = runs[runi]->histogrampointer->Seed->GetBinCenter(runs[runi]->histogrampointer->Seed->FindLastBinAbove(2,1)); + runs[runi]->histogrampointer->Seed->SetAxisRange(0,lastbin*1.1,"X"); gPad->SetLogy(1); - legendEntry = Form("%s", runs[runi]->histogramthreshold.Seed->GetTitle()); - leg1->AddEntry(runs[runi]->histogramthreshold.Veto, legendEntry, "l"); + legendEntry = Form("%s", runs[runi]->histogrampointer->Seed->GetTitle()); + leg1->AddEntry(runs[runi]->histogrampointer->Veto, legendEntry, "l"); leg1->Draw("SAME"); canvas->cd(2); - runs[runi]->histogramthreshold.Sum->Draw("SAME"); - lastbin = runs[runi]->histogramthreshold.Sum->GetBinCenter(runs[runi]->histogramthreshold.Sum->FindLastBinAbove(2,1)); - runs[runi]->histogramthreshold.Sum->SetAxisRange(0,lastbin*1.1,"X"); + runs[runi]->histogrampointer->Sum->Draw("SAME"); + lastbin = runs[runi]->histogrampointer->Sum->GetBinCenter(runs[runi]->histogrampointer->Sum->FindLastBinAbove(2,1)); + runs[runi]->histogrampointer->Sum->SetAxisRange(0,lastbin*1.1,"X"); canvas->cd(3); - runs[runi]->histogramthreshold.Veto->Draw("SAME"); - runs[runi]->histogramthreshold.Veto->SetAxisRange(runs[runi]->histogramthreshold.posVeto*0.7,runs[runi]->histogramthreshold.posVeto*1.4,"X"); + runs[runi]->histogrampointer->Veto->Draw("SAME"); + runs[runi]->histogrampointer->Veto->SetAxisRange(runs[runi]->histogrampointer->posVeto*0.7,runs[runi]->histogrampointer->posVeto*1.4,"X"); canvas->cd(4); - runs[runi]->histogramthreshold.Noise->Draw("SAME"); - legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->histogramthreshold.avgNoise); - leg2->AddEntry(runs[runi]->histogramthreshold.Veto, legendEntry, "l"); + runs[runi]->histogrampointer->Noise->Draw("SAME"); + legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->histogrampointer->avgNoise); + leg2->AddEntry(runs[runi]->histogrampointer->Veto, legendEntry, "l"); leg2->Draw("SAME"); } @@ -247,3 +204,4 @@ void plotAllRunsThreshold() f->Write(); } } + diff --git a/MABS_run_analyzer/Run.c b/MABS_run_analyzer/Run.c index 4985c5f..58a5e1f 100644 --- a/MABS_run_analyzer/Run.c +++ b/MABS_run_analyzer/Run.c @@ -113,6 +113,7 @@ Run::Run(Int_t runnumber, Int_t loopi) initRootParameters(); cout << colorwhite << "initHistograms():" << endlr; initHistograms(&histogram); + histogrampointer = &histogram; initHistograms(&histogramthreshold, " threshold"); runexistsinDB = 1; debugDBreadout(); @@ -583,6 +584,9 @@ Bool_t Run::binNoise() histogram.avgNoise = noisequantiles[1]; histogram.avgNoisePlus = noisequantiles[2] - noisequantiles[1]; histogram.avgNoiseMinus = noisequantiles[1] - noisequantiles[0]; + histogramthreshold.avgNoise = histogram.avgNoise; + histogramthreshold.avgNoisePlus = histogram.avgNoisePlus; + histogramthreshold.avgNoiseMinus = histogram.avgNoiseMinus; // if (labbook.system == "PXI") // for (int j=0; j<3; j++) // noisequantiles[j] /= 16.0; // TODO analyze PXI scales diff --git a/MABS_run_analyzer/Run.h b/MABS_run_analyzer/Run.h index 141793c..e16d164 100644 --- a/MABS_run_analyzer/Run.h +++ b/MABS_run_analyzer/Run.h @@ -416,6 +416,7 @@ public: histogramstruct histogram; histogramstruct histogramCalibrated; histogramstruct histogramthreshold; + histogramstruct* histogrampointer; /** @brief Plots all histograms from #histogram into one canvas */ Bool_t plotAllHistograms(histogramstruct*); -- 2.43.0