]> jspc29.x-matter.uni-frankfurt.de Git - radhard.git/commitdiff
Anylyzer: Fixed noise label for threshold spectra, added possibility to select summar...
authorBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Mon, 11 May 2015 12:45:49 +0000 (14:45 +0200)
committerBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Mon, 11 May 2015 12:45:49 +0000 (14:45 +0200)
MABS_run_analyzer/ChargeSpektrum.c
MABS_run_analyzer/Run.c
MABS_run_analyzer/Run.h

index 0ad1ba16310628a46083d8598b68cdee06b3c3b2..d86124530d039d2ab25c1057e78edeed8b163265 100644 (file)
@@ -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;runi<numberRuns;runi++) // loop over runs read from file
-        {
-            canvas->cd(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;runi<numberRuns;runi++) { /* loop over runs read from file */
+            runs[runi]->histogrampointer = &runs[runi]->histogramthreshold; }
+    else if (histogramtype.Contains("calibrated") || histogramtype.Contains("electron"))
+        for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+            runs[runi]->histogrampointer = &runs[runi]->histogramCalibrated; }
+    else
+        for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+            runs[runi]->histogrampointer = &runs[runi]->histogram; }
+    plotAllRuns();
 }
 
-void plotAllRunsThreshold()
+void plotAllRuns()
 {
     if (numberRuns > 1)
     {
@@ -214,24 +171,24 @@ void plotAllRunsThreshold()
         for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
         {
             canvas->cd(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();
     }
 }
+
index 4985c5f0753eb09f52d81d3f91151ffcade6c604..58a5e1fa479168f511725badf45946df44183e8d 100644 (file)
@@ -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
index 141793c8dfeded77dad540b531968af876311439..e16d164d831f7e39a88c5f10aa6764368846403b 100644 (file)
@@ -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*);