+++ /dev/null
-/**
- * @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(true); // 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("seed threshold calibrated");
-}