AliPhysics  9c7580a (9c7580a)
AliAnaClusterShapeCorrelStudies.cxx
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * *
4  * Author: The ALICE Off-line Project. *
5  * Contributors are mentioned in the code where appropriate. *
6  * *
7  * Permission to use, copy, modify and distribute this software and its *
8  * documentation strictly for non-commercial purposes is hereby granted *
9  * without fee, provided that the above copyright notice appears in all *
10  * copies and that both the copyright notice and this permission notice *
11  * appear in the supporting documentation. The authors make no claims *
12  * about the suitability of this software for any purpose. It is *
13  * provided "as is" without express or implied warranty. *
14  **************************************************************************/
15 
16 // --- ROOT system ---
17 #include <TObjArray.h>
18 #include <TH3F.h>
19 #include <TObjString.h>
20 
21 //---- AliRoot system ----
23 #include "AliCaloTrackReader.h"
24 #include "AliVCaloCells.h"
25 #include "AliFiducialCut.h"
26 #include "AliVCluster.h"
27 #include "AliVTrack.h"
28 #include "AliVEvent.h"
29 
30 // --- Detectors ---
31 #include "AliEMCALGeometry.h"
32 
36 
37 //__________________________________________
40 //__________________________________________
43 
44 // Switches
45 fStudyShape(kFALSE), fStudyShapeParam(kFALSE),
46 fStudyWeight(kFALSE),
47 fStudyTCardCorrelation(kFALSE), fStudyExotic(kFALSE),
48 fStudyColRowFromCellMax(kFALSE), fStudyInvMass(kFALSE),
49 fStudyTimeCellHisto(kFALSE),
50 
51 // Parameters and cuts
52 fM02Min(0), fNCellMin(0),
53 fMinDistToBad(0), fNEBinCuts(0),
54 fEMinShape(0), fEMaxShape(100),
55 fNCellMinShape(-1), fNCellsBins(3),
56 
57 fNMatchPIDCases(1),
58 fdEdXMinEle(0), fdEdXMaxEle(0),
59 fdEdXMinHad(0), fdEdXMaxHad(0),
60 
61 // Invariant mass
62 fInvMassMinECut(0), fInvMassMaxECut(0),
63 fInvMassMinM02Cut(0), fInvMassMaxM02Cut(0),
64 fInvMassMaxOpenAngle(0), fInvMassMaxTimeDifference(0),
65 
66 fConstantTimeShift(0),
67 
68 fClusterMomentum(), fClusterMomentum2(),
69 fCaloCellList(NULL), fCaloClusList(NULL),
70 
71 // Histograms
72 
73 // TCard correl and shape and exoticity
74 fhEnergyTMEtaResidual1Cell(0), fhEnergyTMPhiResidual1Cell(0),
75 fhColRowExoticHighE1CellPosTime(0), fhColRowExoticHighE1CellNegTime(0), fhColRowExoticHighE1CellNulTime(0),
76 fhEnergyTMEtaResidualExotic(0), fhEnergyTMPhiResidualExotic(0),
77 fhColRowExoticHighEPosTime(0), fhColRowExoticHighENegTime(0), fhColRowExoticHighENulTime(0),
78 fhColRowHighEPosTime(0), fhColRowHighENegTime(0), fhColRowHighENulTime(0),
79 fhEnergyTMEtaResidualTCardCorrNoSelection1Cell(0), fhEnergyTMPhiResidualTCardCorrNoSelection1Cell(0),
80 fhEnergyTMEtaResidualTCardCorrNoSelectionExotic(0), fhEnergyTMPhiResidualTCardCorrNoSelectionExotic(0),
81 
82 // Shape studies
83 //fhCellTimeSpreadRespectToCellMaxM02(0),
84 //fhClusterMaxCellCloseCellDiffM02(0),
85 fhClusterMaxCellCloseCellRatioM02(0), fhClusterMaxCellECrossM02(0),
86 fhInvMassNCellSM(0), fhInvMassNCellSMSame(0),
87 fhColRowM02(0), fhColRowM02NCellCut(0),
88 fhEMaxCellTimeM02SM(0), fhEMaxCellTimeNCellSM(0), fhESecCellTimeNCellSM(0),
89 // Module
90 fhSMNCellModuleMax(0), fhSMNCellModuleOut(0),
91 fhSMNCellModuleOutModSame(0), fhSMNCellModuleOutModDiff(0),
92 fhSMECellModuleMax(0), fhSMECellModuleMaxTot(0),
93 fhSMECellModuleOut(0), fhSMECellModuleOutModSame(0), fhSMECellModuleOutModDiff(0),
94 fhSMNCellModuleMaxOutRat(0), fhSMNCellModuleMaxOutModSameRat(0), fhSMNCellModuleMaxOutModDiffRat(0),
95 fhSMECellModuleMaxRat(0), fhSMECellModuleMaxTotRat(0), fhSMECellModuleMaxTotRatClus(0),
96 fhSMECellModuleMaxOutRat(0), fhSMECellModuleMaxOutModSameRat(0), fhSMECellModuleMaxOutModDiffRat(0),
97 
98 fhSMNCellModuleMaxLowM02(0), fhSMNCellModuleOutLowM02(0),
99 fhSMNCellModuleOutModSameLowM02(0), fhSMNCellModuleOutModDiffLowM02(0),
100 fhSMECellModuleMaxLowM02(0), fhSMECellModuleMaxTotLowM02(0),
101 fhSMECellModuleOutLowM02(0), fhSMECellModuleOutModSameLowM02(0), fhSMECellModuleOutModDiffLowM02(0),
102 fhSMNCellModuleMaxOutRatLowM02(0), fhSMNCellModuleMaxOutModSameRatLowM02(0),fhSMNCellModuleMaxOutModDiffRatLowM02(0),
103 fhSMECellModuleMaxRatLowM02(0), fhSMECellModuleMaxTotRatLowM02(0), fhSMECellModuleMaxTotRatClusLowM02(0),
104 fhSMECellModuleMaxOutRatLowM02(0), fhSMECellModuleMaxOutModSameRatLowM02(0),fhSMECellModuleMaxOutModDiffRatLowM02(0),
105 
106 fhSMNCellModuleMaxHighM02(0), fhSMNCellModuleOutHighM02(0),
107 fhSMNCellModuleOutModSameHighM02(0), fhSMNCellModuleOutModDiffHighM02(0),
108 fhSMECellModuleMaxHighM02(0), fhSMECellModuleMaxTotHighM02(0),
109 fhSMECellModuleOutHighM02(0), fhSMECellModuleOutModSameHighM02(0), fhSMECellModuleOutModDiffHighM02(0),
110 fhSMNCellModuleMaxOutRatHighM02(0), fhSMNCellModuleMaxOutModSameRatHighM02(0),fhSMNCellModuleMaxOutModDiffRatHighM02(0),
111 fhSMECellModuleMaxRatHighM02(0), fhSMECellModuleMaxTotRatHighM02(0), fhSMECellModuleMaxTotRatClusHighM02(0),
112 fhSMECellModuleMaxOutRatHighM02(0), fhSMECellModuleMaxOutModSameRatHighM02(0),fhSMECellModuleMaxOutModDiffRatHighM02(0),
113 
114 fhSMEMaxEClusterRat(0),
115 fhSMEMaxEClusterRatLowM02(0), fhSMEMaxEClusterRatHighM02(0),
116 
117 fhTCardChannelM02(0), fhTCardChannelM02NoCut(0),
118 fhTCardChannelNCellModMax(0), fhTCardChannelNCell(0),
119 
120 // Weight studies
121 fhECellClusterRatio(0), fhECellClusterLogRatio(0),
122 fhEMaxCellClusterRatio(0), fhEMaxCellClusterLogRatio(0),
123 fhECellTotalRatio(0), fhECellTotalLogRatio(0),
124 fhECellTotalRatioMod(0), fhECellTotalLogRatioMod(0)
125 {
126  for(Int_t i=0; i < 3; i++)
127  {
128  // Shower shape dependence
129  fhClusterTimeEnergyM02 [i] = 0;
131  fhNCellsPerClusterM02 [i] = 0;
132  fhNCellsPerClusterM20 [i] = 0;
133  fhNCellsPerClusterNLM [i] = 0;
134 
135  fhNCellsPerClusterMEta [i] = 0;
136  fhNCellsPerClusterMPhi [i] = 0;
139 
140  fhSMNCell [i] = 0;
141  fhSMNCellLowM02 [i] = 0;
142  fhSMNCellHighM02 [i] = 0;
143  fhSMNCellM02 [i] = 0;
144  fhSMM02 [i] = 0;
145  fhSMM02NoCut [i] = 0;
146 
147  fhSMMEta [i] = 0;
148  fhSMMEtaNoCut [i] = 0;
149  fhSMMPhi [i] = 0;
150  fhSMMPhiNoCut [i] = 0;
151  fhSMMEtaPhi [i] = 0;
152  fhSMMEtaPhiNoCut [i] = 0;
153  fhSMMEtaPhiA [i] = 0;
154  fhSMMEtaPhiANoCut [i] = 0;
155 
156  fhSMM20LowM02 [i] = 0;
157  fhSMM20LowM02NoCut [i] = 0;
158  fhSMM20HighM02 [i] = 0;
159  fhSMM20HighM02NoCut [i] = 0;
160 
161  fhColM02 [i] = 0;
162  fhRowM02 [i] = 0;
163 
164  fhOriginE [i] = 0;
165  fhOriginM02 [i] = 0;
166  fhOriginENoCut [i] = 0;
167  fhOriginM02NoCut [i] = 0;
168  fhOriginEOverlap [i] = 0;
169  fhOriginM02Overlap [i] = 0;
170  fhOriginENoCutOverlap [i] = 0;
172 
173  // Cluster asymmetry
174  fhDeltaIEtaDeltaIPhi [i] = 0;
175  fhDeltaIA [i] = 0;
176  fhDeltaIAM02 [i] = 0;
177  fhDeltaIAM20 [i] = 0;
178  fhDeltaIANCells [i] = 0;
179  fhDeltaIAOrigin [i] = 0;
180 
182  fhDeltaIATot [i] = 0;
183  fhDeltaIATotM02 [i] = 0;
184  fhDeltaIATotM20 [i] = 0;
185  fhDeltaIATotNCells [i] = 0;
186  fhDeltaIATotOrigin [i] = 0;
187  }
188 
189  // Weight studies
190  for(Int_t i =0; i < 12; i++)
191  {
192  for(Int_t j = 0; j < 4; j++)
193  {
194  for(Int_t k = 0; k < 3; k++)
195  {
196  fhLambda0ForW0AndCellCuts [i][j][k] = 0;
197 // fhLambda1ForW0AndCellCuts [i][j][k] = 0;
198  fhLambda0ForW0AndCellCutsEta0[i][j][k] = 0;
199  }
200  }
201  for(Int_t j = 0; j < 5; j++)
202  {
203  fhLambda0ForW0MC[i][j] = 0;
204 // fhLambda1ForW0MC[i][j] = 0;
205  }
206  }
207 
208  // TCard correl studies
209  for(Int_t tm = 0; tm < 2; tm++)
210  {
211  fhEnergyTime1Cell [tm] = 0;
212  fhColRowExoticLowE1Cell [tm] = 0;
213  fhColRowExoticHighE1Cell[tm] = 0;
214 
215  fhEnergyTimeExotic [tm] = 0;
216  fhColRowExoticLowE [tm] = 0 ;
217  fhColRowExoticHighE[tm] = 0 ;
222 
225 
228 
233 
238 
241 
250 
260 
267 
277 
287 
288 
289  fhNCellsTCardCorrNoSelection [tm] = 0 ;
292  fhExoticTCardCorrNoSelection [tm] = 0 ;
295 
304 
305  for(Int_t i = 0; i < 6; i++)
306  {
307  for(Int_t j = 0; j < 6; j++)
308  {
309  fhLambda0TCardCorrelNCell[i][j][tm] = 0 ;
310  fhLambda1TCardCorrelNCell[i][j][tm] = 0 ;
311  fhLambda0NLM1TCardCorrelNCell[i][j][tm] = 0 ;
312  fhLambda1NLM1TCardCorrelNCell[i][j][tm] = 0 ;
313  fhLambda0NLM2TCardCorrelNCell[i][j][tm] = 0 ;
314  fhLambda1NLM2TCardCorrelNCell[i][j][tm] = 0 ;
315 // fhLambdaRTCardCorrelNCell[i][j][tm] = 0 ;
316  fhNLocMaxTCardCorrelNCell[i][j][tm] = 0 ;
317 
318  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
319  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
320  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
321  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
322  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
323  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
324  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
325  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
326  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
327 
328  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
329  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
330  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
331  fhLogECellNLM1TCardCorrelNCell[i][j][tm] = 0 ;
332  fhLogECellNLM2TCardCorrelNCell[i][j][tm] = 0 ;
333  fhLogECellNLM3TCardCorrelNCell[i][j][tm] = 0 ;
334  fhECellWeightNLM1TCardCorrelNCell [i][j][tm] = 0 ;
335  fhECellWeightNLM2TCardCorrelNCell [i][j][tm] = 0 ;
336  fhECellWeightNLM3TCardCorrelNCell [i][j][tm] = 0 ;
337 
338  fhMassEClusTCardCorrelNCell[i][j][tm] = 0 ;
339 // fhMassEPairTCardCorrelNCell[i][j][tm] = 0 ;
340  fhExoticTCardCorrelNCell [i][j][tm] = 0 ;
341  fhTimeDiffTCardCorrelNCell [i][j][tm] = 0 ;
342  fhTimeDiffExoTCardCorrelNCell[i][j][tm] = 0 ;
343  fhColRowTCardCorrelNCellLowE [i][j][tm] = 0 ;
344  fhColRowTCardCorrelNCellHighE[i][j][tm] = 0 ;
345  }
346 
347 // fhLambda0TCardCorrelN[i][tm] = 0 ;
348 // fhNCellsTCardCorrelN [i][tm] = 0 ;
349 // fhExoticTCardCorrelN [i][tm] = 0 ;
350 // fhColRowTCardCorrelNLowE [i][tm] = 0 ;
351 // fhColRowTCardCorrelNHighE[i][tm] = 0 ;
352 //
353 // fhLambda0TCardCorrelNAllSameTCard[i][tm] = 0 ;
354 // fhNCellsTCardCorrelNAllSameTCard [i][tm] = 0 ;
355 // fhExoticTCardCorrelNAllSameTCard [i][tm] = 0 ;
356 // fhColRowTCardCorrelNAllSameTCardLowE [i][tm] = 0 ;
357 // fhColRowTCardCorrelNAllSameTCardHighE[i][tm] = 0 ;
358 //
359 // fhLambda0TCardCorrelNExotic[i][tm] = 0 ;
360 // fhNCellsTCardCorrelNExotic [i][tm] = 0 ;
361 // fhColRowTCardCorrelNLowEExotic [i][tm] = 0 ;
362 // fhColRowTCardCorrelNHighEExotic[i][tm] = 0 ;
363 //
364 // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm] = 0 ;
365 // fhNCellsTCardCorrelNAllSameTCardExotic [i][tm] = 0 ;
366 // fhColRowTCardCorrelNAllSameTCardLowEExotic [i][tm] = 0 ;
367 // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm] = 0 ;
368 // fhLambda0TCardCorrelNearRow[i][tm] = 0 ;
369 // fhNCellsTCardCorrelNearRow [i][tm] = 0 ;
370  }
371 
372 // for(Int_t i = 0; i < 4; i++)
373 // {
374 // fhLambda0TCardCorrel2ndMax[i][tm] = 0 ;
375 // fhNCellsTCardCorrel2ndMax [i][tm] = 0 ;
376 // fhLambda0TCardCorrelExotic[i][tm] = 0 ;
377 // fhNCellsTCardCorrelExotic [i][tm] = 0 ;
378 // }
379 
380  for(Int_t i = 0; i < 14; i++)
381  {
382  fhLambda0Exoticity[i][tm] = 0;
383  fhLambda1Exoticity[i][tm] = 0;
384 // fhLambdaRExoticity[i][tm] = 0;
385  fhNCellsExoticity [i][tm] = 0;
386  fhTimeExoticity [i][tm] = 0;
387  fhLambda0Lambda1 [i][tm] = 0;
388 
389 // fhLambda0ExoticityAllSameTCard[i][tm] = 0;
390 // fhLambda1ExoticityAllSameTCard[i][tm] = 0;
391 // fhLambdaRExoticityAllSameTCard[i][tm] = 0;
392 // fhNCellsExoticityAllSameTCard [i][tm] = 0;
393 // fhLambda0Lambda1AllSameTCard [i][tm] = 0;
394 
395  fhNCellsTCardSameAndDiff [i][tm] = 0;
397  }
398 
399  for(Int_t j = 0; j < 6; j++)
400  {
401  for(Int_t k = 0; k < 6; k++)
402  {
403  fhLambda0ExoticityPerNCell[j][k][tm] = 0;
404  fhLambda1ExoticityPerNCell[j][k][tm] = 0;
405 // fhLambdaRExoticityPerNCell[j][k][tm] = 0;
406  }
407  }
408 
409 // for(Int_t i = 0; i < 7; i++)
410 // {
411 // fhLambda0TCardCorrel[i][tm] = 0 ;
412 // fhNCellsTCardCorrel [i][tm] = 0 ;
413 // fhExoticTCardCorrel [i][tm] = 0 ;
414 //
415 // fhLambda0TCardCorrelOtherTCard[i][tm] = 0 ;
416 // fhNCellsTCardCorrelOtherTCard [i][tm] = 0 ;
417 // fhExoticTCardCorrelOtherTCard [i][tm] = 0 ;
418 // fhColRowTCardCorrelOtherTCardLowE [i][tm] = 0 ;
419 // fhColRowTCardCorrelOtherTCardHighE[i][tm] = 0 ;
420 // }
421 
422  for(Int_t i = 0; i < 12; i++)
423  {
424  fhTCardCorrECellMaxDiff[i][tm]=0;
425  fhTCardCorrEClusterDiff[i][tm]=0;
426 // fhTCardCorrECellMaxRat [i][tm]=0;
427 // fhTCardCorrEClusterRat [i][tm]=0;
428  fhTCardCorrTCellMaxDiff[i][tm]=0;
429 
430  fhTCardCorrECellMaxDiffExo[i][tm]=0;
431  fhTCardCorrEClusterDiffExo[i][tm]=0;
432 // fhTCardCorrECellMaxRatExo [i][tm]=0;
433 // fhTCardCorrEClusterRatExo [i][tm]=0;
434  fhTCardCorrTCellMaxDiffExo[i][tm]=0;
435  }
436  }
437 
438  for(Int_t i = 0; i < fNEBinCuts; i++)
439  {
444 // fhTMPhiResidualExoticityAllSameTCard[i] = 0;
445 // fhTMEtaResidualExoticityAllSameTCard[i] = 0;
446  }
447 
448  for(Int_t i = 0; i < 20; i++)
449  {
454  //fhESecCellLogM02NCellPerSM [i] = 0;
455 
457  //fhEMaxCellLogM02NCellPerSM [i] = 0;
458 
463 
466 
469 
476 
477  for(Int_t j = 0; j < 4; j++)
478  {
483 
488 
493  }
494  }
495 
498 
501 
502  InitParameters();
503 }
504 
505 
506 //___________________________________________________
515 //___________________________________________________
517 (AliVCluster* clus, Bool_t matched,Int_t absIdMax, Float_t exoticity)
518 {
519  // Get the col and row of the leading cluster cell
520 
521  Int_t icol = -1, irow = -1, iRCU = -1, icolAbs = -1, irowAbs = -1;
522  GetModuleNumberCellIndexesAbsCaloMap(absIdMax,GetCalorimeter(), icol, irow, iRCU, icolAbs, irowAbs);
523 
524  Float_t energy = clus->E();
525  Int_t ebin = -1;
526  for(Int_t ie = 0; ie < fNEBinCuts; ie++)
527  {
528  if( energy >= fEBinCuts[ie] && energy < fEBinCuts[ie+1] ) ebin = ie;
529  }
530 
531  Int_t ncells = clus->GetNCells();
532  Double_t time = clus->GetTOF()*1.e9;
533  if(time>400) time-=fConstantTimeShift;
534 
535  Float_t deta = clus->GetTrackDz();
536  Float_t dphi = clus->GetTrackDx();
537 
538  //if(clus->GetNCells()==1 && clus->E() > 4)printf("TCard E %f, NCells %d\n",energy,clus->GetNCells());
539 
540  if(fStudyExotic)
541  {
542  if ( ncells == 1 )
543  {
544  if(energy >= 5 && energy < 8)
545  fhColRowExoticLowE1Cell [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
546  else if(energy >= 8)
547  {
548  fhColRowExoticHighE1Cell[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
549 
550  if ( time > 5) fhColRowExoticHighE1CellPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
551  else if( time < -5) fhColRowExoticHighE1CellNegTime->Fill(icolAbs,irowAbs,GetEventWeight());
552  else fhColRowExoticHighE1CellNulTime->Fill(icolAbs,irowAbs,GetEventWeight());
553  }
554 
555  fhEnergyTime1Cell[matched]->Fill(energy,time,GetEventWeight());
556  fhEnergyTMEtaResidual1Cell->Fill(energy,deta,GetEventWeight());
557  fhEnergyTMPhiResidual1Cell->Fill(energy,dphi,GetEventWeight());
558  }
559  else if(exoticity > 0.97)
560  {
561  if(energy >= 5 && energy < 8)
562  fhColRowExoticLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
563  else if(energy >= 8)
564  {
565  fhColRowExoticHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
566 
567  if ( time > 5) fhColRowExoticHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
568  else if( time < -5) fhColRowExoticHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
569  else fhColRowExoticHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
570  }
571 
572  fhEnergyTimeExotic[matched]->Fill(energy,time,GetEventWeight());
573  fhEnergyTMEtaResidualExotic->Fill(energy,deta,GetEventWeight());
574  fhEnergyTMPhiResidualExotic->Fill(energy,dphi,GetEventWeight());
575 
576  for (Int_t ipos = 0; ipos < ncells; ipos++)
577  {
578  Int_t absId = clus->GetCellsAbsId()[ipos];
579 
580  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
582 
583  // consider cells with enough energy weight and not the reference one
584  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
585 
586  if( absId == absIdMax || weight < 0.01 ) continue;
587 
588  Int_t rowDiff = -100, colDiff = -100;
589  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
590 
591  // Get the col and row of the secondary cluster cell
592  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
593  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
594 
595  if ( !sameTCard )
596  {
597  if(energy >= 5 && energy < 8)
598  fhColRowExotic2ndCellDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
599  else if(energy >= 8)
600  fhColRowExotic2ndCellDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
601  }
602  else
603  {
604  if(energy >= 5 && energy < 8)
605  fhColRowExotic2ndCellSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
606  else if(energy >= 8)
607  fhColRowExotic2ndCellSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
608  }
609  }
610 
611  }
612  else if ( energy > 8 )
613  {
614  if ( time > 5) fhColRowHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
615  else if( time < -5) fhColRowHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
616  else fhColRowHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
617  }
618 
619  if(ebin > -1)
620  {
621  fhTMPhiResidualExoticityLooseCut[ebin]->Fill(exoticity,dphi);
622  fhTMEtaResidualExoticityLooseCut[ebin]->Fill(exoticity,deta);
623  }
624  }
625  else if ( energy > 8 && ncells > 1 && exoticity < 0.97)
626  {
627  if ( time > 5) fhColRowHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
628  else if( time < -5) fhColRowHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
629  else fhColRowHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
630  }
631 
632  // Clean the sample
633 
634  // in center of SM
635  Int_t etaRegion = -1, phiRegion = -1;
636  GetCaloUtils()->GetEMCALSubregion(clus,fCaloCellList,etaRegion,phiRegion);
637  // Region 0: center of SM ~0.18<|eta|<0.55
638  if ( etaRegion !=0 ) return ;
639 
640  if(fStudyExotic)
641  {
642  if ( ncells == 1 )
643  {
644  fhEnergyTimeTCardCorrNoSelection1Cell[matched]->Fill(energy,time,GetEventWeight());
647  }
648  else if(exoticity > 0.97)
649  {
650  fhEnergyTimeTCardCorrNoSelectionExotic[matched]->Fill(energy,time,GetEventWeight());
653  }
654  }
655 
656  Float_t m02 = clus->GetM02();
657  Float_t m20 = clus->GetM20();
658  Float_t lamR = 0;
659  if ( m02 > 0.001 ) lamR = m20/m02;
660 
661  Int_t absIdList[ncells];
662  Float_t maxEList [ncells];
663  Int_t nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus, fCaloCellList, absIdList, maxEList) ;
664 //Int_t nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus,fCaloCellList);
665 
666  //
667  // Correlation to max
668  //
669  Int_t nCellWithWeight = 1;
670  Bool_t nearRow = kFALSE;
671  Bool_t nearCol = kFALSE;
672  Int_t nCorr = 0;
673  Int_t nCorrNo = 0;
674  Int_t sameCol = 0;
675  Int_t other = 0;
676  Int_t sameRow = 0;
677  Float_t eCellMax = fCaloCellList->GetCellAmplitude(absIdMax);
678  //printf("Org E %2.2f, t %2.2f\n",eCellMax,tCellMax*1e9);
679  GetCaloUtils()->RecalibrateCellAmplitude(eCellMax, GetCalorimeter(), absIdMax);
680  //printf("New E %2.2f, t %2.2f\n",eCellMax,tCellMax*1e9);
681 
682  Double_t tCellMax = -1000;
683  if( fStudyTimeCellHisto )
684  {
685  tCellMax = fCaloCellList->GetCellTime(absIdMax);
686 
687  GetCaloUtils()->RecalibrateCellTime(tCellMax, GetCalorimeter(), absIdMax, GetReader()->GetInputEvent()->GetBunchCrossNumber());
688  tCellMax *= 1.0e9;
689  if(tCellMax>400) tCellMax-=fConstantTimeShift;
690  }
691 
692  // correlation not max cells
693 // Int_t nCorr2 = 0;
694 // Int_t sameCol2 = 0;
695 // Int_t other2 = 0;
696 // Int_t sameRow2 = 0;
697 
698  // Get second highest energy cell
699 // Int_t absId2ndMax = -1;
700  Float_t emax2nd = 0;
701  Bool_t sameTCard2ndMax = kFALSE;
702 //Int_t rowDiff2 = -100;
703 //Int_t colDiff2 = -100;
704 
705  Float_t eCellSameRowSameTCardNearCol = 0.;
706  Float_t eCellSameRowDiffTCardNearCol = 0.;
707  Double_t tCellSameRowSameTCardNearCol = 0.;
708  Double_t tCellSameRowDiffTCardNearCol = 0.;
709 
710  //printf("Cluster E %2.2f, ncells %d, absIdMax %d, eCell Max %2.2f\n", energy, ncells, absIdMax, fCaloCellList->GetCellAmplitude(absIdMax));
711 
712  //
713  // Loop on the cluster cells, define correlations
714  //
715  for (Int_t ipos = 0; ipos < ncells; ipos++)
716  {
717  Int_t absId = clus->GetCellsAbsId()[ipos];
718 
719  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
721 
722  Double_t tCell = 0;
724  {
725  tCell = fCaloCellList->GetCellTime(absId);
726  GetCaloUtils()->RecalibrateCellTime(tCell, GetCalorimeter(), absId, GetReader()->GetInputEvent()->GetBunchCrossNumber());
727  tCell *= 1.0e9;
728  if(tCell>400) tCell-=fConstantTimeShift;
729  }
730 
731  // consider cells with enough energy weight and not the reference one
732  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
733 
734  if( absId == absIdMax || weight < 0.01 ) continue;
735 
736  if (nlm==1)
737  {
738  fhECellClusRatNLM1TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
739  fhLogECellNLM1TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
740  fhECellWeightNLM1TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
741  }
742  else if(nlm==2)
743  {
744  fhECellClusRatNLM2TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
745  fhLogECellNLM2TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
746  fhECellWeightNLM2TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
747  }
748  else
749  {
750  fhECellClusRatNLM3TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
751  fhLogECellNLM3TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
752  fhECellWeightNLM3TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
753  }
754 
755  Int_t rowDiff = -100, colDiff = -100;
756  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
757 
758  if(sameTCard)
759  {
760  if (nlm==1)
761  {
762  fhECellSameClusRatNLM1TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
763  fhLogECellSameNLM1TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
764  fhECellSameWeightNLM1TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
765  }
766  else if(nlm==2)
767  {
768  fhECellSameClusRatNLM2TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
769  fhLogECellSameNLM2TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
770  fhECellSameWeightNLM2TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
771  }
772  else
773  {
774  fhECellSameClusRatNLM3TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
775  fhLogECellSameNLM3TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
776  fhECellSameWeightNLM3TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
777  }
778  }
779 
780  //if(eCellMax < eCell) printf("Check: E max %f (id %d), E sec %f (id %d)\n",eCellMax,absIdMax, eCell,absId);
781 
782  nCellWithWeight++;
783 
784  //printf("\t cell %d, absId %d, E %2.2f, w %2.2f, tcard %d\n", ipos, absId, eCell, weight, sameTCard);
785 
786  Int_t indexType = -1;
787  if ( sameTCard )
788  {
789  nCorr++;
790 
791  if(TMath::Abs(rowDiff) == 1) nearRow = kTRUE;
792  if(TMath::Abs(colDiff) == 1) nearCol = kTRUE;
793 
794  if ( rowDiff == 0 && colDiff != 0 )
795  {
796  if ( nearCol ) indexType = 6;
797  else indexType = 7;
798 
799  sameRow++;
800  /*printf("\t \t E %2.2f, Same row, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
801  }
802  else if ( rowDiff != 0 && colDiff == 0 )
803  {
804  if ( nearRow ) indexType = 8;
805  else indexType = 9;
806 
807  sameCol++;
808  /*printf("\t \t E %2.2f, Same col, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
809  }
810  else
811  {
812  if ( nearRow && nearCol) indexType = 10;
813  else indexType = 11;
814 
815  other++;
816  /*printf("\t \t E %2.2f, Diff row/col, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
817  }
818  }
819  else
820  {
821  nCorrNo++;
822 
823  if ( rowDiff == 0 && colDiff != 0 )
824  {
825  if ( nearCol ) indexType = 0;
826  else indexType = 1;
827 
828  }
829  else if ( rowDiff != 0 && colDiff == 0 )
830  {
831  if ( nearRow ) indexType = 2;
832  else indexType = 3;
833  }
834  else
835  {
836  if ( nearCol && nearRow ) indexType = 4;
837  else indexType = 5;
838  }
839  }
840 
841  if ( rowDiff == 0 && TMath::Abs(colDiff) == 1 )
842  {
843  if(sameTCard)
844  {
845  eCellSameRowSameTCardNearCol = eCell;
846  tCellSameRowSameTCardNearCol = tCell;
847  }
848  else
849  {
850  eCellSameRowDiffTCardNearCol = eCell;
851  tCellSameRowDiffTCardNearCol = tCell;
852  }
853  }
854 
855  if( indexType >=0 )
856  {
857  Float_t eCellDiff = eCellMax - eCell;
858  Float_t eClusDiff = energy - eCell;
859 // Float_t eCellRat = eCell / eCellMax;
860 // Float_t eClusRat = eCell / energy ;
861  Float_t tCellDiff = tCellMax - tCell;
862 
863  fhTCardCorrECellMaxDiff[indexType][matched]->Fill(energy, eCellDiff, GetEventWeight());
864  fhTCardCorrEClusterDiff[indexType][matched]->Fill(energy, eClusDiff, GetEventWeight());
865 // fhTCardCorrECellMaxRat [indexType][matched]->Fill(energy, eCellRat , GetEventWeight());
866 // fhTCardCorrEClusterRat [indexType][matched]->Fill(energy, eClusRat , GetEventWeight());
867  fhTCardCorrTCellMaxDiff[indexType][matched]->Fill(energy, tCellDiff, GetEventWeight());
868 
869  if ( fStudyExotic && exoticity > 0.97 )
870  {
871  fhTCardCorrECellMaxDiffExo[indexType][matched]->Fill(energy, eCellDiff, GetEventWeight());
872  fhTCardCorrEClusterDiffExo[indexType][matched]->Fill(energy, eClusDiff, GetEventWeight());
873 // fhTCardCorrECellMaxRatExo [indexType][matched]->Fill(energy, eCellRat , GetEventWeight());
874 // fhTCardCorrEClusterRatExo [indexType][matched]->Fill(energy, eClusRat , GetEventWeight());
875  fhTCardCorrTCellMaxDiffExo[indexType][matched]->Fill(energy, tCellDiff, GetEventWeight());
876  }
877  }
878 
879  if ( fStudyExotic && exoticity > 0.97 )
880  {
881  // Get the col and row of the secondary cluster cell
882  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
883  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
884 
885  if ( !sameTCard )
886  {
887  if(energy >= 5 && energy < 8)
888  fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
889  else if(energy >= 8)
890  fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
891  }
892  else
893  {
894  if(energy >= 5 && energy < 8)
895  fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
896  else if(energy >= 8)
897  fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
898  }
899  }
900 
901  if ( eCell > emax2nd )
902  {
903  emax2nd = eCell;
904 // absId2ndMax = absId;
905  if(sameTCard)
906  {
907  sameTCard2ndMax = kTRUE;
908 // rowDiff2 = rowDiff;
909 // colDiff2 = colDiff;
910  }
911  else
912  {
913  sameTCard2ndMax = kFALSE;
914 // rowDiff2 = -100;
915 // colDiff2 = -100;
916  }
917  }
918 
919 // //
920 // // Other TCard correlations
921 // //
922 // if ( sameTCard ) continue;
923 //
924 // for (Int_t ipos2 = 0; ipos2 < ncells; ipos2++)
925 // {
926 // Int_t absId2 = clus->GetCellsAbsId()[ipos2];
927 //
928 // eCell = fCaloCellList->GetCellAmplitude(absId2);
929 // // consider cells with enough energy weight and not the reference one
930 // weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
931 //
932 // if( absId2 == absIdMax || absId2 == absId || weight < 0.01 ) continue;
933 //
934 // rowDiff = -100, colDiff = -100;
935 // Bool_t sameTCard2 = GetCaloUtils()->IsAbsIDsFromTCard(absId,absId2,rowDiff,colDiff);
936 //
937 // if(sameTCard2)
938 // {
939 // nCorr2++;
940 // if ( rowDiff == 0 && colDiff != 0 ) sameRow2++;
941 // else if ( rowDiff != 0 && colDiff == 0 ) sameCol2++;
942 // else other2++;
943 // }
944 // //printf("\t cell %d, absId %d, E %2.2f, w %2.2f, tcard %d\n", ipos, absId, eCell, weight, sameTCard);
945 // } // second cluster cell lopp for secondary TCard correlations
946  } // cluster cell loop
947 
948  Float_t ratioNcells = nCellWithWeight/(ncells*1.);
949  fhNCellsTCardCorrRatioWithWeightNoSelection[matched]->Fill(energy, ratioNcells, GetEventWeight());
950  //printf("E %2.2f, ncells %d, nCellWithWeight %d, ratio %2.2f\n",energy,ncells,nCellWithWeight,ratioNcells);
951 
952  // If only one relevant cell, it makes no sense to continue
953  if ( nCellWithWeight <= 1 ) return;
954 
955  // It should not happen, unless very exotic clusters
956  if ( m02 < 0.001 )
957  {
958  printf("AliAnaClusterShapeCorrelStudies: M02 %f, M20 %f, E %2.3f, ncell %d, n with weight %d; max cell E %2.3f\n",
959  m02,m20,energy,ncells,nCellWithWeight,eCellMax);
960  }
961 
962  //printf("\t Same col %d, same row %d, diff other %d\n",sameCol,sameRow,other);
963  //printf("\t Second cell: E %2.2f, absId %d, correl %d, rowDiff %d, rowCol %d\n",emax,absId2ndMax,sameTCard2,rowDiff2, colDiff2);
964 
965  //
966  // Fill histograms for different cell correlation criteria
967  //
968  if(energy >= 5 && energy < 8)
969  fhColRowTCardCorrNoSelectionLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
970  else if(energy >= 8)
971  fhColRowTCardCorrNoSelectionHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
972 
973  if ( fStudyExotic && exoticity > 0.97 )
974  {
975  if(energy >= 5 && energy < 8)
976  fhColRowTCardCorrNoSelectionExoticLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
977  else if(energy >= 8)
978  fhColRowTCardCorrNoSelectionExoticHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
979  }
980 
981  fhTimeTCardCorrNoSelection [matched]->Fill(energy,time, GetEventWeight());
982  fhLambda0TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
983  fhLambda1TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
984 
985  if ( nlm == 1 )
986  {
987  fhLambda0NLM1TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
988  fhLambda1NLM1TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
989  }
990  else if( nlm == 2 )
991  {
992  fhLambda0NLM2TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
993  fhLambda1NLM2TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
994  }
995 
996  fhLambdaRTCardCorrNoSelection[matched]->Fill(energy,lamR, GetEventWeight());
997  fhNLocMaxTCardCorrNoSelection[matched]->Fill(energy, nlm, GetEventWeight());
998  fhExoticTCardCorrNoSelection [matched]->Fill(energy, exoticity, GetEventWeight());
999 
1000  if (nlm==1)
1001  {
1002  fhEMaxRatNLM1TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
1003  fhE2ndRatNLM1TCardCorrNoSelection [matched]->Fill(energy, emax2nd/energy , GetEventWeight());
1004  fhE2ndEMaxRatNLM1TCardCorrNoSelection[matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
1005  }
1006  else if(nlm==2)
1007  {
1008  fhEMaxRatNLM2TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
1009  fhE2ndRatNLM2TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1010  fhE2ndEMaxRatNLM2TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1011  }
1012  else
1013  {
1014  fhEMaxRatNLM3TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
1015  fhE2ndRatNLM3TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1016  fhE2ndEMaxRatNLM3TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1017  }
1018 
1019  if(sameTCard2ndMax)
1020  {
1021  if (nlm==1)
1022  {
1023  fhE2ndSameRatNLM1TCardCorrNoSelection [matched]->Fill(energy, emax2nd/energy , GetEventWeight());
1024  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
1025  }
1026  else if(nlm==2)
1027  {
1028  fhE2ndSameRatNLM2TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1029  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1030  }
1031  else
1032  {
1033  fhE2ndSameRatNLM3TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1034  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1035  }
1036  }
1037 
1038  fhNCellsTCardCorrNoSelection [matched]->Fill(energy, ncells, GetEventWeight());
1039  fhNCellsTCardCorrWithWeightNoSelection[matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1040 
1041  if(eCellSameRowSameTCardNearCol > 0 && eCellSameRowDiffTCardNearCol > 0)
1042  {
1043  Float_t eDiff = eCellSameRowSameTCardNearCol - eCellSameRowDiffTCardNearCol ;
1044  Float_t tDiff = tCellSameRowSameTCardNearCol - tCellSameRowDiffTCardNearCol ;
1045 
1046  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[matched]->Fill(energy , eDiff, GetEventWeight());
1047  fhSameRowDiffColAndTCardCellsTimeDiffClusterE [matched]->Fill(energy , tDiff, GetEventWeight());
1048  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[matched]->Fill(eCellMax, eDiff, GetEventWeight());
1049  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE [matched]->Fill(eCellMax, tDiff, GetEventWeight());
1050 
1051  if ( fStudyExotic && exoticity > 0.97 )
1052  {
1053  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[matched]->Fill(energy , eDiff, GetEventWeight());
1054  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo [matched]->Fill(energy , tDiff, GetEventWeight());
1055  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[matched]->Fill(eCellMax, eDiff, GetEventWeight());
1056  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo [matched]->Fill(eCellMax, tDiff, GetEventWeight());
1057  }
1058  }
1059 
1061  Int_t nCorrInd = nCorr;
1062  if(nCorr > 4) nCorrInd = 5;
1063 
1064  Int_t nCorrNoInd = nCorrNo;
1065  if(nCorrNoInd > 4) nCorrNoInd = 5;
1066 
1067 // fhLambda0TCardCorrelN[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1068 // fhNCellsTCardCorrelN [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1069 // fhExoticTCardCorrelN [nCorrInd][matched]->Fill(energy, exoticity, GetEventWeight());
1070 //
1071 // if ( energy >= 2 && energy < 8 )
1072 // fhColRowTCardCorrelNLowE [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1073 // if ( energy >= 8 )
1074 // fhColRowTCardCorrelNHighE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1075 
1076  if ( nlm == 1 )
1077  {
1078  fhLambda0NLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
1079  fhLambda1NLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
1080  }
1081  else if( nlm == 2 )
1082  {
1083  fhLambda0NLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
1084  fhLambda1NLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
1085  }
1086 
1087  fhLambda0TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
1088  fhLambda1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
1089 //fhLambdaRTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy,lamR, GetEventWeight());
1090  fhNLocMaxTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, nlm, GetEventWeight());
1091 
1092  if(fStudyExotic)
1093  fhExoticTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, exoticity, GetEventWeight());
1094 
1095  if (nlm==1)
1096  {
1097  fhEMaxRatNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy , GetEventWeight());
1098  fhE2ndRatNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, emax2nd/energy , GetEventWeight());
1099  fhE2ndEMaxRatNLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
1100  }
1101  else if(nlm==2)
1102  {
1103  fhEMaxRatNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy, GetEventWeight());
1104  fhE2ndRatNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1105  fhE2ndEMaxRatNLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1106  }
1107  else
1108  {
1109  fhEMaxRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy, GetEventWeight());
1110  fhE2ndRatNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
1111  fhE2ndEMaxRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
1112  }
1113 
1114  // Time diff in cluster, depending nCells
1115  for (Int_t ipos = 0; ipos < ncells; ipos++)
1116  {
1117  Int_t absId = clus->GetCellsAbsId()[ipos];
1118 
1119  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
1121 
1122  Double_t tCell = 0;
1123 
1124  if ( fStudyTimeCellHisto )
1125  {
1126  tCell = fCaloCellList->GetCellTime(absId);
1127 
1128  GetCaloUtils()->RecalibrateCellTime(tCell, GetCalorimeter(), absId, GetReader()->GetInputEvent()->GetBunchCrossNumber());
1129  tCell *= 1.0e9;
1130  if(tCell>400) tCell-=fConstantTimeShift;
1131  }
1132 
1133  // consider cells with enough energy weight and not the reference one
1134  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
1135 
1136  if( absId == absIdMax || weight < 0.01 ) continue;
1137 
1138  Float_t tDiffMaxSecondary = tCellMax - tCell;
1139  //printf("Time max %f, second %f, diff %f\n",tCellMax,tCell,tDiffMaxSecondary);
1140  fhTimeDiffTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, tDiffMaxSecondary, GetEventWeight());
1141  if ( fStudyExotic && exoticity > 0.97 )
1142  {
1143  fhTimeDiffExoTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, tDiffMaxSecondary, GetEventWeight());
1144  // Get the col and row of the secondary cluster cell
1145  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
1146  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
1147 
1148  Int_t rowDiff = -100, colDiff = -100;
1149  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
1150 
1151  if ( !sameTCard )
1152  {
1153  if ( energy >= 5 && energy < 8 && nCorr == 0 )
1154  fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1155  else if ( energy >= 8 && nCorr == 0 )
1156  fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1157  }
1158  else
1159  {
1160  if ( energy >= 5 && energy < 8 && nCorrNo == 0 )
1161  fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1162  else if ( energy >= 8 && nCorrNo == 0 )
1163  fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1164  }
1165  } // exotic
1166 
1167  if (nlm==1)
1168  {
1169  fhECellClusRatNLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1170  fhLogECellNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1171  fhECellWeightNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1172  }
1173  else if(nlm==2)
1174  {
1175  fhECellClusRatNLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1176  fhLogECellNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1177  fhECellWeightNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1178  }
1179  else
1180  {
1181  fhECellClusRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1182  fhLogECellNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1183  fhECellWeightNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1184  }
1185  } //cell loop
1186 
1187  // Invariant mass for clusters looking like photons, depending number of cells
1188  if ( fStudyInvMass && m02 > fInvMassMinM02Cut && m02 < fInvMassMaxM02Cut )
1189  {
1190  for(Int_t jclus = 0 ; jclus < fCaloClusList->GetEntriesFast() ; jclus++)
1191  {
1192  AliVCluster* clus2 = (AliVCluster*) fCaloClusList->At(jclus);
1193 
1194  Float_t maxCellFraction = 0.;
1195  Int_t absIdMax2 = GetCaloUtils()->GetMaxEnergyCell(fCaloCellList, clus2, maxCellFraction);
1196 
1197  Double_t tof2 = clus2->GetTOF()*1.e9;
1198  if(tof2>400) tof2-=fConstantTimeShift;
1199 
1200  Double_t diffTof = tCellMax-tof2;
1201 
1202  // Try to reduce background with a mild shower shape cut and no more
1203  // than 1 local maximum in cluster and remove low energy clusters
1204 
1205  if( absIdMax == absIdMax2
1206  || !IsGoodCluster(absIdMax2, clus2->GetM02(), clus2->GetNCells())
1208  || clus2->GetM02() > fInvMassMaxM02Cut
1209  || clus2->GetM02() < fInvMassMinM02Cut
1210  || clus2->E() < fInvMassMinECut
1211  || clus2->E() > fInvMassMaxECut
1212  || TMath::Abs(diffTof) > fInvMassMaxTimeDifference
1213  ) continue;
1214 
1215  // Get cluster kinematics
1216  Double_t v[3] = {0,0,0}; //vertex ;
1217  clus2->GetMomentum(fClusterMomentum2,v);
1218 
1219  // Check only certain regions
1220  Bool_t in2 = kTRUE;
1222  if(!in2) continue;
1223 
1224  //Float_t pairE = (fClusterMomentum+fClusterMomentum2).E();
1225 
1226  // Opening angle cut, avoid combination of DCal and EMCal clusters
1227  Double_t angle = fClusterMomentum.Angle(fClusterMomentum2.Vect());
1228 
1229  if( angle > fInvMassMaxOpenAngle ) continue;
1230 
1231  // Fill histograms
1233  fhMassEClusTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, mass, GetEventWeight());
1234  //fhMassEPairTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(pairE , mass, GetEventWeight());
1235  }
1236  }
1237 
1238  if ( energy >= 5 && energy < 8)
1239  fhColRowTCardCorrelNCellLowE [nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1240  else if ( energy >= 8 )
1241  fhColRowTCardCorrelNCellHighE[nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1242 
1243 // if(nCorrNo == 0)
1244 // {
1245 // fhLambda0TCardCorrelNAllSameTCard[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1246 // fhNCellsTCardCorrelNAllSameTCard [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1247 // fhExoticTCardCorrelNAllSameTCard [nCorrInd][matched]->Fill(energy, exoticity, GetEventWeight());
1248 // if ( energy >= 2 && energy < 8 )
1249 // fhColRowTCardCorrelNAllSameTCardLowE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1250 // else if ( energy >= 8 )
1251 // fhColRowTCardCorrelNAllSameTCardHighE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1252 // }
1253 
1255 
1256  if ( fStudyExotic && exoticity > 0.97 )
1257  {
1258  if ( energy >= 5 && energy < 8)
1259  fhColRowTCardCorrelNCellExoticLowE [nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1260  else if ( energy >= 8 )
1261  fhColRowTCardCorrelNCellExoticHighE[nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1262 
1263 // fhLambda0TCardCorrelNExotic[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1264 // fhNCellsTCardCorrelNExotic [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1265 //
1266 // if ( energy > 5 && energy <= 8 )
1267 // fhColRowTCardCorrelNLowEExotic [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1268 // if ( energy > 8 )
1269 // fhColRowTCardCorrelNHighEExotic[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1270 //
1271 // if(nCorrNo == 0)
1272 // {
1273 // fhLambda0TCardCorrelNAllSameTCardExotic[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1274 // fhNCellsTCardCorrelNAllSameTCardExotic [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1275 //
1276 // if ( energy > 2 && energy <=8 )
1277 // fhColRowTCardCorrelNAllSameTCardLowEExotic [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1278 // if ( energy > 8 )
1279 // fhColRowTCardCorrelNAllSameTCardHighEExotic[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1280 // }
1281 //
1282 // Int_t indexExo = -1;
1283 // if (!nearRow && nearCol ) indexExo = 0;
1284 // else if (!nearRow && !nearCol ) indexExo = 1;
1285 // else if ( nearRow && nearCol ) indexExo = 2;
1286 // else if ( nearRow && !nearCol ) indexExo = 3;
1287 //
1288 // if(indexExo >= 0)
1289 // {
1290 // fhLambda0TCardCorrelExotic[indexExo][matched]->Fill(energy, m02, GetEventWeight());
1291 // fhNCellsTCardCorrelExotic [indexExo][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1292 // }
1293  }
1294 
1295 
1296  if( ebin > -1 )
1297  {
1298  fhLambda0Lambda1 [ebin][matched]->Fill(m20, m02, GetEventWeight());
1299  fhNCellsTCardSameAndDiff[ebin][matched]->Fill(nCorrNo, nCorr, GetEventWeight());
1300  // if(nCorrNo == 0)
1301  // fhLambda0Lambda1AllSameTCard [ebin][matched]->Fill(m20, m02, GetEventWeight());
1302 
1303  if(fStudyExotic)
1304  {
1305  fhLambda0Exoticity[ebin][matched]->Fill(exoticity, m02, GetEventWeight());
1306  fhLambda1Exoticity[ebin][matched]->Fill(exoticity, m20, GetEventWeight());
1307  //fhLambdaRExoticity[ebin][matched]->Fill(exoticity,lamR, GetEventWeight());
1308  fhNCellsExoticity [ebin][matched]->Fill(exoticity, nCellWithWeight, GetEventWeight());
1309  fhTimeExoticity [ebin][matched]->Fill(exoticity, tCellMax, GetEventWeight());
1310 
1311  if(energy > 8)
1312  {
1313  fhLambda0ExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity, m02, GetEventWeight());
1314  fhLambda1ExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity, m20, GetEventWeight());
1315  //fhLambdaRExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity,lamR, GetEventWeight());
1316  }
1317 
1318  // if(nCorrNo == 0)
1319  // {
1320  // fhLambda0ExoticityAllSameTCard[ebin][matched]->Fill(exoticity, m02, GetEventWeight());
1321  // fhLambda1ExoticityAllSameTCard[ebin][matched]->Fill(exoticity, m20, GetEventWeight());
1322  // fhLambdaRExoticityAllSameTCard[ebin][matched]->Fill(exoticity,lamR, GetEventWeight());
1323  // fhNCellsExoticityAllSameTCard [ebin][matched]->Fill(exoticity, nCellWithWeight, GetEventWeight());
1324  // }
1325 
1326  if ( exoticity > 0.97 )
1327  fhNCellsTCardSameAndDiffExotic[ebin][matched]->Fill(nCorrNo, nCorr, GetEventWeight());
1328 
1329  // Track matching residuals
1330  fhTMPhiResidualExoticity[ebin]->Fill(exoticity,dphi);
1331  fhTMEtaResidualExoticity[ebin]->Fill(exoticity,deta);
1332 
1333  // if(nCorrNo==0)
1334  // {
1335  // fhTMPhiResidualExoticityAllSameTCard[ebin]->Fill(exoticity,dphi);
1336  // fhTMEtaResidualExoticityAllSameTCard[ebin]->Fill(exoticity,deta);
1337  // }
1338  }
1339  }
1340 
1341  Float_t nCellRat = nCorr*1. / ((nCorr+nCorrNo)*1.);
1342  fhNCellsTCardSameAndDiffFraction[matched]->Fill(energy, nCellRat, GetEventWeight());
1343  if ( fStudyExotic && exoticity > 0.97 )
1344  fhNCellsTCardSameAndDiffFractionExotic[matched]->Fill(energy, nCellRat, GetEventWeight());
1345 
1346 // if(nCorr > 0)
1347 // {
1348 // Int_t index = -1;
1349 // if (!sameRow && sameCol && !other ) index = 0;
1350 // else if (!sameRow && !sameCol && other ) index = 1;
1351 // else if (!sameRow && sameCol && other ) index = 2;
1352 // else if ( sameRow && sameCol && !other ) index = 3;
1353 // else if ( sameRow && !sameCol && other ) index = 4;
1354 // else if ( sameRow && sameCol && other ) index = 5;
1355 // else if ( sameRow && !sameCol && !other ) index = 6;
1356 // else printf("case not considered: sameRow %d, sameCol %d, other %d, nearRow %d\n",sameRow,sameCol,other,nearRow);
1357 //
1358 // if(index >= 0)
1359 // {
1360 // fhLambda0TCardCorrel[index][matched]->Fill(energy, m02, GetEventWeight());
1361 // fhNCellsTCardCorrel [index][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1362 // fhExoticTCardCorrel [index][matched]->Fill(energy, exoticity, GetEventWeight());
1363 // }
1364 //
1365 // // Comment out, no special effect observed
1366 // Int_t indexNR = -1;
1367 // if ( nearRow )
1368 // {
1369 // if (!sameRow && sameCol && !other ) indexNR = 0;
1370 // else if (!sameRow && !sameCol && other ) indexNR = 1;
1371 // else if (!sameRow && sameCol && other ) indexNR = 2;
1372 // else if ( sameRow && sameCol && !other ) indexNR = 3;
1373 // else if ( sameRow && !sameCol && other ) indexNR = 4;
1374 // else if ( sameRow && sameCol && other ) indexNR = 5;
1375 // else printf("\t near row case not considered!: sameRow %d, sameCol %d, other %d\n",sameRow,sameCol,other);
1376 // }
1377 //
1378 // if ( indexNR >= 0 )
1379 // {
1380 // fhLambda0TCardCorrelNearRow[indexNR][matched]->Fill(energy, m02, GetEventWeight());
1381 // fhNCellsTCardCorrelNearRow [indexNR][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1382 // }
1383 //
1384 // if ( sameTCard2ndMax )
1385 // {
1386 // Int_t index2nd = -1;
1387 // if ( TMath::Abs(rowDiff2) == 1 && TMath::Abs(colDiff2) != 1 ) index2nd = 0;
1388 // else if( TMath::Abs(rowDiff2) != 1 && TMath::Abs(colDiff2) == 1 ) index2nd = 1;
1389 // else if( TMath::Abs(rowDiff2) == 1 && TMath::Abs(colDiff2) == 1 ) index2nd = 2;
1390 // else index2nd = 3;
1391 //
1392 // fhLambda0TCardCorrel2ndMax[index2nd][matched]->Fill(energy, m02, GetEventWeight());
1393 // fhNCellsTCardCorrel2ndMax [index2nd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1394 // }
1395 // }
1396 //
1397 // Int_t indexOtherTCard = -1;
1398 // if ( nCorr == 0 && nCorr2 == 0 ) indexOtherTCard = 6;
1399 // else if ( nCorr == 0 && nCorr2 > 0 )
1400 // {
1401 // if ( sameRow2 && !sameCol2 && !other2) indexOtherTCard = 0;
1402 // else if ( !sameRow2 && sameCol2 && !other2) indexOtherTCard = 1;
1403 // else indexOtherTCard = 2;
1404 // }
1405 // else if ( nCorr > 0 && nCorr2 > 0 )
1406 // {
1407 // if ( sameRow2 && !sameCol2 && !other2) indexOtherTCard = 3;
1408 // else if ( !sameRow2 && sameCol2 && !other2) indexOtherTCard = 4;
1409 // else indexOtherTCard = 5;
1410 // }
1411 //
1412 // if ( indexOtherTCard >= 0 )
1413 // {
1414 // fhLambda0TCardCorrelOtherTCard[indexOtherTCard][matched]->Fill(energy, m02, GetEventWeight());
1415 // fhNCellsTCardCorrelOtherTCard [indexOtherTCard][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1416 // fhExoticTCardCorrelOtherTCard [indexOtherTCard][matched]->Fill(energy, exoticity, GetEventWeight());
1417 // if ( energy >= 2 && energy < 8 )
1418 // fhColRowTCardCorrelOtherTCardLowE[indexOtherTCard][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1419 // else if ( energy >= 8 )
1420 // fhColRowTCardCorrelOtherTCardHighE[indexOtherTCard][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1421 // }
1422 }
1423 
1424 //__________________________________________________________________________________________________________________
1434 //__________________________________________________________________________________________________________________
1436 (AliVCluster* clus , Int_t absIdMax, Double_t maxFrac ,
1437  Float_t eCrossFrac, Float_t eCellMax, Double_t tmax ,
1438  Int_t matchedPID, Int_t mcIndex, Int_t noverlaps )
1439 {
1440  // By definition a cluster has at least 1 cell,
1441  // and shape only makes sense with at least 2
1442  // in case fNCellMin was open, check again the size
1443  Int_t nCaloCellsPerCluster = clus->GetNCells();
1444  if ( nCaloCellsPerCluster < 2 ) return;
1445 
1446  Float_t energy = clus->E();
1447  Float_t m02 = clus->GetM02();
1448  Float_t m20 = clus->GetM20();
1450 
1451  Int_t nCell = 0;
1452 
1453  Int_t dIeta = 0;
1454  Int_t dIphi = 0;
1455  Int_t dIetaNeg = 0;
1456  Int_t dIphiNeg = 0;
1457  Int_t dIetaPos = 0;
1458  Int_t dIphiPos = 0;
1459 
1460  // Loop on cells in cluster to get number of cells with significant energy
1461  for (Int_t ipos = 0; ipos < nCaloCellsPerCluster; ipos++)
1462  {
1463  Int_t absId = clus ->GetCellsAbsId()[ipos];
1464  Float_t eCell = fCaloCellList->GetCellAmplitude(absId) ;
1465 
1467 
1468  if( absId == absIdMax || eCell < 0.01 ) continue;
1469 
1470  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
1471 
1472  if( weight < 0.01 ) continue;
1473 
1474  nCell++;
1475  }
1476 
1477  if ( nCell < 1 ) return;
1478 
1479  // For histograms classified in bins depending number of cells
1480  Int_t nCellBin = -1;
1481  for(Int_t ic = 0; ic < fNCellsBins; ic++)
1482  {
1483  if ( nCell >= fNCellsBinsLimits[ic] && nCell < fNCellsBinsLimits[ic+1] )
1484  {
1485  nCellBin = ic;
1486  break;
1487  }
1488  }
1489 
1490  //printf("nCell %d, bin %d\n",nCell,nCellBin);
1491 
1492  //
1493  // Cluster location
1494  //
1495  Int_t ietaMax=-1, iphiMax = 0, rcuMax = 0, icolAbs = -1, irowAbs = -1;
1497  ietaMax, iphiMax, rcuMax, icolAbs, irowAbs);
1498 
1499  Int_t iTowerMax = -1, iIphiMax = -1, iIetaMax = -1;
1500  if ( fStudyModuleCells && GetCalorimeter() == kEMCAL )
1501  GetEMCALGeometry()->GetCellIndex(absIdMax,smMax,iTowerMax,iIphiMax,iIetaMax);
1502 
1503  if ( matchedPID == 0 && energy > fEMinShape && energy < fEMaxShape )
1504  {
1505  fhColRowM02->Fill(icolAbs,irowAbs,m02,GetEventWeight()) ;
1506 
1507  if ( nCell > fNCellMinShape )
1508  fhColRowM02NCellCut->Fill(icolAbs,irowAbs,m02,GetEventWeight()) ;
1509  }
1510  //
1511 
1512  //
1513  // Clean the sample with very strict cut on acceptance, select only
1514  // in center of SM
1515  //
1516  Int_t etaRegion = -1, phiRegion = -1;
1517  GetCaloUtils()->GetEMCALSubregion(clus,fCaloCellList,etaRegion,phiRegion);
1518  // Region 0: center of SM ~0.18<|eta|<0.55
1519  if ( etaRegion !=0 ) return ;
1520 
1521  // Loop on cells in cluster to get cell cluster asymmetry and
1522  // other correlation parameters
1523  Int_t nPerModule = 0;
1524  Int_t nPerModuleOut = 0;
1525  Int_t nPerModuleOutD = 0;
1526  Int_t nPerModuleOutS = 0;
1527  Float_t ePerModule = 0.;
1528  Float_t ePerModuleOut = 0.;
1529  Float_t ePerModuleOutD = 0.;
1530  Float_t ePerModuleOutS = 0.;
1531  for (Int_t ipos = 0; ipos < nCaloCellsPerCluster; ipos++)
1532  {
1533  Int_t absId = clus ->GetCellsAbsId()[ipos];
1534  Float_t eCell = fCaloCellList->GetCellAmplitude(absId) ;
1535 
1537 
1538  if( absId == absIdMax || eCell < 0.01 ) continue;
1539 
1540  Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1541  Int_t sm = GetModuleNumberCellIndexes(absId,GetCalorimeter(), ieta, iphi, rcu);
1542 
1543  // Module vs cell max
1544  //
1545  if ( fStudyModuleCells && GetCalorimeter() == kEMCAL )
1546  {
1547  Int_t iTower = -1, iIphi = -1, iIeta = -1;
1548  GetEMCALGeometry()->GetCellIndex(absId,sm,iTower,iIphi,iIeta);
1549 
1550  //printf("Max: SM %d Tower %d, absId %d, amp %2.2f\n",smMax,iTowerMax,absIdMax,eCellMax);
1551 
1552  if ( iTowerMax == iTower )
1553  {
1554  //printf("Secondary: Tower %d, absId %d, amp %2.2f\n",iTower,absId,eCell);
1555  nPerModule++;
1556  ePerModule+=eCell;
1557  }
1558  else
1559  {
1560  //printf("Secondary: Tower %d, absId %d, amp %2.2f\n",iTower,absId,eCell);
1561  nPerModuleOut++;
1562  ePerModuleOut+=eCell;
1563 
1564  if(TMath::Abs(iphiMax-iphi) == 1 || TMath::Abs(ietaMax-ieta) == 1)
1565  {
1566  Int_t rowDiff = -100, colDiff = -100;
1567  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
1568  if(sameTCard)
1569  {
1570  nPerModuleOutS++;
1571  ePerModuleOutS+=eCell;
1572  }
1573  else
1574  {
1575  nPerModuleOutD++;
1576  ePerModuleOutD+=eCell;
1577  }
1578  }
1579  }
1580  }
1581 
1582  // Select only cells with weight
1583  //
1584  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
1585 
1586  if ( weight < 0.01 ) continue;
1587 
1588  Float_t fracCell = eCell/eCellMax;
1589  fhClusterMaxCellCloseCellRatioM02->Fill(energy, fracCell, m02, GetEventWeight());
1590 
1591  Float_t fracClus = (energy-eCell)/energy;
1592 
1593  //Float_t logECell = TMath::Log(eCell);
1594 
1595  //Float_t ampDiff = fCaloCellList->GetCellAmplitude(absIdMax)-fCaloCellList->GetCellAmplitude(absId);
1596  //fhClusterMaxCellCloseCellDiffM02 ->Fill(energy,ampDiff, m02,GetEventWeight());
1597 
1598  //Double_t time = fCaloCellList->GetCellTime(absId);
1599  //GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
1600  //
1601  //Float_t tdiff = (tmax-(time*1.0e9-fConstantTimeShift));
1602  //fhCellTimeSpreadRespectToCellMaxM02->Fill(energy, tdiff, m02, GetEventWeight());
1603 
1604  if ( energy > fEMinShape && energy < fEMaxShape && matchedPID == 0 )
1605  {
1606  fhESecCellEMaxCellM02NCellPerSM[smMax]->Fill(fracCell, nCell, m02, GetEventWeight());
1607  fhESecCellEClusterM02NCellPerSM[smMax]->Fill(fracClus, nCell, m02, GetEventWeight());
1608  //fhESecCellLogM02NCellPerSM [smMax]->Fill(logECell, nCell, m02, GetEventWeight());
1609 
1610  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1611  {
1612  fhEMaxESecCellNCellLowM02PerSM [smMax]->Fill(eCellMax, eCell , nCell, GetEventWeight());
1613  fhEMaxECrossNCellLowM02PerSM [smMax]->Fill(eCellMax, eCrossFrac, nCell, GetEventWeight());
1614 
1615  if ( fStudyTimeCellHisto )
1616  {
1617  Double_t time = fCaloCellList->GetCellTime(absId);
1618  GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
1619  time*=1.e9;
1620  if(time>400) time-=fConstantTimeShift;
1621 
1622  fhESecCellTimeNCellSM->Fill(time, smMax, nCell, GetEventWeight());
1623  }
1624  }
1625  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1626  {
1627  fhEMaxESecCellNCellHighM02PerSM[smMax]->Fill(eCellMax, eCell , nCell, GetEventWeight());
1628  fhEMaxECrossNCellHighM02PerSM [smMax]->Fill(eCellMax, eCrossFrac, nCell, GetEventWeight());
1629  }
1630  }
1631 
1633  // Cluster asymmetry in cell units
1635  if(fStudyShapeParam)
1636  {
1637  if(dIphi < TMath::Abs(iphi-iphiMax)) dIphi = TMath::Abs(iphi-iphiMax);
1638  if(iphi-iphiMax < 0 && dIphiNeg > iphi-iphiMax) dIphiNeg = iphi-iphiMax;
1639  if(iphi-iphiMax > 0 && dIphiPos < iphi-iphiMax) dIphiPos = iphi-iphiMax;
1640 
1641  if(dIeta < TMath::Abs(ieta-ietaMax)) dIeta = TMath::Abs(ieta-ietaMax);
1642  if(ieta-ietaMax < 0 && dIetaNeg > ieta-ietaMax) dIetaNeg = ieta-ietaMax;
1643  if(ieta-ietaMax > 0 && dIetaPos < ieta-ietaMax) dIetaPos = ieta-ietaMax;
1644 
1645  if ( smMax !=sm )
1646  {
1647  Int_t ietaShift = ieta;
1648  Int_t ietaMaxShift = ietaMax;
1649 
1650  if (ieta > ietaMax) ietaMaxShift+=48;
1651  else ietaShift +=48;
1652 
1653  if(dIeta < TMath::Abs(ietaShift-ietaMaxShift)) dIeta = TMath::Abs(ietaShift-ietaMaxShift);
1654  if(ietaShift-ietaMaxShift < 0 && dIetaNeg > ietaShift-ietaMaxShift) dIetaNeg = ietaShift-ietaMaxShift;
1655  if(ietaShift-ietaMaxShift > 0 && dIetaPos < ietaShift-ietaMaxShift) dIetaPos = ietaShift-ietaMaxShift;
1656  }
1657  } // if(fStudyShapeParam)
1658 
1659  // cells in same SM as cell max and within an E range and neutral
1660  if ( fStudyColRowFromCellMax && smMax == sm &&
1661  energy > fEMinShape && energy < fEMaxShape && matchedPID == 0 )
1662  {
1663  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1664  {
1665  fhColRowFromCellMaxLowM02PerSM[smMax][ietaMax%2]->Fill(ietaMax-ieta, iphiMax-iphi, nCell, GetEventWeight());
1666  fhColRowFromCellMaxLowM02 [ietaMax%2]->Fill(ietaMax-ieta, iphiMax-iphi, GetEventWeight());
1667 
1668  if ( nCellBin >= 0 && nCellBin < fNCellsBins )
1669  {
1670  fhColRowFromCellMaxEMaxSecDiffFracLowM02PerSM[smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi,(eCellMax-eCell)/eCellMax, GetEventWeight());
1671  fhColRowFromCellMaxEMaxSecDiffLowM02PerSM [smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi, eCellMax-eCell, GetEventWeight());
1672  fhColRowFromCellMaxECellClusterRatLowM02PerSM[smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi, eCell/energy , GetEventWeight());
1673  }
1674  }
1675  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1676  {
1677  fhColRowFromCellMaxHighM02PerSM[smMax][ietaMax%2]->Fill(ietaMax-ieta, iphiMax-iphi, nCell, GetEventWeight());
1678  fhColRowFromCellMaxHighM02 [ietaMax%2]->Fill(ietaMax-ieta, iphiMax-iphi, GetEventWeight());
1679 
1680  if ( nCellBin >= 0 && nCellBin < fNCellsBins )
1681  {
1682  fhColRowFromCellMaxEMaxSecDiffFracHighM02PerSM[smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi,(eCellMax-eCell)/eCellMax, GetEventWeight());
1683  fhColRowFromCellMaxEMaxSecDiffHighM02PerSM [smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi, eCellMax-eCell, GetEventWeight());
1684  fhColRowFromCellMaxECellClusterRatHighM02PerSM[smMax][ietaMax%2][nCellBin]->Fill(ietaMax-ieta, iphiMax-iphi, eCell/energy , GetEventWeight());
1685  }
1686  }
1687 
1688  } // cells in sm SM as cell max and within an E range and neutral
1689 
1690  } // Fill cell-cluster histogram loop
1691 
1692  if ( fStudyModuleCells && GetCalorimeter() == kEMCAL )
1693  {
1694 
1695  Int_t rowTCard = Int_t(iphiMax%8);
1696  Int_t colTCard = Int_t(ietaMax%2);
1697  Int_t iTCard = rowTCard+8*colTCard;
1698  //printf("row TCard %d, col TCard %d, iTCard %d\n",rowTCard,colTCard,iTCard);
1699 
1700  fhTCardChannelNCellModMax->Fill(energy, iTCard, nPerModule, GetEventWeight());
1701  fhTCardChannelNCell ->Fill(energy, iTCard, nCell , GetEventWeight());
1702  fhTCardChannelM02NoCut ->Fill(energy, iTCard, m02 , GetEventWeight());
1703  if( nCell > 4) fhTCardChannelM02->Fill(energy, iTCard, m02, GetEventWeight());
1704 
1705  Float_t ePerModuleTot = ePerModule+eCellMax;
1706 
1707  fhSMNCellModuleMax->Fill(energy, smMax, nPerModule , GetEventWeight());
1708  fhSMNCellModuleOut->Fill(energy, smMax, nPerModuleOut, GetEventWeight());
1709  fhSMECellModuleMax->Fill(energy, smMax, ePerModule , GetEventWeight());
1710  fhSMECellModuleOut->Fill(energy, smMax, ePerModuleOut, GetEventWeight());
1711 
1712  fhSMNCellModuleMaxOutRat->Fill(energy, smMax, nPerModuleOut/(nPerModule+1.), GetEventWeight());
1713  fhSMECellModuleMaxRat ->Fill(energy, smMax, ePerModule /eCellMax , GetEventWeight());
1714  fhSMECellModuleMaxOutRat->Fill(energy, smMax, ePerModuleOut/eCellMax , GetEventWeight());
1715 
1716  fhSMECellModuleMaxTot ->Fill(energy, smMax, ePerModuleTot , GetEventWeight());
1717  fhSMECellModuleMaxTotRat->Fill(energy, smMax, ePerModuleTot/eCellMax , GetEventWeight());
1718  fhSMECellModuleMaxTotRatClus->Fill(energy, smMax, ePerModuleTot/energy, GetEventWeight());
1719 
1720  fhSMNCellModuleOutModSame ->Fill(energy, smMax, nPerModuleOutS, GetEventWeight());
1721  fhSMNCellModuleOutModDiff ->Fill(energy, smMax, nPerModuleOutD, GetEventWeight());
1722  fhSMECellModuleOutModSame ->Fill(energy, smMax, ePerModuleOutS, GetEventWeight());
1723  fhSMECellModuleOutModDiff ->Fill(energy, smMax, ePerModuleOutD, GetEventWeight());
1724 
1725  fhSMNCellModuleMaxOutModSameRat->Fill(energy, smMax, nPerModuleOutS/(nPerModule+1.), GetEventWeight());
1726  fhSMNCellModuleMaxOutModDiffRat->Fill(energy, smMax, nPerModuleOutD/(nPerModule+1.), GetEventWeight());
1727  fhSMECellModuleMaxOutModSameRat->Fill(energy, smMax, ePerModuleOutS/eCellMax , GetEventWeight());
1728  fhSMECellModuleMaxOutModDiffRat->Fill(energy, smMax, ePerModuleOutD/eCellMax , GetEventWeight());
1729 
1730  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1731  {
1732  fhSMNCellModuleMaxLowM02->Fill(energy, smMax, nPerModule , GetEventWeight());
1733  fhSMNCellModuleOutLowM02->Fill(energy, smMax, nPerModuleOut, GetEventWeight());
1734  fhSMECellModuleMaxLowM02->Fill(energy, smMax, ePerModule , GetEventWeight());
1735  fhSMECellModuleOutLowM02->Fill(energy, smMax, ePerModuleOut, GetEventWeight());
1736 
1737  fhSMNCellModuleMaxOutRatLowM02->Fill(energy, smMax, nPerModuleOut/(nPerModule+1.), GetEventWeight());
1738  fhSMECellModuleMaxRatLowM02 ->Fill(energy, smMax, ePerModule /eCellMax , GetEventWeight());
1739  fhSMECellModuleMaxOutRatLowM02->Fill(energy, smMax, ePerModuleOut/eCellMax , GetEventWeight());
1740 
1741  fhSMECellModuleMaxTotLowM02 ->Fill(energy, smMax, ePerModuleTot , GetEventWeight());
1742  fhSMECellModuleMaxTotRatLowM02->Fill(energy, smMax, ePerModuleTot/eCellMax , GetEventWeight());
1743  fhSMECellModuleMaxTotRatClusLowM02->Fill(energy, smMax, ePerModuleTot/energy, GetEventWeight());
1744 
1745  fhSMNCellModuleOutModSameLowM02 ->Fill(energy, smMax, nPerModuleOutS, GetEventWeight());
1746  fhSMNCellModuleOutModDiffLowM02 ->Fill(energy, smMax, nPerModuleOutD, GetEventWeight());
1747  fhSMECellModuleOutModSameLowM02 ->Fill(energy, smMax, ePerModuleOutS, GetEventWeight());
1748  fhSMECellModuleOutModDiffLowM02 ->Fill(energy, smMax, ePerModuleOutD, GetEventWeight());
1749 
1750  fhSMNCellModuleMaxOutModSameRatLowM02->Fill(energy, smMax, nPerModuleOutS/(nPerModule+1.), GetEventWeight());
1751  fhSMNCellModuleMaxOutModDiffRatLowM02->Fill(energy, smMax, nPerModuleOutD/(nPerModule+1.), GetEventWeight());
1752  fhSMECellModuleMaxOutModSameRatLowM02->Fill(energy, smMax, ePerModuleOutS/eCellMax , GetEventWeight());
1753  fhSMECellModuleMaxOutModDiffRatLowM02->Fill(energy, smMax, ePerModuleOutD/eCellMax , GetEventWeight());
1754 
1755 // if(energy > 8) printf("SM %d, E %2.2f, E max %2.2f;\n"
1756 // " \t nMod %d, nModOut %d, nMod/nModOut %2.2f;\n"
1757 // " \t eMod %2.2f, eModOut %2.2f, eMod/eMax %2.2f, eModOut/eMax %2.2f\n",
1758 // smMax,energy,eCellMax,
1759 // nPerModule,nPerModuleOut,nPerModuleOut/(nPerModule+1.),
1760 // ePerModule,ePerModuleOut,ePerModule/eCellMax,ePerModuleOut/eCellMax);
1761  }
1762  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1763  {
1764  fhSMNCellModuleMaxHighM02->Fill(energy, smMax, nPerModule , GetEventWeight());
1765  fhSMNCellModuleOutHighM02->Fill(energy, smMax, nPerModuleOut, GetEventWeight());
1766  fhSMECellModuleMaxHighM02->Fill(energy, smMax, ePerModule , GetEventWeight());
1767  fhSMECellModuleOutHighM02->Fill(energy, smMax, ePerModuleOut, GetEventWeight());
1768 
1769  fhSMNCellModuleMaxOutRatHighM02->Fill(energy, smMax, nPerModuleOut/(nPerModule+1.), GetEventWeight());
1770  fhSMECellModuleMaxRatHighM02 ->Fill(energy, smMax, ePerModule /eCellMax , GetEventWeight());
1771  fhSMECellModuleMaxOutRatHighM02->Fill(energy, smMax, ePerModuleOut/eCellMax , GetEventWeight());
1772 
1773  fhSMECellModuleMaxTotHighM02 ->Fill(energy, smMax, ePerModuleTot , GetEventWeight());
1774  fhSMECellModuleMaxTotRatHighM02->Fill(energy, smMax, ePerModuleTot/eCellMax , GetEventWeight());
1775  fhSMECellModuleMaxTotRatClusHighM02->Fill(energy, smMax, ePerModuleTot/energy, GetEventWeight());
1776 
1777  fhSMNCellModuleOutModSameHighM02 ->Fill(energy, smMax, nPerModuleOutS, GetEventWeight());
1778  fhSMNCellModuleOutModDiffHighM02 ->Fill(energy, smMax, nPerModuleOutD, GetEventWeight());
1779  fhSMECellModuleOutModSameHighM02 ->Fill(energy, smMax, ePerModuleOutS, GetEventWeight());
1780  fhSMECellModuleOutModDiffHighM02 ->Fill(energy, smMax, ePerModuleOutD, GetEventWeight());
1781 
1782  fhSMNCellModuleMaxOutModSameRatHighM02->Fill(energy, smMax, nPerModuleOutS/(nPerModule+1.), GetEventWeight());
1783  fhSMNCellModuleMaxOutModDiffRatHighM02->Fill(energy, smMax, nPerModuleOutD/(nPerModule+1.), GetEventWeight());
1784  fhSMECellModuleMaxOutModSameRatHighM02->Fill(energy, smMax, ePerModuleOutS/eCellMax , GetEventWeight());
1785  fhSMECellModuleMaxOutModDiffRatHighM02->Fill(energy, smMax, ePerModuleOutD/eCellMax , GetEventWeight());
1786  }
1787 
1788  }
1789 
1790  if ( energy > fEMinShape && energy < fEMaxShape && matchedPID == 0 )
1791  {
1792  fhNCellsPerClusterM02M20PerSM[smMax]->Fill(m20, nCell, m02, GetEventWeight());
1793  fhNCellsPerClusterM02NLMPerSM[smMax]->Fill(nlm, nCell, m02, GetEventWeight());
1794 
1795  // Col-Row histogram, fill emax/ecluster ratio for highest energy cell.
1796  if ( fStudyColRowFromCellMax && fNCellsBins > 0)
1797  {
1798  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1799  fhColRowFromCellMaxECellClusterRatLowM02PerSM [smMax][ietaMax%2][nCellBin]->Fill(0., 0., eCellMax/energy, GetEventWeight());
1800  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1801  fhColRowFromCellMaxECellClusterRatHighM02PerSM[smMax][ietaMax%2][nCellBin]->Fill(0., 0., eCellMax/energy, GetEventWeight());
1802  }
1803  }
1804 
1805  if(fStudyExotic)
1806  fhClusterMaxCellECrossM02->Fill(energy, eCrossFrac, m02, GetEventWeight());
1807 
1808  //
1809  // Fill histograms only for PID
1810  //
1811  fhClusterMaxCellDiffM02[matchedPID]->Fill(energy, maxFrac, m02, GetEventWeight());
1812  fhClusterTimeEnergyM02 [matchedPID]->Fill(energy, tmax , m02, GetEventWeight());
1813  fhNCellsPerClusterM02 [matchedPID]->Fill(energy, nCell , m02, GetEventWeight());
1814  fhNCellsPerClusterM20 [matchedPID]->Fill(energy, nCell , m20, GetEventWeight());
1815  fhNCellsPerClusterNLM [matchedPID]->Fill(energy, nCell , nlm, GetEventWeight());
1816 
1817  if ( matchedPID == 0 && fStudyColRowFromCellMax )
1818  {
1819  fhNCellsPerClusterM02PerSMPerCol[smMax][ietaMax%2]->Fill(energy, nCell, m02, GetEventWeight());
1820  fhNCellsPerClusterM20PerSMPerCol[smMax][ietaMax%2]->Fill(energy, nCell, m20, GetEventWeight());
1821  fhNCellsPerClusterNLMPerSMPerCol[smMax][ietaMax%2]->Fill(energy, nCell, nlm, GetEventWeight());
1822  }
1823 
1824  fhSMNCell [matchedPID]->Fill(energy, smMax , nCell, GetEventWeight());
1825  fhSMM02NoCut [matchedPID]->Fill(energy, smMax , m02 , GetEventWeight());
1826  fhSMEMaxEClusterRat ->Fill(energy, smMax , eCellMax/energy , GetEventWeight());
1827 
1828  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1829  {
1830  fhSMNCellLowM02 [matchedPID]->Fill(energy, smMax , nCell, GetEventWeight());
1831  fhSMM20LowM02NoCut [matchedPID]->Fill(energy, smMax , m20 , GetEventWeight());
1832  fhSMEMaxEClusterRatLowM02 ->Fill(energy, smMax , eCellMax/energy , GetEventWeight());
1833  }
1834  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1835  {
1836  fhSMNCellHighM02 [matchedPID]->Fill(energy, smMax , nCell, GetEventWeight());
1837  fhSMM20HighM02NoCut[matchedPID]->Fill(energy, smMax , m20 , GetEventWeight());
1838  fhSMEMaxEClusterRatHighM02 ->Fill(energy, smMax , eCellMax/energy , GetEventWeight());
1839  }
1840 
1841  if ( energy > fEMinShape && energy < fEMaxShape )
1842  {
1843  fhSMNCellM02[matchedPID]->Fill(smMax , nCell, m02, GetEventWeight());
1844 
1845  if ( matchedPID == 0 )
1846  {
1847  if ( fStudyTimeCellHisto )
1848  {
1849  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1850  fhEMaxCellTimeNCellSM->Fill(tmax, smMax, nCell, GetEventWeight());
1851 
1852  fhEMaxCellTimeM02SM->Fill(tmax, smMax, m02, GetEventWeight());
1853  }
1854 
1855  fhEMaxCellEClusterM02NCellPerSM[smMax]->Fill(maxFrac, nCell, m02, GetEventWeight());
1856  // fhEMaxCellLogM02NCellPerSM [smMax]->Fill(TMath::Log(eCellMax), nCell, m02, GetEventWeight());
1857  }
1858  } // energy bin
1859 
1860  // Select clusters with significant size
1861  if ( nCell > fNCellMinShape )
1862  {
1863  if ( m02 > fM02LowBin[0] && m02 <= fM02LowBin[1] )
1864  fhSMM20LowM02 [matchedPID]->Fill(energy, smMax , m20 , GetEventWeight());
1865  else if ( m02 > fM02HighBin[0] && m02 <= fM02HighBin[1] )
1866  fhSMM20HighM02[matchedPID]->Fill(energy, smMax , m20 , GetEventWeight());
1867 
1868  fhSMM02 [matchedPID]->Fill(energy, smMax , m02, GetEventWeight());
1869  fhColM02[matchedPID]->Fill(energy, ietaMax, m02, GetEventWeight());
1870  fhRowM02[matchedPID]->Fill(energy, iphiMax, m02, GetEventWeight());
1871  }
1872 
1873  //
1874  // Different shower shape parameters
1875  //
1876  if ( fStudyShapeParam )
1877  {
1878  // cluster asymmetry
1879  Float_t dIA = 1.*(dIphi-dIeta)/(dIeta+dIphi);
1880  Float_t dIATot = 1.*((dIphiPos-dIphiNeg)-(dIetaPos-dIetaNeg))/((dIetaPos-dIetaNeg)+(dIphiPos-dIphiNeg));
1881 
1882  // Int_t dIphiMin = TMath::Abs(dIphiNeg);
1883  // Int_t dIetaMin = TMath::Abs(dIetaNeg);
1884  // if(dIphiMin > dIphiPos) dIphiMin = dIphiPos ;
1885  // if(dIetaMin > dIetaPos) dIetaMin = dIetaPos ;
1886  // Float_t dIAMin = 0;
1887  // if(dIphiMin > 0 && dIetaMin > 0) dIAMin = 1.*(dIphiMin-dIetaMin)/(dIetaMin+dIphiMin);
1888 
1889  AliDebug(1,Form("E %2.2f, nCell %d, dPhi %d, dEta %d, dIA %2.2f, match %d",energy,nCell, dIphi,dIeta,dIA,matchedPID));
1890 
1891  // if(nCell > 5)
1892  // {
1893  // printf("E %2.2f, nCell %d, dPhi %d, dEta %d, dIA %2.2f, match %d\n",
1894  // energy,nCell, dIphi,dIeta,dIA,matchedPID);
1895  // printf("\t dPhiNeg %d, dPhiPos %d, dEtaNeg %d, dEtaPos %d, dIATot %2.2f, dIAMin %2.2f\n",
1896  // dIphiNeg,dIphiPos,dIetaNeg,dIetaPos,dIATot,dIAMin);
1897  // }
1898 
1899  fhDeltaIANCells [matchedPID]->Fill(energy, nCell , dIA , GetEventWeight());
1900  fhDeltaIATotNCells [matchedPID]->Fill(energy, nCell , dIATot, GetEventWeight());
1901 
1902  if ( nCell > fNCellMinShape ) // it makes sense only for significant size histograms
1903  {
1904  fhDeltaIEtaDeltaIPhi[matchedPID]->Fill(energy, dIeta, dIphi, GetEventWeight());
1905  fhDeltaIA [matchedPID]->Fill(energy, dIA , GetEventWeight());
1906  fhDeltaIAM02 [matchedPID]->Fill(energy, m02 , dIA , GetEventWeight());
1907  fhDeltaIAM20 [matchedPID]->Fill(energy, m20 , dIA , GetEventWeight());
1908 
1909  fhDeltaIEtaDeltaIPhiTot[matchedPID]->Fill(energy,dIetaPos-dIetaNeg, dIphiPos-dIphiNeg, GetEventWeight());
1910  fhDeltaIATot [matchedPID]->Fill(energy, dIATot , GetEventWeight());
1911  fhDeltaIATotM02 [matchedPID]->Fill(energy, m02 , dIATot, GetEventWeight());
1912  fhDeltaIATotM20 [matchedPID]->Fill(energy, m20 , dIATot, GetEventWeight());
1913  }
1914 
1915  if ( IsDataMC() && mcIndex > -1 && mcIndex < 10 && nCell > fNCellMinShape )
1916  {
1917  fhDeltaIAOrigin [matchedPID]->Fill(energy, mcIndex, dIA , GetEventWeight());
1918  fhDeltaIATotOrigin[matchedPID]->Fill(energy, mcIndex, dIATot, GetEventWeight());
1919  }
1920 
1921  Float_t l0 = 0., l1 = 0.;
1922  Float_t dispp= 0., dEta = 0., dPhi = 0.;
1923  Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
1924  if ( GetCalorimeter() == kEMCAL )
1925  {
1927  l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
1928 
1929  Float_t sEtaPhiA = -1000.;
1930  if(sEta+sPhi>0.0001) sEtaPhiA = (sPhi-sEta)/(sEta+sPhi);
1931 
1932  AliDebug(2,Form("Recalculate shower shape org: m02 %2.2f, m20 %2.2f, disp %2.2f;"
1933  " new: m02 %2.2f, m20 %2.2f, disp %2.2f; "
1934  "mEta %2.2f, mPhi %2.2f, mEtaPhi %2.2f, A_EtaPhi %2.2f; dEta %2.2f dPhi %2.2f",
1935  m02,m20,clus->GetDispersion(),l0,l1,dispp,sEta,sPhi,sEtaPhi,sEtaPhiA,dEta,dPhi));
1936 
1937  fhNCellsPerClusterMEta [matchedPID]->Fill(energy, nCell, sEta , GetEventWeight());
1938  fhNCellsPerClusterMPhi [matchedPID]->Fill(energy, nCell, sPhi , GetEventWeight());
1939  fhNCellsPerClusterMEtaPhi [matchedPID]->Fill(energy, nCell, sEtaPhi , GetEventWeight());
1940  fhNCellsPerClusterMEtaPhiA[matchedPID]->Fill(energy, nCell, sEtaPhiA, GetEventWeight());
1941 
1942  fhSMMEtaNoCut [matchedPID]->Fill(energy, smMax, sEta , GetEventWeight());
1943  fhSMMPhiNoCut [matchedPID]->Fill(energy, smMax, sPhi , GetEventWeight());
1944  fhSMMEtaPhiNoCut [matchedPID]->Fill(energy, smMax, sEtaPhi , GetEventWeight());
1945  fhSMMEtaPhiANoCut[matchedPID]->Fill(energy, smMax, sEtaPhiA, GetEventWeight());
1946 
1947  // Select clusters with significant size
1948  if ( nCell > fNCellMinShape )
1949  {
1950  fhSMMEta [matchedPID]->Fill(energy, smMax, sEta , GetEventWeight());
1951  fhSMMPhi [matchedPID]->Fill(energy, smMax, sPhi , GetEventWeight());
1952  fhSMMEtaPhi [matchedPID]->Fill(energy, smMax, sEtaPhi , GetEventWeight());
1953  fhSMMEtaPhiA[matchedPID]->Fill(energy, smMax, sEtaPhiA, GetEventWeight());
1954  }
1955  } // EMCal
1956  } // fStudyShapeParam
1957 
1958  //
1959  // Invariant mass for clusters looking like photons, depending number of cells
1960  //
1961  if ( fStudyInvMass &&
1962  matchedPID == 0 && energy > fEMinShape && energy < fEMaxShape &&
1963  m02 > fInvMassMinM02Cut && m02 < fInvMassMaxM02Cut )
1964  {
1965  for(Int_t jclus = 0 ; jclus < fCaloClusList->GetEntriesFast() ; jclus++)
1966  {
1967  AliVCluster* clus2 = (AliVCluster*) fCaloClusList->At(jclus);
1968 
1969  Float_t maxCellFraction = 0.;
1970  Int_t absIdMax2 = GetCaloUtils()->GetMaxEnergyCell(fCaloCellList, clus2, maxCellFraction);
1971 
1972  Double_t tof2 = clus2->GetTOF()*1.e9;
1973  if(tof2>400) tof2-=fConstantTimeShift;
1974 
1975  Double_t diffTof = tmax-tof2;
1976 
1977  // Try to reduce background with a mild shower shape cut and no more
1978  // than 1 local maximum in cluster and remove low energy clusters
1979 
1980  if( absIdMax == absIdMax2
1981  || !IsGoodCluster(absIdMax2, clus2->GetM02(), clus2->GetNCells())
1983  || clus2->GetM02() > fInvMassMaxM02Cut
1984  || clus2->GetM02() < fInvMassMinM02Cut
1985  || clus2->E() < fInvMassMinECut
1986  || clus2->E() > fInvMassMaxECut
1987  || TMath::Abs(diffTof) > fInvMassMaxTimeDifference
1988  ) continue;
1989 
1990  // Get cluster kinematics
1991  Double_t v[3] = {0,0,0}; //vertex ;
1992  clus2->GetMomentum(fClusterMomentum2,v);
1993 
1994  // Check only certain regions
1995  Bool_t in2 = kTRUE;
1997  if(!in2) continue;
1998 
1999  //Float_t pairE = (fClusterMomentum+fClusterMomentum2).E();
2000 
2001  // Opening angle cut, avoid combination of DCal and EMCal clusters
2002  Double_t angle = fClusterMomentum.Angle(fClusterMomentum2.Vect());
2003 
2004  if( angle > fInvMassMaxOpenAngle ) continue;
2005 
2006  // Fill histograms
2008  fhInvMassNCellSM->Fill(mass, nCell, smMax, GetEventWeight());
2009 
2010  Int_t smMax2 = GetModuleNumber(clus2);
2011  if(smMax == smMax2) fhInvMassNCellSMSame->Fill(mass, nCell, smMax, GetEventWeight());
2012  }
2013  }
2014 
2015  //
2016  // Check the origin.
2017  //
2018  if ( IsDataMC() && mcIndex > -1 && mcIndex < 10)
2019  {
2020  fhOriginENoCut [matchedPID]->Fill(energy, mcIndex, GetEventWeight());
2021  fhOriginM02NoCut[matchedPID]->Fill(energy, mcIndex, m02, GetEventWeight());
2022 
2023  if(nCell > fNCellMinShape)
2024  {
2025  fhOriginE [matchedPID]->Fill(energy, mcIndex, GetEventWeight());
2026  fhOriginM02[matchedPID]->Fill(energy, mcIndex, m02, GetEventWeight());
2027  }
2028 
2029  if(noverlaps > 0)
2030  {
2031  fhOriginENoCutOverlap [matchedPID]->Fill(energy, mcIndex, GetEventWeight());
2032  fhOriginM02NoCutOverlap[matchedPID]->Fill(energy, mcIndex, m02, GetEventWeight());
2033 
2034  if(nCell > fNCellMinShape)
2035  {
2036  fhOriginEOverlap [matchedPID]->Fill(energy, mcIndex, GetEventWeight());
2037  fhOriginM02Overlap[matchedPID]->Fill(energy, mcIndex, m02, GetEventWeight());
2038  }
2039  }
2040  } // MC
2041 }
2042 
2043 //____________________________________________________________________________
2050 //____________________________________________________________________________
2052 (AliVCluster *clus, Int_t & matchedPID)
2053 {
2054 
2055  AliVTrack *track = GetCaloUtils()->GetMatchedTrack(clus, GetReader()->GetInputEvent());
2056 
2057  if(!track)
2058  {
2059  matchedPID = -1;
2060  AliDebug(1,Form("No track found with matches %d",clus->GetNTracksMatched()));
2061  return ;
2062  }
2063 
2064 // Double_t tpt = track->Pt();
2065 // Double_t tmom = track->P();
2066  Double_t dedx = track->GetTPCsignal();
2067 // Int_t nITS = track->GetNcls(0);
2068 // Int_t nTPC = track->GetNcls(1);
2069 // Bool_t positive = kFALSE;
2070 // if(track) positive = (track->Charge()>0);
2071 
2072  // Residuals
2073 // Float_t deta = clus->GetTrackDz();
2074 // Float_t dphi = clus->GetTrackDx();
2075 // Double_t dR = TMath::Sqrt(dphi*dphi + deta*deta);
2076 // Int_t nModule = GetModuleNumber(clus);
2077 
2078  // Electron or else?
2079 
2080  // Init at least once
2081  if(fdEdXMinEle == 0 || fdEdXMaxEle == 0 || fdEdXMinHad == 0 || fdEdXMaxHad == 0)
2083 
2084  if ( dedx >= fdEdXMinEle && dedx < fdEdXMaxEle ) matchedPID = 1;
2085  else if ( dedx >= fdEdXMinHad && dedx < fdEdXMaxHad ) matchedPID = 2;
2086  else matchedPID =-1;
2087 
2088  AliDebug(1,Form("matches %d; dEdX %2.2f; matched PID %d",clus->GetNTracksMatched(),dedx,matchedPID));
2089 }
2090 
2091 //____________________________________________________________________________
2100 //____________________________________________________________________________
2102 {
2103  Int_t nCaloClusters = fCaloClusList->GetEntriesFast() ;
2104  Int_t nCaloCellsPerCluster = 0 ;
2105  Bool_t matched = kFALSE;
2106  Int_t nModule =-1 ;
2107 
2108  // Get vertex for photon momentum calculation and event selection
2109  Double_t v[3] = {0,0,0}; //vertex ;
2110  //GetReader()->GetVertex(v);
2111 
2112  AliDebug(1,Form("In %s there are %d clusters", GetCalorimeterString().Data(), nCaloClusters));
2113 
2114  // Loop over CaloClusters
2115  for(Int_t iclus = 0; iclus < nCaloClusters; iclus++)
2116  {
2117  AliDebug(1,Form("Cluster: %d/%d, data %d",iclus+1,nCaloClusters,GetReader()->GetDataType()));
2118 
2119  AliVCluster* clus = (AliVCluster*) fCaloClusList->At(iclus);
2120 
2121  // away from dead region
2122  if ( clus->GetDistanceToBadChannel() > -1 && // in case it was not calculated
2123  clus->GetDistanceToBadChannel() < fMinDistToBad )
2124  {
2125  AliDebug(1,Form("Small distance to bad channel %2.2f < %2.2f",clus->GetDistanceToBadChannel(),fMinDistToBad));
2126  continue ;
2127  }
2128 
2129  // SuperModule number of cluster
2130  nModule = GetModuleNumber(clus);
2131  if ( nModule < fFirstModule || nModule > fLastModule )
2132  {
2133  AliDebug(1,Form("Cluster module out of range %d",nModule));
2134  continue ;
2135  }
2136 
2137  // Get the fraction of the cluster energy that carries the cell with highest energy and its absId
2138  //
2139  Float_t maxCellFraction = 0.;
2140  Int_t absIdMax = GetCaloUtils()->GetMaxEnergyCell(fCaloCellList, clus, maxCellFraction);
2141 
2142  // Cut on time of clusters
2143  Double_t tof = clus->GetTOF()*1.e9;
2144  if(tof>400) tof-=fConstantTimeShift;
2145 
2146  // Get cluster kinematics
2147  clus->GetMomentum(fClusterMomentum,v);
2148 
2149  Float_t e = fClusterMomentum.E();
2150  Float_t pt = fClusterMomentum.Pt();
2151  Float_t eta = fClusterMomentum.Eta();
2152  Float_t phi = GetPhi(fClusterMomentum.Phi());
2153 
2154  // Check only certain regions
2155  Bool_t in = kTRUE;
2156  if(IsFiducialCutOn())
2158 
2159  if(!in)
2160  {
2161  AliDebug(1,Form("Remove cluster with phi %2.2f and eta %2.2f", phi*TMath::RadToDeg(), eta));
2162  continue;
2163  }
2164 
2165  AliDebug(1,Form("cluster: E %2.3f, pT %2.3f, eta %2.3f, phi %2.3f",e,pt,eta,phi*TMath::RadToDeg()));
2166 
2167  // Select the cluster
2168  //
2169  nCaloCellsPerCluster = clus->GetNCells();
2170 
2171  Bool_t goodCluster = IsGoodCluster(absIdMax, clus->GetM02(), nCaloCellsPerCluster);
2172 
2173  AliDebug(1,Form("Accept cluster? %d",goodCluster));
2174 
2175  if(!goodCluster) continue;
2176 
2177  // MC origin finding
2178  //
2179  Int_t mcTag = 0;
2180  Int_t mcIndex = -1;
2181  Int_t noverlaps =0;
2182  if ( IsDataMC() && fStudyShape )
2183  {
2184  mcTag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(), clus->GetNLabels(), GetMC(),
2186 
2188  GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCEta ) ) mcIndex = 0;
2192  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCPhoton ) ) mcIndex = 2;
2193  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCElectron ) ) mcIndex = 3;
2194  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCPion ) ) mcIndex = 4;
2195  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCKaon ) ) mcIndex = 5;
2196  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCProton ) ) mcIndex = 6;
2197  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCAntiProton ) ) mcIndex = 7;
2198  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCNeutron ) ) mcIndex = 8;
2199  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCAntiNeutron) ) mcIndex = 9;
2200 
2201  const UInt_t nlabels = clus->GetNLabels();
2202  Int_t overpdg[nlabels];
2203  Int_t overlab[nlabels];
2204  noverlaps = GetMCAnalysisUtils()->GetNOverlaps(clus->GetLabels(), nlabels, mcTag, -1,
2205  GetMC(), overpdg, overlab);
2206  }
2207 
2208  // Cluster mathed with track? and what kind?
2209  //
2210  matched = GetCaloPID()->IsTrackMatched(clus,GetCaloUtils(), GetReader()->GetInputEvent());
2211 
2212  Int_t matchedPID = -1;
2213  if ( !matched )
2214  {
2215  matchedPID = 0;
2216  }
2217  else if ( fStudyShape && fNMatchPIDCases > 1 )
2218  {
2219  ClusterMatchedToTrackPID(clus, matchedPID);
2220  }
2221 
2222  // Get amp and time of max cell, recalibrate and calculate things
2223  //
2224  Int_t bc = (GetReader()->GetInputEvent())->GetBunchCrossNumber();
2225  Double_t tmax = fCaloCellList->GetCellTime(absIdMax);
2226  Float_t ampMax = fCaloCellList->GetCellAmplitude(absIdMax);
2227 
2228  GetCaloUtils()->RecalibrateCellTime(tmax, GetCalorimeter(), absIdMax, bc);
2229  tmax*=1.e9;
2230  if(tmax>400) tmax-=fConstantTimeShift;
2231 
2232  GetCaloUtils()->RecalibrateCellAmplitude(ampMax, GetCalorimeter(), absIdMax);
2233 
2234  Float_t eCrossFrac = 0;
2235  if ( ampMax > 0.01 )
2236  eCrossFrac = 1-GetCaloUtils()->GetECross(absIdMax,fCaloCellList,bc)/ampMax;
2237 
2238 
2239  // Call analysis method filling histograms
2240  //
2241 
2242  //
2243  if ( fStudyShape && matchedPID >= 0 && matchedPID < 3 )
2244  ClusterShapeHistograms(clus, absIdMax, maxCellFraction, eCrossFrac, ampMax, tmax, matchedPID, mcIndex, noverlaps);
2245 
2246  //
2247  if ( fStudyTCardCorrelation )
2248  ChannelCorrelationInTCard(clus, matched, absIdMax, eCrossFrac);
2249 
2250  //
2251  if ( fStudyWeight )
2252  WeightHistograms(clus, mcTag);
2253 
2254  } // Cluster loop
2255 
2256 }
2257 
2258 //_________________________________________________
2260 //_________________________________________________
2262 {
2263  TString parList ; //this will be list of parameters used for this analysis.
2264  const Int_t buffersize = 255;
2265  char onePar[buffersize] ;
2266 
2267  snprintf(onePar,buffersize,"--- AliAnaClusterShapeCorrelStudies ---:") ;
2268  parList+=onePar ;
2269  snprintf(onePar,buffersize,"Calorimeter: %s;",GetCalorimeterString().Data()) ;
2270  parList+=onePar ;
2271  snprintf(onePar,buffersize,"Cluster M02: > %2.2f ; n cells > %d; dist to bad>%2.1f;",fM02Min, fNCellMin, fMinDistToBad) ;
2272  parList+=onePar ;
2273  snprintf(onePar,buffersize,"Inv. Mass %2.1f < E_cl < %2.1f GeV;",fInvMassMinECut, fInvMassMaxECut) ;
2274  parList+=onePar ;
2275  snprintf(onePar,buffersize,"Inv. Mass %2.1f < M02 < %2.1f GeV;",fInvMassMinM02Cut, fInvMassMaxM02Cut) ;
2276  parList+=onePar ;
2277  snprintf(onePar,buffersize,"Cluster pair opening angle < %2.1f rad;",fInvMassMaxOpenAngle) ;
2278  parList+=onePar ;
2279  snprintf(onePar,buffersize,"Cluster pair time difference < %2.1f rad;",fInvMassMaxTimeDifference) ;
2280  parList+=onePar ;
2281 
2282  //Get parameters set in base class.
2283  //parList += GetBaseParametersList() ;
2284 
2285  //Get parameters set in FiducialCut class (not available yet)
2286  //parlist += GetFidCut()->GetFidCutParametersList()
2287 
2288  return new TObjString(parList) ;
2289 }
2290 
2291 //___________________________________________________
2294 //___________________________________________________
2296 {
2297  TList * outputContainer = new TList() ;
2298  outputContainer->SetName("ClusterShapeStudies") ;
2299 
2300  // Init the number of modules, set in the class AliCalorimeterUtils
2301  //
2302  InitCaloParameters(); // See AliCaloTrackCorrBaseClass
2303 
2304  //Int_t totalSM = fLastModule-fFirstModule+1;
2305  //printf("N SM %d, first SM %d, last SM %d, total %d\n",fNModules,fFirstModule,fLastModule, totalSM);
2306 
2307 
2308  // MC origin
2309  TString mcParticleStringLabel[] = {"Merged #gamma#gamma","Decay #gamma","Direct #gamma","e^{#pm}","#pi^{#pm}","k^{#pm}","p","#bar{p}","n","#bar{n}"};
2310  //TString mcParticleStringTitle[] = {"MergedPhoton","DecayPhoton","DirectPhoton","Electron","Pion","Kaon","Proton","AntiProton","Neutron","AntiNeutron"};
2311 
2312  // track-match PID matching
2313  TString matchCase[] = {"Neutral","Electron","Hadron"};
2314 
2315  // Histogram binning and ranges
2316  //
2319 
2322 
2325 
2326  // TM residuals
2333 
2334  // Cell column-row histograms, see base class for data members setting
2335  //fNMaxColsFull+2,-1.5,fNMaxColsFull+0.5, fNMaxRowsFull+2,-1.5,fNMaxRowsFull+0.5
2336  Int_t ncolcell = fNMaxColsFull+2;
2337  Float_t colcellmin = -1.5;
2338  Float_t colcellmax = fNMaxColsFull+0.5;
2339 
2341  Float_t rowcellmin = fNMaxRowsFullMin-1.5;
2342  Float_t rowcellmax = fNMaxRowsFullMax+0.5;
2343 
2344  // E bins in TH3
2345  Int_t nEbins = 48;//16 ;
2346  Float_t minE = 2.5;
2347  Float_t maxE = 50.5;//18.5;
2348 
2349  // shower shape bins in TH3
2350  Int_t nShShBins = 200;
2351  Float_t minShSh = 0.;
2352  Float_t maxShSh = 2.;
2353 
2354  // Asymmetry bins
2355  Int_t asyBins = 21;
2356  Float_t asyMax = 1.05;
2357  Float_t asyMin = -1*asyMax;
2358 
2359  // n cell bins for TH3
2360  Int_t cellBins = 15;
2361  Float_t cellMax = 15;
2362  Float_t cellMin = 0;
2363 
2364  //
2365  // Init histograms
2366  //
2368  {
2370  ("hColRowHighEPosTime",
2371  "column vs row, exo < 0.97, E > 8 GeV, t > 5 ns",
2372  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2373  fhColRowHighEPosTime->SetYTitle("row");
2374  fhColRowHighEPosTime->SetXTitle("column");
2375  outputContainer->Add(fhColRowHighEPosTime) ;
2376 
2378  ("hColRowHighENegTime",
2379  "column vs row, exo < 0.97, E > 8 GeV, t < -5 ns",
2380  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2381  fhColRowHighENegTime->SetYTitle("row");
2382  fhColRowHighENegTime->SetXTitle("column");
2383  outputContainer->Add(fhColRowHighENegTime) ;
2384 
2386  ("hColRowHighENulTime",
2387  "column vs row, exo < 0.97, E > 8 GeV, -5 < t < 5 ns",
2388  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2389  fhColRowHighENulTime->SetYTitle("row");
2390  fhColRowHighENulTime->SetXTitle("column");
2391  outputContainer->Add(fhColRowHighENulTime) ;
2392 
2393  if(fStudyExotic)
2394  {
2396  ("hColRowExoticHighE1CellPosTime",
2397  "column vs row, 1 cell, E > 8 GeV, t > 5 ns",
2398  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2399  fhColRowExoticHighE1CellPosTime->SetYTitle("row");
2400  fhColRowExoticHighE1CellPosTime->SetXTitle("column");
2401  outputContainer->Add(fhColRowExoticHighE1CellPosTime) ;
2402 
2404  ("hColRowExoticHighEPosTime",
2405  "column vs row, exo > 0.97, E > 8 GeV, t > 5 ns",
2406  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2407  fhColRowExoticHighEPosTime->SetYTitle("row");
2408  fhColRowExoticHighEPosTime->SetXTitle("column");
2409  outputContainer->Add(fhColRowExoticHighEPosTime) ;
2410 
2412  ("hColRowExoticHighE1CellNegTime",
2413  "column vs row, 1 cell, E > 8 GeV, t < -5 ns",
2414  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2415  fhColRowExoticHighE1CellNegTime->SetYTitle("row");
2416  fhColRowExoticHighE1CellNegTime->SetXTitle("column");
2417  outputContainer->Add(fhColRowExoticHighE1CellNegTime) ;
2418 
2420  ("hColRowExoticHighENegTime",
2421  "column vs row, exo > 0.97, E > 8 GeV, t < -5 ns",
2422  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2423  fhColRowExoticHighENegTime->SetYTitle("row");
2424  fhColRowExoticHighENegTime->SetXTitle("column");
2425  outputContainer->Add(fhColRowExoticHighENegTime) ;
2426 
2428  ("hColRowExoticHighE1CellNulTime",
2429  "column vs row, 1 cell, E > 8 GeV, -5 < t < 5 ns",
2430  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2431  fhColRowExoticHighE1CellNulTime->SetYTitle("row");
2432  fhColRowExoticHighE1CellNulTime->SetXTitle("column");
2433  outputContainer->Add(fhColRowExoticHighE1CellNulTime) ;
2434 
2436  ("hColRowExoticHighENulTime",
2437  "column vs row, exo > 0.97, E > 8 GeV, -5 < t < 5 ns",
2438  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2439  fhColRowExoticHighENulTime->SetYTitle("row");
2440  fhColRowExoticHighENulTime->SetXTitle("column");
2441  outputContainer->Add(fhColRowExoticHighENulTime) ;
2442  }
2443 
2444  TString add[] = {"","TrackMatched"};
2445  for(Int_t tm = 0; tm < 2; tm++)
2446  {
2448  (Form("hColRowTCardCorrNoSelectionLowE%s",add[tm].Data()),
2449  Form("column vs row, max E cell for TCard correlation selected clusters, 5 < E < 8 GeV %s",add[tm].Data()),
2450  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2451  fhColRowTCardCorrNoSelectionLowE[tm]->SetYTitle("row");
2452  fhColRowTCardCorrNoSelectionLowE[tm]->SetXTitle("column");
2453  outputContainer->Add(fhColRowTCardCorrNoSelectionLowE[tm]) ;
2454 
2456  (Form("hColRowTCardCorrNoSelectionHighE%s",add[tm].Data()),
2457  Form("column vs row, max E cell for TCard correlation selected clusters, E > 8 GeV %s",add[tm].Data()),
2458  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2459  fhColRowTCardCorrNoSelectionHighE[tm]->SetYTitle("row");
2460  fhColRowTCardCorrNoSelectionHighE[tm]->SetXTitle("column");
2461  outputContainer->Add(fhColRowTCardCorrNoSelectionHighE[tm]) ;
2462 
2463  //
2464 
2466  (Form("hNCellsTCardCorrNoSelection%s",add[tm].Data()),
2467  Form("# custer # cells vs #it{E} %s",add[tm].Data()),
2468  nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2469  fhNCellsTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2470  fhNCellsTCardCorrNoSelection[tm]->SetYTitle("#it{n}_{cells}");
2471  outputContainer->Add(fhNCellsTCardCorrNoSelection[tm]);
2472 
2474  (Form("hNCellsTCardCorrWithWeightNoSelection%s",add[tm].Data()),
2475  Form("custer # cells vs #it{E}, w > 0.01 %s",add[tm].Data()),
2476  nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2477  fhNCellsTCardCorrWithWeightNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2478  fhNCellsTCardCorrWithWeightNoSelection[tm]->SetYTitle("#it{n}_{cells}");
2479  outputContainer->Add(fhNCellsTCardCorrWithWeightNoSelection[tm]);
2480 
2482  (Form("hNCellsTCardCorrRatioWithWeightNoSelection%s",add[tm].Data()),
2483  Form("custer # cells vs #it{E}, w > 0.01 %s",add[tm].Data()),
2484  nptbins,ptmin,ptmax, 100,0,1);
2485  fhNCellsTCardCorrRatioWithWeightNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2486  fhNCellsTCardCorrRatioWithWeightNoSelection[tm]->SetYTitle("#it{n}^{w>0.01}_{cells} / #it{n}_{cells}");
2487  outputContainer->Add(fhNCellsTCardCorrRatioWithWeightNoSelection[tm]);
2488 
2489  fhTimeTCardCorrNoSelection[tm] = new TH2F
2490  (Form("hTimeTCardCorrNoSelection%s",add[tm].Data()),
2491  Form("#it{time} vs #it{E} %s",add[tm].Data()),
2492  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2493  fhTimeTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2494  fhTimeTCardCorrNoSelection[tm]->SetYTitle("#it{time} (ns)");
2495  outputContainer->Add(fhTimeTCardCorrNoSelection[tm]);
2496 
2498  (Form("hLambda0TCardCorrNoSelection%s",add[tm].Data()),
2499  Form("#sigma^{2}_{long} vs #it{E} %s",add[tm].Data()),
2500  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2501  fhLambda0TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2502  fhLambda0TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{long}");
2503  outputContainer->Add(fhLambda0TCardCorrNoSelection[tm]);
2504 
2506  (Form("hLambda1TCardCorrNoSelection%s",add[tm].Data()),
2507  Form("#sigma^{2}_{short} vs #it{E} %s",add[tm].Data()),
2508  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2509  fhLambda1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2510  fhLambda1TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{short}");
2511  outputContainer->Add(fhLambda1TCardCorrNoSelection[tm]);
2512 
2514  (Form("hLambda0NLM1TCardCorrNoSelection%s",add[tm].Data()),
2515  Form("#sigma^{2}_{long} vs #it{E}, nlm=1 %s",add[tm].Data()),
2516  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2517  fhLambda0NLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2518  fhLambda0NLM1TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{long}");
2519  outputContainer->Add(fhLambda0NLM1TCardCorrNoSelection[tm]);
2520 
2522  (Form("hLambda1NLM1TCardCorrNoSelection%s",add[tm].Data()),
2523  Form("#sigma^{2}_{short} vs #it{E}, nlm=1 %s",add[tm].Data()),
2524  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2525  fhLambda1NLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2526  fhLambda1NLM1TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{short}");
2527  outputContainer->Add(fhLambda1NLM1TCardCorrNoSelection[tm]);
2528 
2530  (Form("hLambda0NLM2TCardCorrNoSelection%s",add[tm].Data()),
2531  Form("#sigma^{2}_{long} vs #it{E}, nlm=2 %s",add[tm].Data()),
2532  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2533  fhLambda0NLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2534  fhLambda0NLM2TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{long}");
2535  outputContainer->Add(fhLambda0NLM2TCardCorrNoSelection[tm]);
2536 
2538  (Form("hLambda1NLM2TCardCorrNoSelection%s",add[tm].Data()),
2539  Form("#sigma^{2}_{short} vs #it{E}, nlm=2 %s",add[tm].Data()),
2540  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2541  fhLambda1NLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2542  fhLambda1NLM2TCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{short}");
2543  outputContainer->Add(fhLambda1NLM2TCardCorrNoSelection[tm]);
2544 
2545 
2547  (Form("hLambdaRTCardCorrNoSelection%s",add[tm].Data()),
2548  Form("#sigma^{2}_{short}/#sigma^{2}_{long} vs #it{E} %s",add[tm].Data()),
2549  nptbins,ptmin,ptmax,110,0,1.1);
2550  fhLambdaRTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2551  fhLambdaRTCardCorrNoSelection[tm]->SetYTitle("#sigma^{2}_{short}/#sigma^{2}_{long}");
2552  outputContainer->Add(fhLambdaRTCardCorrNoSelection[tm]);
2553 
2555  (Form("hNLocMaxTCardCorrNoSelection%s",add[tm].Data()),
2556  Form("#it{n}_{LM} vs E %s",add[tm].Data()),
2557  nptbins,ptmin,ptmax,10,0,10);
2558  fhNLocMaxTCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2559  fhNLocMaxTCardCorrNoSelection[tm]->SetYTitle("#it{n}_{LM}");
2560  outputContainer->Add(fhNLocMaxTCardCorrNoSelection[tm]);
2561 
2563  (Form("hEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2564  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
2565  nptbins,ptmin,ptmax,100,0,1);
2566  fhEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2567  fhEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2568  outputContainer->Add(fhEMaxRatNLM1TCardCorrNoSelection[tm]);
2569 
2571  (Form("hEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2572  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2573  nptbins,ptmin,ptmax,100,0,1);
2574  fhEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2575  fhEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2576  outputContainer->Add(fhEMaxRatNLM2TCardCorrNoSelection[tm]);
2577 
2579  (Form("hEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2580  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2581  nptbins,ptmin,ptmax,100,0,1);
2582  fhEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2583  fhEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2584  outputContainer->Add(fhEMaxRatNLM3TCardCorrNoSelection[tm]);
2585 
2587  (Form("hE2ndRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2588  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cluster} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
2589  nptbins,ptmin,ptmax,100,0,1);
2590  fhE2ndRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2591  fhE2ndRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
2592  outputContainer->Add(fhE2ndRatNLM1TCardCorrNoSelection[tm]);
2593 
2595  (Form("hE2ndRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2596  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2597  nptbins,ptmin,ptmax,100,0,1);
2598  fhE2ndRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2599  fhE2ndRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2600  outputContainer->Add(fhE2ndRatNLM2TCardCorrNoSelection[tm]);
2601 
2603  (Form("hE2ndRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2604  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2605  nptbins,ptmin,ptmax,100,0,1);
2606  fhE2ndRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2607  fhE2ndRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2608  outputContainer->Add(fhE2ndRatNLM3TCardCorrNoSelection[tm]);
2609 
2610 
2612  (Form("hE2ndEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2613  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
2614  nptbins,ptmin,ptmax,100,0,1);
2615  fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2616  fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
2617  outputContainer->Add(fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]);
2618 
2620  (Form("hE2ndEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2621  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2622  nptbins,ptmin,ptmax,100,0,1);
2623  fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2624  fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2625  outputContainer->Add(fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]);
2626 
2628  (Form("hE2ndEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2629  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2630  nptbins,ptmin,ptmax,100,0,1);
2631  fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2632  fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2633  outputContainer->Add(fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]);
2634 
2636 
2638  (Form("hE2ndSameRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2639  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cluster} vs E, 2nd in same TCard as leading, #it{n}_{LM}=1 %s",add[tm].Data()),
2640  nptbins,ptmin,ptmax,100,0,1);
2641  fhE2ndSameRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2642  fhE2ndSameRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
2643  outputContainer->Add(fhE2ndSameRatNLM1TCardCorrNoSelection[tm]);
2644 
2646  (Form("hE2ndSameRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2647  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, 2nd in same TCard as leading, #it{n}_{LM}=2 %s",add[tm].Data()),
2648  nptbins,ptmin,ptmax,100,0,1);
2649  fhE2ndSameRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2650  fhE2ndSameRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2651  outputContainer->Add(fhE2ndSameRatNLM2TCardCorrNoSelection[tm]);
2652 
2654  (Form("hE2ndSameRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2655  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, 2nd in same TCard as leading, #it{n}_{LM}>2 %s",add[tm].Data()),
2656  nptbins,ptmin,ptmax,100,0,1);
2657  fhE2ndSameRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2658  fhE2ndSameRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2659  outputContainer->Add(fhE2ndSameRatNLM3TCardCorrNoSelection[tm]);
2660 
2661 
2663  (Form("hE2ndSameEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2664  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max} vs E, 2nd in same TCard as leading, #it{n}_{LM}=1 %s",add[tm].Data()),
2665  nptbins,ptmin,ptmax,100,0,1);
2666  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2667  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
2668  outputContainer->Add(fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]);
2669 
2671  (Form("hE2ndSameEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2672  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, 2nd in same TCard as leading, #it{n}_{LM}=2 %s",add[tm].Data()),
2673  nptbins,ptmin,ptmax,100,0,1);
2674  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2675  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2676  outputContainer->Add(fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]);
2677 
2679  (Form("hE2ndSameEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2680  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, 2nd in same TCard as leading, #it{n}_{LM}>2 %s",add[tm].Data()),
2681  nptbins,ptmin,ptmax,100,0,1);
2682  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2683  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2684  outputContainer->Add(fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]);
2685 
2687 
2689  (Form("hECellClusRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2690  Form("#it{E}_{cell}/#it{E}_{cluster} vs E_{cluster}, #it{n}_{LM}=1 %s",add[tm].Data()),
2691  nptbins,ptmin,ptmax,100,0,1);
2692  fhECellClusRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2693  fhECellClusRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2694  outputContainer->Add(fhECellClusRatNLM1TCardCorrNoSelection[tm]);
2695 
2697  (Form("hECellClusRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2698  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2699  nptbins,ptmin,ptmax,100,0,1);
2700  fhECellClusRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2701  fhECellClusRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2702  outputContainer->Add(fhECellClusRatNLM2TCardCorrNoSelection[tm]);
2703 
2705  (Form("hECellClusRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2706  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2707  nptbins,ptmin,ptmax,100,0,1);
2708  fhECellClusRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2709  fhECellClusRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2710  outputContainer->Add(fhECellClusRatNLM3TCardCorrNoSelection[tm]);
2711 
2713  (Form("hLogECellNLM1TCardCorrNoSelection%s",add[tm].Data()),
2714  Form("log(#it{E}_{cell}) vs E_{cluster}, #it{n}_{LM}=1, w > 0.01 %s",add[tm].Data()),
2715  nptbins,ptmin,ptmax,150,-3,3);
2716  fhLogECellNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2717  fhLogECellNLM1TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2718  outputContainer->Add(fhLogECellNLM1TCardCorrNoSelection[tm]);
2719 
2721  (Form("hLogECellNLM2TCardCorrNoSelection%s",add[tm].Data()),
2722  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}=2, w > 0.01 %s",add[tm].Data()),
2723  nptbins,ptmin,ptmax,150,-3,3);
2724  fhLogECellNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2725  fhLogECellNLM2TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2726  outputContainer->Add(fhLogECellNLM2TCardCorrNoSelection[tm]);
2727 
2729  (Form("hLogECellNLM3TCardCorrNoSelection%s",add[tm].Data()),
2730  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}>2, w > 0.01 %s",add[tm].Data()),
2731  nptbins,ptmin,ptmax,150,-3,3);
2732  fhLogECellNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2733  fhLogECellNLM3TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2734  outputContainer->Add(fhLogECellNLM3TCardCorrNoSelection[tm]);
2735 
2736 
2738  (Form("hECellWeightNLM1TCardCorrNoSelection%s",add[tm].Data()),
2739  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E_{cluster}, #it{n}_{LM}=1 %s",add[tm].Data()),
2740  nptbins,ptmin,ptmax,90,0,4.5);
2741  fhECellWeightNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2742  fhECellWeightNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2743  outputContainer->Add(fhECellWeightNLM1TCardCorrNoSelection[tm]);
2744 
2746  (Form("hECellWeightNLM2TCardCorrNoSelection%s",add[tm].Data()),
2747  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2748  nptbins,ptmin,ptmax,90,0,4.5);
2749  fhECellWeightNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2750  fhECellWeightNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2751  outputContainer->Add(fhECellWeightNLM2TCardCorrNoSelection[tm]);
2752 
2754  (Form("hECellWeightNLM3TCardCorrNoSelection%s",add[tm].Data()),
2755  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2756  nptbins,ptmin,ptmax,90,0,4.5);
2757  fhECellWeightNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2758  fhECellWeightNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2759  outputContainer->Add(fhECellWeightNLM3TCardCorrNoSelection[tm]);
2760 
2761 
2763  (Form("hECellSameClusRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2764  Form("#it{E}_{cell}/#it{E}_{cluster} vs E_{cluster}, cell from same T-Card as leading, #it{n}_{LM}=1 %s",add[tm].Data()),
2765  nptbins,ptmin,ptmax,100,0,1);
2766  fhECellSameClusRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2767  fhECellSameClusRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2768  outputContainer->Add(fhECellSameClusRatNLM1TCardCorrNoSelection[tm]);
2769 
2771  (Form("hECellSameClusRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2772  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, cell from same T-Card as leading, #it{n}_{LM}=2 %s",add[tm].Data()),
2773  nptbins,ptmin,ptmax,100,0,1);
2774  fhECellSameClusRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2775  fhECellSameClusRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2776  outputContainer->Add(fhECellSameClusRatNLM2TCardCorrNoSelection[tm]);
2777 
2779  (Form("hECellSameClusRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2780  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, cell from same T-Card as leading, #it{n}_{LM}>2 %s",add[tm].Data()),
2781  nptbins,ptmin,ptmax,100,0,1);
2782  fhECellSameClusRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2783  fhECellSameClusRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2784  outputContainer->Add(fhECellSameClusRatNLM3TCardCorrNoSelection[tm]);
2785 
2787  (Form("hLogECellSameNLM1TCardCorrNoSelection%s",add[tm].Data()),
2788  Form("log(#it{E}_{cell}) vs E_{cluster}, cell from same T-Card as leading, #it{n}_{LM}=1, w > 0.01 %s",add[tm].Data()),
2789  nptbins,ptmin,ptmax,150,-3,3);
2790  fhLogECellSameNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2791  fhLogECellSameNLM1TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2792  outputContainer->Add(fhLogECellSameNLM1TCardCorrNoSelection[tm]);
2793 
2795  (Form("hLogECellSameNLM2TCardCorrNoSelection%s",add[tm].Data()),
2796  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}=2, cell from same T-Card as leading, w > 0.01 %s",add[tm].Data()),
2797  nptbins,ptmin,ptmax,150,-3,3);
2798  fhLogECellSameNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2799  fhLogECellSameNLM2TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2800  outputContainer->Add(fhLogECellSameNLM2TCardCorrNoSelection[tm]);
2801 
2803  (Form("hLogECellSameNLM3TCardCorrNoSelection%s",add[tm].Data()),
2804  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}>2, cell from same T-Card as leading, w > 0.01 %s",add[tm].Data()),
2805  nptbins,ptmin,ptmax,150,-3,3);
2806  fhLogECellSameNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2807  fhLogECellSameNLM3TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2808  outputContainer->Add(fhLogECellSameNLM3TCardCorrNoSelection[tm]);
2809 
2810 
2812  (Form("hECellSameWeightNLM1TCardCorrNoSelection%s",add[tm].Data()),
2813  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E_{cluster}, cell from same T-Card as leading, #it{n}_{LM}=1 %s",add[tm].Data()),
2814  nptbins,ptmin,ptmax,90,0,4.5);
2815  fhECellSameWeightNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2816  fhECellSameWeightNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2817  outputContainer->Add(fhECellSameWeightNLM1TCardCorrNoSelection[tm]);
2818 
2820  (Form("hECellSameWeightNLM2TCardCorrNoSelection%s",add[tm].Data()),
2821  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E, cell from same T-Card as leading, #it{n}_{LM}=2 %s",add[tm].Data()),
2822  nptbins,ptmin,ptmax,90,0,4.5);
2823  fhECellSameWeightNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2824  fhECellSameWeightNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2825  outputContainer->Add(fhECellSameWeightNLM2TCardCorrNoSelection[tm]);
2826 
2828  (Form("hECellSameWeightNLM3TCardCorrNoSelection%s",add[tm].Data()),
2829  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))vs E, cell from same T-Card as leading, #it{n}_{LM}>2 %s",add[tm].Data()),
2830  nptbins,ptmin,ptmax,90,0,4.5);
2831  fhECellSameWeightNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2832  fhECellSameWeightNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2833  outputContainer->Add(fhECellSameWeightNLM3TCardCorrNoSelection[tm]);
2834 
2836  (Form("hExoticTCardCorrNoSelection%s",add[tm].Data()),
2837  Form("exoticity vs #it{E} %s",add[tm].Data()),
2838  nptbins,ptmin,ptmax,200,-1,1);
2839  fhExoticTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2840  fhExoticTCardCorrNoSelection[tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2841  outputContainer->Add(fhExoticTCardCorrNoSelection[tm]);
2842 
2844  (Form("hNCellsTCardSameAndDiffFraction%s",add[tm].Data()),
2845  Form("#it{n}_{cells} same TCard vs diff TCard fraction, w > 0.01, %s",add[tm].Data()),
2846  nptbins,ptmin,ptmax,100,0,1);
2847  fhNCellsTCardSameAndDiffFraction[tm]->SetXTitle("#it{E} (GeV)");
2848  fhNCellsTCardSameAndDiffFraction[tm]->SetYTitle("#it{n}_{cells} - same TCard / #it{n}_{cells} - total");
2849  outputContainer->Add(fhNCellsTCardSameAndDiffFraction[tm]);
2850 
2852  (Form("hSameRowDiffColAndTCardCellsEnergyDiffClusterE%s",add[tm].Data()),
2853  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} vs #it{E}_{cluster} %s",add[tm].Data()),
2854  nptbins,ptmin,ptmax,200,-10,10);
2855  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2856  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2857  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]);
2858 
2860  (Form("hSameRowDiffColAndTCardCellsTimeDiffClusterE%s",add[tm].Data()),
2861  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} vs #it{E}_{cluster} %s",add[tm].Data()),
2862  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2863  fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2864  fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2865  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]);
2866 
2868  (Form("hSameRowDiffColAndTCardCellsEnergyDiffCellMaxE%s",add[tm].Data()),
2869  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} vs #it{E}_{cell max} %s",add[tm].Data()),
2870  nptbins,ptmin,ptmax,200,-10,10);
2871  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2872  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2873  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]);
2874 
2876  (Form("hSameRowDiffColAndTCardCellsTimeDiffCellMaxE%s",add[tm].Data()),
2877  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} vs #it{E}_{cell max} %s",add[tm].Data()),
2878  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2879  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2880  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2881  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]);
2882 
2883  if(fStudyExotic)
2884  {
2885  fhEnergyTime1Cell[tm] = new TH2F
2886  (Form("hEnergyTime1Cell%s",add[tm].Data()),
2887  Form("#it{t} vs #it{E}, 1 cells cluster %s",add[tm].Data()),
2888  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2889  fhEnergyTime1Cell[tm]->SetXTitle("#it{E} (GeV)");
2890  fhEnergyTime1Cell[tm]->SetYTitle("#it{t} (ns)");
2891  outputContainer->Add(fhEnergyTime1Cell[tm]);
2892 
2893  fhEnergyTimeExotic[tm] = new TH2F
2894  (Form("hEnergyTimeExotic%s",add[tm].Data()),
2895  Form("#it{t} vs #it{E}, exo > 0.97, %s",add[tm].Data()),
2896  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2897  fhEnergyTimeExotic[tm]->SetXTitle("#it{E} (GeV)");
2898  fhEnergyTimeExotic[tm]->SetYTitle("#it{t} (ns)");
2899  outputContainer->Add(fhEnergyTimeExotic[tm]);
2900 
2902  (Form("hEnergyTimeTCardCorrNoSelection1Cell%s",add[tm].Data()),
2903  Form("#it{t} vs #it{E}, 1 cells cluster %s",add[tm].Data()),
2904  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2905  fhEnergyTimeTCardCorrNoSelection1Cell[tm]->SetXTitle("#it{E} (GeV)");
2906  fhEnergyTimeTCardCorrNoSelection1Cell[tm]->SetYTitle("#it{t} (ns)");
2907  outputContainer->Add(fhEnergyTimeTCardCorrNoSelection1Cell[tm]);
2908 
2910  (Form("hEnergyTimeTCardCorrNoSelectionExotic%s",add[tm].Data()),
2911  Form("#it{t} vs #it{E}, exo > 0.97, %s",add[tm].Data()),
2912  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2913  fhEnergyTimeTCardCorrNoSelectionExotic[tm]->SetXTitle("#it{E} (GeV)");
2914  fhEnergyTimeTCardCorrNoSelectionExotic[tm]->SetYTitle("#it{t} (ns)");
2915  outputContainer->Add(fhEnergyTimeTCardCorrNoSelectionExotic[tm]);
2916 
2917  fhColRowExoticLowE1Cell[tm] = new TH2F
2918  (Form("hColRowExoticLowE1Cell%s",add[tm].Data()),
2919  Form("column vs row, 1 cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2920  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2921  fhColRowExoticLowE1Cell[tm]->SetYTitle("row");
2922  fhColRowExoticLowE1Cell[tm]->SetXTitle("column");
2923  outputContainer->Add(fhColRowExoticLowE1Cell[tm]) ;
2924 
2925  fhColRowExoticHighE1Cell[tm] = new TH2F
2926  (Form("hColRowExoticHighE1Cell%s",add[tm].Data()),
2927  Form("column vs row, 1 cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2928  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2929  fhColRowExoticHighE1Cell[tm]->SetYTitle("row");
2930  fhColRowExoticHighE1Cell[tm]->SetXTitle("column");
2931  outputContainer->Add(fhColRowExoticHighE1Cell[tm]) ;
2932 
2933  fhColRowExoticLowE[tm] = new TH2F
2934  (Form("hColRowExoticLowE%s",add[tm].Data()),
2935  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2936  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2937  fhColRowExoticLowE[tm]->SetYTitle("row");
2938  fhColRowExoticLowE[tm]->SetXTitle("column");
2939  outputContainer->Add(fhColRowExoticLowE[tm]) ;
2940 
2941  fhColRowExoticHighE[tm] = new TH2F
2942  (Form("hColRowExoticHighE%s",add[tm].Data()),
2943  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2944  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2945  fhColRowExoticHighE[tm]->SetYTitle("row");
2946  fhColRowExoticHighE[tm]->SetXTitle("column");
2947  outputContainer->Add(fhColRowExoticHighE[tm]) ;
2948 
2950  (Form("hColRowExotic2ndCellDiffLowE%s",add[tm].Data()),
2951  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2952  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2953  fhColRowExotic2ndCellDiffLowE[tm]->SetYTitle("row");
2954  fhColRowExotic2ndCellDiffLowE[tm]->SetXTitle("column");
2955  outputContainer->Add(fhColRowExotic2ndCellDiffLowE[tm]) ;
2956 
2958  (Form("hColRowExotic2ndCellDiffHighE%s",add[tm].Data()),
2959  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2960  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2961  fhColRowExotic2ndCellDiffHighE[tm]->SetYTitle("row");
2962  fhColRowExotic2ndCellDiffHighE[tm]->SetXTitle("column");
2963  outputContainer->Add(fhColRowExotic2ndCellDiffHighE[tm]) ;
2964 
2966  (Form("hColRowExotic2ndCellSameLowE%s",add[tm].Data()),
2967  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2968  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2969  fhColRowExotic2ndCellSameLowE[tm]->SetYTitle("row");
2970  fhColRowExotic2ndCellSameLowE[tm]->SetXTitle("column");
2971  outputContainer->Add(fhColRowExotic2ndCellSameLowE[tm]) ;
2972 
2974  (Form("hColRowExotic2ndCellSameHighE%s",add[tm].Data()),
2975  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2976  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2977  fhColRowExotic2ndCellSameHighE[tm]->SetYTitle("row");
2978  fhColRowExotic2ndCellSameHighE[tm]->SetXTitle("column");
2979  outputContainer->Add(fhColRowExotic2ndCellSameHighE[tm]) ;
2980 
2982  (Form("hColRowTCardCorrNoSelectionExoticLowE%s",add[tm].Data()),
2983  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2984  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2985  fhColRowTCardCorrNoSelectionExoticLowE[tm]->SetYTitle("row");
2986  fhColRowTCardCorrNoSelectionExoticLowE[tm]->SetXTitle("column");
2987  outputContainer->Add(fhColRowTCardCorrNoSelectionExoticLowE[tm]) ;
2988 
2990  (Form("hColRowTCardCorrNoSelectionExoticHighE%s",add[tm].Data()),
2991  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2992  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2993  fhColRowTCardCorrNoSelectionExoticHighE[tm]->SetYTitle("row");
2994  fhColRowTCardCorrNoSelectionExoticHighE[tm]->SetXTitle("column");
2995  outputContainer->Add(fhColRowTCardCorrNoSelectionExoticHighE[tm]) ;
2996 
2998  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffLowE%s",add[tm].Data()),
2999  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
3000  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3002  fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE[tm]->SetXTitle("column");
3003  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE[tm]) ;
3004 
3006  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffHighE%s",add[tm].Data()),
3007  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
3008  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3010  fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[tm]->SetXTitle("column");
3011  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[tm]) ;
3012 
3014  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameLowE%s",add[tm].Data()),
3015  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
3016  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3018  fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE[tm]->SetXTitle("column");
3019  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE[tm]) ;
3020 
3022  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameHighE%s",add[tm].Data()),
3023  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
3024  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3026  fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[tm]->SetXTitle("column");
3027  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[tm]) ;
3028 
3030  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameLowE%s",add[tm].Data()),
3031  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
3032  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3036 
3038  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameHighE%s",add[tm].Data()),
3039  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
3040  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3044 
3046  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffLowE%s",add[tm].Data()),
3047  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
3048  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3052 
3054  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffHighE%s",add[tm].Data()),
3055  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
3056  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3060 
3062  (Form("hNCellsTCardSameAndDiffFraction_Exotic%s",add[tm].Data()),
3063  Form("#it{n}_{cells} same TCard vs diff TCard fraction, w > 0.01, exo > 0.97 %s",add[tm].Data()),
3064  nptbins,ptmin,ptmax,100,0,1);
3065  fhNCellsTCardSameAndDiffFractionExotic[tm]->SetXTitle("#it{E} (GeV)");
3066  fhNCellsTCardSameAndDiffFractionExotic[tm]->SetYTitle("#it{n}_{cells} - same TCard / #it{n}_{cells} - total");
3067  outputContainer->Add(fhNCellsTCardSameAndDiffFractionExotic[tm]);
3068 
3070  (Form("hSameRowDiffColAndTCardCellsEnergyDiffClusterEExo%s",add[tm].Data()),
3071  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} vs #it{E}_{cluster}, exo > 0.97 %s",add[tm].Data()),
3072  nptbins,ptmin,ptmax,200,-10,10);
3073  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3074  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
3075  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]);
3076 
3078  (Form("hSameRowDiffColAndTCardCellsTimeDiffClusterEExo%s",add[tm].Data()),
3079  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} vs #it{E}_{cluster}, exo > 0.97 %s",add[tm].Data()),
3080  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
3081  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3082  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
3083  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]);
3084 
3086  (Form("hSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo%s",add[tm].Data()),
3087  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} vs #it{E}_{cell max}, exo > 0.97 %s",add[tm].Data()),
3088  nptbins,ptmin,ptmax,200,-10,10);
3089  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
3090  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
3091  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]);
3092 
3094  (Form("hSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo%s",add[tm].Data()),
3095  Form("#Delta row = 0, |#Delta col = 1|, with respect to leading cell, #it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} vs #it{E}_{cell max}, exo > 0.97 %s",add[tm].Data()),
3096  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
3097  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
3098  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
3099  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]);
3100  }
3101 
3102  for(Int_t i = 0; i < 6; i++)
3103  {
3104  for(Int_t j = 0; j < 6; j++)
3105  {
3106  fhLambda0TCardCorrelNCell[i][j][tm] = new TH2F
3107  (Form("hLambda0TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3108  Form("#sigma^{2}_{long} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3109  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3110  fhLambda0TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3111  fhLambda0TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{long}");
3112  outputContainer->Add(fhLambda0TCardCorrelNCell[i][j][tm]);
3113 
3114  fhLambda1TCardCorrelNCell[i][j][tm] = new TH2F
3115  (Form("hLambda1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3116  Form("#sigma^{2}_{short} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3117  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3118  fhLambda1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3119  fhLambda1TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{short}");
3120  outputContainer->Add(fhLambda1TCardCorrelNCell[i][j][tm]);
3121 
3122  fhLambda0NLM1TCardCorrelNCell[i][j][tm] = new TH2F
3123  (Form("hLambda0NLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3124  Form("#sigma^{2}_{long} vs #it{E}, nlm=1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3125  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3126  fhLambda0NLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3127  fhLambda0NLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{long}");
3128  outputContainer->Add(fhLambda0NLM1TCardCorrelNCell[i][j][tm]);
3129 
3130  fhLambda1NLM1TCardCorrelNCell[i][j][tm] = new TH2F
3131  (Form("hLambda1NLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3132  Form("#sigma^{2}_{short} vs #it{E}, nlm=1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3133  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3134  fhLambda1NLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3135  fhLambda1NLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{short}");
3136  outputContainer->Add(fhLambda1NLM1TCardCorrelNCell[i][j][tm]);
3137 
3138  fhLambda0NLM2TCardCorrelNCell[i][j][tm] = new TH2F
3139  (Form("hLambda0NLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3140  Form("#sigma^{2}_{long} vs #it{E}, nlm=2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3141  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3142  fhLambda0NLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3143  fhLambda0NLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{long}");
3144  outputContainer->Add(fhLambda0NLM2TCardCorrelNCell[i][j][tm]);
3145 
3146  fhLambda1NLM2TCardCorrelNCell[i][j][tm] = new TH2F
3147  (Form("hLambda1NLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3148  Form("#sigma^{2}_{short} vs #it{E}, nlm=2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3149  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3150  fhLambda1NLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3151  fhLambda1NLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{short}");
3152  outputContainer->Add(fhLambda1NLM2TCardCorrelNCell[i][j][tm]);
3153 
3154 
3155  // fhLambdaRTCardCorrelNCell[i][j][tm] = new TH2F
3156  // (Form("hLambdaRTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3157  // Form("#sigma^{2}_{short}/#sigma^{2}_{long} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3158  // nptbins,ptmin,ptmax,110,0,1.1);
3159  // fhLambdaRTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3160  // fhLambdaRTCardCorrelNCell[i][j][tm]->SetYTitle("#sigma^{2}_{short}/#sigma^{2}_{long}");
3161  // outputContainer->Add(fhLambdaRTCardCorrelNCell[i][j][tm]);
3162 
3163  fhNLocMaxTCardCorrelNCell[i][j][tm] = new TH2F
3164  (Form("hNLocMaxTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3165  Form("#it{n}_{LM} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3166  nptbins,ptmin,ptmax,10,0,10);
3167  fhNLocMaxTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3168  fhNLocMaxTCardCorrelNCell[i][j][tm]->SetYTitle("#it{n}_{LM}");
3169  outputContainer->Add(fhNLocMaxTCardCorrelNCell[i][j][tm]);
3170 
3171  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3172  (Form("hEMaxRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3173  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3174  nptbins,ptmin,ptmax,100,0,1);
3175  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3176  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
3177  outputContainer->Add(fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]);
3178 
3179  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3180  (Form("hEMaxRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3181  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3182  nptbins,ptmin,ptmax,100,0,1);
3183  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3184  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
3185  outputContainer->Add(fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]);
3186 
3187  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3188  (Form("hEMaxRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3189  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3190  nptbins,ptmin,ptmax,100,0,1);
3191  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3192  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
3193  outputContainer->Add(fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]);
3194 
3195  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3196  (Form("hE2ndRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3197  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3198  nptbins,ptmin,ptmax,100,0,1);
3199  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3200  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
3201  outputContainer->Add(fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]);
3202 
3203  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3204  (Form("hE2ndRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3205  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3206  nptbins,ptmin,ptmax,100,0,1);
3207  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3208  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
3209  outputContainer->Add(fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]);
3210 
3211  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3212  (Form("hE2ndRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3213  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3214  nptbins,ptmin,ptmax,100,0,1);
3215  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3216  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
3217  outputContainer->Add(fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]);
3218 
3219  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3220  (Form("hE2ndEMaxRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3221  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max} vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3222  nptbins,ptmin,ptmax,100,0,1);
3223  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3224  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
3225  outputContainer->Add(fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]);
3226 
3227  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3228  (Form("hE2ndEMaxRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3229  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3230  nptbins,ptmin,ptmax,100,0,1);
3231  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3232  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
3233  outputContainer->Add(fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]);
3234 
3235  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3236  (Form("hE2ndEMaxRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3237  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs #it{E}_{cell}^{max}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3238  nptbins,ptmin,ptmax,100,0,1);
3239  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3240  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
3241  outputContainer->Add(fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]);
3242 
3243 
3244  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3245  (Form("hECellClusRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3246  Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3247  nptbins,ptmin,ptmax,100,0,1);
3248  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3249  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3250  outputContainer->Add(fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]);
3251 
3252  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3253  (Form("hECellClusRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3254  Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3255  nptbins,ptmin,ptmax,100,0,1);
3256  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3257  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3258  outputContainer->Add(fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]);
3259 
3260  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3261  (Form("hECellClusRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3262  Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3263  nptbins,ptmin,ptmax,100,0,1);
3264  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3265  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3266  outputContainer->Add(fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]);
3267 
3268  fhLogECellNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3269  (Form("hLogECellNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3270  Form("log(#it{E}_{cell}) vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3271  nptbins,ptmin,ptmax,150,-3,3);
3272  fhLogECellNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3273  fhLogECellNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
3274  outputContainer->Add(fhLogECellNLM1TCardCorrelNCell[i][j][tm]);
3275 
3276  fhLogECellNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3277  (Form("hLogECellNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3278  Form("log(#it{E}_{cell}) vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3279  nptbins,ptmin,ptmax,150,-3,3);
3280  fhLogECellNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3281  fhLogECellNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
3282  outputContainer->Add(fhLogECellNLM2TCardCorrelNCell[i][j][tm]);
3283 
3284  fhLogECellNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3285  (Form("hLogECellNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3286  Form("log(#it{E}_{cell}) vs #it{E}_{cluster}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3287  nptbins,ptmin,ptmax,150,-3,3);
3288  fhLogECellNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3289  fhLogECellNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
3290  outputContainer->Add(fhLogECellNLM3TCardCorrelNCell[i][j][tm]);
3291 
3292  fhECellWeightNLM1TCardCorrelNCell[i][j][tm] = new TH2F
3293  (Form("hECellWeightNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3294  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs #it{E}_{cluster}, #it{n}_{LM} = 1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3295  nptbins,ptmin,ptmax,90,0,4.5);
3296  fhECellWeightNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3297  fhECellWeightNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
3298  outputContainer->Add(fhECellWeightNLM1TCardCorrelNCell[i][j][tm]);
3299 
3300  fhECellWeightNLM2TCardCorrelNCell[i][j][tm] = new TH2F
3301  (Form("hECellWeightNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3302  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs #it{E}_{cluster}, #it{n}_{LM} = 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3303  nptbins,ptmin,ptmax,90,0,4.5);
3304  fhECellWeightNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3305  fhECellWeightNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
3306  outputContainer->Add(fhECellWeightNLM2TCardCorrelNCell[i][j][tm]);
3307 
3308  fhECellWeightNLM3TCardCorrelNCell[i][j][tm] = new TH2F
3309  (Form("hECellWeightNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3310  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs #it{E}_{cluster}, #it{n}_{LM} > 2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3311  nptbins,ptmin,ptmax,90,0,4.5);
3312  fhECellWeightNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
3313  fhECellWeightNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("Log. weight");
3314  outputContainer->Add(fhECellWeightNLM3TCardCorrelNCell[i][j][tm]);
3315 
3316  if ( fStudyInvMass )
3317  {
3318  fhMassEClusTCardCorrelNCell[i][j][tm] = new TH2F
3319  (Form("hMassEClusTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3320  Form("#it{M}_{#gamma #gamma} vs #it{E}_{cluster}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3321  nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
3322  fhMassEClusTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
3323  fhMassEClusTCardCorrelNCell[i][j][tm]->SetYTitle("#it{M}_{#gamma #gamma}");
3324  outputContainer->Add(fhMassEClusTCardCorrelNCell[i][j][tm]);
3325 
3326  // fhMassEPairTCardCorrelNCell[i][j][tm] = new TH2F
3327  // (Form("hMassEPairTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3328  // Form("#it{M}_{#gamma #gamma} vs #it{E}_{pair}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3329  // nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
3330  // fhMassEPairTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{pair} (GeV)");
3331  // fhMassEPairTCardCorrelNCell[i][j][tm]->SetYTitle("#it{M}_{#gamma #gamma}");
3332  // outputContainer->Add(fhMassEPairTCardCorrelNCell[i][j][tm]);
3333  }
3334 
3335  fhTimeDiffTCardCorrelNCell[i][j][tm] = new TH2F
3336  (Form("hTimeDiffTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3337  Form("#it{t}_{cell}^{max}-#it{t}_{cell}^{other} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3338  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
3339  fhTimeDiffTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3340  fhTimeDiffTCardCorrelNCell[i][j][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell}^{other}");
3341  outputContainer->Add(fhTimeDiffTCardCorrelNCell[i][j][tm]);
3342 
3343  fhColRowTCardCorrelNCellLowE[i][j][tm] = new TH2F
3344  (Form("hColRowTCardCorrelNCellLowE_Same%d_Diff%d%s",i,j,add[tm].Data()),
3345  Form("column vs row, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3346  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3347  fhColRowTCardCorrelNCellLowE[i][j][tm]->SetYTitle("row");
3348  fhColRowTCardCorrelNCellLowE[i][j][tm]->SetXTitle("column");
3349  outputContainer->Add(fhColRowTCardCorrelNCellLowE[i][j][tm]) ;
3350 
3351  fhColRowTCardCorrelNCellHighE[i][j][tm] = new TH2F
3352  (Form("hColRowTCardCorrelNCellHighE_Same%d_Diff%d%s",i,j,add[tm].Data()),
3353  Form("column vs row,N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3354  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3355  fhColRowTCardCorrelNCellHighE[i][j][tm]->SetYTitle("row");
3356  fhColRowTCardCorrelNCellHighE[i][j][tm]->SetXTitle("column");
3357  outputContainer->Add(fhColRowTCardCorrelNCellHighE[i][j][tm]) ;
3358 
3359  if(fStudyExotic)
3360  {
3361  fhExoticTCardCorrelNCell[i][j][tm] = new TH2F
3362  (Form("hExoticTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3363  Form("exoticity vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3364  nptbins,ptmin,ptmax,200,-1,1);
3365  fhExoticTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3366  fhExoticTCardCorrelNCell[i][j][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3367  outputContainer->Add(fhExoticTCardCorrelNCell[i][j][tm]);
3368 
3369  fhTimeDiffExoTCardCorrelNCell[i][j][tm] = new TH2F
3370  (Form("hTimeDiffExoTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
3371  Form("#it{t}_{cell}^{max}-#it{t}_{cell}^{other} vs #it{E}, N cells with w > 0.01, exoticity > 0.97, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3372  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
3373  fhTimeDiffExoTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
3374  fhTimeDiffExoTCardCorrelNCell[i][j][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell}^{other}");
3375  outputContainer->Add(fhTimeDiffExoTCardCorrelNCell[i][j][tm]);
3376 
3378  (Form("hColRowTCardCorrelNCellExoticLowE_Same%d_Diff%d%s",i,j,add[tm].Data()),
3379  Form("column vs row, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3380  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3381  fhColRowTCardCorrelNCellExoticLowE[i][j][tm]->SetYTitle("row");
3382  fhColRowTCardCorrelNCellExoticLowE[i][j][tm]->SetXTitle("column");
3383  outputContainer->Add(fhColRowTCardCorrelNCellExoticLowE[i][j][tm]) ;
3384 
3386  (Form("hColRowTCardCorrelNCellExoticHighE_Same%d_Diff%d%s",i,j,add[tm].Data()),
3387  Form("column vs row,N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
3388  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3389  fhColRowTCardCorrelNCellExoticHighE[i][j][tm]->SetYTitle("row");
3390  fhColRowTCardCorrelNCellExoticHighE[i][j][tm]->SetXTitle("column");
3391  outputContainer->Add(fhColRowTCardCorrelNCellExoticHighE[i][j][tm]) ;
3392  }
3393  }
3394 
3397 
3398  // fhLambda0TCardCorrelN[i][tm] = new TH2F
3399  // (Form("hLambda0TCardCorrelN_Case%d%s",i,add[tm].Data()),
3400  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
3401  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3402  // fhLambda0TCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
3403  // fhLambda0TCardCorrelN[i][tm]->SetYTitle("#sigma^{2}_{long}");
3404  // outputContainer->Add(fhLambda0TCardCorrelN[i][tm]);
3405  //
3406  // fhNCellsTCardCorrelN[i][tm] = new TH2F
3407  // (Form("hNCellsTCardCorrelN_Case%d%s",i,add[tm].Data()),
3408  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
3409  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3410  // fhNCellsTCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
3411  // fhNCellsTCardCorrelN[i][tm]->SetYTitle("#it{n}_{cells}");
3412  // outputContainer->Add(fhNCellsTCardCorrelN[i][tm]);
3413  //
3414  // fhExoticTCardCorrelN[i][tm] = new TH2F
3415  // (Form("hExoticTCardCorrelN_Case%d%s",i,add[tm].Data()),
3416  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
3417  // nptbins,ptmin,ptmax,200,-1,1);
3418  // fhExoticTCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
3419  // fhExoticTCardCorrelN[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3420  // outputContainer->Add(fhExoticTCardCorrelN[i][tm]);
3421  //
3422  // fhColRowTCardCorrelNLowE[i][tm] = new TH2F
3423  // (Form("hColRowTCardCorrelNLowE_Case%d%s",i,add[tm].Data()),
3424  // Form("column vs row, max E cell correl with TCard cell, E > 2 GeV, N corr = %d %s",i,add[tm].Data()),
3425  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3426  // fhColRowTCardCorrelNLowE[i][tm]->SetYTitle("row");
3427  // fhColRowTCardCorrelNLowE[i][tm]->SetXTitle("column");
3428  // outputContainer->Add(fhColRowTCardCorrelNLowE[i][tm]) ;
3429  //
3430  // fhColRowTCardCorrelNHighE[i][tm] = new TH2F
3431  // (Form("hColRowTCardCorrelNHighE_Case%d%s",i,add[tm].Data()),
3432  // Form("column vs row, max E cell correl with TCard cell, E > 8 GeV, N corr = %d %s",i,add[tm].Data()),
3433  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3434  // fhColRowTCardCorrelNHighE[i][tm]->SetYTitle("row");
3435  // fhColRowTCardCorrelNHighE[i][tm]->SetXTitle("column");
3436  // outputContainer->Add(fhColRowTCardCorrelNHighE[i][tm]) ;
3437  //
3438  // ////////
3439  // ////////
3440  //
3441  // fhLambda0TCardCorrelNExotic[i][tm] = new TH2F
3442  // (Form("hLambda0TCardCorrelN_Exotic_Case%d%s",i,add[tm].Data()),
3443  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, exo > 0.97, N corr = %d %s",i,add[tm].Data()),
3444  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3445  // fhLambda0TCardCorrelNExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3446  // fhLambda0TCardCorrelNExotic[i][tm]->SetYTitle("#sigma^{2}_{long}");
3447  // outputContainer->Add(fhLambda0TCardCorrelNExotic[i][tm]);
3448  //
3449  // fhNCellsTCardCorrelNExotic[i][tm] = new TH2F
3450  // (Form("hNCellsTCardCorrelN_Exotic_Case%d%s",i,add[tm].Data()),
3451  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, exo > 0.97, N corr = %d %s",i,add[tm].Data()),
3452  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3453  // fhNCellsTCardCorrelNExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3454  // fhNCellsTCardCorrelNExotic[i][tm]->SetYTitle("#it{n}_{cells}");
3455  // outputContainer->Add(fhNCellsTCardCorrelNExotic[i][tm]);
3456  //
3457  // fhColRowTCardCorrelNLowEExotic[i][tm] = new TH2F
3458  // (Form("hColRowTCardCorrelNLowEExotic_Case%d%s",i,add[tm].Data()),
3459  // Form("column vs row, max E cell correl with TCard cell, exo > 0.97, E > 2 GeV, N corr = %d %s",i,add[tm].Data()),
3460  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3461  // fhColRowTCardCorrelNLowEExotic[i][tm]->SetYTitle("row");
3462  // fhColRowTCardCorrelNLowEExotic[i][tm]->SetXTitle("column");
3463  // outputContainer->Add(fhColRowTCardCorrelNLowEExotic[i][tm]) ;
3464  //
3465  // fhColRowTCardCorrelNHighEExotic[i][tm] = new TH2F
3466  // (Form("hColRowTCardCorrelNHighEExotic_Case%d%s",i,add[tm].Data()),
3467  // Form("column vs row, max E cell correl with TCard cell, exo > 0.97, E > 8 GeV, N corr = %d %s",i,add[tm].Data()),
3468  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3469  // fhColRowTCardCorrelNHighEExotic[i][tm]->SetYTitle("row");
3470  // fhColRowTCardCorrelNHighEExotic[i][tm]->SetXTitle("column");
3471  // outputContainer->Add(fhColRowTCardCorrelNHighEExotic[i][tm]) ;
3472  //
3473  // ///////////
3474  // ///////////
3475  //
3476  // fhLambda0TCardCorrelNAllSameTCard[i][tm] = new TH2F
3477  // (Form("hLambda0TCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
3478  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3479  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3480  // fhLambda0TCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3481  // fhLambda0TCardCorrelNAllSameTCard[i][tm]->SetYTitle("#sigma^{2}_{long}");
3482  // outputContainer->Add(fhLambda0TCardCorrelNAllSameTCard[i][tm]);
3483  //
3484  // fhNCellsTCardCorrelNAllSameTCard[i][tm] = new TH2F
3485  // (Form("hNCellsTCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
3486  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3487  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3488  // fhNCellsTCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3489  // fhNCellsTCardCorrelNAllSameTCard[i][tm]->SetYTitle("#it{n}_{cells}");
3490  // outputContainer->Add(fhNCellsTCardCorrelNAllSameTCard[i][tm]);
3491  //
3492  // fhExoticTCardCorrelNAllSameTCard[i][tm] = new TH2F
3493  // (Form("hExoticTCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
3494  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3495  // nptbins,ptmin,ptmax,200,-1,1);
3496  // fhExoticTCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3497  // fhExoticTCardCorrelNAllSameTCard[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3498  // outputContainer->Add(fhExoticTCardCorrelNAllSameTCard[i][tm]);
3499  //
3500  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm] = new TH2F
3501  // (Form("hColRowTCardCorrelNAllSameTCardLowE_Case%d%s",i,add[tm].Data()),
3502  // Form("column vs row, max E cell correl with TCard cell, E > 2 GeV, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3503  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3504  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm]->SetYTitle("row");
3505  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm]->SetXTitle("column");
3506  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardLowE[i][tm]) ;
3507  //
3508  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm] = new TH2F
3509  // (Form("hColRowTCardCorrelNAllSameTCardHighE_Case%d%s",i,add[tm].Data()),
3510  // Form("column vs row, max E cell correl with TCard cell, E > 8 GeV, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3511  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3512  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm]->SetYTitle("row");
3513  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm]->SetXTitle("column");
3514  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardHighE[i][tm]) ;
3515  //
3516  // ////////
3517  //
3518  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm] = new TH2F
3519  // (Form("hLambda0TCardCorrelNAllSameTCard_Exotic_Case%d%s",i,add[tm].Data()),
3520  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, exo > 0.97, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3521  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3522  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3523  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]->SetYTitle("#sigma^{2}_{long}");
3524  // outputContainer->Add(fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]);
3525  //
3526  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm] = new TH2F
3527  // (Form("hNCellsTCardCorrelNAllSameTCard_Exotic_Case%d%s",i,add[tm].Data()),
3528  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, exo > 0.97, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3529  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3530  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3531  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]->SetYTitle("#it{n}_{cells}");
3532  // outputContainer->Add(fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]);
3533  //
3534  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm] = new TH2F
3535  // (Form("hColRowTCardCorrelNAllSameTCardLowEExotic_Case%d%s",i,add[tm].Data()),
3536  // Form("column vs row, max E cell correl with TCard cell, exo > 0.97, E > 2 GeV, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3537  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3538  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]->SetYTitle("row");
3539  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]->SetXTitle("column");
3540  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]) ;
3541  //
3542  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm] = new TH2F
3543  // (Form("hColRowTCardCorrelNAllSameTCardHighEExotic_Case%d%s",i,add[tm].Data()),
3544  // Form("column vs row, max E cell correl with TCard cell, exo > 0.97, E > 8 GeV, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
3545  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3546  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]->SetYTitle("row");
3547  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]->SetXTitle("column");
3548  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]) ;
3549  }
3550 
3551  // for(Int_t i = 0; i < 7; i++)
3552  // {
3553  // fhLambda0TCardCorrel[i][tm] = new TH2F
3554  // (Form("hLambda0TCardCorrel_Case%d%s",i,add[tm].Data()),
3555  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
3556  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3557  // fhLambda0TCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
3558  // fhLambda0TCardCorrel[i][tm]->SetYTitle("#sigma^{2}_{long}");
3559  // outputContainer->Add(fhLambda0TCardCorrel[i][tm]);
3560  //
3561  // fhNCellsTCardCorrel[i][tm] = new TH2F
3562  // (Form("hNCellsTCardCorrel_Case%d%s",i,add[tm].Data()),
3563  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
3564  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3565  // fhNCellsTCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
3566  // fhNCellsTCardCorrel[i][tm]->SetYTitle("#it{n}_{cells}");
3567  // outputContainer->Add(fhNCellsTCardCorrel[i][tm]);
3568  //
3569  // fhExoticTCardCorrel[i][tm] = new TH2F
3570  // (Form("hExoticTCardCorrel_Case%d%s",i,add[tm].Data()),
3571  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
3572  // nptbins,ptmin,ptmax,200,-1,1);
3573  // fhExoticTCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
3574  // fhExoticTCardCorrel[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3575  // outputContainer->Add(fhExoticTCardCorrel[i][tm]);
3576  // }
3577  //
3578  // for(Int_t i = 0; i < 4; i++)
3579  // {
3580  // fhLambda0TCardCorrelExotic[i][tm] = new TH2F
3581  // (Form("hLambda0TCardCorrel_Exotic_Case%d%s",i,add[tm].Data()),
3582  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, exo>0.97, case %d %s",i,add[tm].Data()),
3583  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3584  // fhLambda0TCardCorrelExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3585  // fhLambda0TCardCorrelExotic[i][tm]->SetYTitle("#sigma^{2}_{long}");
3586  // outputContainer->Add(fhLambda0TCardCorrelExotic[i][tm]);
3587  //
3588  // fhNCellsTCardCorrelExotic[i][tm] = new TH2F
3589  // (Form("hNCellsTCardCorrel_Exotic_Case%d%s",i,add[tm].Data()),
3590  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, exot > 0.97,case %d %s",i,add[tm].Data()),
3591  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3592  // fhNCellsTCardCorrelExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3593  // fhNCellsTCardCorrelExotic[i][tm]->SetYTitle("#it{n}_{cells}");
3594  // outputContainer->Add(fhNCellsTCardCorrelExotic[i][tm]);
3595  // }
3596 
3597 
3598  for(Int_t i = 0; i < fNEBinCuts; i++)
3599  {
3600  if(fStudyExotic)
3601  {
3602  fhLambda0Exoticity[i][tm] = new TH2F
3603  (Form("hLambda0Exoticity_EBin%d%s",i,add[tm].Data()),
3604  Form("#sigma^{2}_{long} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3605  200,-1,1,ssbins,ssmin,ssmax);
3606  fhLambda0Exoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3607  fhLambda0Exoticity[i][tm]->SetYTitle("#sigma^{2}_{long}");
3608  outputContainer->Add(fhLambda0Exoticity[i][tm]);
3609 
3610  fhLambda1Exoticity[i][tm] = new TH2F
3611  (Form("hLambda1Exoticity_EBin%d%s",i,add[tm].Data()),
3612  Form("#sigma^{2}_{short} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3613  200,-1,1,ssbins,ssmin,ssmax);
3614  fhLambda1Exoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3615  fhLambda1Exoticity[i][tm]->SetYTitle("#sigma^{2}_{short}");
3616  outputContainer->Add(fhLambda1Exoticity[i][tm]);
3617 
3618  // fhLambdaRExoticity[i][tm] = new TH2F
3619  // (Form("hLambdaRExoticity_EBin%d%s",i,add[tm].Data()),
3620  // Form("#sigma^{2}_{short}/#sigma^{2}_{long} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3621  // 200,-1,1,110,0,1.1);
3622  // fhLambdaRExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3623  // fhLambdaRExoticity[i][tm]->SetYTitle("#sigma^{2}_{short}/#sigma^{2}_{long}");
3624  // outputContainer->Add(fhLambdaRExoticity[i][tm]);
3625 
3626  fhNCellsExoticity[i][tm] = new TH2F
3627  (Form("hNCellsExoticity_EBin%d%s",i,add[tm].Data()),
3628  Form("#it{n}_{cells} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3629  200,-1,1,nceclbins,nceclmin,nceclmax);
3630  fhNCellsExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3631  fhNCellsExoticity[i][tm]->SetYTitle("#it{n}_{cells}");
3632  outputContainer->Add(fhNCellsExoticity[i][tm]);
3633 
3634  fhTimeExoticity[i][tm] = new TH2F
3635  (Form("hTimeExoticity_EBin%d%s",i,add[tm].Data()),
3636  Form("#it{t} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3637  200,-1,1,100,-25,25);
3638  fhTimeExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3639  fhTimeExoticity[i][tm]->SetYTitle("#it{t} (ns)");
3640  outputContainer->Add(fhTimeExoticity[i][tm]);
3641 
3642  fhNCellsTCardSameAndDiffExotic[i][tm] = new TH2F
3643  (Form("hNCellsTCardSameAndDiff_Exotic_EBin%d%s",i,add[tm].Data()),
3644  Form("#it{n}_{cells} same TCard vs diff TCard, w > 0.01, %2.2f<#it{E}<%2.2f GeV, exo > 0.97 %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3645  nceclbins,nceclmin,nceclmax,nceclbins,nceclmin,nceclmax);
3646  fhNCellsTCardSameAndDiffExotic[i][tm]->SetXTitle("#it{n}_{cells} - diff TCard");
3647  fhNCellsTCardSameAndDiffExotic[i][tm]->SetYTitle("#it{n}_{cells} - same TCard");
3648  outputContainer->Add(fhNCellsTCardSameAndDiffExotic[i][tm]);
3649 
3650  // fhLambda0ExoticityAllSameTCard[i][tm] = new TH2F
3651  // (Form("hLambda0ExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3652  // Form("#sigma^{2}_{long} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3653  // 200,-1,1,ssbins,ssmin,ssmax);
3654  // fhLambda0ExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3655  // fhLambda0ExoticityAllSameTCard[i][tm]->SetYTitle("#sigma^{2}_{long}");
3656  // outputContainer->Add(fhLambda0ExoticityAllSameTCard[i][tm]);
3657  //
3658  // fhLambda1ExoticityAllSameTCard[i][tm] = new TH2F
3659  // (Form("hLambda1ExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3660  // Form("#sigma^{2}_{short} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3661  // 200,-1,1,ssbins,ssmin,ssmax);
3662  // fhLambda1ExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3663  // fhLambda1ExoticityAllSameTCard[i][tm]->SetYTitle("#sigma^{2}_{short}");
3664  // outputContainer->Add(fhLambda1ExoticityAllSameTCard[i][tm]);
3665  //
3666  // fhLambdaRExoticityAllSameTCard[i][tm] = new TH2F
3667  // (Form("hLambdaRExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3668  // Form("#sigma^{2}_{short}/#sigma^{2}_{long} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3669  // 200,-1,1,110,0,1.1);
3670  // fhLambdaRExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3671  // fhLambdaRExoticityAllSameTCard[i][tm]->SetYTitle("#sigma^{2}_{short}/#sigma^{2}_{long}");
3672  // outputContainer->Add(fhLambdaRExoticityAllSameTCard[i][tm]);
3673  //
3674  // fhNCellsExoticityAllSameTCard[i][tm] = new TH2F
3675  // (Form("hNCellsExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3676  // Form("#it{n}_{cells} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3677  // 200,-1,1,nceclbins,nceclmin,nceclmax);
3678  // fhNCellsExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3679  // fhNCellsExoticityAllSameTCard[i][tm]->SetYTitle("#it{n}_{cells}");
3680  // outputContainer->Add(fhNCellsExoticityAllSameTCard[i][tm]);
3681  //
3682  }
3683 
3684  fhNCellsTCardSameAndDiff[i][tm] = new TH2F
3685  (Form("hNCellsTCardSameAndDiff_EBin%d%s",i,add[tm].Data()),
3686  Form("#it{n}_{cells} same TCard vs diff TCard, w > 0.01, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3687  nceclbins,nceclmin,nceclmax,nceclbins,nceclmin,nceclmax);
3688  fhNCellsTCardSameAndDiff[i][tm]->SetXTitle("#it{n}_{cells} - diff TCard");
3689  fhNCellsTCardSameAndDiff[i][tm]->SetYTitle("#it{n}_{cells} - same TCard");
3690  outputContainer->Add(fhNCellsTCardSameAndDiff[i][tm]);
3691 
3692  fhLambda0Lambda1[i][tm] = new TH2F
3693  (Form("hLambda0Lambda1_EBin%d%s",i,add[tm].Data()),
3694  Form("#sigma^{2}_{long} vs #sigma^{2}_{short}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3695  ssbins,ssmin,ssmax,ssbins,ssmin,ssmax);
3696  fhLambda0Lambda1[i][tm]->SetXTitle("#sigma^{2}_{short}");
3697  fhLambda0Lambda1[i][tm]->SetYTitle("#sigma^{2}_{long}");
3698  outputContainer->Add(fhLambda0Lambda1[i][tm]);
3699 
3700  // fhLambda0Lambda1AllSameTCard[i][tm] = new TH2F
3701  // (Form("hLambda0Lambda1AllSameTCard_EBin%d%s",i,add[tm].Data()),
3702  // Form("#sigma^{2}_{long} vs #sigma^{2}_{short}, , all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3703  // ssbins,ssmin,ssmax,ssbins,ssmin,ssmax);
3704  // fhLambda0Lambda1AllSameTCard[i][tm]->SetXTitle("#sigma^{2}_{short}");
3705  // fhLambda0Lambda1AllSameTCard[i][tm]->SetYTitle("#sigma^{2}_{long}");
3706  // outputContainer->Add(fhLambda0Lambda1AllSameTCard[i][tm]);
3707  }
3708 
3709  if(fStudyExotic)
3710  {
3711  for(Int_t j = 0; j < 6; j++)
3712  {
3713  for(Int_t k = 0; k < 6; k++)
3714  {
3715  fhLambda0ExoticityPerNCell[j][k][tm] = new TH2F
3716  (Form("hLambda0Exoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3717  Form("#sigma^{2}_{long} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3718  200,-1,1,ssbins,ssmin,ssmax);
3719  fhLambda0ExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3720  fhLambda0ExoticityPerNCell[j][k][tm]->SetYTitle("#sigma^{2}_{long}");
3721  outputContainer->Add(fhLambda0ExoticityPerNCell[j][k][tm]);
3722 
3723  fhLambda1ExoticityPerNCell[j][k][tm] = new TH2F
3724  (Form("hLambda1Exoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3725  Form("#sigma^{2}_{short} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3726  200,-1,1,ssbins,ssmin,ssmax);
3727  fhLambda1ExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3728  fhLambda1ExoticityPerNCell[j][k][tm]->SetYTitle("#sigma^{2}_{short}");
3729  outputContainer->Add(fhLambda1ExoticityPerNCell[j][k][tm]);
3730 
3731  // fhLambdaRExoticityPerNCell[j][k][tm] = new TH2F
3732  // (Form("hLambdaRExoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3733  // Form("#sigma^{2}_{short}/#sigma^{2}_{long} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3734  // 200,-1,1,110,0,1.1);
3735  // fhLambdaRExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3736  // fhLambdaRExoticityPerNCell[j][k][tm]->SetYTitle("#sigma^{2}_{short}/#sigma^{2}_{long}");
3737  // outputContainer->Add(fhLambdaRExoticityPerNCell[j][k][tm]);
3738  }
3739  }
3740  }
3741 
3742  // for(Int_t i = 0; i < 6; i++)
3743  // {
3744  // fhLambda0TCardCorrelNearRow[i][tm] = new TH2F
3745  // (Form("hLambda0TCardCorrelNearRow_Case%d%s",i,add[tm].Data()),
3746  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with TCard cell, one TCard cell is 1 row away, case %d %s",i,add[tm].Data()),
3747  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3748  // fhLambda0TCardCorrelNearRow[i][tm]->SetXTitle("#it{E} (GeV)");
3749  // fhLambda0TCardCorrelNearRow[i][tm]->SetYTitle("#sigma^{2}_{long}");
3750  // outputContainer->Add(fhLambda0TCardCorrelNearRow[i][tm]);
3751  //
3752  // fhNCellsTCardCorrelNearRow[i][tm] = new TH2F
3753  // (Form("hNCellsTCardCorrelNearRow_Case%d%s",i,add[tm].Data()),
3754  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
3755  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3756  // fhNCellsTCardCorrelNearRow[i][tm]->SetXTitle("#it{E} (GeV)");
3757  // fhNCellsTCardCorrelNearRow[i][tm]->SetYTitle("#it{n}_{cells}");
3758  // outputContainer->Add(fhNCellsTCardCorrelNearRow[i][tm]);
3759  // }
3760  //
3761  // for(Int_t i = 0; i < 4; i++)
3762  // {
3763  // fhLambda0TCardCorrel2ndMax[i][tm] = new TH2F
3764  // (Form("hLambda0TCardCorrel2ndMax_Case%d%s",i,add[tm].Data()),
3765  // Form("#sigma^{2}_{long} vs #it{E}, max E cell correl with 2nd max TCard cell, case %d %s",i,add[tm].Data()),
3766  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3767  // fhLambda0TCardCorrel2ndMax[i][tm]->SetXTitle("#it{E} (GeV)");
3768  // fhLambda0TCardCorrel2ndMax[i][tm]->SetYTitle("#sigma^{2}_{long}");
3769  // outputContainer->Add(fhLambda0TCardCorrel2ndMax[i][tm]);
3770  //
3771  // fhNCellsTCardCorrel2ndMax[i][tm] = new TH2F
3772  // (Form("hNCellsTCardCorrel2ndMax_Case%d%s",i,add[tm].Data()),
3773  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with 2nd max TCard cell, case %d %s",i,add[tm].Data()),
3774  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3775  // fhNCellsTCardCorrel2ndMax[i][tm]->SetXTitle("#it{E} (GeV)");
3776  // fhNCellsTCardCorrel2ndMax[i][tm]->SetYTitle("#it{n}_{cells}");
3777  // outputContainer->Add(fhNCellsTCardCorrel2ndMax[i][tm]);
3778  // }
3779  //
3780  // for(Int_t i = 0; i < 7; i++)
3781  // {
3782  // fhLambda0TCardCorrelOtherTCard[i][tm] = new TH2F
3783  // (Form("hLambda0TCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3784  // Form("#sigma^{2}_{long} vs #it{E}, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3785  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3786  // fhLambda0TCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3787  // fhLambda0TCardCorrelOtherTCard[i][tm]->SetYTitle("#sigma^{2}_{long}");
3788  // outputContainer->Add(fhLambda0TCardCorrelOtherTCard[i][tm]);
3789  //
3790  // fhNCellsTCardCorrelOtherTCard[i][tm] = new TH2F
3791  // (Form("hNCellsTCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3792  // Form("custer # cells vs #it{E}, w > 0.01, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3793  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3794  // fhNCellsTCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3795  // fhNCellsTCardCorrelOtherTCard[i][tm]->SetYTitle("#it{n}_{cells}");
3796  // outputContainer->Add(fhNCellsTCardCorrelOtherTCard[i][tm]);
3797  //
3798  // fhExoticTCardCorrelOtherTCard[i][tm] = new TH2F
3799  // (Form("hExoticTCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3800  // Form("exoticity vs #it{E}, w > 0.01, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3801  // nptbins,ptmin,ptmax,200,-1,1);
3802  // fhExoticTCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3803  // fhExoticTCardCorrelOtherTCard[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3804  // outputContainer->Add(fhExoticTCardCorrelOtherTCard[i][tm]);
3805  //
3806  // fhColRowTCardCorrelOtherTCardLowE[i][tm] = new TH2F
3807  // (Form("hColRowTCardCorrelOtherTCardLowE_Case%d%s",i,add[tm].Data()),
3808  // Form("column vs row for different 2 TCard correlation cases, E > 2 GeV, case %d %s",i,add[tm].Data()),
3809  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3810  // fhColRowTCardCorrelOtherTCardLowE[i][tm]->SetYTitle("row");
3811  // fhColRowTCardCorrelOtherTCardLowE[i][tm]->SetXTitle("column");
3812  // outputContainer->Add(fhColRowTCardCorrelOtherTCardLowE[i][tm]) ;
3813  //
3814  // fhColRowTCardCorrelOtherTCardHighE[i][tm] = new TH2F
3815  // (Form("hColRowTCardCorrelOtherTCardHighE_Case%d%s",i,add[tm].Data()),
3816  // Form("column vs row for different 2 TCard correlation cases, E > 8 GeV, case %d %s",i,add[tm].Data()),
3817  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3818  // fhColRowTCardCorrelOtherTCardHighE[i][tm]->SetYTitle("row");
3819  // fhColRowTCardCorrelOtherTCardHighE[i][tm]->SetXTitle("column");
3820  // outputContainer->Add(fhColRowTCardCorrelOtherTCardHighE[i][tm]) ;
3821  // }
3822 
3823  for(Int_t i = 0; i < 12; i++)
3824  {
3825  fhTCardCorrECellMaxDiff[i][tm] = new TH2F
3826  (Form("hTCardCorrECellMaxDiff_Case%d%s",i,add[tm].Data()),
3827  Form("#it{E}_{cell}^{max}-#it{E}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3828  nptbins,ptmin,ptmax,210,-1,20);
3829  fhTCardCorrECellMaxDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3830  fhTCardCorrECellMaxDiff[i][tm]->SetYTitle("#it{E}_{cell}^{max}-#it{E}_{cell} (GeV)");
3831  outputContainer->Add(fhTCardCorrECellMaxDiff[i][tm]);
3832 
3833  fhTCardCorrEClusterDiff[i][tm] = new TH2F
3834  (Form("hTCardCorrEClusterDiff_Case%d%s",i,add[tm].Data()),
3835  Form("#it{E}_{cluster}-#it{E}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3836  nptbins,ptmin,ptmax,210,-1,20);
3837  fhTCardCorrEClusterDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3838  fhTCardCorrEClusterDiff[i][tm]->SetYTitle("#it{E}_{cluster}-#it{E}_{cell} (GeV)");
3839  outputContainer->Add(fhTCardCorrEClusterDiff[i][tm]);
3840 
3841  // fhTCardCorrECellMaxRat[i][tm] = new TH2F
3842  // (Form("hTCardCorrECellMaxRat_Case%d%s",i,add[tm].Data()),
3843  // Form("#it{E}_{cell}/#it{E}_{cell}^{max} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3844  // nptbins,ptmin,ptmax,110,0,1.1);
3845  // fhTCardCorrECellMaxRat[i][tm]->SetXTitle("#it{E} (GeV)");
3846  // fhTCardCorrECellMaxRat[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}^{max}_{cell}");
3847  // outputContainer->Add(fhTCardCorrECellMaxRat[i][tm]);
3848  //
3849  // fhTCardCorrEClusterRat[i][tm] = new TH2F
3850  // (Form("hTCardCorrEClusterRat_Case%d%s",i,add[tm].Data()),
3851  // Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3852  // nptbins,ptmin,ptmax,110,0,1.1);
3853  // fhTCardCorrEClusterRat[i][tm]->SetXTitle("#it{E} (GeV)");
3854  // fhTCardCorrEClusterRat[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3855  // outputContainer->Add(fhTCardCorrEClusterRat[i][tm]);
3856 
3857  fhTCardCorrTCellMaxDiff[i][tm] = new TH2F
3858  (Form("hTCardCorrTCellMaxDiff_Case%d%s",i,add[tm].Data()),
3859  Form("#it{t}_{cell}^{max}-#it{t}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3860  nptbins,ptmin,ptmax,1000,-100,100);
3861  fhTCardCorrTCellMaxDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3862  fhTCardCorrTCellMaxDiff[i][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell} (ns)");
3863  outputContainer->Add(fhTCardCorrTCellMaxDiff[i][tm]);
3864 
3865  if(fStudyExotic)
3866  {
3867  fhTCardCorrECellMaxDiffExo[i][tm] = new TH2F
3868  (Form("hTCardCorrECellMaxDiffExo_Case%d%s",i,add[tm].Data()),
3869  Form("#it{E}_{cell}^{max}-#it{E}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, exoticity > 0.97, case %d %s",i,add[tm].Data()),
3870  nptbins,ptmin,ptmax,210,-1,20);
3871  fhTCardCorrECellMaxDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3872  fhTCardCorrECellMaxDiffExo[i][tm]->SetYTitle("#it{E}_{cell}^{max}-#it{E}_{cell} (GeV)");
3873  outputContainer->Add(fhTCardCorrECellMaxDiffExo[i][tm]);
3874 
3875  fhTCardCorrEClusterDiffExo[i][tm] = new TH2F
3876  (Form("hTCardCorrEClusterDiffExo_Case%d%s",i,add[tm].Data()),
3877  Form("#it{E}_{cluster}-#it{E}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, exoticity > 0.97, case %d %s",i,add[tm].Data()),
3878  nptbins,ptmin,ptmax,210,-1,20);
3879  fhTCardCorrEClusterDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3880  fhTCardCorrEClusterDiffExo[i][tm]->SetYTitle("#it{E}_{cluster}-#it{E}_{cell} (GeV)");
3881  outputContainer->Add(fhTCardCorrEClusterDiffExo[i][tm]);
3882 
3883  // fhTCardCorrECellMaxRatExo[i][tm] = new TH2F
3884  // (Form("hTCardCorrECellMaxRatExo_Case%d%s",i,add[tm].Data()),
3885  // Form("#it{E}_{cell}/#it{E}_{cell}^{max} vs #it{E}_{cluster}, for (un)correlated cells in TCard, exoticity > 0.97, case %d %s",i,add[tm].Data()),
3886  // nptbins,ptmin,ptmax,110,0,1.1);
3887  // fhTCardCorrECellMaxRatExo[i][tm]->SetXTitle("#it{E} (GeV)");
3888  // fhTCardCorrECellMaxRatExo[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}^{max}_{cell}");
3889  // outputContainer->Add(fhTCardCorrECellMaxRatExo[i][tm]);
3890  //
3891  // fhTCardCorrEClusterRatExo[i][tm] = new TH2F
3892  // (Form("hTCardCorrEClusterRatExo_Case%d%s",i,add[tm].Data()),
3893  // Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, for (un)correlated cells in TCard, exoticity > 0.97, case %d %s",i,add[tm].Data()),
3894  // nptbins,ptmin,ptmax,110,0,1.1);
3895  // fhTCardCorrEClusterRatExo[i][tm]->SetXTitle("#it{E} (GeV)");
3896  // fhTCardCorrEClusterRatExo[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3897  // outputContainer->Add(fhTCardCorrEClusterRatExo[i][tm]);
3898 
3899  fhTCardCorrTCellMaxDiffExo[i][tm] = new TH2F
3900  (Form("hTCardCorrTCellMaxDiffExo_Case%d%s",i,add[tm].Data()),
3901  Form("#it{t}_{cell}^{max}-#it{t}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, exoticity > 0.97, case %d %s",i,add[tm].Data()),
3902  nptbins,ptmin,ptmax,1000,-100,100);
3903  fhTCardCorrTCellMaxDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3904  fhTCardCorrTCellMaxDiffExo[i][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell} (ns)");
3905  outputContainer->Add(fhTCardCorrTCellMaxDiffExo[i][tm]);
3906  }
3907  }
3908  } // neutral or charged
3909 
3910  if(fStudyExotic)
3911  {
3912  fhEnergyTMEtaResidual1Cell = new TH2F("hEnergyTMEtaResidual1Cell","#Delta #eta_{cluster-track} vs #it{E}, n cell = 1",
3913  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3914  fhEnergyTMEtaResidual1Cell->SetXTitle("#it{E} (GeV)");
3915  fhEnergyTMEtaResidual1Cell->SetYTitle("#Delta #eta_{cluster-track}");
3916  outputContainer->Add(fhEnergyTMEtaResidual1Cell);
3917 
3918  fhEnergyTMPhiResidual1Cell = new TH2F("hEnergyTMPhiResidual1Cell","#Delta #varphi_{cluster-track} vs #it{E}, n cell = 1",
3919  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3920  fhEnergyTMPhiResidual1Cell->SetXTitle("#it{E} (GeV)");
3921  fhEnergyTMPhiResidual1Cell->SetYTitle("#Delta #varphi_{cluster-track}");
3922  outputContainer->Add(fhEnergyTMPhiResidual1Cell);
3923 
3924  fhEnergyTMEtaResidualExotic = new TH2F("hEnergyTMEtaResidualExotic","#Delta #eta_{cluster-track} vs #it{E}, exo > 0.97",
3925  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3926  fhEnergyTMEtaResidualExotic->SetXTitle("#it{E} (GeV)");
3927  fhEnergyTMEtaResidualExotic->SetYTitle("#Delta #eta_{cluster-track}");
3928  outputContainer->Add(fhEnergyTMEtaResidualExotic);
3929 
3930  fhEnergyTMPhiResidualExotic = new TH2F("hEnergyTMPhiResidualExotic","#Delta #varphi_{cluster-track} vs #it{E}, exo > 0.97",
3931  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3932  fhEnergyTMPhiResidualExotic->SetXTitle("#it{E} (GeV)");
3933  fhEnergyTMPhiResidualExotic->SetYTitle("#Delta #varphi_{cluster-track}");
3934  outputContainer->Add(fhEnergyTMPhiResidualExotic);
3935 
3936  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell = new TH2F("hEnergyTMEtaResidualTCardCorrNoSelection1Cell","#Delta #eta_{cluster-track} vs #it{E}, n cell = 1",
3937  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3938  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell->SetXTitle("#it{E} (GeV)");
3939  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell->SetYTitle("#Delta #eta_{cluster-track}");
3940  outputContainer->Add(fhEnergyTMEtaResidualTCardCorrNoSelection1Cell);
3941 
3942  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell = new TH2F("hEnergyTMPhiResidualTCardCorrNoSelection1Cell","#Delta #varphi_{cluster-track} vs #it{E}, n cell = 1",
3943  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3944  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell->SetXTitle("#it{E} (GeV)");
3945  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell->SetYTitle("#Delta #varphi_{cluster-track}");
3946  outputContainer->Add(fhEnergyTMPhiResidualTCardCorrNoSelection1Cell);
3947 
3948  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic = new TH2F("hEnergyTMEtaResidualTCardCorrNoSelectionExotic","#Delta #eta_{cluster-track} vs #it{E}, exo > 0.97",
3949  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3950  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic->SetXTitle("#it{E} (GeV)");
3951  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic->SetYTitle("#Delta #eta_{cluster-track}");
3952  outputContainer->Add(fhEnergyTMEtaResidualTCardCorrNoSelectionExotic);
3953 
3954  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic = new TH2F("hEnergyTMPhiResidualTCardCorrNoSelectionExotic","#Delta #varphi_{cluster-track} vs #it{E}, exo > 0.97",
3955  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3956  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic->SetXTitle("#it{E} (GeV)");
3957  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic->SetYTitle("#Delta #varphi_{cluster-track}");
3958  outputContainer->Add(fhEnergyTMPhiResidualTCardCorrNoSelectionExotic);
3959 
3960  for(Int_t i = 0; i < fNEBinCuts; i++)
3961  {
3962  fhTMPhiResidualExoticity[i] = new TH2F
3963  (Form("hTMPhiResidual_EBin%d",i),
3964  Form("#Delta #varphi_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3965  200,-1,1,nresphibins,resphimin,resphimax);
3966  fhTMPhiResidualExoticity[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3967  fhTMPhiResidualExoticity[i]->SetYTitle("#Delta #varphi_{cluster-track}");
3968  outputContainer->Add(fhTMPhiResidualExoticity[i]);
3969 
3970  fhTMEtaResidualExoticity[i] = new TH2F
3971  (Form("hTMEtaResidual_EBin%d",i),
3972  Form("#Delta #eta_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3973  200,-1,1,nresetabins,resetamin,resetamax);
3974  fhTMEtaResidualExoticity[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3975  fhTMEtaResidualExoticity[i]->SetYTitle("#Delta #eta_{cluster-track}");
3976  outputContainer->Add(fhTMEtaResidualExoticity[i]);
3977 
3979  (Form("hTMPhiResidual_LooseCut_EBin%d",i),
3980  Form("#Delta #varphi_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3981  200,-1,1,nresphibins,resphimin,resphimax);
3982  fhTMPhiResidualExoticityLooseCut[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3983  fhTMPhiResidualExoticityLooseCut[i]->SetYTitle("#Delta #varphi_{cluster-track}");
3984  outputContainer->Add(fhTMPhiResidualExoticityLooseCut[i]);
3985 
3987  (Form("hTMEtaResidual_LooseCut_EBin%d",i),
3988  Form("#Delta #eta_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3989  200,-1,1,nresetabins,resetamin,resetamax);
3990  fhTMEtaResidualExoticityLooseCut[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3991  fhTMEtaResidualExoticityLooseCut[i]->SetYTitle("#Delta #eta_{cluster-track}");
3992  outputContainer->Add(fhTMEtaResidualExoticityLooseCut[i]);
3993 
3994  // fhTMPhiResidualExoticityAllSameTCard[i] = new TH2F
3995  // (Form("hTMPhiResidualAllSameTCard_EBin%d",i),
3996  // Form("#Delta #varphi_{cluster-track} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3997  // 200,-1,1,nresphibins,resphimin,resphimax);
3998  // fhTMPhiResidualExoticityAllSameTCard[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3999  // fhTMPhiResidualExoticityAllSameTCard[i]->SetYTitle("#Delta #varphi_{cluster-track}");
4000  // outputContainer->Add(fhTMPhiResidualExoticityAllSameTCard[i]);
4001  //
4002  // fhTMEtaResidualExoticityAllSameTCard[i] = new TH2F
4003  // (Form("hTMEtaResidualAllSameTCard_EBin%d",i),
4004  // Form("#Delta #eta_{cluster-track} vs #it{exoticity}, all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
4005  // 200,-1,1,nresetabins,resetamin,resetamax);
4006  // fhTMEtaResidualExoticityAllSameTCard[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
4007  // fhTMEtaResidualExoticityAllSameTCard[i]->SetYTitle("#Delta #eta_{cluster-track}");
4008  // outputContainer->Add(fhTMEtaResidualExoticityAllSameTCard[i]);
4009  }
4010  }
4011  } // TCard correlation studies
4012 
4013  // Cluster size in terms of cells and shape TH3
4014  if(fStudyShape)
4015  {
4016  fhColRowM02 = new TH3F
4017  (Form("hColRowM02"),
4018  Form("column vs row vs M02, %2.2f < #it{E} < %2.2f GeV for Neutral",fEMinShape,fEMaxShape),
4019  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax,40,0.,2.);
4020  fhColRowM02->SetYTitle("row");
4021  fhColRowM02->SetXTitle("column");
4022  fhColRowM02->SetZTitle("#sigma^{2}_{long}");
4023  outputContainer->Add(fhColRowM02) ;
4024 
4026  (Form("hColRowM02NCellCut"),
4027  Form("column vs row vs M02, %2.2f<#it{E}<%2.2f GeV #it{n}_{cells}^{w>0.01} > %d for Neutral",
4029  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax,40,0.,2.);
4030  fhColRowM02NCellCut->SetYTitle("row");
4031  fhColRowM02NCellCut->SetXTitle("column");
4032  fhColRowM02NCellCut->SetZTitle("#sigma^{2}_{long}");
4033  outputContainer->Add(fhColRowM02NCellCut) ;
4034 
4035  if ( fStudyInvMass )
4036  {
4037  fhInvMassNCellSM = new TH3F
4038  ("hInvMassNCellSM",
4039  Form("%2.2f<#it{E}_{1}<%2.2f GeV, %2.2f<#it{E}_{2}<%2.2f GeV, %2.2f<#sigma^{2}_{long}<%2.2f"
4040  "#it{M}_{#gamma #gamma} vs #it{n}_{1, cells}^{w>0.01} vs SM number trig cluster",
4042  nmassbins,massmin,massmax,cellBins,cellMin,cellMax,fNModules,-0.5,fNModules-0.5);
4043  fhInvMassNCellSM->SetZTitle("SM number");
4044  fhInvMassNCellSM->SetYTitle("#it{n}_{cells}^{w>0.01}");
4045  fhInvMassNCellSM->SetXTitle("#it{M}_{#gamma #gamma}");
4046  outputContainer->Add(fhInvMassNCellSM);
4047 
4048  fhInvMassNCellSMSame = new TH3F
4049  ("hInvMassNCellSMSame",
4050  Form("%2.2f<#it{E}_{1}<%2.2f GeV, %2.2f<#it{E}_{2}<%2.2f GeV, %2.2f<#sigma^{2}_{long}<%2.2f"
4051  "#it{M}_{#gamma #gamma} vs #it{n}_{1, cells}^{w>0.01} vs SM number both cluster",
4053  nmassbins,massmin,massmax,cellBins,cellMin,cellMax,fNModules,-0.5,fNModules-0.5);
4054  fhInvMassNCellSMSame->SetZTitle("SM number");
4055  fhInvMassNCellSMSame->SetYTitle("#it{n}_{cells}^{w>0.01}");
4056  fhInvMassNCellSMSame->SetXTitle("#it{M}_{#gamma #gamma}");
4057  outputContainer->Add(fhInvMassNCellSMSame);
4058  }
4059 
4060  //
4061 
4062  if ( fStudyTimeCellHisto )
4063  {
4064  fhEMaxCellTimeM02SM = new TH3F
4065  ("hEMaxCellTimeM02SM",
4066  Form("time vs #sigma^{2}_{long} vs SM number, "
4067  "%2.2f<#it{E}<%2.2f GeV, #it{n}_{cells}^{w>0.01}>%d",fEMinShape,fEMaxShape,fNCellMinShape),
4068  45,-25.5,20.5, fNModules,-0.5,fNModules-0.5,nShShBins,minShSh,maxShSh);
4069  fhEMaxCellTimeM02SM->SetZTitle("#sigma^{2}_{long}");
4070  fhEMaxCellTimeM02SM->SetYTitle("SM number");
4071  fhEMaxCellTimeM02SM->SetXTitle("time (ns)");
4072  outputContainer->Add(fhEMaxCellTimeM02SM);
4073 
4075  ("hEMaxCellTimeNCellSM",
4076  Form("time vs #it{n}_{cells}^{w>0.01} vs SM number, "
4077  "%2.2f<#it{E}<%2.2f GeV, %2.2f<#it{sigma}_{long}<%2.2f",fEMinShape,fEMaxShape,fM02LowBin[0],fM02LowBin[1]),
4078  45,-25.5,20.5, fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
4079  fhEMaxCellTimeNCellSM->SetZTitle("#it{n}_{cells}^{w>0.01}");
4080  fhEMaxCellTimeNCellSM->SetYTitle("SM number");
4081  fhEMaxCellTimeNCellSM->SetXTitle("time (ns)");
4082  outputContainer->Add(fhEMaxCellTimeNCellSM);
4083 
4085  ("hESecCellTimeNCellSM",
4086  Form("secondary cell time vs #it{n}_{cells}^{w>0.01} vs SM number, "
4087  "%2.2f<#it{E}<%2.2f GeV, %2.2f<#it{sigma}_{long}<%2.2f",fEMinShape,fEMaxShape,fM02LowBin[0],fM02LowBin[1]),
4088  50,-100,100, fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
4089  fhESecCellTimeNCellSM->SetZTitle("#it{n}_{cells}^{w>0.01}");
4090  fhESecCellTimeNCellSM->SetYTitle("SM number");
4091  fhESecCellTimeNCellSM->SetXTitle("time (ns)");
4092  outputContainer->Add(fhESecCellTimeNCellSM);
4093  }
4094 
4095  //
4096 
4097  Int_t nbinsdeltacells = 19 ;
4098  Float_t mindeltacells =-9.5;
4099  Float_t maxdeltacells = 9.5;
4100 
4102  {
4103  for(Int_t col = 0; col < 2; col++)
4104  {
4105  fhColRowFromCellMaxLowM02[col] = new TH2F
4106  (Form("hColRowFromCellMaxLowM02_Col%d",col),
4107  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{n}_{cells}^{w>0.01} for %2.2f < #sigma^{2}_{long} < %2.2f, "
4108  "%2.2f<#it{E}<%2.2f GeV, colum %d",fM02LowBin[0],fM02LowBin[1],fEMinShape,fEMaxShape,col),
4109  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells);
4110  fhColRowFromCellMaxLowM02[col]->SetXTitle("#Delta column_{max-secondary}");
4111  fhColRowFromCellMaxLowM02[col]->SetYTitle("#Delta row_{max-secondary}");
4112  outputContainer->Add(fhColRowFromCellMaxLowM02[col]);
4113 
4114  fhColRowFromCellMaxHighM02[col] = new TH2F
4115  (Form("hColRowFromCellMaxHighM02_Col%d",col),
4116  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{n}_{cells}^{w>0.01} for %2.2f < #sigma^{2}_{long} < %2.2f, "
4117  "%2.2f<#it{E}<%2.2f GeV, colum %d",fM02HighBin[0],fM02HighBin[1],fEMinShape,fEMaxShape,col),
4118  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells);
4119  fhColRowFromCellMaxHighM02[col]->SetXTitle("#Delta column_{max-secondary}");
4120  fhColRowFromCellMaxHighM02[col]->SetYTitle("#Delta row_{max-secondary}");
4121  outputContainer->Add(fhColRowFromCellMaxHighM02[col]);
4122  }//odd/pair col
4123  }
4124  //
4125 
4126  for(Int_t i = 0; i < fNModules; i++)
4127  {
4129  (Form("hNCellsPerClusterM02M20_SM%d",i),
4130  Form(" vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01} vs #sigma^{2}_{short}, "
4131  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4132  (Int_t)nShShBins/1.5,0,maxShSh/1.5, cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4133  fhNCellsPerClusterM02M20PerSM[i]->SetZTitle("#sigma^{2}_{long}");
4134  fhNCellsPerClusterM02M20PerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4135  fhNCellsPerClusterM02M20PerSM[i]->SetXTitle("#sigma^{2}_{short}");
4136  outputContainer->Add(fhNCellsPerClusterM02M20PerSM[i]);
4137 
4139  (Form("hNCellsPerClusterM02NLM_SM%d",i),
4140  Form(" vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01} vs N_{lm}, "
4141  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4142  10,0,10, cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4143  fhNCellsPerClusterM02NLMPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4144  fhNCellsPerClusterM02NLMPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4145  fhNCellsPerClusterM02NLMPerSM[i]->SetXTitle("n_{lm}");
4146  outputContainer->Add(fhNCellsPerClusterM02NLMPerSM[i]);
4147 
4149  (Form("hEMaxCellEClusterM02NCell_SM%d",i),
4150  Form("(#it{E}_{cluster} - #it{E}_{max cell})/#it{E}_{cluster} vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01}, "
4151  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4152  50,0,1., cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4153  fhEMaxCellEClusterM02NCellPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4154  fhEMaxCellEClusterM02NCellPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4155  fhEMaxCellEClusterM02NCellPerSM[i]->SetXTitle("(#it{E}_{cluster} - #it{E}_{max cell})/ #it{E}_{cluster}");
4156  outputContainer->Add(fhEMaxCellEClusterM02NCellPerSM[i]);
4157 
4158 // fhEMaxCellLogM02NCellPerSM[i] = new TH3F
4159 // (Form("hEMaxCellLogM02NCell_SM%d",i),
4160 // Form("log(#it{E}_{max cell}) vs #sigma^{2}_{long} vs SM number, "
4161 // "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4162 // 150,-3,3, cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4163 // fhEMaxCellLogM02NCellPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4164 // fhEMaxCellLogM02NCellPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4165 // fhEMaxCellLogM02NCellPerSM[i]->SetXTitle("log(#it{E}_{max cell})");
4166 // outputContainer->Add(fhEMaxCellLogM02NCellPerSM[i]);
4167 
4169  (Form("hESecCellEMaxCellM02NCell_SM%d",i),
4170  Form("#it{E}_{cell}/#it{E}_{cell max} vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01}, "
4171  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4172  50,0,1., cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4173  fhESecCellEMaxCellM02NCellPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4174  fhESecCellEMaxCellM02NCellPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4175  fhESecCellEMaxCellM02NCellPerSM[i]->SetXTitle("#it{E}_{cell}/#it{E}_{cell max}");
4176  outputContainer->Add(fhESecCellEMaxCellM02NCellPerSM[i]);
4177 
4179  (Form("hESecCellEClusterM02NCell_SM%d",i),
4180  Form("(#it{E}_{cluster} - #it{E}_{cell})/#it{E}_{cluster} vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01}, "
4181  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,i),
4182  50,0,1., cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4183  fhESecCellEClusterM02NCellPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4184  fhESecCellEClusterM02NCellPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4185  fhESecCellEClusterM02NCellPerSM[i]->SetXTitle("(#it{E}_{cluster} - #it{E}_{cell})/ #it{E}_{cluster}");
4186  outputContainer->Add(fhESecCellEClusterM02NCellPerSM[i]);
4187 
4188 // fhESecCellLogM02NCellPerSM[i] = new TH3F
4189 // (Form("hESecCellLogM02NCell_SM%d",i),
4190 // Form("log(#it{E}_{cell}) vs #sigma^{2}_{long} vs #it{n}_{cells}^{w>0.01}, "
4191 // "%2.2f<#it{E}<%2.2f GeV, SM=%d",fEMinShape,fEMaxShape,fNCellMinShape),
4192 // 150,-3,3, cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4193 // fhESecCellLogM02NCellPerSM[i]->SetZTitle("#sigma^{2}_{long}");
4194 // fhESecCellLogM02NCellPerSM[i]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4195 // fhESecCellLogM02NCellPerSM[i]->SetXTitle("log(#it{E}_{cell})");
4196 // outputContainer->Add(fhESecCellLogM02NCellPerSM[i]);
4197 
4199  (Form("hEMaxESecCellNCellLowM02_SM%d",i),
4200  Form("#it{E}_{cell}^{max} vs #it{E}_{cell}^{secondary} vs #it{n}_{cells}^{w>0.01} vs %2.2f < #sigma^{2}_{long} < %2.2f, "
4201  "%2.2f<#it{E}<%2.2f GeV, SM=%d", fM02LowBin[0],fM02LowBin[1], fEMinShape,fEMaxShape,i),
4202  24,0,12, 48,0,12,cellBins,cellMin,cellMax);
4203  fhEMaxESecCellNCellLowM02PerSM[i]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4204  fhEMaxESecCellNCellLowM02PerSM[i]->SetYTitle("#it{E}_{cell}^{secondary} (GeV)");
4205  fhEMaxESecCellNCellLowM02PerSM[i]->SetXTitle("#it{E}_{cell}^{max} (GeV)");
4206  outputContainer->Add(fhEMaxESecCellNCellLowM02PerSM[i]);
4207 
4209  (Form("hEMaxECrossNCellLowM02_SM%d",i),
4210  Form("#it{E}_{cell}^{max} vs exoticity vs #it{n}_{cells}^{w>0.01} vs %2.2f < #sigma^{2}_{long} < %2.2f, "
4211  "%2.2f<#it{E}<%2.2f GeV, SM=%d",fM02LowBin[0],fM02LowBin[1],fEMinShape,fEMaxShape,i),
4212  24,0,12, 40,0.6,1.,cellBins,cellMin,cellMax);
4213  fhEMaxECrossNCellLowM02PerSM[i]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4214  fhEMaxECrossNCellLowM02PerSM[i]->SetYTitle("1- #it{E}_{cross}/#it{E}_{cell}^{max}");
4215  fhEMaxECrossNCellLowM02PerSM[i]->SetXTitle("#it{E}_{cell}^{max} (GeV)");
4216  outputContainer->Add(fhEMaxECrossNCellLowM02PerSM[i]);
4217 
4219  (Form("hEMaxESecCellNCellHighM02_SM%d",i),
4220  Form("#it{E}_{cell}^{max} vs #it{E}_{cell}^{secondary} vs #it{n}_{cells}^{w>0.01} vs "
4221  "%2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d",
4223  24,0,12, 48,0,12,cellBins,cellMin,cellMax);
4224  fhEMaxESecCellNCellHighM02PerSM[i]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4225  fhEMaxESecCellNCellHighM02PerSM[i]->SetYTitle("#it{E}_{cell}^{secondary} (GeV)");
4226  fhEMaxESecCellNCellHighM02PerSM[i]->SetXTitle("#it{E}_{cell}^{max} (GeV)");
4227  outputContainer->Add(fhEMaxESecCellNCellHighM02PerSM[i]);
4228 
4230  (Form("hEMaxECrossNCellHighM02_SM%d",i),
4231  Form("#it{E}_{cell}^{max} vs exoticity vs #it{n}_{cells}^{w>0.01} "
4232  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d",
4234  24,0,12, 40,0.6,1.,cellBins,cellMin,cellMax);
4235  fhEMaxECrossNCellHighM02PerSM[i]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4236  fhEMaxECrossNCellHighM02PerSM[i]->SetYTitle("1- #it{E}_{cross}/#it{E}_{cell}^{max}");
4237  fhEMaxECrossNCellHighM02PerSM[i]->SetXTitle("#it{E}_{cell}^{max} (GeV)");
4238  outputContainer->Add(fhEMaxECrossNCellHighM02PerSM[i]);
4239 
4241  {
4242  Int_t nbinsdeltacells = 19 ;
4243  Float_t mindeltacells =-9.5;
4244  Float_t maxdeltacells = 9.5;
4245  for(Int_t col = 0; col < 2; col++)
4246  {
4247  fhNCellsPerClusterM02PerSMPerCol[i][col] = new TH3F
4248  (Form("hNCellsPerClusterM02_SM%d_Col%d",i,col),
4249  Form("#it{E} vs #it{n}_{cells} vs #sigma^{2}_{long}, SM=%d, colum %d",i,col),
4250  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4251  fhNCellsPerClusterM02PerSMPerCol[i][col]->SetXTitle("#it{E} (GeV)");
4252  fhNCellsPerClusterM02PerSMPerCol[i][col]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4253  fhNCellsPerClusterM02PerSMPerCol[i][col]->SetZTitle("#sigma^{2}_{long}");
4254  outputContainer->Add(fhNCellsPerClusterM02PerSMPerCol[i][col]);
4255 
4256  fhNCellsPerClusterM20PerSMPerCol[i][col] = new TH3F
4257  (Form("hNCellsPerClusterM20_SM%d_Col%d",i,col),
4258  Form("#it{E} vs #it{n}_{cells} vs #sigma^{2}_{short}, SM=%d, colum %d",i,col),
4259  nEbins,minE,maxE,cellBins,cellMin,cellMax,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4260  fhNCellsPerClusterM20PerSMPerCol[i][col]->SetXTitle("#it{E} (GeV)");
4261  fhNCellsPerClusterM20PerSMPerCol[i][col]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4262  fhNCellsPerClusterM20PerSMPerCol[i][col]->SetZTitle("#sigma^{2}_{short}");
4263  outputContainer->Add(fhNCellsPerClusterM20PerSMPerCol[i][col]);
4264 
4265  fhNCellsPerClusterNLMPerSMPerCol[i][col] = new TH3F
4266  (Form("hNCellsPerClusterNLM_SM%d_Col%d",i,col),
4267  Form("#it{E} vs #it{n}_{cells} vs n_{lm}, SM=%d, colum %d",i,col),
4268  nEbins,minE,maxE,cellBins,cellMin,cellMax,10,0,10);
4269  fhNCellsPerClusterNLMPerSMPerCol[i][col]->SetXTitle("#it{E} (GeV)");
4270  fhNCellsPerClusterNLMPerSMPerCol[i][col]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4271  fhNCellsPerClusterNLMPerSMPerCol[i][col]->SetZTitle("n_{lm}");
4272  outputContainer->Add(fhNCellsPerClusterNLMPerSMPerCol[i][col]);
4273 
4274 
4275  fhColRowFromCellMaxLowM02PerSM[i][col] = new TH3F
4276  (Form("hColRowFromCellMaxLowM02_SM%d_Col%d",i,col),
4277  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{n}_{cells}^{w>0.01} for %2.2f < #sigma^{2}_{long} < %2.2f, "
4278  "%2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d",
4280  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,cellBins,cellMin,cellMax);
4281  fhColRowFromCellMaxLowM02PerSM[i][col]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4282  fhColRowFromCellMaxLowM02PerSM[i][col]->SetXTitle("#Delta column_{max-secondary}");
4283  fhColRowFromCellMaxLowM02PerSM[i][col]->SetYTitle("#Delta row_{max-secondary}");
4284  outputContainer->Add(fhColRowFromCellMaxLowM02PerSM[i][col]);
4285 
4286  fhColRowFromCellMaxHighM02PerSM[i][col] = new TH3F
4287  (Form("hColRowFromCellMaxHighM02_SM%d_Col%d",i,col),
4288  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{n}_{cells}^{w>0.01} "
4289  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d",
4291  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,cellBins,cellMin,cellMax);
4292  fhColRowFromCellMaxHighM02PerSM[i][col]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4293  fhColRowFromCellMaxHighM02PerSM[i][col]->SetXTitle("#Delta column_{max-secondary}");
4294  fhColRowFromCellMaxHighM02PerSM[i][col]->SetYTitle("#Delta row_{max-secondary}");
4295  outputContainer->Add(fhColRowFromCellMaxHighM02PerSM[i][col]);
4296 
4297  for(Int_t j = 0; j < fNCellsBins; j++)
4298  {
4300  (Form("hColRowFromCellMaxEMaxSecDiffLowM02_SM%d_Col%d_NCellBin%d",i,col,j),
4301  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #Delta #it{E}_{max-secondary} "
4302  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d,%d <= #it{n}_{cells}^{w>0.01} < %d",
4304  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,120,0,12);
4305  fhColRowFromCellMaxEMaxSecDiffLowM02PerSM[i][col][j]->SetZTitle("#Delta #it{E}_{max-secondary} (GeV)");
4306  fhColRowFromCellMaxEMaxSecDiffLowM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4307  fhColRowFromCellMaxEMaxSecDiffLowM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4308  outputContainer->Add(fhColRowFromCellMaxEMaxSecDiffLowM02PerSM[i][col][j]);
4309 
4311  (Form("hColRowFromCellMaxEMaxSecDiffHighM02_SM%d_Col%d_NCellBin%d",i,col,j),
4312  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #Delta #it{E}_{max-secondary} "
4313  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d, %d <= #it{n}_{cells}^{w>0.01} < %d",
4315  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,120,0,12);
4316  fhColRowFromCellMaxEMaxSecDiffHighM02PerSM[i][col][j]->SetZTitle("#Delta #it{E}_{max-secondary} (GeV)");
4317  fhColRowFromCellMaxEMaxSecDiffHighM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4318  fhColRowFromCellMaxEMaxSecDiffHighM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4319  outputContainer->Add(fhColRowFromCellMaxEMaxSecDiffHighM02PerSM[i][col][j]);
4320 
4322  (Form("hColRowFromCellMaxEMaxSecDiffFracLowM02_SM%d_Col%d_NCellBin%d",i,col,j),
4323  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #Delta #it{E}_{max-secondary}/#it{E}_{max} "
4324  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d,%d <= #it{n}_{cells}^{w>0.01} < %d",
4326  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,40,0,1);
4327  fhColRowFromCellMaxEMaxSecDiffFracLowM02PerSM[i][col][j]->SetZTitle("#Delta #it{E}_{max-secondary}/#it{E}_{max}");
4328  fhColRowFromCellMaxEMaxSecDiffFracLowM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4329  fhColRowFromCellMaxEMaxSecDiffFracLowM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4330  outputContainer->Add(fhColRowFromCellMaxEMaxSecDiffFracLowM02PerSM[i][col][j]);
4331 
4333  (Form("hColRowFromCellMaxEMaxSecDiffFracHighM02_SM%d_Col%d_NCellBin%d",i,col,j),
4334  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #Delta #it{E}_{max-secondary}/#it{E}_{max}"
4335  " for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d, %d <= #it{n}_{cells}^{w>0.01} < %d",
4337  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,40,0,1);
4338  fhColRowFromCellMaxEMaxSecDiffFracHighM02PerSM[i][col][j]->SetZTitle("#Delta #it{E}_{max-secondary}/#it{E}_{max}");
4339  fhColRowFromCellMaxEMaxSecDiffFracHighM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4340  fhColRowFromCellMaxEMaxSecDiffFracHighM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4341  outputContainer->Add(fhColRowFromCellMaxEMaxSecDiffFracHighM02PerSM[i][col][j]);
4342 
4344  (Form("hColRowFromCellMaxECellClusterRatLowM02_SM%d_Col%d_NCellBin%d",i,col,j),
4345  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{E}_{cell}/#it{E}_{cluster} "
4346  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d, %d <= #it{n}_{cells}^{w>0.01} < %d",
4348  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,50,0,1);
4349  fhColRowFromCellMaxECellClusterRatLowM02PerSM[i][col][j]->SetZTitle("#it{E}_{cell}/#it{E}_{cluster}");
4350  fhColRowFromCellMaxECellClusterRatLowM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4351  fhColRowFromCellMaxECellClusterRatLowM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4352  outputContainer->Add(fhColRowFromCellMaxECellClusterRatLowM02PerSM[i][col][j]);
4353 
4355  (Form("hColRowFromCellMaxECellClusterRatHighM02_SM%d_Col%d_NCellBin%d",i,col,j),
4356  Form("cell col_{max}-#col_{secondary} vs cell #row_{max}-#row_{secondary} vs #it{E}_{cell}/#it{E}_{cluster} "
4357  "for %2.2f < #sigma^{2}_{long} < %2.2f, %2.2f<#it{E}<%2.2f GeV, SM=%d, colum %d, %d <= #it{n}_{cells}^{w>0.01} < %d",
4359  nbinsdeltacells,mindeltacells,maxdeltacells,nbinsdeltacells,mindeltacells,maxdeltacells,50,0,1);
4360  fhColRowFromCellMaxECellClusterRatHighM02PerSM[i][col][j]->SetZTitle("#it{E}_{cell}/#it{E}_{cluster}");
4361  fhColRowFromCellMaxECellClusterRatHighM02PerSM[i][col][j]->SetXTitle("#Delta column_{max-secondary}");
4362  fhColRowFromCellMaxECellClusterRatHighM02PerSM[i][col][j]->SetYTitle("#Delta row_{max-secondary}");
4363  outputContainer->Add(fhColRowFromCellMaxECellClusterRatHighM02PerSM[i][col][j]);
4364 
4365  } // 3 n cell bins
4366  } // odd/pair col
4367  } // if ( fStudyColRowFromCellMax )
4368 
4369  } // SM
4370 
4371  for(Int_t imatch = 0; imatch < fNMatchPIDCases; imatch++)
4372  {
4373  if ( fStudyShapeParam )
4374  {
4375  fhDeltaIEtaDeltaIPhi[imatch] = new TH3F
4376  (Form("hDeltaIEtaDeltaIPhi_%s",matchCase[imatch].Data()),
4377  Form("Cluster max size with respect main cell in columns vs rows vs E for %s, #it{n}_{cells}^{w>0.01}>%d",matchCase[imatch].Data(),fNCellMinShape),
4378  nEbins,minE,maxE,cellBins,cellMin,cellMax,cellBins,cellMin,cellMax);
4379  fhDeltaIEtaDeltaIPhi[imatch]->SetXTitle("#it{E}_{cluster}");
4380  fhDeltaIEtaDeltaIPhi[imatch]->SetYTitle("#Delta Column");
4381  fhDeltaIEtaDeltaIPhi[imatch]->SetZTitle("#Delta Row");
4382  outputContainer->Add(fhDeltaIEtaDeltaIPhi[imatch]);
4383 
4384  fhDeltaIEtaDeltaIPhiTot[imatch] = new TH3F
4385  (Form("hDeltaIEtaDeltaIPhiTot_%s",matchCase[imatch].Data()),
4386  Form("Cluster size in columns vs rows, minus main cell, vs E for %s, #it{n}_{cells}^{w>0.01}>%d",matchCase[imatch].Data(),fNCellMinShape),
4387  nEbins,minE,maxE,cellBins,cellMin,cellMax,cellBins,cellMin,cellMax);
4388  fhDeltaIEtaDeltaIPhiTot[imatch]->SetXTitle("#it{E}_{cluster}");
4389  fhDeltaIEtaDeltaIPhiTot[imatch]->SetYTitle("#Delta Column");
4390  fhDeltaIEtaDeltaIPhiTot[imatch]->SetZTitle("#Delta Row");
4391  outputContainer->Add(fhDeltaIEtaDeltaIPhiTot[imatch]);
4392 
4393  fhDeltaIA[imatch] = new TH2F
4394  (Form("hDeltaIA_%s",matchCase[imatch].Data()),
4395  Form("Cluster *asymmetry* in cell units vs E for %s",matchCase[imatch].Data()),
4396  nptbins,ptmin,ptmax,asyBins,asyMin,asyMax);
4397  fhDeltaIA[imatch]->SetXTitle("#it{E}_{cluster}");
4398  fhDeltaIA[imatch]->SetYTitle("#it{A}_{cell in cluster}");
4399  outputContainer->Add(fhDeltaIA[imatch]);
4400 
4401  fhDeltaIATot[imatch] = new TH2F
4402  (Form("hDeltaIATot_%s",matchCase[imatch].Data()),
4403  Form("Cluster *total asymmetry* in cell units vs E for %s",matchCase[imatch].Data()),
4404  nptbins,ptmin,ptmax,asyBins,asyMin,asyMax);
4405  fhDeltaIATot[imatch]->SetXTitle("#it{E}_{cluster}");
4406  fhDeltaIATot[imatch]->SetYTitle("#it{A}_{cell in cluster}^{total}");
4407  outputContainer->Add(fhDeltaIATot[imatch]);
4408 
4409  fhDeltaIAM02[imatch] = new TH3F
4410  (Form("hDeltaIAM02_%s",matchCase[imatch].Data()),
4411  Form("Cluster *asymmetry* in cell units vs #sigma^{2}_{long} for %s",matchCase[imatch].Data()),
4412  nEbins,minE,maxE,nShShBins,minShSh,maxShSh,asyBins,asyMin,asyMax);
4413  fhDeltaIAM02[imatch]->SetXTitle("#it{E}_{cluster}");
4414  fhDeltaIAM02[imatch]->SetYTitle("#sigma^{2}_{long}");
4415  fhDeltaIAM02[imatch]->SetZTitle("#it{A}_{cell in cluster}");
4416  outputContainer->Add(fhDeltaIAM02[imatch]);
4417 
4418  fhDeltaIATotM02[imatch] = new TH3F
4419  (Form("hDeltaIATotM02_%s",matchCase[imatch].Data()),
4420  Form("Cluster *total asymmetry* in cell units vs #sigma^{2}_{long} for %s",matchCase[imatch].Data()),
4421  nEbins,minE,maxE,nShShBins,minShSh,maxShSh,asyBins,asyMin,asyMax);
4422  fhDeltaIATotM02[imatch]->SetXTitle("#it{E}_{cluster}");
4423  fhDeltaIATotM02[imatch]->SetYTitle("#sigma^{2}_{long}");
4424  fhDeltaIATotM02[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
4425  outputContainer->Add(fhDeltaIATotM02[imatch]);
4426 
4427  fhDeltaIAM20[imatch] = new TH3F
4428  (Form("hDeltaIAM20_%s",matchCase[imatch].Data()),
4429  Form("Cluster *asymmetry* in cell units vs #sigma^{2}_{short} for %s",matchCase[imatch].Data()),
4430  nEbins,minE,maxE,(Int_t)nShShBins/1.5,0,maxShSh/1.5,asyBins,asyMin,asyMax);
4431  fhDeltaIAM20[imatch]->SetXTitle("#it{E}_{cluster}");
4432  fhDeltaIAM20[imatch]->SetYTitle("#sigma^{2}_{short}");
4433  fhDeltaIAM20[imatch]->SetZTitle("#it{A}_{cell in cluster}");
4434  outputContainer->Add(fhDeltaIAM20[imatch]);
4435 
4436  fhDeltaIATotM20[imatch] = new TH3F
4437  (Form("hDeltaIATotM20_%s",matchCase[imatch].Data()),
4438  Form("Cluster *total asymmetry* in cell units vs #sigma^{2}_{short} for %s",matchCase[imatch].Data()),
4439  nEbins,minE,maxE,(Int_t)nShShBins/1.5,0,maxShSh/1.5,asyBins,asyMin,asyMax);
4440  fhDeltaIATotM20[imatch]->SetXTitle("#it{E}_{cluster}");
4441  fhDeltaIATotM20[imatch]->SetYTitle("#sigma^{2}_{short}");
4442  fhDeltaIATotM20[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
4443  outputContainer->Add(fhDeltaIATotM20[imatch]);
4444 
4445  fhDeltaIANCells[imatch] = new TH3F
4446  (Form("hDeltaIANCells_%s",matchCase[imatch].Data()),
4447  Form("Cluster *asymmetry* in cell units vs N cells in cluster for %s",matchCase[imatch].Data()),
4448  nEbins,minE,maxE,cellBins,cellMin,cellMax,asyBins,asyMin,asyMax);
4449  fhDeltaIANCells[imatch]->SetXTitle("#it{E}_{cluster}");
4450  fhDeltaIANCells[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4451  fhDeltaIANCells[imatch]->SetZTitle("#it{A}_{cell in cluster}");
4452  outputContainer->Add(fhDeltaIANCells[imatch]);
4453 
4454  fhDeltaIATotNCells[imatch] = new TH3F
4455  (Form("hDeltaIATotNCells_%s",matchCase[imatch].Data()),
4456  Form("Cluster *total asymmetry* in cell units vs N cells in cluster for %s",matchCase[imatch].Data()),
4457  nEbins,minE,maxE,cellBins,cellMin,cellMax,asyBins,asyMin,asyMax);
4458  fhDeltaIATotNCells[imatch]->SetXTitle("#it{E}_{cluster}");
4459  fhDeltaIATotNCells[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4460  fhDeltaIATotNCells[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
4461  outputContainer->Add(fhDeltaIATotNCells[imatch]);
4462 
4463  if ( IsDataMC() )
4464  {
4465  fhDeltaIAOrigin[imatch] = new TH3F
4466  (Form("hDeltaIAOrigin_%s",matchCase[imatch].Data()),
4467  Form("Cluster *asymmetry* in cell units vs E vs primary ID, for ID %s",matchCase[imatch].Data()),
4468  nEbins,minE,maxE,10,-0.5,9.5,asyBins,asyMin,asyMax);
4469  fhDeltaIAOrigin[imatch]->SetXTitle("#it{E}_{cluster}");
4470  fhDeltaIAOrigin[imatch]->SetYTitle("particle");
4471  fhDeltaIAOrigin[imatch]->SetZTitle("#it{A}_{cell in cluster}");
4472  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
4473  fhDeltaIAOrigin[imatch]->GetYaxis()->SetBinLabel(ilabel,mcParticleStringLabel[ilabel-1]);
4474  outputContainer->Add(fhDeltaIAOrigin[imatch]);
4475 
4476  fhDeltaIATotOrigin[imatch] = new TH3F
4477  (Form("hDeltaIATotOrigin_%s",matchCase[imatch].Data()),
4478  Form("Cluster *total asymmetry* in cell units vs E vs primary ID, for ID %s",matchCase[imatch].Data()),
4479  nEbins,minE,maxE,10,-0.5,9.5,asyBins,asyMin,asyMax);
4480  fhDeltaIATotOrigin[imatch]->SetXTitle("#it{E}_{cluster}");
4481  fhDeltaIATotOrigin[imatch]->SetYTitle("particle");
4482  fhDeltaIATotOrigin[imatch]->SetZTitle("#it{A}_{cell in cluster}");
4483  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
4484  fhDeltaIATotOrigin[imatch]->GetYaxis()->SetBinLabel(ilabel,mcParticleStringLabel[ilabel-1]);
4485  outputContainer->Add(fhDeltaIATotOrigin[imatch]);
4486  }
4487  } // Cluster asymmetry
4488 
4489  fhClusterMaxCellDiffM02[imatch] = new TH3F
4490  (Form("hClusterMaxCellDiffM02_%s",matchCase[imatch].Data()),
4491  Form("#it{E}_{cluster} vs (#it{E}_{cluster} - #it{E}_{cell max})/#it{E}_{cluster} vs #sigma^{2}_{long} for ID %s",matchCase[imatch].Data()),
4492  nEbins,minE,maxE, 20,0,1.,nShShBins,minShSh,maxShSh);
4493  fhClusterMaxCellDiffM02[imatch]->SetXTitle("#it{E}_{cluster} (GeV) ");
4494  fhClusterMaxCellDiffM02[imatch]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
4495  fhClusterMaxCellDiffM02[imatch]->SetZTitle("#sigma^{2}_{long}");
4496  outputContainer->Add(fhClusterMaxCellDiffM02[imatch]);
4497 
4498  fhClusterTimeEnergyM02[imatch] = new TH3F
4499  (Form("hClusterTimeEnergyM02_%s",matchCase[imatch].Data()),
4500  Form("#it{E} vs TOF vs #sigma^{2}_{long} for ID %s",matchCase[imatch].Data()),
4501  nEbins,minE,maxE,45,-25.5,20.5,nShShBins,minShSh,maxShSh);
4502  fhClusterTimeEnergyM02[imatch]->SetXTitle("#it{E} (GeV) ");
4503  fhClusterTimeEnergyM02[imatch]->SetYTitle("TOF (ns)");
4504  fhClusterTimeEnergyM02[imatch]->SetZTitle("#sigma^{2}_{long}");
4505  outputContainer->Add(fhClusterTimeEnergyM02[imatch]);
4506 
4507  fhNCellsPerClusterM02[imatch] = new TH3F
4508  (Form("hNCellsPerClusterM02_%s",matchCase[imatch].Data()),
4509  Form("#it{E} vs #it{n}_{cells} vs #sigma^{2}_{long} for ID %s",matchCase[imatch].Data()),
4510  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
4511  fhNCellsPerClusterM02[imatch]->SetXTitle("#it{E} (GeV)");
4512  fhNCellsPerClusterM02[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4513  fhNCellsPerClusterM02[imatch]->SetZTitle("#sigma^{2}_{long}");
4514  outputContainer->Add(fhNCellsPerClusterM02[imatch]);
4515 
4516  fhNCellsPerClusterM20[imatch] = new TH3F
4517  (Form("hNCellsPerClusterM20_%s",matchCase[imatch].Data()),
4518  Form("#it{E} vs #it{n}_{cells} vs #sigma^{2}_{short} for ID %s",matchCase[imatch].Data()),
4519  nEbins,minE,maxE,cellBins,cellMin,cellMax,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4520  fhNCellsPerClusterM20[imatch]->SetXTitle("#it{E} (GeV)");
4521  fhNCellsPerClusterM20[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4522  fhNCellsPerClusterM20[imatch]->SetZTitle("#sigma^{2}_{short}");
4523  outputContainer->Add(fhNCellsPerClusterM20[imatch]);
4524 
4525  fhNCellsPerClusterNLM[imatch] = new TH3F
4526  (Form("hNCellsPerClusterNLM_%s",matchCase[imatch].Data()),
4527  Form("#it{E} vs #it{n}_{cells} vs n_{lm} for ID %s",matchCase[imatch].Data()),
4528  nEbins,minE,maxE,cellBins,cellMin,cellMax,10,0,10);
4529  fhNCellsPerClusterNLM[imatch]->SetXTitle("#it{E} (GeV)");
4530  fhNCellsPerClusterNLM[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
4531  fhNCellsPerClusterNLM[imatch]->SetZTitle("n_{lm}");
4532  outputContainer->Add(fhNCellsPerClusterNLM[imatch]);
4533 
4534  fhSMM02[imatch] = new TH3F
4535  (Form("hSMM02_%s",matchCase[imatch].Data()),
4536  Form("#it{E} vs SM number vs #sigma^{2}_{long}, #it{n}_{cells}^{w>0.01}>%d, for ID %s",fNCellMinShape,matchCase[imatch].Data()),
4537  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,nShShBins,minShSh,maxShSh);
4538  fhSMM02[imatch]->SetXTitle("#it{E} (GeV)");
4539  fhSMM02[imatch]->SetYTitle("SM number");
4540  fhSMM02[imatch]->SetZTitle("#sigma^{2}_{long}");
4541  outputContainer->Add(fhSMM02[imatch]);
4542 
4543  fhSMM02NoCut[imatch] = new TH3F
4544  (Form("hSMM02NoCut_%s",matchCase[imatch].Data()),
4545  Form("#it{E} vs SM number vs #sigma^{2}_{long} for ID %s",matchCase[imatch].Data()),
4546  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,nShShBins,minShSh,maxShSh);
4547  fhSMM02NoCut[imatch]->SetXTitle("#it{E} (GeV)");
4548  fhSMM02NoCut[imatch]->SetYTitle("SM number");
4549  fhSMM02NoCut[imatch]->SetZTitle("#sigma^{2}_{long}");
4550  outputContainer->Add(fhSMM02NoCut[imatch]);
4551 
4552  fhSMM20LowM02[imatch] = new TH3F
4553  (Form("hSMM20LowM02_%s",matchCase[imatch].Data()),
4554  Form("#it{E} vs SM number vs #sigma^{2}_{short}, #it{n}_{cells}^{w>0.01}>%d, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4555  fNCellMinShape, fM02LowBin[0], fM02LowBin[1], matchCase[imatch].Data()),
4556  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4557  fhSMM20LowM02[imatch]->SetXTitle("#it{E} (GeV)");
4558  fhSMM20LowM02[imatch]->SetYTitle("SM number");
4559  fhSMM20LowM02[imatch]->SetZTitle("#sigma^{2}_{short}");
4560  outputContainer->Add(fhSMM20LowM02[imatch]);
4561 
4562  fhSMM20LowM02NoCut[imatch] = new TH3F
4563  (Form("hSMM20LowM02NoCut_%s",matchCase[imatch].Data()),
4564  Form("#it{E} vs SM number vs #sigma^{2}_{short}, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4565  fM02LowBin[0], fM02LowBin[1], matchCase[imatch].Data()),
4566  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4567  fhSMM20LowM02NoCut[imatch]->SetXTitle("#it{E} (GeV)");
4568  fhSMM20LowM02NoCut[imatch]->SetYTitle("SM number");
4569  fhSMM20LowM02NoCut[imatch]->SetZTitle("#sigma^{2}_{short}");
4570  outputContainer->Add(fhSMM20LowM02NoCut[imatch]);
4571 
4572  fhSMM20HighM02[imatch] = new TH3F
4573  (Form("hSMM20HighM02_%s",matchCase[imatch].Data()),
4574  Form("#it{E} vs SM number vs #sigma^{2}_{short}, #it{n}_{cells}^{w>0.01}>%d, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4575  fNCellMinShape, fM02HighBin[0], fM02HighBin[1], matchCase[imatch].Data()),
4576  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4577  fhSMM20HighM02[imatch]->SetXTitle("#it{E} (GeV)");
4578  fhSMM20HighM02[imatch]->SetYTitle("SM number");
4579  fhSMM20HighM02[imatch]->SetZTitle("#sigma^{2}_{short}");
4580  outputContainer->Add(fhSMM20HighM02[imatch]);
4581 
4582  fhSMM20HighM02NoCut[imatch] = new TH3F
4583  (Form("hSMM20HighM02NoCut_%s",matchCase[imatch].Data()),
4584  Form("#it{E} vs SM number vs #sigma^{2}_{short}, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4585  fM02HighBin[0], fM02HighBin[1], matchCase[imatch].Data()),
4586  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,(Int_t)nShShBins/1.5,0,maxShSh/1.5);
4587  fhSMM20HighM02NoCut[imatch]->SetXTitle("#it{E} (GeV)");
4588  fhSMM20HighM02NoCut[imatch]->SetYTitle("SM number");
4589  fhSMM20HighM02NoCut[imatch]->SetZTitle("#sigma^{2}_{short}");
4590  outputContainer->Add(fhSMM20HighM02NoCut[imatch]);
4591 
4592  fhSMNCell[imatch] = new TH3F
4593  (Form("hSMNCell_%s",matchCase[imatch].Data()),
4594  Form("#it{E} vs SM number vs #it{n}_{cells}^{w>0.01} for ID %s",matchCase[imatch].Data()),
4595  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
4596  fhSMNCell[imatch]->SetXTitle("#it{E} (GeV)");
4597  fhSMNCell[imatch]->SetYTitle("SM number");
4598  fhSMNCell[imatch]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4599  outputContainer->Add(fhSMNCell[imatch]);
4600 
4601  fhSMNCellLowM02[imatch] = new TH3F
4602  (Form("hSMNCellLowM02_%s",matchCase[imatch].Data()),
4603  Form("#it{E} vs SM number vs #it{n}_{cells}^{w>0.01}, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4604  fM02LowBin[0], fM02LowBin[1],matchCase[imatch].Data()),
4605  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
4606  fhSMNCellLowM02[imatch]->SetXTitle("#it{E} (GeV)");
4607  fhSMNCellLowM02[imatch]->SetYTitle("SM number");
4608  fhSMNCellLowM02[imatch]->SetZTitle("#it{n}_{cells}^{w>0.01}");
4609  outputContainer->Add(fhSMNCellLowM02[imatch]);
4610 
4611  fhSMNCellHighM02[imatch] = new TH3F
4612  (Form("hSMNCellHighM02_%s",matchCase[imatch].Data()),
4613  Form("#it{E} vs SM number vs #it{n}_{cells}^{w>0.01}, for %2.2f<#sigma^{2}_{long}<%2.2f, for ID %s",
4614  fM02HighBin[0], fM02HighBin[1],matchCase[imatch].Data()),
4615  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
4616  fhSMNCellHighM02[imatch]->SetXTitle("#it{E} (GeV)");
4617  fhSMNCellHighM02[imatch]->SetYTitle("SM number");
4618  fhSMNCellHighM02[imatch]->SetZTitle("#i