]> jspc29.x-matter.uni-frankfurt.de Git - radhard.git/commitdiff
Run analyzer: If a run was analyzed with default config, it will be forced to be...
authorBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Thu, 25 Jun 2015 13:53:51 +0000 (15:53 +0200)
committerBenjamin Linnik <blinnik@jspc28.x-matter.uni-frankfurt.de>
Thu, 25 Jun 2015 13:53:51 +0000 (15:53 +0200)
1  2 
MABS_run_analyzer/ChargeSpektrum.c

index 0000000000000000000000000000000000000000,877f6fac71bae05c110ee74b854d9b8dd4946d96..bf8ded8ccdc117a9350ff4d04dbe8051902a7d9f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,181 +1,176 @@@
 -    writeObservableToFile("seed threshold");
 -      writeObservableToFile("sum threshold");
 -
+ /**
+  * @file ChargeSpektrum.c
+  * @brief Use brief, otherwise the index won't have a brief explanation.
+  *
+  * Detailed explanation.
+  * 
+  * 
+  */
+ #include "MAPS.c"
+ #include "Run.c"
+ #include "CSVRow.h"
+ #include "CSVRow.C"
+ #include <TTimeStamp.h>
+ Run** runs;
+ Int_t numberRuns;
+ Bool_t isBatch = kFALSE;
+ #include "ChargeSpektrumFunctions.c"
+ void ChargeSpektrum(TString runnumber = "")
+ {
+     cout << endl << endl; 
+     if (gROOT->IsBatch())
+         isBatch = kTRUE;
+     
+     numberRuns=0;
+     std::vector<int> runList;
+     if (runnumber.Length() > 0)
+     {
+         if (runnumber.Contains("-"))
+         {
+             TObjArray* runarray = runnumber.Tokenize("-");
+             if (runarray->GetEntries()==2)
+             {
+                 TObjString* tempstrobj;
+                 tempstrobj=static_cast<TObjString*>(runarray->At(0));
+                 if (tempstrobj->GetString().Length()>0)
+                 {
+                     Int_t tempintstart = tempstrobj->GetString().Atoi();
+                     tempstrobj=static_cast<TObjString*>(runarray->At(1));
+                     if (tempstrobj->GetString().Length()>0)
+                     {
+                         Int_t tempintend = tempstrobj->GetString().Atoi();
+                         if (tempintend-tempintstart > 0)
+                         {
+                             for (Int_t i=tempintstart; i <= tempintend; i++)
+                             {
+                                 runList.push_back(i);
+                                 numberRuns++;
+                             }
+                         }
+                         else
+                             cout << coloryellow << "Invalid run number range "<< colorreset << colorwhite << tempintstart << " till " << tempintend << endlr;
+                     }
+                     else
+                         cout << coloryellow << "Invalid run number "<< colorreset << colorwhite << tempstrobj->GetString() << endlr;  
+                     
+                 }
+                 else
+                     cout << coloryellow << "Invalid run number "<< colorreset << colorwhite << tempstrobj->GetString() << endlr;    
+             }
+             else
+             {
+                 cout << endl << colorred << "Given parameters have wrong format, please enter integer run numbers devided by '" << colorreset << colorwhite << "," << colorreset << colorred << " or 2 runnumbers devided by " << colorreset << colorwhite << "-" << colorreset << colorred << "' and surrounded by '" << colorreset << colorwhite << "\"" << colorreset  << colorred << "'." << endlr;
+                 cout << "For example run: " << colorwhite << "root -l 'ChargeSpektrum.c+(\"342815,342816\")'" << endl;
+                 exit(1);
+             }  
+             
+         }
+         else
+         {
+             TObjArray* runarray = runnumber.Tokenize(",");
+             if (runarray->GetEntries()>0)
+             {
+                 TObjString* tempstrobj;
+                 for (Int_t i=0; i < runarray->GetEntries(); i++)
+                 {
+                     tempstrobj=static_cast<TObjString*>(runarray->At(i));
+                     if (tempstrobj->GetString().Length()>0)
+                     {
+                         Int_t tempint = tempstrobj->GetString().Atoi();
+                         if (tempint > 0)
+                         {
+                             runList.push_back(tempint);
+                             numberRuns++;
+                         }
+                         else
+                             cout << coloryellow << "Invalid run number "<< colorreset << colorwhite << tempint << endlr;
+                     }
+                     else
+                         cout << coloryellow << "Invalid run number "<< colorreset << colorwhite << tempstrobj->GetString() << endlr;
+                 }                
+             }
+             else
+             {
+                 cout << endl << colorred << "Given parameters have wrong format, please enter integer run numbers devided by '" << colorreset << colorwhite << "," << colorreset << colorred << "' and surrounded by '" << colorreset << colorwhite << "\"" << colorreset  << colorred << "'." << endlr;
+                 cout << "For example run: " << colorwhite << "root -l 'ChargeSpektrum.c+(\"342815,342816\")'" << endl;
+                 exit(1);
+             }         
+         }
+     }
+     else
+     {
+         /// number of runs to be analyzed, number of lines read by @c ReadRunList() 
+         ReadRunList(&runList);
+     }
+     runs = new Run*[numberRuns];
+     
+     cout << "Found " << numberRuns << " run(s) in 'runlist.txt' or given as parameters." << endl;
+     for(Int_t runi=0;runi<numberRuns;runi++) // loop over runs read from file
+     {
+         if (runList[runi]>0)
+         {
+             runs[runi] = new Run(runList[runi], runi);
+             if (!runs[runi]->error)
+             {
+                 if (runi%2)
+                 {
+                     // check if devided matrix is investigated
+                     if (runList[runi-1] == runList[runi])
+                     {
+                         cout << "Using devided matrix upper" << endl;
+                         runs[runi]->dividedmatrix = 1;
+                         runs[runi]->upperpart = 1;
+                     }
+                 }
+                 if (runi+1 < numberRuns)
+                 {
+                     if (runList[runi] == runList[runi+1] )
+                     {
+                         cout << "Using devided matrix lower" << endl;
+                         runs[runi]->dividedmatrix = 1;
+                         runs[runi]->upperpart = 0;
+                     }
+                 }
+                 runs[runi]->setResultsPath("./results/");
+                 runs[runi]->error=runs[runi]->initRun();
+                 runs[runi]->setDynamicalNoiseMode("simple");
+                 runs[runi]->useDynamicalNoise(true);
+                                 
+ //                 runs[runi]->analyzeFrame(15684);
+ //                 runs[runi]->analyzeFrame(803316);
+ //                 runs[runi]->analyzeFrame(8319);
+                 
+                 // creates or opens .root file, can analyze the RAW data
+                 runs[runi]->error=runs[runi]->analyzeRun(false); // creates or opens .root file, can analyze the RAW data
+                 if (!runs[runi]->error)
+                 {
+             //         gROOT->SetBatch(kTRUE);
+                     //           runs[runi]->plotSeed();
+ //                     runs[runi]->plotSeedThresholdCalibrated();
+ //                     runs[runi]->plotSeedThreshold();
+                     runs[runi]->plotSeed();
+             //         runs[runi]->plotSum();
+             //         runs[runi]->plotVeto();
+                     //         runs[runi]->plotNoise();
+                     if (!isBatch)
+                         gROOT->SetBatch(kFALSE);
+                             runs[runi]->plotAllHistograms();
+ //                    runs[runi]->plotAllHistogramsThresholdCluster();
+                     runs[runi]->plotAllHistogramsThresholdClusterCalibrated();
+                      runs[runi]->plotAllHistogramsCalibrated(); 
+                     runs[runi]->writeAllHistogramsToFile(); 
+                 }
+             }
+         }
+     }
+ //     plotAllRuns("");
+     plotAllRuns("seed calibrated");
+ //     writeObservableToFile("seed threshold calibrated");
 -
+ //    writeObservableToFile("seed threshold");
 -      writeObservableToFile("sum threshold calibrated");
+       writeObservableToFile("seed threshold calibrated");
+ }