From: Benjamin Linnik Date: Thu, 25 Jun 2015 13:53:51 +0000 (+0200) Subject: Run analyzer: If a run was analyzed with default config, it will be forced to be... X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=bf7c011e02d1f65bf2319995ba4151bb5b413d49;p=radhard.git Run analyzer: If a run was analyzed with default config, it will be forced to be analyzed again next time --- bf7c011e02d1f65bf2319995ba4151bb5b413d49 diff --cc MABS_run_analyzer/ChargeSpektrum.c index 0000000,877f6fa..bf8ded8 mode 000000,100644..100644 --- a/MABS_run_analyzer/ChargeSpektrum.c +++ b/MABS_run_analyzer/ChargeSpektrum.c @@@ -1,0 -1,181 +1,176 @@@ + /** + * @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 + + 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 runList; + if (runnumber.Length() > 0) + { + if (runnumber.Contains("-")) + { + TObjArray* runarray = runnumber.Tokenize("-"); + if (runarray->GetEntries()==2) + { + TObjString* tempstrobj; + tempstrobj=static_cast(runarray->At(0)); + if (tempstrobj->GetString().Length()>0) + { + Int_t tempintstart = tempstrobj->GetString().Atoi(); + tempstrobj=static_cast(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(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;runi0) + { + 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"); - + // writeObservableToFile("seed threshold"); - + writeObservableToFile("seed threshold calibrated"); - writeObservableToFile("sum threshold calibrated"); + }