20 #include <TApplication.h>
28 #include <TPostScript.h>
32 #include <TGraphErrors.h>
41 namespace std {}
using namespace std;
60 char SMP2Name[][100]={
"SMA0",
"SMC0",
"SMA1",
"SMC1",
"SMA2",
"SMC2",
"SMA3",
"SMC3",
"SMA4",
"SMC4",
"SMA5",
"SMC5",
"SMA9",
"SMC9",
"SMA10",
"SMC10",
"SMA11",
"SMC11",
"SMA12",
"SMC12"};
61 int SMdetType[]={
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCAL,
kEMCALthird,
kEMCALthird,
kDCAL,
kDCAL,
kDCAL,
kDCAL,
kDCAL,
kDCAL,
kDCALthird,kDCALthird};
94 {
int i,j,iRun,iSM,iCol,iRow,iColGlob,iRowGlob,tabCol[3],NumRun[3],cmptIntg[3],cmptAmpl[3],cmptEmismatch[3];
95 char name[150],name2[150],fchNameOCDBcoeffsFile[200];
96 double maxloc,ampli0,ampli1,ampli2,paramFactor,E0,E1,E2;
125 double cutWarnERatio=0.05;
126 double cutWarnAmpRatio=0.05;
127 double cutMinIntg=5.;
128 double cutMinAmp=20.;
129 double maxIntg=2800.;
132 double multFactGraphAmp=0.7;
133 double multFactGraphE=0.6;
146 {
case 0 : printf(
"\n--> Run mode = compare HV changes (runs have different HVs).\n\n");
148 case 1 : printf(
"\n--> Run mode = compare various runs with the same HV.\n\n");
150 default : printf(
"Unknown run mode %d, exiting.\n",runMode);
154 char fchNameBase[200],fchNameRoot[200],fchNamePs[200],fchNameOut[200];
155 FILE *inFile,*outFile,*OCDBcoeffsFile;
156 if (ident.IsNull()) sprintf(fchNameBase,
"output_plotLEDruns_runs%d.%d.%d",run1,run2,run3);
157 else sprintf(fchNameBase,
"output_plotLEDruns_%s",ident.Data());
158 sprintf(fchNameRoot,
"%s.root",fchNameBase);
159 sprintf(fchNamePs,
"%s.ps",fchNameBase);
160 sprintf(fchNameOut,
"%s.out",fchNameBase);
161 outFile=fopen(fchNameOut,
"w");
163 fprintf(outFile,
"\nAnalyzed run numbers : %d %d %d\n",run1,run2,run3);
164 fprintf(outFile,
"Chosen run mode : %d\n",runMode);
169 sprintf(fchNameOCDBcoeffsFile,
"/cebaf/cebaf/EMCAL/calibPi0_run2/recalculateHV_4_with2015data/OCDBparamsAfterCalib2015.txt");
170 fprintf(outFile,
"Load old OCDB coeffs from : %s\n",fchNameOCDBcoeffsFile);
171 OCDBcoeffsFile = fopen(fchNameOCDBcoeffsFile,
"r");
172 if (!OCDBcoeffsFile) {printf(
"File %s can not be found\n",fchNameOCDBcoeffsFile);exit(-1);}
173 while (fscanf(OCDBcoeffsFile,
"%d %d %d %lf",&iSM,&iCol,&iRow,¶mFactor)>0)
174 {coeffOCDBbefore[iSM][iCol][iRow]=paramFactor;
176 fclose(OCDBcoeffsFile);
180 sprintf(fchNameOCDBcoeffsFile,
"/cebaf/cebaf/EMCAL/calibPi0_run2/recalculateHV_4_with2015data/output_HVrecalculation_pass2_handMadeFinalCorrections_createSetBiasScripts/%s/NewParamFactor.txt",
SMP2Name[iSM]);
181 fprintf(outFile,
"Load new OCDB coeffs from : %s\n",fchNameOCDBcoeffsFile);
182 OCDBcoeffsFile = fopen(fchNameOCDBcoeffsFile,
"r");
184 {printf(
"File %s can not be found\nWill use fake coeffs for SM %s !\n",fchNameOCDBcoeffsFile,
SMP2Name[iSM]);
185 fprintf(outFile,
"File %s can not be found\nWill use fake coeffs for SM %s !\n",fchNameOCDBcoeffsFile,
SMP2Name[iSM]);
188 {
while (fscanf(OCDBcoeffsFile,
"%d %d %d %lf",&iSM,&iCol,&iRow,¶mFactor)>0) coeffOCDBafter[iSM][iCol][iRow]=paramFactor;
189 fclose(OCDBcoeffsFile);
193 const int cWidth=500;
194 const int cHeight=(int)(500*(30./21.));
195 TCanvas *c1 =
new TCanvas(
"c1",
"EMCal cosmics analysis",cWidth,cHeight);
196 TPostScript *ps =
new TPostScript(fchNamePs,111);
206 for (iRun=0;iRun<3;iRun++)
208 {sprintf(name,
"/cebaf/cebaf/EMCAL/anaLHC/ledana/root4gain/gain_SM%d_%d.root",iSM,NumRun[iRun]);
209 printf(
"Opening %s\n",name);
210 rootFileIn=
new TFile(name,
"READONLY");
211 if (rootFileIn->IsZombie()) {exit(-1);}
213 for (iCol=0;iCol<kTabNbCol[
SMdetType[iSM]];iCol++)
214 {
for (iRow=0;iRow<kTabNbRow[SMdetType[iSM]];iRow++)
215 {
if ((iSM%2) == 0) sprintf(name,
"hampHighGain_r%i_c%i",iRow,iCol);
216 else sprintf(name,
"hampHighGain_r%i_c%i",(kTabNbRow[SMdetType[iSM]]-1)-iRow,(kTabNbCol[SMdetType[iSM]]-1)-iCol);
217 hampHighGainTow[iRun][iSM][iRow][iCol]=(TH1F*)rootFileIn->Get(name);
218 if( !(hampHighGainTow[iRun][iSM][iRow][iCol]))
219 {printf(
"hist %s not found in %s. Aborting\n",name,rootFileIn->GetName());
230 TH1F **hDistrIntgRatio;
231 TH1F **hDistrAmpRatio;
233 TH1F **hDistrIntgRatioZm;
234 TH1F **hDistrAmpRatioZm;
235 TH1F **hDistrERatioZm;
236 TH2F **hAllSpaceEMCALIntg;
237 TH2F **hAllSpaceEMCALIntgRatio;
238 TH2F **hAllSpaceEMCALAmp;
239 TH2F **hAllSpaceEMCALAmpRatio;
240 TH2F **hAllSpaceEMCALE;
241 TH2F **hAllSpaceEMCALERatio;
242 TH2F **hAllSpaceDCALIntg;
243 TH2F **hAllSpaceDCALIntgRatio;
244 TH2F **hAllSpaceDCALAmp;
245 TH2F **hAllSpaceDCALAmpRatio;
246 TH2F **hAllSpaceDCALE;
247 TH2F **hAllSpaceDCALERatio;
250 TH2F **h2RatioVsIntg;
252 hDistrIntg =
new TH1F*[3*(kNbSMtot+1)];
253 hDistrAmp =
new TH1F*[3*(kNbSMtot+1)];
254 hDistrE =
new TH1F*[3*(kNbSMtot+1)];
255 hDistrIntgRatio =
new TH1F*[2*(kNbSMtot+1)];
256 hDistrAmpRatio =
new TH1F*[2*(kNbSMtot+1)];
257 hDistrERatio =
new TH1F*[2*(kNbSMtot+1)];
258 hDistrIntgRatioZm =
new TH1F*[2*(kNbSMtot+1)];
259 hDistrAmpRatioZm =
new TH1F*[2*(kNbSMtot+1)];
260 hDistrERatioZm =
new TH1F*[2*(kNbSMtot+1)];
261 hAllSpaceEMCALIntg =
new TH2F*[3];
262 hAllSpaceEMCALIntgRatio =
new TH2F*[2];
263 hAllSpaceEMCALAmp =
new TH2F*[3];
264 hAllSpaceEMCALAmpRatio =
new TH2F*[2];
265 hAllSpaceEMCALE =
new TH2F*[3];
266 hAllSpaceEMCALERatio =
new TH2F*[2];
267 hAllSpaceDCALIntg =
new TH2F*[3];
268 hAllSpaceDCALIntgRatio =
new TH2F*[2];
269 hAllSpaceDCALAmp =
new TH2F*[3];
270 hAllSpaceDCALAmpRatio =
new TH2F*[2];
271 hAllSpaceDCALE =
new TH2F*[3];
272 hAllSpaceDCALERatio =
new TH2F*[2];
273 h2Amp =
new TH2F*[2*(kNbSMtot+1)];
274 h2E =
new TH2F*[2*(kNbSMtot+1)];
275 h2RatioVsIntg =
new TH2F*[6*(kNbSMtot+1)];
276 h2RatioVsAmp =
new TH2F*[6*(kNbSMtot+1)];
279 {hAllSpaceEMCALIntg[j] =
new TH2F(Form(
"hAllSpaceEMCALIntg_%d",j),Form(
"hAllSpaceEMCALIntg_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
280 hAllSpaceEMCALIntg[j]->SetXTitle(
"Column");
281 hAllSpaceEMCALIntg[j]->SetYTitle(
"Row");
282 hAllSpaceEMCALIntg[j]->SetStats(0);
283 hAllSpaceEMCALIntg[j]->SetContour(30);
284 hAllSpaceEMCALAmp[j] =
new TH2F(Form(
"hAllSpaceEMCALAmp_%d",j),Form(
"hAllSpaceEMCALAmp_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
285 hAllSpaceEMCALAmp[j]->SetXTitle(
"Column");
286 hAllSpaceEMCALAmp[j]->SetYTitle(
"Row");
287 hAllSpaceEMCALAmp[j]->SetStats(0);
288 hAllSpaceEMCALAmp[j]->SetContour(30);
289 hAllSpaceEMCALE[j] =
new TH2F(Form(
"hAllSpaceEMCALE_%d",j),Form(
"hAllSpaceEMCALE_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
290 hAllSpaceEMCALE[j]->SetXTitle(
"Column");
291 hAllSpaceEMCALE[j]->SetYTitle(
"Row");
292 hAllSpaceEMCALE[j]->SetStats(0);
293 hAllSpaceEMCALE[j]->SetContour(30);
294 hAllSpaceDCALIntg[j] =
new TH2F(Form(
"hAllSpaceDCALIntg_%d",j),Form(
"hAllSpaceDCALIntg_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
295 hAllSpaceDCALIntg[j]->SetXTitle(
"Column");
296 hAllSpaceDCALIntg[j]->SetYTitle(
"Row");
297 hAllSpaceDCALIntg[j]->SetStats(0);
298 hAllSpaceDCALIntg[j]->SetContour(30);
299 hAllSpaceDCALAmp[j] =
new TH2F(Form(
"hAllSpaceDCALAmp_%d",j),Form(
"hAllSpaceDCALAmp_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
300 hAllSpaceDCALAmp[j]->SetXTitle(
"Column");
301 hAllSpaceDCALAmp[j]->SetYTitle(
"Row");
302 hAllSpaceDCALAmp[j]->SetStats(0);
303 hAllSpaceDCALAmp[j]->SetContour(30);
304 hAllSpaceDCALE[j] =
new TH2F(Form(
"hAllSpaceDCALE_%d",j),Form(
"hAllSpaceDCALE_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
305 hAllSpaceDCALE[j]->SetXTitle(
"Column");
306 hAllSpaceDCALE[j]->SetYTitle(
"Row");
307 hAllSpaceDCALE[j]->SetStats(0);
308 hAllSpaceDCALE[j]->SetContour(30);
309 for (i=0;i<kNbSMtot+1;i++)
310 {hDistrIntg[3*i+j] =
new TH1F(Form(
"hDistrIntg_%d_%d",i,j),Form(
"hDistrIntg_%d_%d",i,j),100,0.,maxIntg);
311 hDistrIntg[3*i+j]->SetXTitle(
"Integral");
312 hDistrIntg[3*i+j]->SetYTitle(
"Counts");
313 hDistrIntg[3*i+j]->SetStats(0);
314 hDistrIntg[3*i+j]->SetLineColor(tabCol[j]);
315 hDistrAmp[3*i+j] =
new TH1F(Form(
"hDistrAmp_%d_%d",i,j),Form(
"hDistrAmp_%d_%d",i,j),100,0.,maxAmp);
316 hDistrAmp[3*i+j]->SetXTitle(
"Amplitude");
317 hDistrAmp[3*i+j]->SetYTitle(
"Counts");
318 hDistrAmp[3*i+j]->SetStats(0);
319 hDistrAmp[3*i+j]->SetLineColor(tabCol[j]);
320 hDistrE[3*i+j] =
new TH1F(Form(
"hDistrE_%d_%d",i,j),Form(
"hDistrE_%d_%d",i,j),100,0.,maxE);
321 hDistrE[3*i+j]->SetXTitle(
"Energy");
322 hDistrE[3*i+j]->SetYTitle(
"Counts");
323 hDistrE[3*i+j]->SetStats(0);
324 hDistrE[3*i+j]->SetLineColor(tabCol[j]);
328 {hAllSpaceEMCALIntgRatio[j] =
new TH2F(Form(
"hAllSpaceEMCALIntgRatio_%d",j),Form(
"hAllSpaceEMCALIntgRatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
329 hAllSpaceEMCALIntgRatio[j]->SetXTitle(
"Column");
330 hAllSpaceEMCALIntgRatio[j]->SetYTitle(
"Row");
331 hAllSpaceEMCALIntgRatio[j]->SetStats(0);
332 hAllSpaceEMCALIntgRatio[j]->SetContour(30);
333 hAllSpaceEMCALAmpRatio[j] =
new TH2F(Form(
"hAllSpaceEMCALAmpRatio_%d",j),Form(
"hAllSpaceEMCALAmpRatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
334 hAllSpaceEMCALAmpRatio[j]->SetXTitle(
"Column");
335 hAllSpaceEMCALAmpRatio[j]->SetYTitle(
"Row");
336 hAllSpaceEMCALAmpRatio[j]->SetStats(0);
337 hAllSpaceEMCALAmpRatio[j]->SetContour(30);
338 hAllSpaceEMCALERatio[j] =
new TH2F(Form(
"hAllSpaceEMCALERatio_%d",j),Form(
"hAllSpaceEMCALERatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
339 hAllSpaceEMCALERatio[j]->SetXTitle(
"Column");
340 hAllSpaceEMCALERatio[j]->SetYTitle(
"Row");
341 hAllSpaceEMCALERatio[j]->SetStats(0);
342 hAllSpaceEMCALERatio[j]->SetContour(30);
343 hAllSpaceDCALIntgRatio[j] =
new TH2F(Form(
"hAllSpaceDCALIntgRatio_%d",j),Form(
"hAllSpaceDCALIntgRatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
344 hAllSpaceDCALIntgRatio[j]->SetXTitle(
"Column");
345 hAllSpaceDCALIntgRatio[j]->SetYTitle(
"Row");
346 hAllSpaceDCALIntgRatio[j]->SetStats(0);
347 hAllSpaceDCALIntgRatio[j]->SetContour(30);
348 hAllSpaceDCALAmpRatio[j] =
new TH2F(Form(
"hAllSpaceDCALAmpRatio_%d",j),Form(
"hAllSpaceDCALAmpRatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
349 hAllSpaceDCALAmpRatio[j]->SetXTitle(
"Column");
350 hAllSpaceDCALAmpRatio[j]->SetYTitle(
"Row");
351 hAllSpaceDCALAmpRatio[j]->SetStats(0);
352 hAllSpaceDCALAmpRatio[j]->SetContour(30);
353 hAllSpaceDCALERatio[j] =
new TH2F(Form(
"hAllSpaceDCALERatio_%d",j),Form(
"hAllSpaceDCALERatio_%d",j),2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
354 hAllSpaceDCALERatio[j]->SetXTitle(
"Column");
355 hAllSpaceDCALERatio[j]->SetYTitle(
"Row");
356 hAllSpaceDCALERatio[j]->SetStats(0);
357 hAllSpaceDCALERatio[j]->SetContour(30);
358 for (i=0;i<kNbSMtot+1;i++)
359 {hDistrIntgRatio[2*i+j] =
new TH1F(Form(
"hDistrIntgRatio_%d_%d",i,j),Form(
"hDistrIntgRatio_%d_%d",i,j),100,0.,4.);
360 hDistrIntgRatio[2*i+j]->SetXTitle(
"Integral ratio");
361 hDistrIntgRatio[2*i+j]->SetYTitle(
"Counts");
362 hDistrIntgRatio[2*i+j]->SetStats(0);
363 hDistrIntgRatio[2*i+j]->SetLineColor(tabCol[2-j]);
364 hDistrAmpRatio[2*i+j] =
new TH1F(Form(
"hDistrAmpRatio_%d_%d",i,j),Form(
"hDistrAmpRatio_%d_%d",i,j),100,0.,3.);
365 hDistrAmpRatio[2*i+j]->SetXTitle(
"Amplitude ratio");
366 hDistrAmpRatio[2*i+j]->SetYTitle(
"Counts");
367 hDistrAmpRatio[2*i+j]->SetStats(0);
368 hDistrAmpRatio[2*i+j]->SetLineColor(tabCol[2-j]);
369 hDistrERatio[2*i+j] =
new TH1F(Form(
"hDistrERatio_%d_%d",i,j),Form(
"hDistrERatio_%d_%d",i,j),100,0.,3.);
370 hDistrERatio[2*i+j]->SetXTitle(
"Energy ratio");
371 hDistrERatio[2*i+j]->SetYTitle(
"Counts");
372 hDistrERatio[2*i+j]->SetStats(0);
373 hDistrERatio[2*i+j]->SetLineColor(tabCol[2-j]);
374 hDistrIntgRatioZm[2*i+j] =
new TH1F(Form(
"hDistrIntgRatioZm_%d_%d",i,j),Form(
"hDistrIntgRatioZm_%d_%d",i,j),100,0.,2.0);
375 hDistrIntgRatioZm[2*i+j]->SetXTitle(
"Integral ratio");
376 hDistrIntgRatioZm[2*i+j]->SetYTitle(
"Counts");
377 hDistrIntgRatioZm[2*i+j]->SetStats(0);
378 hDistrIntgRatioZm[2*i+j]->SetLineColor(tabCol[2-j]);
379 hDistrAmpRatioZm[2*i+j] =
new TH1F(Form(
"hDistrAmpRatioZm_%d_%d",i,j),Form(
"hDistrAmpRatioZm_%d_%d",i,j),100,0.7,1.4);
380 hDistrAmpRatioZm[2*i+j]->SetXTitle(
"Amplitude ratio");
381 hDistrAmpRatioZm[2*i+j]->SetYTitle(
"Counts");
382 hDistrAmpRatioZm[2*i+j]->SetStats(0);
383 hDistrAmpRatioZm[2*i+j]->SetLineColor(tabCol[2-j]);
384 hDistrERatioZm[2*i+j] =
new TH1F(Form(
"hDistrERatioZm_%d_%d",i,j),Form(
"hDistrERatioZm_%d_%d",i,j),100,0.7,1.4);
385 hDistrERatioZm[2*i+j]->SetXTitle(
"Energy ratio");
386 hDistrERatioZm[2*i+j]->SetYTitle(
"Counts");
387 hDistrERatioZm[2*i+j]->SetStats(0);
388 hDistrERatioZm[2*i+j]->SetLineColor(tabCol[2-j]);
389 h2Amp[2*i+j] =
new TH2F(Form(
"h2Amp%d_%d",i,j),Form(
"h2Amp%d_%d",i,j),100,0.,multFactGraphAmp*maxAmp,100,0.,multFactGraphAmp*maxAmp);
390 h2Amp[2*i+j]->SetXTitle(
"Amplitude 1st run");
391 h2Amp[2*i+j]->SetYTitle(
"Amplitude other run");
392 h2Amp[2*i+j]->SetStats(0);
393 h2Amp[2*i+j]->SetContour(30);
394 h2E[2*i+j] =
new TH2F(Form(
"h2E%d_%d",i,j),Form(
"h2E%d_%d",i,j),100,0.,multFactGraphE*maxE,100,0.,multFactGraphE*maxE);
395 h2E[2*i+j]->SetXTitle(
"Energy 1st run");
396 h2E[2*i+j]->SetYTitle(
"Energy other run");
397 h2E[2*i+j]->SetStats(0);
398 h2E[2*i+j]->SetContour(30);
402 {
for (i=0;i<kNbSMtot+1;i++)
403 {h2RatioVsIntg[6*i+j] =
new TH2F(Form(
"h2RatioVsIntg%d_%d",i,j),Form(
"h2RatioVsIntg%d_%d",i,j),100,0.,maxIntg,100,0.6,1.5);
404 h2RatioVsIntg[6*i+j]->SetXTitle(
"Integral");
405 if (runMode == 0) h2RatioVsIntg[6*i+j]->SetYTitle(
"Energy ratio");
406 if (runMode == 1) h2RatioVsIntg[6*i+j]->SetYTitle(
"Amplitude ratio");
407 h2RatioVsIntg[6*i+j]->SetStats(0);
408 h2RatioVsIntg[6*i+j]->SetContour(30);
409 h2RatioVsAmp[6*i+j] =
new TH2F(Form(
"h2RatioVsAmp%d_%d",i,j),Form(
"h2RatioVsAmp%d_%d",i,j),100,0.,multFactGraphAmp*maxAmp,100,0.6,1.5);
410 h2RatioVsAmp[6*i+j]->SetXTitle(
"Amplitude");
411 if (runMode == 0) h2RatioVsAmp[6*i+j]->SetYTitle(
"Energy ratio");
412 if (runMode == 1) h2RatioVsAmp[6*i+j]->SetYTitle(
"Amplitude ratio");
413 h2RatioVsAmp[6*i+j]->SetStats(0);
414 h2RatioVsAmp[6*i+j]->SetContour(30);
417 TH2F *hAllSpaceEMCALOCDBfactorsBefore =
new TH2F(
"hAllSpaceEMCALOCDBfactorsBefore",
"hAllSpaceEMCALOCDBfactorsBefore",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
418 TH2F *hAllSpaceEMCALRatioAmpliOCDB =
new TH2F(
"hAllSpaceEMCALRatioAmpliOCDB",
"hAllSpaceEMCALRatioAmpliOCDB",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
419 TH2F *hAllSpaceEMCALRatioEnergyOCDB =
new TH2F(
"hAllSpaceEMCALRatioEnergyOCDB",
"hAllSpaceEMCALRatioEnergyOCDB",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird,-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
420 TH2F *hAllSpaceDCALOCDBfactorsBefore =
new TH2F(
"hAllSpaceDCALOCDBfactorsBefore",
"hAllSpaceDCALOCDBfactorsBefore",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
421 TH2F *hAllSpaceDCALRatioAmpliOCDB =
new TH2F(
"hAllSpaceDCALRatioAmpliOCDB",
"hAllSpaceDCALRatioAmpliOCDB",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
422 TH2F *hAllSpaceDCALRatioEnergyOCDB =
new TH2F(
"hAllSpaceDCALRatioEnergyOCDB",
"hAllSpaceDCALRatioEnergyOCDB",2*kNbColMax,-0.5,2.*kNbColMax-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird,-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
423 TH2F *h2CorrelEnergyOCDB =
new TH2F(
"h2CorrelEnergyOCDB",
"h2CorrelEnergyOCDB",100,0.3,3.0,100,0.,4.);
424 TH2F *h2CorrelEnergyOCDBZm =
new TH2F(
"h2CorrelEnergyOCDBZm",
"h2CorrelEnergyOCDBZm",100,0.7,1.4,100,0.7,1.5);
425 TH2F *h2CorrelEnergyOCDBZmZm =
new TH2F(
"h2CorrelEnergyOCDBZmZm",
"h2CorrelEnergyOCDBZmZm",100,0.9,1.1,100,0.97,1.03);
426 hAllSpaceEMCALOCDBfactorsBefore->SetXTitle(
"Column");
427 hAllSpaceEMCALOCDBfactorsBefore->SetYTitle(
"Row");
428 hAllSpaceEMCALOCDBfactorsBefore->SetStats(0);
429 hAllSpaceEMCALOCDBfactorsBefore->SetContour(30);
430 hAllSpaceEMCALRatioAmpliOCDB->SetXTitle(
"Column");
431 hAllSpaceEMCALRatioAmpliOCDB->SetYTitle(
"Row");
432 hAllSpaceEMCALRatioAmpliOCDB->SetStats(0);
433 hAllSpaceEMCALRatioAmpliOCDB->SetContour(30);
434 hAllSpaceEMCALRatioEnergyOCDB->SetXTitle(
"Column");
435 hAllSpaceEMCALRatioEnergyOCDB->SetYTitle(
"Row");
436 hAllSpaceEMCALRatioEnergyOCDB->SetStats(0);
437 hAllSpaceEMCALRatioEnergyOCDB->SetContour(30);
438 hAllSpaceDCALOCDBfactorsBefore->SetXTitle(
"Column");
439 hAllSpaceDCALOCDBfactorsBefore->SetYTitle(
"Row");
440 hAllSpaceDCALOCDBfactorsBefore->SetStats(0);
441 hAllSpaceDCALOCDBfactorsBefore->SetContour(30);
442 hAllSpaceDCALRatioAmpliOCDB->SetXTitle(
"Column");
443 hAllSpaceDCALRatioAmpliOCDB->SetYTitle(
"Row");
444 hAllSpaceDCALRatioAmpliOCDB->SetStats(0);
445 hAllSpaceDCALRatioAmpliOCDB->SetContour(30);
446 hAllSpaceDCALRatioEnergyOCDB->SetXTitle(
"Column");
447 hAllSpaceDCALRatioEnergyOCDB->SetYTitle(
"Row");
448 hAllSpaceDCALRatioEnergyOCDB->SetStats(0);
449 hAllSpaceDCALRatioEnergyOCDB->SetContour(30);
450 h2CorrelEnergyOCDB->SetXTitle(
"Old OCDB coeff");
451 h2CorrelEnergyOCDB->SetYTitle(
"Energy");
452 h2CorrelEnergyOCDB->SetStats(0);
453 h2CorrelEnergyOCDB->SetContour(30);
454 h2CorrelEnergyOCDBZm->SetXTitle(
"Old OCDB coeff");
455 h2CorrelEnergyOCDBZm->SetYTitle(
"Energy");
456 h2CorrelEnergyOCDBZm->SetStats(0);
457 h2CorrelEnergyOCDBZm->SetContour(30);
458 h2CorrelEnergyOCDBZmZm->SetXTitle(
"Old OCDB coeff");
459 h2CorrelEnergyOCDBZmZm->SetYTitle(
"Energy");
460 h2CorrelEnergyOCDBZmZm->SetStats(0);
461 h2CorrelEnergyOCDBZmZm->SetContour(30);
469 printf(
"\nStart reading data. Tower coords given below are in Alice-offline mapping.\n");
470 fprintf(outFile,
"\nTower coords given below are in Alice-offline mapping.\n\n");
473 for (iCol=0;iCol<kTabNbCol[
SMdetType[iSM]];iCol++)
474 {
for (iRow=0;iRow<kTabNbRow[SMdetType[iSM]];iRow++)
475 {iColGlob=(iSM%2)*(2*kNbColEMCAL-kTabNbCol[SMdetType[iSM]])+iCol;
477 {iRowGlob=(int)(iSM/2)*kNbRowEMCAL+iRow;
478 if (runMode == 0) hAllSpaceEMCALOCDBfactorsBefore->SetBinContent(iColGlob+1,iRowGlob+1,coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted);
481 {iRowGlob=(int)((iSM-kNbSMEMCAL-kNbSMEMCALthird)/2)*kNbRowDCAL+iRow;
482 if (runMode == 0) hAllSpaceDCALOCDBfactorsBefore->SetBinContent(iColGlob+1,iRowGlob+1,coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted);
486 {hDistrIntg[3*iSM+i]->Fill(hampHighGainTow[i][iSM][iRow][iCol]->Integral());
487 hDistrIntg[3*kNbSMtot+i]->Fill(hampHighGainTow[i][iSM][iRow][iCol]->Integral());
489 hAllSpaceEMCALIntg[i]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[i][iSM][iRow][iCol]->Integral());
491 hAllSpaceDCALIntg[i]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[i][iSM][iRow][iCol]->Integral());
493 if (hampHighGainTow[0][iSM][iRow][iCol]->Integral() <= cutMinIntg)
494 {fprintf(outFile,
"Too few counts 1 (%d) in tower (SM,col,row) (%d,%d,%d), skip it.\n",(
int)hampHighGainTow[0][iSM][iRow][iCol]->Integral(),iSM,iCol,iRow);
498 if (hampHighGainTow[1][iSM][iRow][iCol]->Integral() > cutMinIntg)
500 hAllSpaceEMCALIntgRatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
502 hAllSpaceDCALIntgRatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
503 hDistrIntgRatio[2*iSM+1]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
504 hDistrIntgRatio[2*kNbSMtot+1]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
505 hDistrIntgRatioZm[2*iSM+1]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
506 hDistrIntgRatioZm[2*kNbSMtot+1]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
509 {fprintf(outFile,
"Too few counts 2 (%d) in tower (SM,col,row) (%d,%d,%d) for run 2 while run 1 OK.\n",(
int)hampHighGainTow[1][iSM][iRow][iCol]->Integral(),iSM,iCol,iRow);
512 if (hampHighGainTow[2][iSM][iRow][iCol]->Integral() > cutMinIntg)
514 hAllSpaceEMCALIntgRatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
516 hAllSpaceDCALIntgRatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
517 hDistrIntgRatio[2*iSM+0]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
518 hDistrIntgRatio[2*kNbSMtot+0]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
519 hDistrIntgRatioZm[2*iSM+0]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
520 hDistrIntgRatioZm[2*kNbSMtot+0]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral()/hampHighGainTow[0][iSM][iRow][iCol]->Integral());
523 {fprintf(outFile,
"Too few counts 3 (%d) in tower (SM,col,row) (%d,%d,%d) for run 3 while run 1 OK.\n",(
int)hampHighGainTow[2][iSM][iRow][iCol]->Integral(),iSM,iCol,iRow);
527 h=hampHighGainTow[0][iSM][iRow][iCol];
528 maxloc=h->GetBinCenter(h->GetMaximumBin());
529 h->SetAxisRange(maxloc-15.,maxloc+15.);
530 h->SetAxisRange(maxloc-2*h->GetRMS(),maxloc+2*h->GetRMS());
532 hDistrAmp[3*iSM+0]->Fill(ampli0);
533 hDistrAmp[3*kNbSMtot+0]->Fill(ampli0);
535 hAllSpaceEMCALAmp[0]->SetBinContent(iColGlob+1,iRowGlob+1,ampli0);
537 hAllSpaceDCALAmp[0]->SetBinContent(iColGlob+1,iRowGlob+1,ampli0);
538 if (runMode == 0) E0=ampli0*coeffOCDBbefore[iSM][iCol][iRow];
539 hDistrE[3*iSM+0]->Fill(E0);
540 hDistrE[3*kNbSMtot+0]->Fill(E0);
542 hAllSpaceEMCALE[0]->SetBinContent(iColGlob+1,iRowGlob+1,E0);
544 hAllSpaceDCALE[0]->SetBinContent(iColGlob+1,iRowGlob+1,E0);
545 if (ampli0 <= cutMinAmp)
546 {fprintf(outFile,
"Too low amplitude 1 (%d) in tower (SM,col,row) (%d,%d,%d), skip it.\n",(
int)ampli0,iSM,iCol,iRow);
553 if (hampHighGainTow[1][iSM][iRow][iCol]->Integral() > cutMinIntg)
554 {h=hampHighGainTow[1][iSM][iRow][iCol];
555 maxloc=h->GetBinCenter(h->GetMaximumBin());
556 h->SetAxisRange(maxloc-15.,maxloc+15.);
557 h->SetAxisRange(maxloc-2*h->GetRMS(),maxloc+2*h->GetRMS());
559 hDistrAmp[3*iSM+1]->Fill(ampli1);
560 hDistrAmp[3*kNbSMtot+1]->Fill(ampli1);
562 hAllSpaceEMCALAmp[1]->SetBinContent(iColGlob+1,iRowGlob+1,ampli1);
564 hAllSpaceDCALAmp[1]->SetBinContent(iColGlob+1,iRowGlob+1,ampli1);
565 if (runMode == 0) E1=ampli1*coeffOCDBafter[iSM][iCol][iRow];
566 hDistrE[3*iSM+1]->Fill(E1);
567 hDistrE[3*kNbSMtot+1]->Fill(E1);
569 hAllSpaceEMCALE[1]->SetBinContent(iColGlob+1,iRowGlob+1,E1);
571 hAllSpaceDCALE[1]->SetBinContent(iColGlob+1,iRowGlob+1,E1);
572 if (ampli1 > cutMinAmp)
574 {hAllSpaceEMCALAmpRatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,ampli1/ampli0);
575 if (runMode == 0) hAllSpaceEMCALRatioAmpliOCDB->SetBinContent(iColGlob+1,iRowGlob+1,(ampli1/ampli0)/(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted));
578 {hAllSpaceDCALAmpRatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,ampli1/ampli0);
579 if (runMode == 0) hAllSpaceDCALRatioAmpliOCDB->SetBinContent(iColGlob+1,iRowGlob+1,(ampli1/ampli0)/(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted));
581 hDistrAmpRatio[2*iSM+1]->Fill(ampli1/ampli0);
582 hDistrAmpRatio[2*kNbSMtot+1]->Fill(ampli1/ampli0);
583 hDistrAmpRatioZm[2*iSM+1]->Fill(ampli1/ampli0);
584 hDistrAmpRatioZm[2*kNbSMtot+1]->Fill(ampli1/ampli0);
586 {hAllSpaceEMCALERatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,E1/E0);
587 if (runMode == 0) hAllSpaceEMCALRatioEnergyOCDB->SetBinContent(iColGlob+1,iRowGlob+1,(E1/E0)/(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted));
590 {hAllSpaceDCALERatio[1]->SetBinContent(iColGlob+1,iRowGlob+1,E1/E0);
591 if (runMode == 0) hAllSpaceDCALRatioEnergyOCDB->SetBinContent(iColGlob+1,iRowGlob+1,(E1/E0)/(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted));
594 {h2CorrelEnergyOCDB->Fill(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted,E1/E0);
595 h2CorrelEnergyOCDBZm->Fill(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted,E1/E0);
596 h2CorrelEnergyOCDBZmZm->Fill(coeffOCDBbefore[iSM][iCol][iRow]/
coefFactorWanted,E1/E0);
598 hDistrERatio[2*iSM+1]->Fill(E1/E0);
599 hDistrERatio[2*kNbSMtot+1]->Fill(E1/E0);
600 hDistrERatioZm[2*iSM+1]->Fill(E1/E0);
601 hDistrERatioZm[2*kNbSMtot+1]->Fill(E1/E0);
603 {
if (TMath::Abs(TMath::Log(E1)-TMath::Log(E0)) > TMath::Log(1.+cutWarnERatio))
604 {fprintf(outFile,
"== E mismatch for tower (%d,%d,%d), ratio=%f amp1=%f amp2=%f OCDB1=%f OCDB2=%f\n",iSM,iCol,iRow,E1/E0,ampli0,ampli1,coeffOCDBbefore[iSM][iCol][iRow],coeffOCDBafter[iSM][iCol][iRow]);
609 {
if (TMath::Abs(TMath::Log(ampli1)-TMath::Log(ampli0)) > TMath::Log(1.+cutWarnAmpRatio))
610 {fprintf(outFile,
"== Amplitude mismatch for tower (%d,%d,%d), ratio=%f amp0=%f amp1=%f\n",iSM,iCol,iRow,ampli1/ampli0,ampli0,ampli1);
614 h2Amp[2*iSM+1]->Fill(ampli0,ampli1);
615 h2Amp[2*kNbSMtot+1]->Fill(ampli0,ampli1);
616 h2E[2*iSM+1]->Fill(E0,E1);
617 h2E[2*kNbSMtot+1]->Fill(E0,E1);
620 {fprintf(outFile,
"Too low amplitude 2 (%d) in tower (SM,col,row) (%d,%d,%d) for run 2 while run 1 OK.\n",(
int)ampli1,iSM,iCol,iRow);
625 {h2RatioVsIntg[6*iSM+0]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),E1/E0);
626 h2RatioVsIntg[6*kNbSMtot+0]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),E1/E0);
627 h2RatioVsIntg[6*iSM+2]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral(),E1/E0);
628 h2RatioVsIntg[6*kNbSMtot+2]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral(),E1/E0);
629 h2RatioVsIntg[6*iSM+4]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[1][iSM][iRow][iCol]->Integral()),E1/E0);
630 h2RatioVsIntg[6*kNbSMtot+4]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[1][iSM][iRow][iCol]->Integral()),E1/E0);
631 h2RatioVsAmp[6*iSM+0]->Fill(ampli0,E1/E0);
632 h2RatioVsAmp[6*kNbSMtot+0]->Fill(ampli0,E1/E0);
633 h2RatioVsAmp[6*iSM+2]->Fill(ampli1,E1/E0);
634 h2RatioVsAmp[6*kNbSMtot+2]->Fill(ampli1,E1/E0);
635 h2RatioVsAmp[6*iSM+4]->Fill(TMath::Min(ampli0,ampli1),E1/E0);
636 h2RatioVsAmp[6*kNbSMtot+4]->Fill(TMath::Min(ampli0,ampli1),E1/E0);
639 {h2RatioVsIntg[6*iSM+0]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),ampli1/ampli0);
640 h2RatioVsIntg[6*kNbSMtot+0]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),ampli1/ampli0);
641 h2RatioVsIntg[6*iSM+2]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral(),ampli1/ampli0);
642 h2RatioVsIntg[6*kNbSMtot+2]->Fill(hampHighGainTow[1][iSM][iRow][iCol]->Integral(),ampli1/ampli0);
643 h2RatioVsIntg[6*iSM+4]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[1][iSM][iRow][iCol]->Integral()),ampli1/ampli0);
644 h2RatioVsIntg[6*kNbSMtot+4]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[1][iSM][iRow][iCol]->Integral()),ampli1/ampli0);
645 h2RatioVsAmp[6*iSM+0]->Fill(ampli0,ampli1/ampli0);
646 h2RatioVsAmp[6*kNbSMtot+0]->Fill(ampli0,ampli1/ampli0);
647 h2RatioVsAmp[6*iSM+2]->Fill(ampli1,ampli1/ampli0);
648 h2RatioVsAmp[6*kNbSMtot+2]->Fill(ampli1,ampli1/ampli0);
649 h2RatioVsAmp[6*iSM+4]->Fill(TMath::Min(ampli0,ampli1),ampli1/ampli0);
650 h2RatioVsAmp[6*kNbSMtot+4]->Fill(TMath::Min(ampli0,ampli1),ampli1/ampli0);
652 if (hampHighGainTow[2][iSM][iRow][iCol]->Integral() > cutMinIntg)
653 {h=hampHighGainTow[2][iSM][iRow][iCol];
654 maxloc=h->GetBinCenter(h->GetMaximumBin());
655 h->SetAxisRange(maxloc-15.,maxloc+15.);
656 h->SetAxisRange(maxloc-2*h->GetRMS(),maxloc+2*h->GetRMS());
658 hDistrAmp[3*iSM+2]->Fill(ampli2);
659 hDistrAmp[3*kNbSMtot+2]->Fill(ampli2);
661 hAllSpaceEMCALAmp[2]->SetBinContent(iColGlob+1,iRowGlob+1,ampli2);
663 hAllSpaceDCALAmp[2]->SetBinContent(iColGlob+1,iRowGlob+1,ampli2);
664 if (runMode == 0) E2=ampli2*coeffOCDBbefore[iSM][iCol][iRow];
665 hDistrE[3*iSM+2]->Fill(E2);
666 hDistrE[3*kNbSMtot+2]->Fill(E2);
668 hAllSpaceEMCALE[2]->SetBinContent(iColGlob+1,iRowGlob+1,E2);
670 hAllSpaceDCALE[2]->SetBinContent(iColGlob+1,iRowGlob+1,E2);
671 if (ampli2 > cutMinAmp)
673 hAllSpaceEMCALAmpRatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,ampli2/ampli0);
675 hAllSpaceDCALAmpRatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,ampli2/ampli0);
676 hDistrAmpRatio[2*iSM+0]->Fill(ampli2/ampli0);
677 hDistrAmpRatio[2*kNbSMtot+0]->Fill(ampli2/ampli0);
678 hDistrAmpRatioZm[2*iSM+0]->Fill(ampli2/ampli0);
679 hDistrAmpRatioZm[2*kNbSMtot+0]->Fill(ampli2/ampli0);
681 hAllSpaceEMCALERatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,E2/E0);
683 hAllSpaceDCALERatio[0]->SetBinContent(iColGlob+1,iRowGlob+1,E2/E0);
684 hDistrERatio[2*iSM+0]->Fill(E2/E0);
685 hDistrERatio[2*kNbSMtot+0]->Fill(E2/E0);
686 hDistrERatioZm[2*iSM+0]->Fill(E2/E0);
687 hDistrERatioZm[2*kNbSMtot+0]->Fill(E2/E0);
689 {
if (TMath::Abs(TMath::Log(ampli2)-TMath::Log(ampli0)) > TMath::Log(1.+cutWarnAmpRatio)) fprintf(outFile,
"== Amplitude mismatch for tower (%d,%d,%d), ratio=%f amp0=%f amp2=%f\n",iSM,iCol,iRow,ampli2/ampli0,ampli0,ampli2);
691 h2Amp[2*iSM+0]->Fill(ampli0,ampli2);
692 h2Amp[2*kNbSMtot+0]->Fill(ampli0,ampli2);
693 h2E[2*iSM+0]->Fill(E0,E2);
694 h2E[2*kNbSMtot+0]->Fill(E0,E2);
697 {fprintf(outFile,
"Too low amplitude 3 (%d) in tower (SM,col,row) (%d,%d,%d) for run 3 while run 1 OK.\n",(
int)ampli2,iSM,iCol,iRow);
702 {h2RatioVsIntg[6*iSM+1]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),E2/E0);
703 h2RatioVsIntg[6*kNbSMtot+1]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),E2/E0);
704 h2RatioVsIntg[6*iSM+3]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral(),E2/E0);
705 h2RatioVsIntg[6*kNbSMtot+3]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral(),E2/E0);
706 h2RatioVsIntg[6*iSM+5]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[2][iSM][iRow][iCol]->Integral()),E2/E0);
707 h2RatioVsIntg[6*kNbSMtot+5]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[2][iSM][iRow][iCol]->Integral()),E2/E0);
708 h2RatioVsAmp[6*iSM+1]->Fill(ampli0,E2/E0);
709 h2RatioVsAmp[6*kNbSMtot+1]->Fill(ampli0,E2/E0);
713 h2RatioVsAmp[6*iSM+3]->Fill(ampli2,E2/E0);
714 h2RatioVsAmp[6*kNbSMtot+3]->Fill(ampli2,E2/E0);
715 h2RatioVsAmp[6*iSM+5]->Fill(TMath::Min(ampli0,ampli2),E2/E0);
716 h2RatioVsAmp[6*kNbSMtot+5]->Fill(TMath::Min(ampli0,ampli2),E2/E0);
719 {h2RatioVsIntg[6*iSM+1]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),ampli2/ampli0);
720 h2RatioVsIntg[6*kNbSMtot+1]->Fill(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),ampli2/ampli0);
721 h2RatioVsIntg[6*iSM+3]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral(),ampli2/ampli0);
722 h2RatioVsIntg[6*kNbSMtot+3]->Fill(hampHighGainTow[2][iSM][iRow][iCol]->Integral(),ampli2/ampli0);
723 h2RatioVsIntg[6*iSM+5]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[2][iSM][iRow][iCol]->Integral()),ampli2/ampli0);
724 h2RatioVsIntg[6*kNbSMtot+5]->Fill(TMath::Min(hampHighGainTow[0][iSM][iRow][iCol]->Integral(),hampHighGainTow[2][iSM][iRow][iCol]->Integral()),ampli2/ampli0);
725 h2RatioVsAmp[6*iSM+1]->Fill(ampli0,ampli2/ampli0);
726 h2RatioVsAmp[6*kNbSMtot+1]->Fill(ampli0,ampli2/ampli0);
730 h2RatioVsAmp[6*iSM+3]->Fill(ampli2,ampli2/ampli0);
731 h2RatioVsAmp[6*kNbSMtot+3]->Fill(ampli2,ampli2/ampli0);
732 h2RatioVsAmp[6*iSM+5]->Fill(TMath::Min(ampli0,ampli2),ampli2/ampli0);
733 h2RatioVsAmp[6*kNbSMtot+5]->Fill(TMath::Min(ampli0,ampli2),ampli2/ampli0);
740 TFile *rootFileOut =
new TFile(fchNameRoot,
"RECREATE");
744 fprintf(outFile,
"\nTotal towers with too few counts in run 1 : %d (cut at %f)\n",cmptIntg[0],cutMinIntg);
745 fprintf(outFile,
" Among towers OK : %d towers nonetheless have too few counts in run 2,\n %d towers nonetheless have too few counts in run 3.\n",cmptIntg[1],cmptIntg[2]);
746 fprintf(outFile,
"Total towers with too low amplitude in run 1 : %d (cut at %f)\n",cmptAmpl[0],cutMinAmp);
747 fprintf(outFile,
" Among towers OK : %d towers nonetheless have too low amp in run 2,\n %d towers nonetheless have too low amp in run 3.\n",cmptAmpl[1],cmptAmpl[2]);
748 if (runMode == 0) fprintf(outFile,
"\nTotal towers with energy mismatch : %d (cut at %f %%)\n\n",cmptEmismatch[0],100*cutWarnERatio);
749 if (runMode == 1) fprintf(outFile,
"\nTotal towers with amplitude mismatch : %d (cut at %f %%)\n\n",cmptEmismatch[0],100*cutWarnAmpRatio);
752 printf(
"Draw histograms.\n");
754 TLine *lineSMborderVEMCAL =
new TLine(kNbColEMCAL-0.5,-0.5,kNbColEMCAL-0.5,(
int)((kNbSMEMCAL+1)/2)*kNbRowEMCAL+(
int)((kNbSMEMCALthird+1)/2)*kNbRowEMCALthird-0.5);
755 TLine *lineSMborderVDCALthird =
new TLine(kNbColDCALthird-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL-0.5,kNbColDCALthird-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL+(
int)((kNbSMDCALthird+1)/2)*kNbRowDCALthird-0.5);
756 TLine *lineSMborderVDCAL1 =
new TLine(kNbColDCAL-0.5,-0.5,kNbColDCAL-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL-0.5);
757 TLine *lineSMborderVDCAL2 =
new TLine(2*kNbColEMCAL-kNbColDCAL-0.5,-0.5,2*kNbColEMCAL-kNbColDCAL-0.5,(
int)((kNbSMDCAL+1)/2)*kNbRowDCAL-0.5);
758 TLine **lineSMborderHEMCAL,**lineSMborderHDCAL;
759 lineSMborderHEMCAL =
new TLine*[(int)((kNbSMEMCAL+1)/2)];
760 lineSMborderHDCAL =
new TLine*[(int)((kNbSMDCAL+1)/2)];
761 for (i=0;i<(int)((kNbSMEMCAL+1)/2);i++) lineSMborderHEMCAL[i] =
new TLine(-0.5,(i+1)*kNbRowEMCAL-0.5,2.*kNbColEMCAL-0.5,(i+1)*kNbRowEMCAL-0.5);
762 for (i=0;i<(int)((kNbSMDCAL+1)/2);i++) lineSMborderHDCAL[i] =
new TLine(-0.5,(i+1)*kNbRowDCAL-0.5,2.*kNbColDCALthird-0.5,(i+1)*kNbRowDCAL-0.5);
769 hDistrIntg[3*kNbSMtot+0]->Draw();
770 hDistrIntg[3*kNbSMtot+1]->Draw(
"SAME");
771 hDistrIntg[3*kNbSMtot+2]->Draw(
"SAME");
773 for (i=0;i<3;i++) hDistrIntg[3*kNbSMtot+i]->Write();
776 hAllSpaceEMCALIntg[j]->SetMaximum(maxIntg);
777 hAllSpaceEMCALIntg[j]->Draw(
"COLZ");
778 lineSMborderVEMCAL->Draw(
"SAME");
779 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
780 hAllSpaceEMCALIntg[j]->Write();
784 hAllSpaceDCALIntg[j]->SetMaximum(maxIntg);
785 hAllSpaceDCALIntg[j]->Draw(
"COLZ");
786 lineSMborderVDCALthird->Draw(
"SAME");
787 lineSMborderVDCAL1->Draw(
"SAME");
788 lineSMborderVDCAL2->Draw(
"SAME");
789 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
790 hAllSpaceDCALIntg[j]->Write();
800 hDistrIntg[3*j+0]->Draw();
801 hDistrIntg[3*j+1]->Draw(
"SAME");
802 hDistrIntg[3*j+2]->Draw(
"SAME");
804 for (i=0;i<3;i++) hDistrIntg[3*j+i]->Write();
812 {c1->cd(j-kNbSMEMCAL+1);
813 hDistrIntg[3*j+0]->Draw();
814 hDistrIntg[3*j+1]->Draw(
"SAME");
815 hDistrIntg[3*j+2]->Draw(
"SAME");
817 for (i=0;i<3;i++) hDistrIntg[3*j+i]->Write();
826 hDistrIntgRatio[2*kNbSMtot+0]->SetMinimum(0.6);
827 hDistrIntgRatio[2*kNbSMtot+0]->Draw();
828 hDistrIntgRatio[2*kNbSMtot+1]->Draw(
"SAME");
830 for (i=0;i<2;i++) hDistrIntgRatio[2*kNbSMtot+i]->Write();
832 hDistrIntgRatioZm[2*kNbSMtot+0]->SetMinimum(0.6);
833 hDistrIntgRatioZm[2*kNbSMtot+0]->Draw();
834 hDistrIntgRatioZm[2*kNbSMtot+1]->Draw(
"SAME");
836 for (i=0;i<2;i++) hDistrIntgRatioZm[2*kNbSMtot+i]->Write();
838 {hAllSpaceEMCALIntgRatio[i]->SetMinimum(0.5);
839 hAllSpaceEMCALIntgRatio[i]->SetMaximum(2.0);
842 hAllSpaceEMCALIntgRatio[0]->Draw(
"COLZ");
843 lineSMborderVEMCAL->Draw(
"SAME");
844 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
845 hAllSpaceEMCALIntgRatio[0]->Write();
847 hAllSpaceEMCALIntgRatio[1]->Draw(
"COLZ");
848 lineSMborderVEMCAL->Draw(
"SAME");
849 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
850 hAllSpaceEMCALIntgRatio[1]->Write();
853 {hAllSpaceEMCALIntgRatio[i]->SetMinimum(0.9);
854 hAllSpaceEMCALIntgRatio[i]->SetMaximum(1.1);
857 hAllSpaceEMCALIntgRatio[0]->Draw(
"COLZ");
858 lineSMborderVEMCAL->Draw(
"SAME");
859 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
860 hAllSpaceEMCALIntgRatio[0]->Write();
862 hAllSpaceEMCALIntgRatio[1]->Draw(
"COLZ");
863 lineSMborderVEMCAL->Draw(
"SAME");
864 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
865 hAllSpaceEMCALIntgRatio[1]->Write();
872 {hAllSpaceDCALIntgRatio[i]->SetMinimum(0.5);
873 hAllSpaceDCALIntgRatio[i]->SetMaximum(2.0);
876 hAllSpaceDCALIntgRatio[0]->Draw(
"COLZ");
877 lineSMborderVDCALthird->Draw(
"SAME");
878 lineSMborderVDCAL1->Draw(
"SAME");
879 lineSMborderVDCAL2->Draw(
"SAME");
880 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
881 hAllSpaceDCALIntgRatio[0]->Write();
883 hAllSpaceDCALIntgRatio[1]->Draw(
"COLZ");
884 lineSMborderVDCALthird->Draw(
"SAME");
885 lineSMborderVDCAL1->Draw(
"SAME");
886 lineSMborderVDCAL2->Draw(
"SAME");
887 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
888 hAllSpaceDCALIntgRatio[1]->Write();
891 {hAllSpaceDCALIntgRatio[i]->SetMinimum(0.9);
892 hAllSpaceDCALIntgRatio[i]->SetMaximum(1.1);
895 hAllSpaceDCALIntgRatio[0]->Draw(
"COLZ");
896 lineSMborderVDCALthird->Draw(
"SAME");
897 lineSMborderVDCAL1->Draw(
"SAME");
898 lineSMborderVDCAL2->Draw(
"SAME");
899 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
900 hAllSpaceDCALIntgRatio[0]->Write();
902 hAllSpaceDCALIntgRatio[1]->Draw(
"COLZ");
903 lineSMborderVDCALthird->Draw(
"SAME");
904 lineSMborderVDCAL1->Draw(
"SAME");
905 lineSMborderVDCAL2->Draw(
"SAME");
906 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
907 hAllSpaceDCALIntgRatio[1]->Write();
916 hDistrIntgRatio[2*j+0]->Draw();
917 hDistrIntgRatio[2*j+1]->Draw(
"SAME");
920 {hDistrIntgRatio[2*j+i]->Write();
921 hDistrIntgRatioZm[2*j+i]->Write();
930 {c1->cd(j-kNbSMEMCAL+1);
931 hDistrIntgRatio[2*j+0]->Draw();
932 hDistrIntgRatio[2*j+1]->Draw(
"SAME");
935 {hDistrIntgRatio[2*j+i]->Write();
936 hDistrIntgRatioZm[2*j+i]->Write();
946 hDistrAmp[3*kNbSMtot+0]->Draw();
947 hDistrAmp[3*kNbSMtot+1]->Draw(
"SAME");
948 hDistrAmp[3*kNbSMtot+2]->Draw(
"SAME");
950 for (i=0;i<3;i++) hDistrAmp[3*kNbSMtot+i]->Write();
953 hAllSpaceEMCALAmp[j]->SetMaximum(maxAmp);
954 hAllSpaceEMCALAmp[j]->Draw(
"COLZ");
955 lineSMborderVEMCAL->Draw(
"SAME");
956 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
957 hAllSpaceEMCALAmp[j]->Write();
961 hAllSpaceDCALAmp[j]->SetMaximum(maxAmp);
962 hAllSpaceDCALAmp[j]->Draw(
"COLZ");
963 lineSMborderVDCALthird->Draw(
"SAME");
964 lineSMborderVDCAL1->Draw(
"SAME");
965 lineSMborderVDCAL2->Draw(
"SAME");
966 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
967 hAllSpaceDCALAmp[j]->Write();
977 hDistrAmp[3*j+0]->Draw();
978 hDistrAmp[3*j+1]->Draw(
"SAME");
979 hDistrAmp[3*j+2]->Draw(
"SAME");
981 for (i=0;i<3;i++) hDistrAmp[3*j+i]->Write();
989 {c1->cd(j-kNbSMEMCAL+1);
990 hDistrAmp[3*j+0]->Draw();
991 hDistrAmp[3*j+1]->Draw(
"SAME");
992 hDistrAmp[3*j+2]->Draw(
"SAME");
994 for (i=0;i<3;i++) hDistrAmp[3*j+i]->Write();
1003 hDistrAmpRatio[2*kNbSMtot+0]->SetMinimum(0.6);
1004 hDistrAmpRatio[2*kNbSMtot+0]->Draw();
1005 hDistrAmpRatio[2*kNbSMtot+1]->Draw(
"SAME");
1007 for (i=0;i<2;i++) hDistrAmpRatio[2*kNbSMtot+i]->Write();
1009 hDistrAmpRatioZm[2*kNbSMtot+0]->SetMinimum(0.6);
1010 hDistrAmpRatioZm[2*kNbSMtot+0]->Draw();
1011 hDistrAmpRatioZm[2*kNbSMtot+1]->Draw(
"SAME");
1013 for (i=0;i<2;i++) hDistrAmpRatioZm[2*kNbSMtot+i]->Write();
1015 {hAllSpaceEMCALAmpRatio[i]->SetMinimum(0.5);
1016 hAllSpaceEMCALAmpRatio[i]->SetMaximum(2.0);
1019 hAllSpaceEMCALAmpRatio[0]->Draw(
"COLZ");
1020 lineSMborderVEMCAL->Draw(
"SAME");
1021 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1022 hAllSpaceEMCALAmpRatio[0]->Write();
1024 hAllSpaceEMCALAmpRatio[1]->Draw(
"COLZ");
1025 lineSMborderVEMCAL->Draw(
"SAME");
1026 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1027 hAllSpaceEMCALAmpRatio[1]->Write();
1030 {hAllSpaceEMCALAmpRatio[i]->SetMinimum(0.9);
1031 hAllSpaceEMCALAmpRatio[i]->SetMaximum(1.1);
1034 hAllSpaceEMCALAmpRatio[0]->Draw(
"COLZ");
1035 lineSMborderVEMCAL->Draw(
"SAME");
1036 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1037 hAllSpaceEMCALAmpRatio[0]->Write();
1039 hAllSpaceEMCALAmpRatio[1]->Draw(
"COLZ");
1040 lineSMborderVEMCAL->Draw(
"SAME");
1041 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1042 hAllSpaceEMCALAmpRatio[1]->Write();
1049 {hAllSpaceDCALAmpRatio[i]->SetMinimum(0.5);
1050 hAllSpaceDCALAmpRatio[i]->SetMaximum(2.0);
1053 hAllSpaceDCALAmpRatio[0]->Draw(
"COLZ");
1054 lineSMborderVDCALthird->Draw(
"SAME");
1055 lineSMborderVDCAL1->Draw(
"SAME");
1056 lineSMborderVDCAL2->Draw(
"SAME");
1057 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1058 hAllSpaceDCALAmpRatio[0]->Write();
1060 hAllSpaceDCALAmpRatio[1]->Draw(
"COLZ");
1061 lineSMborderVDCALthird->Draw(
"SAME");
1062 lineSMborderVDCAL1->Draw(
"SAME");
1063 lineSMborderVDCAL2->Draw(
"SAME");
1064 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1065 hAllSpaceDCALAmpRatio[1]->Write();
1068 {hAllSpaceDCALAmpRatio[i]->SetMinimum(0.9);
1069 hAllSpaceDCALAmpRatio[i]->SetMaximum(1.1);
1072 hAllSpaceDCALAmpRatio[0]->Draw(
"COLZ");
1073 lineSMborderVDCALthird->Draw(
"SAME");
1074 lineSMborderVDCAL1->Draw(
"SAME");
1075 lineSMborderVDCAL2->Draw(
"SAME");
1076 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1077 hAllSpaceDCALAmpRatio[0]->Write();
1079 hAllSpaceDCALAmpRatio[1]->Draw(
"COLZ");
1080 lineSMborderVDCALthird->Draw(
"SAME");
1081 lineSMborderVDCAL1->Draw(
"SAME");
1082 lineSMborderVDCAL2->Draw(
"SAME");
1083 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1084 hAllSpaceDCALAmpRatio[1]->Write();
1093 hDistrAmpRatio[2*j+0]->Draw();
1094 hDistrAmpRatio[2*j+1]->Draw(
"SAME");
1096 for (i=0;i<3;i++) hDistrAmpRatio[2*j+i]->Write();
1097 for (i=0;i<2;i++) hDistrAmpRatioZm[2*j+i]->Write();
1105 {c1->cd(j-kNbSMEMCAL+1);
1106 hDistrAmpRatio[2*j+0]->Draw();
1107 hDistrAmpRatio[2*j+1]->Draw(
"SAME");
1109 for (i=0;i<3;i++) hDistrAmpRatio[2*j+i]->Write();
1110 for (i=0;i<2;i++) hDistrAmpRatioZm[2*j+i]->Write();
1120 hDistrE[3*kNbSMtot+0]->Draw();
1121 hDistrE[3*kNbSMtot+1]->Draw(
"SAME");
1122 hDistrE[3*kNbSMtot+2]->Draw(
"SAME");
1124 for (i=0;i<3;i++) hDistrE[3*kNbSMtot+i]->Write();
1127 hAllSpaceEMCALE[j]->SetMaximum(maxE);
1128 hAllSpaceEMCALE[j]->Draw(
"COLZ");
1129 lineSMborderVEMCAL->Draw(
"SAME");
1130 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1131 hAllSpaceEMCALE[j]->Write();
1135 hAllSpaceDCALE[j]->SetMaximum(maxE);
1136 hAllSpaceDCALE[j]->Draw(
"COLZ");
1137 lineSMborderVDCALthird->Draw(
"SAME");
1138 lineSMborderVDCAL1->Draw(
"SAME");
1139 lineSMborderVDCAL2->Draw(
"SAME");
1140 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1141 hAllSpaceDCALE[j]->Write();
1151 hDistrE[3*j+0]->Draw();
1152 hDistrE[3*j+1]->Draw(
"SAME");
1153 hDistrE[3*j+2]->Draw(
"SAME");
1155 for (i=0;i<3;i++) hDistrE[3*j+i]->Write();
1163 {c1->cd(j-kNbSMEMCAL+1);
1164 hDistrE[3*j+0]->Draw();
1165 hDistrE[3*j+1]->Draw(
"SAME");
1166 hDistrE[3*j+2]->Draw(
"SAME");
1168 for (i=0;i<3;i++) hDistrE[3*j+i]->Write();
1177 hDistrERatio[2*kNbSMtot+0]->SetMinimum(0.6);
1178 hDistrERatio[2*kNbSMtot+0]->Draw();
1179 hDistrERatio[2*kNbSMtot+1]->Draw(
"SAME");
1181 for (i=0;i<2;i++) hDistrERatio[2*kNbSMtot+i]->Write();
1183 hDistrERatioZm[2*kNbSMtot+0]->SetMinimum(0.6);
1184 hDistrERatioZm[2*kNbSMtot+0]->Draw();
1185 hDistrERatioZm[2*kNbSMtot+1]->Draw(
"SAME");
1187 for (i=0;i<2;i++) hDistrERatioZm[2*kNbSMtot+i]->Write();
1189 {hAllSpaceEMCALERatio[i]->SetMinimum(0.5);
1190 hAllSpaceEMCALERatio[i]->SetMaximum(2.0);
1193 hAllSpaceEMCALERatio[0]->Draw(
"COLZ");
1194 lineSMborderVEMCAL->Draw(
"SAME");
1195 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1196 hAllSpaceEMCALERatio[0]->Write();
1198 hAllSpaceEMCALERatio[1]->Draw(
"COLZ");
1199 lineSMborderVEMCAL->Draw(
"SAME");
1200 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1201 hAllSpaceEMCALERatio[1]->Write();
1204 {hAllSpaceEMCALERatio[i]->SetMinimum(0.9);
1205 hAllSpaceEMCALERatio[i]->SetMaximum(1.1);
1208 hAllSpaceEMCALERatio[0]->Draw(
"COLZ");
1209 lineSMborderVEMCAL->Draw(
"SAME");
1210 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1211 hAllSpaceEMCALERatio[0]->Write();
1213 hAllSpaceEMCALERatio[1]->Draw(
"COLZ");
1214 lineSMborderVEMCAL->Draw(
"SAME");
1215 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1216 hAllSpaceEMCALERatio[1]->Write();
1223 {hAllSpaceDCALERatio[i]->SetMinimum(0.5);
1224 hAllSpaceDCALERatio[i]->SetMaximum(2.0);
1227 hAllSpaceDCALERatio[0]->Draw(
"COLZ");
1228 lineSMborderVDCALthird->Draw(
"SAME");
1229 lineSMborderVDCAL1->Draw(
"SAME");
1230 lineSMborderVDCAL2->Draw(
"SAME");
1231 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1232 hAllSpaceDCALERatio[0]->Write();
1234 hAllSpaceDCALERatio[1]->Draw(
"COLZ");
1235 lineSMborderVDCALthird->Draw(
"SAME");
1236 lineSMborderVDCAL1->Draw(
"SAME");
1237 lineSMborderVDCAL2->Draw(
"SAME");
1238 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1239 hAllSpaceDCALERatio[1]->Write();
1242 {hAllSpaceDCALERatio[i]->SetMinimum(0.9);
1243 hAllSpaceDCALERatio[i]->SetMaximum(1.1);
1246 hAllSpaceDCALERatio[0]->Draw(
"COLZ");
1247 lineSMborderVDCALthird->Draw(
"SAME");
1248 lineSMborderVDCAL1->Draw(
"SAME");
1249 lineSMborderVDCAL2->Draw(
"SAME");
1250 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1251 hAllSpaceDCALERatio[0]->Write();
1253 hAllSpaceDCALERatio[1]->Draw(
"COLZ");
1254 lineSMborderVDCALthird->Draw(
"SAME");
1255 lineSMborderVDCAL1->Draw(
"SAME");
1256 lineSMborderVDCAL2->Draw(
"SAME");
1257 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1258 hAllSpaceDCALERatio[1]->Write();
1267 hDistrERatio[2*j+0]->Draw();
1268 hDistrERatio[2*j+1]->Draw(
"SAME");
1270 for (i=0;i<3;i++) hDistrERatio[2*j+i]->Write();
1271 for (i=0;i<2;i++) hDistrERatioZm[2*j+i]->Write();
1279 {c1->cd(j-kNbSMEMCAL+1);
1280 hDistrERatio[2*j+0]->Draw();
1281 hDistrERatio[2*j+1]->Draw(
"SAME");
1283 for (i=0;i<3;i++) hDistrERatio[2*j+i]->Write();
1284 for (i=0;i<2;i++) hDistrERatioZm[2*j+i]->Write();
1291 {TLine *ligne1H =
new TLine(0.,1.,1.,1.);
1292 TF1 *fInv =
new TF1(
"fInv",
"1/x",0.,4.);
1293 TF1 *fInv2 =
new TF1(
"fInv2",
"1/(x*x)",0.,4.);
1294 fInv->SetLineWidth(0.5);
1295 fInv->SetLineColor(1);
1296 fInv2->SetLineWidth(0.5);
1297 fInv2->SetLineColor(1);
1303 hAllSpaceEMCALAmpRatio[1]->SetMinimum(0.8);
1304 hAllSpaceEMCALAmpRatio[1]->SetMaximum(1.2);
1305 hAllSpaceEMCALAmpRatio[1]->Draw(
"COLZ");
1306 lineSMborderVEMCAL->Draw(
"SAME");
1307 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1309 hAllSpaceEMCALERatio[1]->SetMinimum(0.8);
1310 hAllSpaceEMCALERatio[1]->SetMaximum(1.2);
1311 hAllSpaceEMCALERatio[1]->Draw(
"COLZ");
1312 lineSMborderVEMCAL->Draw(
"SAME");
1313 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1315 hAllSpaceEMCALOCDBfactorsBefore->SetMinimum(0.25);
1316 hAllSpaceEMCALOCDBfactorsBefore->SetMaximum(1.8);
1317 hAllSpaceEMCALOCDBfactorsBefore->Draw(
"COLZ");
1318 hAllSpaceEMCALOCDBfactorsBefore->Write();
1319 lineSMborderVEMCAL->Draw(
"SAME");
1320 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1323 hAllSpaceEMCALOCDBfactorsBefore->SetMinimum(0.8);
1324 hAllSpaceEMCALOCDBfactorsBefore->SetMaximum(1.2);
1325 hAllSpaceEMCALOCDBfactorsBefore->Draw(
"COLZ");
1326 lineSMborderVEMCAL->Draw(
"SAME");
1327 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1329 hAllSpaceEMCALRatioAmpliOCDB->SetMinimum(0.7);
1330 hAllSpaceEMCALRatioAmpliOCDB->SetMaximum(1.3);
1331 hAllSpaceEMCALRatioAmpliOCDB->Draw(
"COLZ");
1332 hAllSpaceEMCALRatioAmpliOCDB->Write();
1333 lineSMborderVEMCAL->Draw(
"SAME");
1334 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1336 hAllSpaceEMCALRatioEnergyOCDB->SetMinimum(0.6);
1337 hAllSpaceEMCALRatioEnergyOCDB->SetMaximum(1.8);
1338 hAllSpaceEMCALRatioEnergyOCDB->Draw(
"COLZ");
1339 hAllSpaceEMCALRatioEnergyOCDB->Write();
1340 lineSMborderVEMCAL->Draw(
"SAME");
1341 for (
int jm=0;jm<(int)((kNbSMEMCAL+1)/2);jm++) lineSMborderHEMCAL[jm]->
Draw(
"SAME");
1348 hAllSpaceDCALAmpRatio[1]->SetMinimum(0.8);
1349 hAllSpaceDCALAmpRatio[1]->SetMaximum(1.2);
1350 hAllSpaceDCALAmpRatio[1]->Draw(
"COLZ");
1351 lineSMborderVDCALthird->Draw(
"SAME");
1352 lineSMborderVDCAL1->Draw(
"SAME");
1353 lineSMborderVDCAL2->Draw(
"SAME");
1354 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1356 hAllSpaceDCALERatio[1]->SetMinimum(0.8);
1357 hAllSpaceDCALERatio[1]->SetMaximum(1.2);
1358 hAllSpaceDCALERatio[1]->Draw(
"COLZ");
1359 lineSMborderVDCALthird->Draw(
"SAME");
1360 lineSMborderVDCAL1->Draw(
"SAME");
1361 lineSMborderVDCAL2->Draw(
"SAME");
1362 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1364 hAllSpaceDCALOCDBfactorsBefore->SetMinimum(0.25);
1365 hAllSpaceDCALOCDBfactorsBefore->SetMaximum(1.8);
1366 hAllSpaceDCALOCDBfactorsBefore->Draw(
"COLZ");
1367 hAllSpaceDCALOCDBfactorsBefore->Write();
1368 lineSMborderVDCALthird->Draw(
"SAME");
1369 lineSMborderVDCAL1->Draw(
"SAME");
1370 lineSMborderVDCAL2->Draw(
"SAME");
1371 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1374 hAllSpaceDCALOCDBfactorsBefore->SetMinimum(0.8);
1375 hAllSpaceDCALOCDBfactorsBefore->SetMaximum(1.2);
1376 hAllSpaceDCALOCDBfactorsBefore->Draw(
"COLZ");
1377 lineSMborderVDCALthird->Draw(
"SAME");
1378 lineSMborderVDCAL1->Draw(
"SAME");
1379 lineSMborderVDCAL2->Draw(
"SAME");
1380 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1382 hAllSpaceDCALRatioAmpliOCDB->SetMinimum(0.7);
1383 hAllSpaceDCALRatioAmpliOCDB->SetMaximum(1.3);
1384 hAllSpaceDCALRatioAmpliOCDB->Draw(
"COLZ");
1385 hAllSpaceDCALRatioAmpliOCDB->Write();
1386 lineSMborderVDCALthird->Draw(
"SAME");
1387 lineSMborderVDCAL1->Draw(
"SAME");
1388 lineSMborderVDCAL2->Draw(
"SAME");
1389 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1391 hAllSpaceDCALRatioEnergyOCDB->SetMinimum(0.6);
1392 hAllSpaceDCALRatioEnergyOCDB->SetMaximum(1.8);
1393 hAllSpaceDCALRatioEnergyOCDB->Draw(
"COLZ");
1394 hAllSpaceDCALRatioEnergyOCDB->Write();
1395 lineSMborderVDCALthird->Draw(
"SAME");
1396 lineSMborderVDCAL1->Draw(
"SAME");
1397 lineSMborderVDCAL2->Draw(
"SAME");
1398 for (
int jm=0;jm<(int)((kNbSMDCAL+1)/2);jm++) lineSMborderHDCAL[jm]->
Draw(
"SAME");
1405 h2CorrelEnergyOCDB->Draw(
"COLZ");
1406 h2CorrelEnergyOCDB->Write();
1410 h2CorrelEnergyOCDBZm->Draw(
"COLZ");
1411 h2CorrelEnergyOCDBZm->Write();
1414 ligne1H->SetX1(h2CorrelEnergyOCDB->GetXaxis()->GetXmin());
1415 ligne1H->SetX2(h2CorrelEnergyOCDB->GetXaxis()->GetXmax());
1416 h2CorrelEnergyOCDB->Draw(
"COLZ");
1417 ligne1H->Draw(
"SAME");
1419 fInv2->Draw(
"SAME");
1422 ligne1H->SetX1(h2CorrelEnergyOCDBZm->GetXaxis()->GetXmin());
1423 ligne1H->SetX2(h2CorrelEnergyOCDBZm->GetXaxis()->GetXmax());
1424 h2CorrelEnergyOCDBZm->Draw(
"COLZ");
1425 ligne1H->Draw(
"SAME");
1427 fInv2->Draw(
"SAME");
1430 ligne1H->SetX1(h2CorrelEnergyOCDBZmZm->GetXaxis()->GetXmin());
1431 ligne1H->SetX2(h2CorrelEnergyOCDBZmZm->GetXaxis()->GetXmax());
1432 h2CorrelEnergyOCDBZmZm->Draw(
"COLZ");
1433 ligne1H->Draw(
"SAME");
1435 h2CorrelEnergyOCDBZmZm->Write();
1444 h2Amp[2*kNbSMtot+0]->Draw(
"COLZ");
1446 if (runMode == 0) h2E[2*kNbSMtot+0]->Draw(
"COLZ");
1448 h2Amp[2*kNbSMtot+1]->Draw(
"COLZ");
1450 if (runMode == 0) h2E[2*kNbSMtot+1]->Draw(
"COLZ");
1452 {h2Amp[2*kNbSMtot+i]->Write();
1453 h2E[2*kNbSMtot+i]->Write();
1464 c1->cd(2*(iSM%4)+1);
1465 h2Amp[2*iSM+1]->Draw(
"COLZ");
1466 h2Amp[2*iSM+1]->Write();
1467 c1->cd(2*(iSM%4)+2);
1468 if (runMode == 0) h2E[2*iSM+1]->Draw(
"COLZ");
1469 h2E[2*iSM+1]->Write();
1479 c1->cd(2*(iSM%4)+1);
1480 h2Amp[2*iSM+0]->Draw(
"COLZ");
1481 h2Amp[2*iSM+0]->Write();
1482 c1->cd(2*(iSM%4)+2);
1483 if (runMode == 0) h2E[2*iSM+0]->Draw(
"COLZ");
1484 h2E[2*iSM+0]->Write();
1495 h2RatioVsIntg[6*kNbSMtot+j]->Draw(
"COLZ");
1496 h2RatioVsIntg[6*kNbSMtot+j]->Write();
1497 if ((j%2) == 0) gPad->SetLogz();
1507 h2RatioVsAmp[6*kNbSMtot+j]->Draw(
"COLZ");
1508 h2RatioVsAmp[6*kNbSMtot+j]->Write();
1513 printf(
"Drawing done.\n");
1517 printf(
"Closed ps file.\n");
1518 rootFileOut->Close();
1519 printf(
"Closed root file.\n");
1521 printf(
"Closed txt file, quit root.\n");
void Draw(const char *filename, const char *title="", const char *others="ALL", const char *options="DEFAULT", const char *outFlg="ALL", UShort_t rebin=5, Float_t eff=0, const char *base="")
const int kNbColEMCALthird
char detTypeString[][100]
const int kNbRowDCALthird
const int kNbSMEMCALthird
char RunlistFilename[200]
const double coefFactorWanted
const int kNbRowEMCALthird
const int kNbColDCALthird
void PlotLEDruns(int run1, int run2, int run3, TString ident="")