30 printf(
"ERROR - Argument not expected or wrongly set:\n\n");
31 printf(
"Valid format is: ./PixelCalib.exe [Blayer, L1, L2, disk] THR=SCAN_Sxxxxxxxxx THRintime=SCAN_Sxxxxxxxxx TOT=SCAN_Sxxxxxxxxx directory_path=path/to/file/ [saveInfo]\n");
32 printf(
"\n\t i.e: ./PixelCalib.exe Blayer THR=SCAN_S000087719 THR_intime=SCAN_S000087717 TOT=SCAN_S000087710 directory_path=/eos/user/x/xxxx/\n");
33 printf(
"\nThe example will run Blayer calibration using the scans: SCAN_S000087719.root, SCAN_S000087717.root and SCAN_S000087710.root stored in /eos/user/x/xxxx/\n");
34 printf(
"\nNOTE: If you type as an argument another layer or file at the same time\n\t e.i: './PixelCalib.exe Blayer L1 THR=SCAN_S000087719 THR_intime=SCAN_S000087717 TOT=SCAN_S000087710 directory_path=/eos/user/x/xxxx/' - Blayer and L1 are in the arguments\n");
35 printf(
"It will run the last valid layer in the arguments (in the example above will be \"L1\" layer) \n");
42 bool saveInfo =
false;
43 std::string THR =
"THR";
44 std::string THRintime =
"THRintime";
45 std::string TOT =
"TOT";
46 std::string dpath =
"directory_path";
47 std::vector<std::string> sWhichPart = {
"Blayer",
"L1",
"L2",
"disk"};
50 std::string aux(
argv[
i]);
52 if(aux.compare(
"Blayer") == 0) whichPart = 0;
53 else if(aux.compare(
"L1") == 0) whichPart = 1;
54 else if(aux.compare(
"L2") == 0) whichPart = 2;
55 else if(aux.compare(
"disk") == 0) whichPart = 3;
56 else if(aux.compare(
"saveInfo") == 0) saveInfo =
true;
57 else if(THRintime.compare(aux.substr(0,aux.find(
"="))) == 0) THRintime = aux.substr(aux.find(
"=")+1);
58 else if(THR.compare(aux.substr(0,aux.find(
"="))) == 0) THR = aux.substr(aux.find(
"=")+1);
59 else if(TOT.compare(aux.substr(0,aux.find(
"="))) == 0) TOT = aux.substr(aux.find(
"=")+1);
60 else if(dpath.compare(aux.substr(0,aux.find(
"="))) == 0) dpath = aux.substr(aux.find(
"=")+1);
68 printf(
"%-14s = %s\n",
"Directory path",dpath.c_str());
69 printf(
"%-14s = %d - %s\n",
"Pixel part",whichPart, (whichPart < 0 or whichPart > 3) ?
"-1" : sWhichPart.at(whichPart).c_str());
70 printf(
"%-14s = %s.root\n",
"THR",THR.c_str());
71 printf(
"%-14s = %s.root\n",
"THRintime",THRintime.c_str());
72 printf(
"%-14s = %s.root\n",
"TOT",TOT.c_str());
73 printf(
"%-14s = %s\n\n\n",
"Save root file",saveInfo ?
"True" :
"False" );
76 bool correctArgc = (whichPart < 0 or whichPart > 3) or (THR.compare(
"THR") == 0) or (THRintime.compare(
"THRintime") == 0) or (TOT.compare(
"TOT") == 0) or (dpath.compare(
"directory_path") == 0);
79 printf(
"Cannot continue, one arguments is incorrect or not filled correctly...\n");
80 printf(
"Helper below:\n**********************\n\n");
85 std::string thres_f = dpath+THR+
".root";
86 std::string timin_f = dpath+THRintime+
".root";
87 std::string totin_f = dpath+TOT+
".root";
94 std::map<unsigned int , std::vector<std::unique_ptr<CalibFrontEndInfo>> > map_values;
96 std::unique_ptr<TFile> wFile = std::make_unique<TFile>();
102 printf(
"Time to calculate threshold calibration\n");
103 std::string moduleName =
"";
104 Calib Calibration(whichPart,saveInfo, moduleName);
106 printf(
"Error - The threshold calibration was not properly finished.\n");
110 printf(
"Time taken for threshold calibration:%7.1f seconds\n",
double(
end -
start));
112 if(map_values.size() == 0){
115 if( std::strcmp(moduleName.c_str(),
"") != 0 ){
116 printf(
"main::main: Running only one module: %s - It does not belong to %s\n",moduleName.c_str(), sWhichPart.at(whichPart).c_str());
119 printf(
"main::main: ERROR - Size of filled map is 0. Does the %s exist in the %s file?\n",sWhichPart.at(whichPart).c_str(),thres_f.c_str());
125 printf(
"Time to take timing calibration\n");
126 if(!(Calibration.
fillTiming(pixmap ,timin_f ,map_values )) ){
127 printf(
"Error - The timing calibration was not properly finished.\n");
131 printf(
"Time taken for timing calibration:%7.1f seconds\n",
double(
end -
start));
135 printf(
"Time to take TOT calibration\n");
136 if(!(Calibration.
totFitting(pixmap ,totin_f ,map_values )) ){
137 printf(
"Error - The TOT calibration was not properly finished.\n");
141 printf(
"Time taken for TOT calibration:%7.1f seconds\n",
double(
end -
start));
143 std::ofstream
myFile(
"calibration_"+sWhichPart.at(whichPart)+
".txt");
145 printf(
"Total MODs:%4lu\n",map_values.size());
146 for(
const auto & [
key, MOD] : map_values){
148 for(
const auto& FE : MOD){
149 std::stringstream sstr = FE->printDBformat();
150 printf(
"%s\n",sstr.str().c_str());
151 myFile << sstr.str() <<
"\n";
157 printf(
"********** JOB finished **********\n");