]> jspc29.x-matter.uni-frankfurt.de Git - radhard.git/commitdiff
Run analyzer: writeObservableToFile() added
authorBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Sat, 16 May 2015 10:03:04 +0000 (12:03 +0200)
committerBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Sat, 16 May 2015 10:03:04 +0000 (12:03 +0200)
MABS_run_analyzer/ChargeSpektrum.c
MABS_run_analyzer/Run.c
MABS_run_analyzer/Run.h

index 6be47b3118d361c531bf2cd11b9c2bcaef6eae18..30a9c0b81721fdd638aa86c1da1dfdb3ee43ac8b 100644 (file)
@@ -20,6 +20,8 @@ Int_t ReadRunList(std::vector<int>*);
 void plotAllRuns();
 void plotAllRuns(TString);
 void writeObservableToFile(TString);
+void writeObservableToFile();
+void writeObservableToFileHistSelect(TString);
 Run** runs;
 Int_t numberRuns;
 Bool_t isBatch = kFALSE;
@@ -215,47 +217,69 @@ Int_t ReadRunList(std::vector<int>* runlist)
 // {
 //     
 // }
-void writeObservableToFile(TString observable)
+
+void writeObservableToFile(TString histogramtype)
 {
-               TString runnumberListe="Seed_";
-               for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
-                       {
-                       TString runnumber=Form("%d",runs[runi]->labbook.runnumber);
-                       
-                       runnumberListe+=runnumber+"_";
-                       }
-        system("mkdir "+ runs[0]->savepathresults + " -p");
-    TString filename= runs[0]->savepathresults + "/" + runnumberListe + "_histograms.dat";
-    fstream* fout = new fstream(filename,ios::out);
-         TString header;
-       for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
-                       {
-                       TString runnumber=Form("%d",runs[runi]->labbook.runnumber);
-                       header+="Bins\t"+runnumber+"\t";
-                       }
-                       
-    *fout << header << endl;
-         TString headerInfo;
+    if (histogramtype.Contains("threshold")) {
+        for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+            runs[runi]->plothistogramstructpointer = &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]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } }
+    else {
+        for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+            runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
+    writeObservableToFileHistSelect(histogramtype);
+}
+void writeObservableToFileHistSelect(TString histogramtype)
+{
+    if (histogramtype.Contains("Seed") || histogramtype.Contains("seed")) {
+        for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+            runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } }
+    else if (histogramtype.Contains("Sum") || histogramtype.Contains("sum")) {
+        for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
+            runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Sum; } }
+    else if (histogramtype.Contains("Veto") || histogramtype.Contains("veto")) {
+        for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+            runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Veto; } }
+    else {
+        for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
+            runs[runi]->plothistogrampointer = &runs[runi]->plothistogramstructpointer->Seed; } }
+    writeObservableToFile();
+}
+
+void writeObservableToFile()
+{
+    system("mkdir "+ runs[0]->savepathresults + " -p");
+    TString headerInfo = "";
+    for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
+    {
+        headerInfo+=runs[runi]->runcode+"\t\t\t";
+    }
+    TH1F* plothistogrampointer = *runs[0]->plothistogrampointer;
+    TString runnumberListe=Form("%s_",plothistogrampointer->GetName());
+    TString header="";
        for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
-                       {
-                       headerInfo+="\t"+runs[runi]->runcode+"\t";
-                       }
-                       
+    {  
+        plothistogrampointer = *runs[runi]->plothistogrampointer;
+        runnumberListe+=Form("%d_",runs[runi]->labbook.runnumber);
+        header+=Form("%d\t%s\t", runs[runi]->labbook.runnumber, plothistogrampointer->GetName());
+       }
+    TString filename= runs[0]->savepathresults + "/" + runnumberListe + "histograms.dat";
+    fstream* fout = new fstream(filename,ios::out);
     *fout << headerInfo << endl;
-       
-       runs[0]->histogrampointer = &runs[0]->histogramthreshold;
-                               
-               for(Int_t bin=0;bin<runs[0]->histogrampointer->Seed->GetNbinsX();bin++)//Achtung möglicher Bug, da hier nur die Bins vom ersten Run genommen werden, haben die anderen runs mehr/weniger Bins, kann es crashen, sollte aber normalerweise kein Problem sein, da alle Histogramme mit der gleichen Binzahl erstellt werden
-               {
-                       for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
-                       {
-                               runs[runi]->histogrampointer = &runs[runi]->histogramthreshold;
-                               TString outline;
-                               outline=Form("%.1f\t%.1f",runs[runi]->histogrampointer->Seed->GetBinCenter(bin),runs[runi]->histogrampointer->Seed->GetBinContent(bin));
-                               *fout<<outline<<"\t";
-                       }
-               *fout<<endl;
+    *fout << header << endl;
+    for(Int_t bini=0;bini<plothistogrampointer->GetNbinsX();bini++)
+    {
+               for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
+        {
+            plothistogrampointer = *runs[runi]->plothistogrampointer;
+                       TString outline;
+            outline=Form("%.1f\t%.1f\t",plothistogrampointer->GetBinCenter(bini),plothistogrampointer->GetBinContent(bini));
+                       *fout<<outline;
                }
+               *fout<<endl;
+       }
     fout->close();
        
     return;
@@ -265,13 +289,13 @@ void plotAllRuns(TString histogramtype)
 {
     if (histogramtype.Contains("threshold")) {
         for(Int_t runi=0;runi<numberRuns;runi++)/* loop over runs read from file */ {
-            runs[runi]->plothistogrampointer = &runs[runi]->histogramthreshold; } }
+            runs[runi]->plothistogramstructpointer = &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]->plothistogrampointer = &runs[runi]->histogramCalibrated; } }
+            runs[runi]->plothistogramstructpointer = &runs[runi]->histogramCalibrated; } }
     else {
         for(Int_t runi=0;runi<numberRuns;runi++) /* loop over runs read from file */ {
-            runs[runi]->plothistogrampointer = &runs[runi]->histogram; } }
+            runs[runi]->plothistogramstructpointer = &runs[runi]->histogram; } }
     plotAllRuns();
 }
 
@@ -303,24 +327,24 @@ void plotAllRuns()
                 if (!runs[runi]->error)
                 {
                     canvas->cd(1);
-                    runs[runi]->plothistogrampointer->Seed->Draw("SAME");
-                    lastbin = runs[runi]->plothistogrampointer->Seed->GetBinCenter(runs[runi]->plothistogrampointer->Seed->FindLastBinAbove(2,1));
-                    runs[runi]->plothistogrampointer->Seed->SetAxisRange(0,lastbin*1.1,"X");
+                    runs[runi]->plothistogramstructpointer->Seed->Draw("SAME");
+                    lastbin = runs[runi]->plothistogramstructpointer->Seed->GetBinCenter(runs[runi]->plothistogramstructpointer->Seed->FindLastBinAbove(2,1));
+                    runs[runi]->plothistogramstructpointer->Seed->SetAxisRange(0,lastbin*1.1,"X");
                     gPad->SetLogy(1);
-                    legendEntry = Form("%s", runs[runi]->plothistogrampointer->Seed->GetTitle());
-                    leg1->AddEntry(runs[runi]->plothistogrampointer->Veto, legendEntry, "l");
+                    legendEntry = Form("%s", runs[runi]->plothistogramstructpointer->Seed->GetTitle());
+                    leg1->AddEntry(runs[runi]->plothistogramstructpointer->Veto, legendEntry, "l");
                     leg1->Draw("SAME");
                     canvas->cd(2);
-                    runs[runi]->plothistogrampointer->Sum->Draw("SAME");
-                    lastbin = runs[runi]->plothistogrampointer->Sum->GetBinCenter(runs[runi]->plothistogrampointer->Sum->FindLastBinAbove(2,1));
-                    runs[runi]->plothistogrampointer->Sum->SetAxisRange(0,lastbin*1.1,"X");
+                    runs[runi]->plothistogramstructpointer->Sum->Draw("SAME");
+                    lastbin = runs[runi]->plothistogramstructpointer->Sum->GetBinCenter(runs[runi]->plothistogramstructpointer->Sum->FindLastBinAbove(2,1));
+                    runs[runi]->plothistogramstructpointer->Sum->SetAxisRange(0,lastbin*1.1,"X");
                     canvas->cd(3);
-                    runs[runi]->plothistogrampointer->Veto->Draw("SAME");
-                    runs[runi]->plothistogrampointer->Veto->SetAxisRange(runs[runi]->plothistogrampointer->posVeto*0.7,runs[runi]->plothistogrampointer->posVeto*1.4,"X");
+                    runs[runi]->plothistogramstructpointer->Veto->Draw("SAME");
+                    runs[runi]->plothistogramstructpointer->Veto->SetAxisRange(runs[runi]->plothistogramstructpointer->posVeto*0.7,runs[runi]->plothistogramstructpointer->posVeto*1.4,"X");
                     canvas->cd(4);
-                    runs[runi]->plothistogrampointer->Noise->Draw("SAME");
-                    legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->plothistogrampointer->avgNoise);
-                    leg2->AddEntry(runs[runi]->plothistogrampointer->Veto, legendEntry, "l");
+                    runs[runi]->plothistogramstructpointer->Noise->Draw("SAME");
+                    legendEntry = Form("%s, Noise: %.2f", runs[runi]->labbook.matrix.Data(), runs[runi]->plothistogramstructpointer->avgNoise);
+                    leg2->AddEntry(runs[runi]->plothistogramstructpointer->Veto, legendEntry, "l");
                     leg2->Draw("SAME");
                 }
             }
index 02d4f8518a93f1f4e16492ced67a4cd8a810464e..2cd06e6c92bcc0d2a92343817cf86ac6a79f0c58 100644 (file)
@@ -125,7 +125,6 @@ Run::Run(Int_t runnumber, Int_t loopi)
             initRootParameters();
             cout << colorwhite << "initHistograms():" << endlr;
             initHistograms(&histogram);
-            plothistogrampointer = &histogram;
             initHistograms(&histogramthreshold, " threshold");
             runexistsinDB = 1;
             debugDBreadout();
@@ -1207,6 +1206,8 @@ void Run::initHistograms(histogramstruct* histogramstructpointer, TString suffix
         histogramstructpointer->Noise->GetXaxis()->CenterTitle();
         histogramstructpointer->Noise->GetYaxis()->CenterTitle();
     }
+    plothistogrampointer = &histogram.Seed;
+    plothistogramstructpointer = &histogram;
 }
 
 void Run::initHistogram(TH1F* &histogrampointer, TString prefix)
index cba162b7c625413deaea0a520ff4054d61db52a4..e2da7b3f4e8e2005b630cd6fc329b346881c6235 100644 (file)
@@ -419,7 +419,8 @@ public:
     histogramstruct histogram;
     histogramstruct histogramCalibrated;
     histogramstruct histogramthreshold;
-    histogramstruct* plothistogrampointer;
+    histogramstruct* plothistogramstructpointer;
+    TH1F** plothistogrampointer;
     
     /** @brief Plots all histograms from #histogram into one canvas */
     Bool_t plotAllHistograms(histogramstruct*);