AliPhysics  15d9304 (15d9304)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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), fStudyWeight(kFALSE),
46 fStudyTCardCorrelation(kFALSE), fStudyExotic(kFALSE),
47 
48 // Parameters and cuts
49 fM02Min(0), fNCellMin(0),
50 fMinDistToBad(0), fNEBinCuts(0),
51 
52 fdEdXMinEle(0), fdEdXMaxEle(0),
53 fdEdXMinHad(0), fdEdXMaxHad(0),
54 
55 // Invariant mass
56 fInvMassMinECut(0), fInvMassMaxECut(0),
57 fInvMassMinM02Cut(0), fInvMassMaxM02Cut(0),
58 fInvMassMaxOpenAngle(0), fInvMassMaxTimeDifference(0),
59 
60 fConstantTimeShift(0),
61 
62 fClusterMomentum(), fClusterMomentum2(),
63 fCaloCellList(NULL), fCaloClusList(NULL),
64 
65 // Histograms
66 
67 // TCard correl and shape and exoticity
68 fhEnergyTMEtaResidual1Cell(0), fhEnergyTMPhiResidual1Cell(0),
69 fhColRowExoticHighE1CellPosTime(0), fhColRowExoticHighE1CellNegTime(0), fhColRowExoticHighE1CellNulTime(0),
70 fhEnergyTMEtaResidualExotic(0), fhEnergyTMPhiResidualExotic(0),
71 fhColRowExoticHighEPosTime(0), fhColRowExoticHighENegTime(0), fhColRowExoticHighENulTime(0),
72 fhColRowHighEPosTime(0), fhColRowHighENegTime(0), fhColRowHighENulTime(0),
73 fhEnergyTMEtaResidualTCardCorrNoSelection1Cell(0), fhEnergyTMPhiResidualTCardCorrNoSelection1Cell(0),
74 fhEnergyTMEtaResidualTCardCorrNoSelectionExotic(0), fhEnergyTMPhiResidualTCardCorrNoSelectionExotic(0),
75 
76 // Shape studies
77 //fhCellTimeSpreadRespectToCellMaxM02(0),
78 //fhClusterMaxCellCloseCellDiffM02(0),
79 fhClusterMaxCellCloseCellRatioM02(0), fhClusterMaxCellECrossM02(0),
80 
81 // Weight studies
82 fhECellClusterRatio(0), fhECellClusterLogRatio(0),
83 fhEMaxCellClusterRatio(0), fhEMaxCellClusterLogRatio(0),
84 fhECellTotalRatio(0), fhECellTotalLogRatio(0),
85 fhECellTotalRatioMod(0), fhECellTotalLogRatioMod(0)
86 {
87  for(Int_t i=0; i < 3; i++)
88  {
89  // Shower shape dependence
90  fhClusterTimeEnergyM02 [i] = 0;
92  fhNCellsPerClusterM02 [i] = 0;
93  fhNCellsPerClusterM20 [i] = 0;
94 
95  fhNCellsPerClusterMEta [i] = 0;
96  fhNCellsPerClusterMPhi [i] = 0;
99 
100  fhSMM02 [i] = 0;
101  fhColM02 [i] = 0;
102  fhRowM02 [i] = 0;
103 
104  fhOriginE [i] = 0;
105  fhOriginM02 [i] = 0;
106 
107  // Cluster asymmetry
108  fhDeltaIEtaDeltaIPhi [i] = 0;
109  fhDeltaIA [i] = 0;
110  fhDeltaIAM02 [i] = 0;
111  fhDeltaIAM20 [i] = 0;
112  fhDeltaIANCells [i] = 0;
113  fhDeltaIAOrigin [i] = 0;
114 
116  fhDeltaIATot [i] = 0;
117  fhDeltaIATotM02 [i] = 0;
118  fhDeltaIATotM20 [i] = 0;
119  fhDeltaIATotNCells [i] = 0;
120  fhDeltaIATotOrigin [i] = 0;
121  }
122 
123  // Weight studies
124  for(Int_t i =0; i < 12; i++)
125  {
126  for(Int_t j = 0; j < 4; j++)
127  {
128  for(Int_t k = 0; k < 3; k++)
129  {
130  fhLambda0ForW0AndCellCuts [i][j][k] = 0;
131 // fhLambda1ForW0AndCellCuts [i][j][k] = 0;
132  fhLambda0ForW0AndCellCutsEta0[i][j][k] = 0;
133  }
134  }
135  for(Int_t j = 0; j < 5; j++)
136  {
137  fhLambda0ForW0MC[i][j] = 0;
138 // fhLambda1ForW0MC[i][j] = 0;
139  }
140  }
141 
142  // TCard correl studies
143  for(Int_t tm = 0; tm < 2; tm++)
144  {
145  fhEnergyTime1Cell [tm] = 0;
146  fhColRowExoticLowE1Cell [tm] = 0;
147  fhColRowExoticHighE1Cell[tm] = 0;
148 
149  fhEnergyTimeExotic [tm] = 0;
150  fhColRowExoticLowE [tm] = 0 ;
151  fhColRowExoticHighE[tm] = 0 ;
156 
159 
162 
167 
172 
175 
184 
194 
201 
211 
221 
222 
223  fhNCellsTCardCorrNoSelection [tm] = 0 ;
226  fhExoticTCardCorrNoSelection [tm] = 0 ;
229 
238 
239  for(Int_t i = 0; i < 6; i++)
240  {
241  for(Int_t j = 0; j < 6; j++)
242  {
243  fhLambda0TCardCorrelNCell[i][j][tm] = 0 ;
244  fhLambda1TCardCorrelNCell[i][j][tm] = 0 ;
245  fhLambda0NLM1TCardCorrelNCell[i][j][tm] = 0 ;
246  fhLambda1NLM1TCardCorrelNCell[i][j][tm] = 0 ;
247  fhLambda0NLM2TCardCorrelNCell[i][j][tm] = 0 ;
248  fhLambda1NLM2TCardCorrelNCell[i][j][tm] = 0 ;
249 // fhLambdaRTCardCorrelNCell[i][j][tm] = 0 ;
250  fhNLocMaxTCardCorrelNCell[i][j][tm] = 0 ;
251 
252  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
253  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
254  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
255  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
256  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
257  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
258  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
259  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
260  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
261 
262  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm] = 0 ;
263  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm] = 0 ;
264  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm] = 0 ;
265  fhLogECellNLM1TCardCorrelNCell[i][j][tm] = 0 ;
266  fhLogECellNLM2TCardCorrelNCell[i][j][tm] = 0 ;
267  fhLogECellNLM3TCardCorrelNCell[i][j][tm] = 0 ;
268  fhECellWeightNLM1TCardCorrelNCell [i][j][tm] = 0 ;
269  fhECellWeightNLM2TCardCorrelNCell [i][j][tm] = 0 ;
270  fhECellWeightNLM3TCardCorrelNCell [i][j][tm] = 0 ;
271 
272  fhMassEClusTCardCorrelNCell[i][j][tm] = 0 ;
273 // fhMassEPairTCardCorrelNCell[i][j][tm] = 0 ;
274  fhExoticTCardCorrelNCell [i][j][tm] = 0 ;
275  fhTimeDiffTCardCorrelNCell [i][j][tm] = 0 ;
276  fhTimeDiffExoTCardCorrelNCell[i][j][tm] = 0 ;
277  fhColRowTCardCorrelNCellLowE [i][j][tm] = 0 ;
278  fhColRowTCardCorrelNCellHighE[i][j][tm] = 0 ;
279  }
280 
281 // fhLambda0TCardCorrelN[i][tm] = 0 ;
282 // fhNCellsTCardCorrelN [i][tm] = 0 ;
283 // fhExoticTCardCorrelN [i][tm] = 0 ;
284 // fhColRowTCardCorrelNLowE [i][tm] = 0 ;
285 // fhColRowTCardCorrelNHighE[i][tm] = 0 ;
286 //
287 // fhLambda0TCardCorrelNAllSameTCard[i][tm] = 0 ;
288 // fhNCellsTCardCorrelNAllSameTCard [i][tm] = 0 ;
289 // fhExoticTCardCorrelNAllSameTCard [i][tm] = 0 ;
290 // fhColRowTCardCorrelNAllSameTCardLowE [i][tm] = 0 ;
291 // fhColRowTCardCorrelNAllSameTCardHighE[i][tm] = 0 ;
292 //
293 // fhLambda0TCardCorrelNExotic[i][tm] = 0 ;
294 // fhNCellsTCardCorrelNExotic [i][tm] = 0 ;
295 // fhColRowTCardCorrelNLowEExotic [i][tm] = 0 ;
296 // fhColRowTCardCorrelNHighEExotic[i][tm] = 0 ;
297 //
298 // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm] = 0 ;
299 // fhNCellsTCardCorrelNAllSameTCardExotic [i][tm] = 0 ;
300 // fhColRowTCardCorrelNAllSameTCardLowEExotic [i][tm] = 0 ;
301 // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm] = 0 ;
302 // fhLambda0TCardCorrelNearRow[i][tm] = 0 ;
303 // fhNCellsTCardCorrelNearRow [i][tm] = 0 ;
304  }
305 
306 // for(Int_t i = 0; i < 4; i++)
307 // {
308 // fhLambda0TCardCorrel2ndMax[i][tm] = 0 ;
309 // fhNCellsTCardCorrel2ndMax [i][tm] = 0 ;
310 // fhLambda0TCardCorrelExotic[i][tm] = 0 ;
311 // fhNCellsTCardCorrelExotic [i][tm] = 0 ;
312 // }
313 
314  for(Int_t i = 0; i < 14; i++)
315  {
316  fhLambda0Exoticity[i][tm] = 0;
317  fhLambda1Exoticity[i][tm] = 0;
318 // fhLambdaRExoticity[i][tm] = 0;
319  fhNCellsExoticity [i][tm] = 0;
320  fhTimeExoticity [i][tm] = 0;
321  fhLambda0Lambda1 [i][tm] = 0;
322 
323 // fhLambda0ExoticityAllSameTCard[i][tm] = 0;
324 // fhLambda1ExoticityAllSameTCard[i][tm] = 0;
325 // fhLambdaRExoticityAllSameTCard[i][tm] = 0;
326 // fhNCellsExoticityAllSameTCard [i][tm] = 0;
327 // fhLambda0Lambda1AllSameTCard [i][tm] = 0;
328 
329  fhNCellsTCardSameAndDiff [i][tm] = 0;
331  }
332 
333  for(Int_t j = 0; j < 6; j++)
334  {
335  for(Int_t k = 0; k < 6; k++)
336  {
337  fhLambda0ExoticityPerNCell[j][k][tm] = 0;
338  fhLambda1ExoticityPerNCell[j][k][tm] = 0;
339 // fhLambdaRExoticityPerNCell[j][k][tm] = 0;
340  }
341  }
342 
343 // for(Int_t i = 0; i < 7; i++)
344 // {
345 // fhLambda0TCardCorrel[i][tm] = 0 ;
346 // fhNCellsTCardCorrel [i][tm] = 0 ;
347 // fhExoticTCardCorrel [i][tm] = 0 ;
348 //
349 // fhLambda0TCardCorrelOtherTCard[i][tm] = 0 ;
350 // fhNCellsTCardCorrelOtherTCard [i][tm] = 0 ;
351 // fhExoticTCardCorrelOtherTCard [i][tm] = 0 ;
352 // fhColRowTCardCorrelOtherTCardLowE [i][tm] = 0 ;
353 // fhColRowTCardCorrelOtherTCardHighE[i][tm] = 0 ;
354 // }
355 
356  for(Int_t i = 0; i < 12; i++)
357  {
358  fhTCardCorrECellMaxDiff[i][tm]=0;
359  fhTCardCorrEClusterDiff[i][tm]=0;
360 // fhTCardCorrECellMaxRat [i][tm]=0;
361 // fhTCardCorrEClusterRat [i][tm]=0;
362  fhTCardCorrTCellMaxDiff[i][tm]=0;
363 
364  fhTCardCorrECellMaxDiffExo[i][tm]=0;
365  fhTCardCorrEClusterDiffExo[i][tm]=0;
366 // fhTCardCorrECellMaxRatExo [i][tm]=0;
367 // fhTCardCorrEClusterRatExo [i][tm]=0;
368  fhTCardCorrTCellMaxDiffExo[i][tm]=0;
369  }
370  }
371 
372  for(Int_t i = 0; i < fNEBinCuts; i++)
373  {
378 // fhTMPhiResidualExoticityAllSameTCard[i] = 0;
379 // fhTMEtaResidualExoticityAllSameTCard[i] = 0;
380  }
381 
382  InitParameters();
383 }
384 
385 
386 //___________________________________________________
395 //___________________________________________________
397 (AliVCluster* clus, Bool_t matched,Int_t absIdMax, Float_t exoticity)
398 {
399  // Get the col and row of the leading cluster cell
400 
401  Int_t icol = -1, irow = -1, iRCU = -1, icolAbs = -1, irowAbs = -1;
402  GetModuleNumberCellIndexesAbsCaloMap(absIdMax,GetCalorimeter(), icol, irow, iRCU, icolAbs, irowAbs);
403 
404  Float_t energy = clus->E();
405  Int_t ebin = -1;
406  for(Int_t ie = 0; ie < fNEBinCuts; ie++)
407  {
408  if( energy >= fEBinCuts[ie] && energy < fEBinCuts[ie+1] ) ebin = ie;
409  }
410 
411  Int_t ncells = clus->GetNCells();
412  Double_t time = clus->GetTOF()*1.e9;
413  time-=fConstantTimeShift;
414  Float_t deta = clus->GetTrackDz();
415  Float_t dphi = clus->GetTrackDx();
416 
417  //if(clus->GetNCells()==1 && clus->E() > 4)printf("TCard E %f, NCells %d\n",energy,clus->GetNCells());
418 
419  if(fStudyExotic)
420  {
421  if ( ncells == 1 )
422  {
423  if(energy >= 5 && energy < 8)
424  fhColRowExoticLowE1Cell [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
425  else if(energy >= 8)
426  {
427  fhColRowExoticHighE1Cell[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
428 
429  if ( time > 5) fhColRowExoticHighE1CellPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
430  else if( time < -5) fhColRowExoticHighE1CellNegTime->Fill(icolAbs,irowAbs,GetEventWeight());
431  else fhColRowExoticHighE1CellNulTime->Fill(icolAbs,irowAbs,GetEventWeight());
432  }
433 
434  fhEnergyTime1Cell[matched]->Fill(energy,time,GetEventWeight());
435  fhEnergyTMEtaResidual1Cell->Fill(energy,deta,GetEventWeight());
436  fhEnergyTMPhiResidual1Cell->Fill(energy,dphi,GetEventWeight());
437  }
438  else if(exoticity > 0.97)
439  {
440  if(energy >= 5 && energy < 8)
441  fhColRowExoticLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
442  else if(energy >= 8)
443  {
444  fhColRowExoticHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
445 
446  if ( time > 5) fhColRowExoticHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
447  else if( time < -5) fhColRowExoticHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
448  else fhColRowExoticHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
449  }
450 
451  fhEnergyTimeExotic[matched]->Fill(energy,time,GetEventWeight());
452  fhEnergyTMEtaResidualExotic->Fill(energy,deta,GetEventWeight());
453  fhEnergyTMPhiResidualExotic->Fill(energy,dphi,GetEventWeight());
454 
455  for (Int_t ipos = 0; ipos < ncells; ipos++)
456  {
457  Int_t absId = clus->GetCellsAbsId()[ipos];
458 
459  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
460  GetCaloUtils()->RecalibrateCellAmplitude(eCell, GetCalorimeter(), absId);
461 
462  // consider cells with enough energy weight and not the reference one
463  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
464 
465  if( absId == absIdMax || weight < 0.01 ) continue;
466 
467  Int_t rowDiff = -100, colDiff = -100;
468  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
469 
470  // Get the col and row of the secondary cluster cell
471  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
472  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
473 
474  if ( !sameTCard )
475  {
476  if(energy >= 5 && energy < 8)
477  fhColRowExotic2ndCellDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
478  else if(energy >= 8)
479  fhColRowExotic2ndCellDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
480  }
481  else
482  {
483  if(energy >= 5 && energy < 8)
484  fhColRowExotic2ndCellSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
485  else if(energy >= 8)
486  fhColRowExotic2ndCellSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
487  }
488  }
489 
490  }
491  else if ( energy > 8 )
492  {
493  if ( time > 5) fhColRowHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
494  else if( time < -5) fhColRowHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
495  else fhColRowHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
496  }
497 
498  if(ebin > -1)
499  {
500  fhTMPhiResidualExoticityLooseCut[ebin]->Fill(exoticity,dphi);
501  fhTMEtaResidualExoticityLooseCut[ebin]->Fill(exoticity,deta);
502  }
503  }
504  else if ( energy > 8 && ncells > 1 && exoticity < 0.97)
505  {
506  if ( time > 5) fhColRowHighEPosTime->Fill(icolAbs,irowAbs,GetEventWeight());
507  else if( time < -5) fhColRowHighENegTime->Fill(icolAbs,irowAbs,GetEventWeight());
508  else fhColRowHighENulTime->Fill(icolAbs,irowAbs,GetEventWeight());
509  }
510 
511  // Clean the sample
512 
513  // in center of SM
514  Int_t etaRegion = -1, phiRegion = -1;
515  GetCaloUtils()->GetEMCALSubregion(clus,fCaloCellList,etaRegion,phiRegion);
516  // Region 0: center of SM ~0.18<|eta|<0.55
517  if ( etaRegion !=0 ) return ;
518 
519  if(fStudyExotic)
520  {
521  if ( ncells == 1 )
522  {
523  fhEnergyTimeTCardCorrNoSelection1Cell[matched]->Fill(energy,time,GetEventWeight());
524  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell->Fill(energy,deta,GetEventWeight());
525  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell->Fill(energy,dphi,GetEventWeight());
526  }
527  else if(exoticity > 0.97)
528  {
529  fhEnergyTimeTCardCorrNoSelectionExotic[matched]->Fill(energy,time,GetEventWeight());
530  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic->Fill(energy,deta,GetEventWeight());
531  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic->Fill(energy,dphi,GetEventWeight());
532  }
533  }
534 
535  Float_t m02 = clus->GetM02();
536  Float_t m20 = clus->GetM20();
537  Float_t lamR = 0;
538  if ( m02 > 0.001 ) lamR = m20/m02;
539 
540  Int_t absIdList[ncells];
541  Float_t maxEList [ncells];
542  Int_t nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus, fCaloCellList, absIdList, maxEList) ;
543 //Int_t nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus,fCaloCellList);
544 
545  //
546  // Correlation to max
547  //
548  Int_t nCellWithWeight = 1;
549  Bool_t nearRow = kFALSE;
550  Bool_t nearCol = kFALSE;
551  Int_t nCorr = 0;
552  Int_t nCorrNo = 0;
553  Int_t sameCol = 0;
554  Int_t other = 0;
555  Int_t sameRow = 0;
556  Float_t eCellMax = fCaloCellList->GetCellAmplitude(absIdMax);
557  Double_t tCellMax = fCaloCellList->GetCellTime(absIdMax);
558  //printf("Org E %2.2f, t %2.2f\n",eCellMax,tCellMax*1e9);
559  GetCaloUtils()->RecalibrateCellAmplitude(eCellMax, GetCalorimeter(), absIdMax);
560  GetCaloUtils()->RecalibrateCellTime(tCellMax, GetCalorimeter(), absIdMax, GetReader()->GetInputEvent()->GetBunchCrossNumber());
561  //printf("New E %2.2f, t %2.2f\n",eCellMax,tCellMax*1e9);
562 
563  tCellMax *= 1.0e9;
564  tCellMax-=fConstantTimeShift;
565 
566  // correlation not max cells
567 // Int_t nCorr2 = 0;
568 // Int_t sameCol2 = 0;
569 // Int_t other2 = 0;
570 // Int_t sameRow2 = 0;
571 
572  // Get second highest energy cell
573 // Int_t absId2ndMax = -1;
574  Float_t emax2nd = 0;
575  Bool_t sameTCard2ndMax = kFALSE;
576 //Int_t rowDiff2 = -100;
577 //Int_t colDiff2 = -100;
578 
579  Float_t eCellSameRowSameTCardNearCol = 0.;
580  Float_t eCellSameRowDiffTCardNearCol = 0.;
581  Double_t tCellSameRowSameTCardNearCol = 0.;
582  Double_t tCellSameRowDiffTCardNearCol = 0.;
583 
584  //printf("Cluster E %2.2f, ncells %d, absIdMax %d, eCell Max %2.2f\n", energy, ncells, absIdMax, fCaloCellList->GetCellAmplitude(absIdMax));
585 
586  //
587  // Loop on the cluster cells, define correlations
588  //
589  for (Int_t ipos = 0; ipos < ncells; ipos++)
590  {
591  Int_t absId = clus->GetCellsAbsId()[ipos];
592 
593  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
594  Double_t tCell = fCaloCellList->GetCellTime(absId);
595 
596  GetCaloUtils()->RecalibrateCellAmplitude(eCell, GetCalorimeter(), absId);
597  GetCaloUtils()->RecalibrateCellTime(tCell, GetCalorimeter(), absId, GetReader()->GetInputEvent()->GetBunchCrossNumber());
598  tCell *= 1.0e9;
599  tCell-=fConstantTimeShift;
600 
601  // consider cells with enough energy weight and not the reference one
602  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
603 
604  if( absId == absIdMax || weight < 0.01 ) continue;
605 
606  if (nlm==1)
607  {
608  fhECellClusRatNLM1TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
609  fhLogECellNLM1TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
610  fhECellWeightNLM1TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
611  }
612  else if(nlm==2)
613  {
614  fhECellClusRatNLM2TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
615  fhLogECellNLM2TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
616  fhECellWeightNLM2TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
617  }
618  else
619  {
620  fhECellClusRatNLM3TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
621  fhLogECellNLM3TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
622  fhECellWeightNLM3TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
623  }
624 
625  Int_t rowDiff = -100, colDiff = -100;
626  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
627 
628  if(sameTCard)
629  {
630  if (nlm==1)
631  {
632  fhECellSameClusRatNLM1TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
633  fhLogECellSameNLM1TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
634  fhECellSameWeightNLM1TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
635  }
636  else if(nlm==2)
637  {
638  fhECellSameClusRatNLM2TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
639  fhLogECellSameNLM2TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
640  fhECellSameWeightNLM2TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
641  }
642  else
643  {
644  fhECellSameClusRatNLM3TCardCorrNoSelection[matched]->Fill(energy, eCell/energy, GetEventWeight());
645  fhLogECellSameNLM3TCardCorrNoSelection [matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
646  fhECellSameWeightNLM3TCardCorrNoSelection [matched]->Fill(energy, weight, GetEventWeight());
647  }
648  }
649 
650  //if(eCellMax < eCell) printf("Check: E max %f (id %d), E sec %f (id %d)\n",eCellMax,absIdMax, eCell,absId);
651 
652  nCellWithWeight++;
653 
654  //printf("\t cell %d, absId %d, E %2.2f, w %2.2f, tcard %d\n", ipos, absId, eCell, weight, sameTCard);
655 
656  Int_t indexType = -1;
657  if ( sameTCard )
658  {
659  nCorr++;
660 
661  if(TMath::Abs(rowDiff) == 1) nearRow = kTRUE;
662  if(TMath::Abs(colDiff) == 1) nearCol = kTRUE;
663 
664  if ( rowDiff == 0 && colDiff != 0 )
665  {
666  if ( nearCol ) indexType = 6;
667  else indexType = 7;
668 
669  sameRow++;
670  /*printf("\t \t E %2.2f, Same row, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
671  }
672  else if ( rowDiff != 0 && colDiff == 0 )
673  {
674  if ( nearRow ) indexType = 8;
675  else indexType = 9;
676 
677  sameCol++;
678  /*printf("\t \t E %2.2f, Same col, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
679  }
680  else
681  {
682  if ( nearRow && nearCol) indexType = 10;
683  else indexType = 11;
684 
685  other++;
686  /*printf("\t \t E %2.2f, Diff row/col, diff row %d, col %d\n",eCell,rowDiff,colDiff);*/
687  }
688  }
689  else
690  {
691  nCorrNo++;
692 
693  if ( rowDiff == 0 && colDiff != 0 )
694  {
695  if ( nearCol ) indexType = 0;
696  else indexType = 1;
697 
698  }
699  else if ( rowDiff != 0 && colDiff == 0 )
700  {
701  if ( nearRow ) indexType = 2;
702  else indexType = 3;
703  }
704  else
705  {
706  if ( nearCol && nearRow ) indexType = 4;
707  else indexType = 5;
708  }
709  }
710 
711  if ( rowDiff == 0 && TMath::Abs(colDiff) == 1 )
712  {
713  if(sameTCard)
714  {
715  eCellSameRowSameTCardNearCol = eCell;
716  tCellSameRowSameTCardNearCol = tCell;
717  }
718  else
719  {
720  eCellSameRowDiffTCardNearCol = eCell;
721  tCellSameRowDiffTCardNearCol = tCell;
722  }
723  }
724 
725  if( indexType >=0 )
726  {
727  Float_t eCellDiff = eCellMax - eCell;
728  Float_t eClusDiff = energy - eCell;
729 // Float_t eCellRat = eCell / eCellMax;
730 // Float_t eClusRat = eCell / energy ;
731  Float_t tCellDiff = tCellMax - tCell;
732 
733  fhTCardCorrECellMaxDiff[indexType][matched]->Fill(energy, eCellDiff, GetEventWeight());
734  fhTCardCorrEClusterDiff[indexType][matched]->Fill(energy, eClusDiff, GetEventWeight());
735 // fhTCardCorrECellMaxRat [indexType][matched]->Fill(energy, eCellRat , GetEventWeight());
736 // fhTCardCorrEClusterRat [indexType][matched]->Fill(energy, eClusRat , GetEventWeight());
737  fhTCardCorrTCellMaxDiff[indexType][matched]->Fill(energy, tCellDiff, GetEventWeight());
738 
739  if ( fStudyExotic && exoticity > 0.97 )
740  {
741  fhTCardCorrECellMaxDiffExo[indexType][matched]->Fill(energy, eCellDiff, GetEventWeight());
742  fhTCardCorrEClusterDiffExo[indexType][matched]->Fill(energy, eClusDiff, GetEventWeight());
743 // fhTCardCorrECellMaxRatExo [indexType][matched]->Fill(energy, eCellRat , GetEventWeight());
744 // fhTCardCorrEClusterRatExo [indexType][matched]->Fill(energy, eClusRat , GetEventWeight());
745  fhTCardCorrTCellMaxDiffExo[indexType][matched]->Fill(energy, tCellDiff, GetEventWeight());
746  }
747  }
748 
749  if ( fStudyExotic && exoticity > 0.97 )
750  {
751  // Get the col and row of the secondary cluster cell
752  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
753  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
754 
755  if ( !sameTCard )
756  {
757  if(energy >= 5 && energy < 8)
758  fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
759  else if(energy >= 8)
760  fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
761  }
762  else
763  {
764  if(energy >= 5 && energy < 8)
765  fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
766  else if(energy >= 8)
767  fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
768  }
769  }
770 
771  if ( eCell > emax2nd )
772  {
773  emax2nd = eCell;
774 // absId2ndMax = absId;
775  if(sameTCard)
776  {
777  sameTCard2ndMax = kTRUE;
778 // rowDiff2 = rowDiff;
779 // colDiff2 = colDiff;
780  }
781  else
782  {
783  sameTCard2ndMax = kFALSE;
784 // rowDiff2 = -100;
785 // colDiff2 = -100;
786  }
787  }
788 
789 // //
790 // // Other TCard correlations
791 // //
792 // if ( sameTCard ) continue;
793 //
794 // for (Int_t ipos2 = 0; ipos2 < ncells; ipos2++)
795 // {
796 // Int_t absId2 = clus->GetCellsAbsId()[ipos2];
797 //
798 // eCell = fCaloCellList->GetCellAmplitude(absId2);
799 // // consider cells with enough energy weight and not the reference one
800 // weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
801 //
802 // if( absId2 == absIdMax || absId2 == absId || weight < 0.01 ) continue;
803 //
804 // rowDiff = -100, colDiff = -100;
805 // Bool_t sameTCard2 = GetCaloUtils()->IsAbsIDsFromTCard(absId,absId2,rowDiff,colDiff);
806 //
807 // if(sameTCard2)
808 // {
809 // nCorr2++;
810 // if ( rowDiff == 0 && colDiff != 0 ) sameRow2++;
811 // else if ( rowDiff != 0 && colDiff == 0 ) sameCol2++;
812 // else other2++;
813 // }
814 // //printf("\t cell %d, absId %d, E %2.2f, w %2.2f, tcard %d\n", ipos, absId, eCell, weight, sameTCard);
815 // } // second cluster cell lopp for secondary TCard correlations
816  } // cluster cell loop
817 
818  Float_t ratioNcells = nCellWithWeight/(ncells*1.);
819  fhNCellsTCardCorrRatioWithWeightNoSelection[matched]->Fill(energy, ratioNcells, GetEventWeight());
820  //printf("E %2.2f, ncells %d, nCellWithWeight %d, ratio %2.2f\n",energy,ncells,nCellWithWeight,ratioNcells);
821 
822  // If only one relevant cell, it makes no sense to continue
823  if ( nCellWithWeight <= 1 ) return;
824 
825  // It should not happen, unless very exotic clusters
826  if ( m02 < 0.001 )
827  {
828  printf("AliAnaClusterShapeCorrelStudies: M02 %f, M20 %f, E %2.3f, ncell %d, n with weight %d; max cell E %2.3f\n",
829  m02,m20,energy,ncells,nCellWithWeight,eCellMax);
830  }
831 
832  //printf("\t Same col %d, same row %d, diff other %d\n",sameCol,sameRow,other);
833  //printf("\t Second cell: E %2.2f, absId %d, correl %d, rowDiff %d, rowCol %d\n",emax,absId2ndMax,sameTCard2,rowDiff2, colDiff2);
834 
835  //
836  // Fill histograms for different cell correlation criteria
837  //
838  if(energy >= 5 && energy < 8)
839  fhColRowTCardCorrNoSelectionLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
840  else if(energy >= 8)
841  fhColRowTCardCorrNoSelectionHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
842 
843  if ( fStudyExotic && exoticity > 0.97 )
844  {
845  if(energy >= 5 && energy < 8)
846  fhColRowTCardCorrNoSelectionExoticLowE [matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
847  else if(energy >= 8)
848  fhColRowTCardCorrNoSelectionExoticHighE[matched]->Fill(icolAbs,irowAbs,GetEventWeight()) ;
849  }
850 
851  fhTimeTCardCorrNoSelection [matched]->Fill(energy,time, GetEventWeight());
852  fhLambda0TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
853  fhLambda1TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
854 
855  if ( nlm == 1 )
856  {
857  fhLambda0NLM1TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
858  fhLambda1NLM1TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
859  }
860  else if( nlm == 2 )
861  {
862  fhLambda0NLM2TCardCorrNoSelection[matched]->Fill(energy, m02, GetEventWeight());
863  fhLambda1NLM2TCardCorrNoSelection[matched]->Fill(energy, m20, GetEventWeight());
864  }
865 
866  fhLambdaRTCardCorrNoSelection[matched]->Fill(energy,lamR, GetEventWeight());
867  fhNLocMaxTCardCorrNoSelection[matched]->Fill(energy, nlm, GetEventWeight());
868  fhExoticTCardCorrNoSelection [matched]->Fill(energy, exoticity, GetEventWeight());
869 
870  if (nlm==1)
871  {
872  fhEMaxRatNLM1TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
873  fhE2ndRatNLM1TCardCorrNoSelection [matched]->Fill(energy, emax2nd/energy , GetEventWeight());
874  fhE2ndEMaxRatNLM1TCardCorrNoSelection[matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
875  }
876  else if(nlm==2)
877  {
878  fhEMaxRatNLM2TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
879  fhE2ndRatNLM2TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
880  fhE2ndEMaxRatNLM2TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
881  }
882  else
883  {
884  fhEMaxRatNLM3TCardCorrNoSelection [matched]->Fill(energy, eCellMax/energy , GetEventWeight());
885  fhE2ndRatNLM3TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
886  fhE2ndEMaxRatNLM3TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
887  }
888 
889  if(sameTCard2ndMax)
890  {
891  if (nlm==1)
892  {
893  fhE2ndSameRatNLM1TCardCorrNoSelection [matched]->Fill(energy, emax2nd/energy , GetEventWeight());
894  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
895  }
896  else if(nlm==2)
897  {
898  fhE2ndSameRatNLM2TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
899  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
900  }
901  else
902  {
903  fhE2ndSameRatNLM3TCardCorrNoSelection [matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
904  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
905  }
906  }
907 
908  fhNCellsTCardCorrNoSelection [matched]->Fill(energy, ncells, GetEventWeight());
909  fhNCellsTCardCorrWithWeightNoSelection[matched]->Fill(energy, nCellWithWeight, GetEventWeight());
910 
911  if(eCellSameRowSameTCardNearCol > 0 && eCellSameRowDiffTCardNearCol > 0)
912  {
913  Float_t eDiff = eCellSameRowSameTCardNearCol - eCellSameRowDiffTCardNearCol ;
914  Float_t tDiff = tCellSameRowSameTCardNearCol - tCellSameRowDiffTCardNearCol ;
915 
916  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[matched]->Fill(energy , eDiff, GetEventWeight());
917  fhSameRowDiffColAndTCardCellsTimeDiffClusterE [matched]->Fill(energy , tDiff, GetEventWeight());
918  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[matched]->Fill(eCellMax, eDiff, GetEventWeight());
919  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE [matched]->Fill(eCellMax, tDiff, GetEventWeight());
920 
921  if ( fStudyExotic && exoticity > 0.97 )
922  {
923  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[matched]->Fill(energy , eDiff, GetEventWeight());
924  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo [matched]->Fill(energy , tDiff, GetEventWeight());
925  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[matched]->Fill(eCellMax, eDiff, GetEventWeight());
926  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo [matched]->Fill(eCellMax, tDiff, GetEventWeight());
927  }
928  }
929 
931  Int_t nCorrInd = nCorr;
932  if(nCorr > 4) nCorrInd = 5;
933 
934  Int_t nCorrNoInd = nCorrNo;
935  if(nCorrNoInd > 4) nCorrNoInd = 5;
936 
937 // fhLambda0TCardCorrelN[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
938 // fhNCellsTCardCorrelN [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
939 // fhExoticTCardCorrelN [nCorrInd][matched]->Fill(energy, exoticity, GetEventWeight());
940 //
941 // if ( energy >= 2 && energy < 8 )
942 // fhColRowTCardCorrelNLowE [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
943 // if ( energy >= 8 )
944 // fhColRowTCardCorrelNHighE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
945 
946  if ( nlm == 1 )
947  {
948  fhLambda0NLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
949  fhLambda1NLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
950  }
951  else if( nlm == 2 )
952  {
953  fhLambda0NLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
954  fhLambda1NLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
955  }
956 
957  fhLambda0TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m02, GetEventWeight());
958  fhLambda1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, m20, GetEventWeight());
959 //fhLambdaRTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy,lamR, GetEventWeight());
960  fhNLocMaxTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, nlm, GetEventWeight());
961 
962  if(fStudyExotic)
963  fhExoticTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, exoticity, GetEventWeight());
964 
965  if (nlm==1)
966  {
967  fhEMaxRatNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy , GetEventWeight());
968  fhE2ndRatNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, emax2nd/energy , GetEventWeight());
969  fhE2ndEMaxRatNLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, emax2nd/eCellMax, GetEventWeight());
970  }
971  else if(nlm==2)
972  {
973  fhEMaxRatNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy, GetEventWeight());
974  fhE2ndRatNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
975  fhE2ndEMaxRatNLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
976  }
977  else
978  {
979  fhEMaxRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCellMax/energy, GetEventWeight());
980  fhE2ndRatNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/energy , GetEventWeight());
981  fhE2ndEMaxRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, maxEList[1]/eCellMax, GetEventWeight());
982  }
983 
984  // Time diff in cluster, depending nCells
985  for (Int_t ipos = 0; ipos < ncells; ipos++)
986  {
987  Int_t absId = clus->GetCellsAbsId()[ipos];
988 
989  Float_t eCell = fCaloCellList->GetCellAmplitude(absId);
990  Double_t tCell = fCaloCellList->GetCellTime(absId);
991 
992  GetCaloUtils()->RecalibrateCellAmplitude(eCell, GetCalorimeter(), absId);
993  GetCaloUtils()->RecalibrateCellTime(tCell, GetCalorimeter(), absId, GetReader()->GetInputEvent()->GetBunchCrossNumber());
994  tCell *= 1.0e9;
995  tCell-=fConstantTimeShift;
996 
997  // consider cells with enough energy weight and not the reference one
998  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
999 
1000  if( absId == absIdMax || weight < 0.01 ) continue;
1001 
1002  Float_t tDiffMaxSecondary = tCellMax - tCell;
1003  //printf("Time max %f, second %f, diff %f\n",tCellMax,tCell,tDiffMaxSecondary);
1004  fhTimeDiffTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, tDiffMaxSecondary, GetEventWeight());
1005  if ( fStudyExotic && exoticity > 0.97 )
1006  {
1007  fhTimeDiffExoTCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, tDiffMaxSecondary, GetEventWeight());
1008  // Get the col and row of the secondary cluster cell
1009  Int_t icol2 = -1, irow2 = -1, iRCU2 = -1, icolAbs2 = -1, irowAbs2 = -1;
1010  GetModuleNumberCellIndexesAbsCaloMap(absId,GetCalorimeter(), icol2, irow2, iRCU2, icolAbs2, irowAbs2);
1011 
1012  Int_t rowDiff = -100, colDiff = -100;
1013  Bool_t sameTCard = GetCaloUtils()->IsAbsIDsFromTCard(absIdMax,absId,rowDiff,colDiff);
1014 
1015  if ( !sameTCard )
1016  {
1017  if ( energy >= 5 && energy < 8 && nCorr == 0 )
1018  fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1019  else if ( energy >= 8 && nCorr == 0 )
1020  fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1021  }
1022  else
1023  {
1024  if ( energy >= 5 && energy < 8 && nCorrNo == 0 )
1025  fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffLowE [matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1026  else if ( energy >= 8 && nCorrNo == 0 )
1027  fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffHighE[matched]->Fill(icolAbs2,irowAbs2,GetEventWeight()) ;
1028  }
1029  } // exotic
1030 
1031  if (nlm==1)
1032  {
1033  fhECellClusRatNLM1TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1034  fhLogECellNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1035  fhECellWeightNLM1TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1036  }
1037  else if(nlm==2)
1038  {
1039  fhECellClusRatNLM2TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1040  fhLogECellNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1041  fhECellWeightNLM2TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1042  }
1043  else
1044  {
1045  fhECellClusRatNLM3TCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, eCell/energy, GetEventWeight());
1046  fhLogECellNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, TMath::Log(eCell), GetEventWeight());
1047  fhECellWeightNLM3TCardCorrelNCell [nCorrInd][nCorrNoInd][matched]->Fill(energy, weight, GetEventWeight());
1048  }
1049  } //cell loop
1050 
1051  // Invariant mass for clusters looking like photons, depending number of cells
1052  if(m02 > fInvMassMinM02Cut && m02 < fInvMassMaxM02Cut)
1053  {
1054  for(Int_t jclus = 0 ; jclus < fCaloClusList->GetEntriesFast() ; jclus++)
1055  {
1056  AliVCluster* clus2 = (AliVCluster*) fCaloClusList->At(jclus);
1057 
1058  Float_t maxCellFraction = 0.;
1059  Int_t absIdMax2 = GetCaloUtils()->GetMaxEnergyCell(fCaloCellList, clus2, maxCellFraction);
1060 
1061  Double_t tof2 = clus2->GetTOF()*1.e9;
1062  if(tof2>400) tof2-=fConstantTimeShift;
1063 
1064  Double_t diffTof = tCellMax-tof2;
1065 
1066  // Try to reduce background with a mild shower shape cut and no more
1067  // than 1 local maximum in cluster and remove low energy clusters
1068 
1069  if( absIdMax == absIdMax2
1070  || !IsGoodCluster(absIdMax2, clus2->GetM02(), clus2->GetNCells())
1071  || GetCaloUtils()->GetNumberOfLocalMaxima(clus2,fCaloCellList) > 1
1072  || clus2->GetM02() > fInvMassMaxM02Cut
1073  || clus2->GetM02() < fInvMassMinM02Cut
1074  || clus2->E() < fInvMassMinECut
1075  || clus2->E() > fInvMassMaxECut
1076  || TMath::Abs(diffTof) > fInvMassMaxTimeDifference
1077  ) continue;
1078 
1079  // Get cluster kinematics
1080  Double_t v[3] = {0,0,0}; //vertex ;
1081  clus2->GetMomentum(fClusterMomentum2,v);
1082 
1083  // Check only certain regions
1084  Bool_t in2 = kTRUE;
1085  if(IsFiducialCutOn()) in2 = GetFiducialCut()->IsInFiducialCut(fClusterMomentum2.Eta(),fClusterMomentum2.Phi(),GetCalorimeter()) ;
1086  if(!in2) continue;
1087 
1088  //Float_t pairE = (fClusterMomentum+fClusterMomentum2).E();
1089 
1090  // Opening angle cut, avoid combination of DCal and EMCal clusters
1091  Double_t angle = fClusterMomentum.Angle(fClusterMomentum2.Vect());
1092 
1093  if( angle > fInvMassMaxOpenAngle ) continue;
1094 
1095  // Fill histograms
1096  Float_t mass = (fClusterMomentum+fClusterMomentum2).M ();
1097  fhMassEClusTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(energy, mass, GetEventWeight());
1098  //fhMassEPairTCardCorrelNCell[nCorrInd][nCorrNoInd][matched]->Fill(pairE , mass, GetEventWeight());
1099  }
1100  }
1101 
1102  if ( energy >= 5 && energy < 8)
1103  fhColRowTCardCorrelNCellLowE [nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1104  else if ( energy >= 8 )
1105  fhColRowTCardCorrelNCellHighE[nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1106 
1107 // if(nCorrNo == 0)
1108 // {
1109 // fhLambda0TCardCorrelNAllSameTCard[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1110 // fhNCellsTCardCorrelNAllSameTCard [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1111 // fhExoticTCardCorrelNAllSameTCard [nCorrInd][matched]->Fill(energy, exoticity, GetEventWeight());
1112 // if ( energy >= 2 && energy < 8 )
1113 // fhColRowTCardCorrelNAllSameTCardLowE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1114 // else if ( energy >= 8 )
1115 // fhColRowTCardCorrelNAllSameTCardHighE[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1116 // }
1117 
1119 
1120  if ( fStudyExotic && exoticity > 0.97 )
1121  {
1122  if ( energy >= 5 && energy < 8)
1123  fhColRowTCardCorrelNCellExoticLowE [nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1124  else if ( energy >= 8 )
1125  fhColRowTCardCorrelNCellExoticHighE[nCorrInd][nCorrNoInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1126 
1127 // fhLambda0TCardCorrelNExotic[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1128 // fhNCellsTCardCorrelNExotic [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1129 //
1130 // if ( energy > 5 && energy <= 8 )
1131 // fhColRowTCardCorrelNLowEExotic [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1132 // if ( energy > 8 )
1133 // fhColRowTCardCorrelNHighEExotic[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1134 //
1135 // if(nCorrNo == 0)
1136 // {
1137 // fhLambda0TCardCorrelNAllSameTCardExotic[nCorrInd][matched]->Fill(energy, m02, GetEventWeight());
1138 // fhNCellsTCardCorrelNAllSameTCardExotic [nCorrInd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1139 //
1140 // if ( energy > 2 && energy <=8 )
1141 // fhColRowTCardCorrelNAllSameTCardLowEExotic [nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1142 // if ( energy > 8 )
1143 // fhColRowTCardCorrelNAllSameTCardHighEExotic[nCorrInd][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1144 // }
1145 //
1146 // Int_t indexExo = -1;
1147 // if (!nearRow && nearCol ) indexExo = 0;
1148 // else if (!nearRow && !nearCol ) indexExo = 1;
1149 // else if ( nearRow && nearCol ) indexExo = 2;
1150 // else if ( nearRow && !nearCol ) indexExo = 3;
1151 //
1152 // if(indexExo >= 0)
1153 // {
1154 // fhLambda0TCardCorrelExotic[indexExo][matched]->Fill(energy, m02, GetEventWeight());
1155 // fhNCellsTCardCorrelExotic [indexExo][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1156 // }
1157  }
1158 
1159 
1160  if( ebin > -1 )
1161  {
1162  fhLambda0Lambda1 [ebin][matched]->Fill(m20, m02, GetEventWeight());
1163  fhNCellsTCardSameAndDiff[ebin][matched]->Fill(nCorrNo, nCorr, GetEventWeight());
1164  // if(nCorrNo == 0)
1165  // fhLambda0Lambda1AllSameTCard [ebin][matched]->Fill(m20, m02, GetEventWeight());
1166 
1167  if(fStudyExotic)
1168  {
1169  fhLambda0Exoticity[ebin][matched]->Fill(exoticity, m02, GetEventWeight());
1170  fhLambda1Exoticity[ebin][matched]->Fill(exoticity, m20, GetEventWeight());
1171  //fhLambdaRExoticity[ebin][matched]->Fill(exoticity,lamR, GetEventWeight());
1172  fhNCellsExoticity [ebin][matched]->Fill(exoticity, nCellWithWeight, GetEventWeight());
1173  fhTimeExoticity [ebin][matched]->Fill(exoticity, tCellMax, GetEventWeight());
1174 
1175  if(energy > 8)
1176  {
1177  fhLambda0ExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity, m02, GetEventWeight());
1178  fhLambda1ExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity, m20, GetEventWeight());
1179  //fhLambdaRExoticityPerNCell[nCorrInd][nCorrNoInd][matched]->Fill(exoticity,lamR, GetEventWeight());
1180  }
1181 
1182  // if(nCorrNo == 0)
1183  // {
1184  // fhLambda0ExoticityAllSameTCard[ebin][matched]->Fill(exoticity, m02, GetEventWeight());
1185  // fhLambda1ExoticityAllSameTCard[ebin][matched]->Fill(exoticity, m20, GetEventWeight());
1186  // fhLambdaRExoticityAllSameTCard[ebin][matched]->Fill(exoticity,lamR, GetEventWeight());
1187  // fhNCellsExoticityAllSameTCard [ebin][matched]->Fill(exoticity, nCellWithWeight, GetEventWeight());
1188  // }
1189 
1190  if ( exoticity > 0.97 )
1191  fhNCellsTCardSameAndDiffExotic[ebin][matched]->Fill(nCorrNo, nCorr, GetEventWeight());
1192 
1193  // Track matching residuals
1194  fhTMPhiResidualExoticity[ebin]->Fill(exoticity,dphi);
1195  fhTMEtaResidualExoticity[ebin]->Fill(exoticity,deta);
1196 
1197  // if(nCorrNo==0)
1198  // {
1199  // fhTMPhiResidualExoticityAllSameTCard[ebin]->Fill(exoticity,dphi);
1200  // fhTMEtaResidualExoticityAllSameTCard[ebin]->Fill(exoticity,deta);
1201  // }
1202  }
1203  }
1204 
1205  Float_t nCellRat = nCorr*1. / ((nCorr+nCorrNo)*1.);
1206  fhNCellsTCardSameAndDiffFraction[matched]->Fill(energy, nCellRat, GetEventWeight());
1207  if ( fStudyExotic && exoticity > 0.97 )
1208  fhNCellsTCardSameAndDiffFractionExotic[matched]->Fill(energy, nCellRat, GetEventWeight());
1209 
1210 // if(nCorr > 0)
1211 // {
1212 // Int_t index = -1;
1213 // if (!sameRow && sameCol && !other ) index = 0;
1214 // else if (!sameRow && !sameCol && other ) index = 1;
1215 // else if (!sameRow && sameCol && other ) index = 2;
1216 // else if ( sameRow && sameCol && !other ) index = 3;
1217 // else if ( sameRow && !sameCol && other ) index = 4;
1218 // else if ( sameRow && sameCol && other ) index = 5;
1219 // else if ( sameRow && !sameCol && !other ) index = 6;
1220 // else printf("case not considered: sameRow %d, sameCol %d, other %d, nearRow %d\n",sameRow,sameCol,other,nearRow);
1221 //
1222 // if(index >= 0)
1223 // {
1224 // fhLambda0TCardCorrel[index][matched]->Fill(energy, m02, GetEventWeight());
1225 // fhNCellsTCardCorrel [index][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1226 // fhExoticTCardCorrel [index][matched]->Fill(energy, exoticity, GetEventWeight());
1227 // }
1228 //
1229 // // Comment out, no special effect observed
1230 // Int_t indexNR = -1;
1231 // if ( nearRow )
1232 // {
1233 // if (!sameRow && sameCol && !other ) indexNR = 0;
1234 // else if (!sameRow && !sameCol && other ) indexNR = 1;
1235 // else if (!sameRow && sameCol && other ) indexNR = 2;
1236 // else if ( sameRow && sameCol && !other ) indexNR = 3;
1237 // else if ( sameRow && !sameCol && other ) indexNR = 4;
1238 // else if ( sameRow && sameCol && other ) indexNR = 5;
1239 // else printf("\t near row case not considered!: sameRow %d, sameCol %d, other %d\n",sameRow,sameCol,other);
1240 // }
1241 //
1242 // if ( indexNR >= 0 )
1243 // {
1244 // fhLambda0TCardCorrelNearRow[indexNR][matched]->Fill(energy, m02, GetEventWeight());
1245 // fhNCellsTCardCorrelNearRow [indexNR][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1246 // }
1247 //
1248 // if ( sameTCard2ndMax )
1249 // {
1250 // Int_t index2nd = -1;
1251 // if ( TMath::Abs(rowDiff2) == 1 && TMath::Abs(colDiff2) != 1 ) index2nd = 0;
1252 // else if( TMath::Abs(rowDiff2) != 1 && TMath::Abs(colDiff2) == 1 ) index2nd = 1;
1253 // else if( TMath::Abs(rowDiff2) == 1 && TMath::Abs(colDiff2) == 1 ) index2nd = 2;
1254 // else index2nd = 3;
1255 //
1256 // fhLambda0TCardCorrel2ndMax[index2nd][matched]->Fill(energy, m02, GetEventWeight());
1257 // fhNCellsTCardCorrel2ndMax [index2nd][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1258 // }
1259 // }
1260 //
1261 // Int_t indexOtherTCard = -1;
1262 // if ( nCorr == 0 && nCorr2 == 0 ) indexOtherTCard = 6;
1263 // else if ( nCorr == 0 && nCorr2 > 0 )
1264 // {
1265 // if ( sameRow2 && !sameCol2 && !other2) indexOtherTCard = 0;
1266 // else if ( !sameRow2 && sameCol2 && !other2) indexOtherTCard = 1;
1267 // else indexOtherTCard = 2;
1268 // }
1269 // else if ( nCorr > 0 && nCorr2 > 0 )
1270 // {
1271 // if ( sameRow2 && !sameCol2 && !other2) indexOtherTCard = 3;
1272 // else if ( !sameRow2 && sameCol2 && !other2) indexOtherTCard = 4;
1273 // else indexOtherTCard = 5;
1274 // }
1275 //
1276 // if ( indexOtherTCard >= 0 )
1277 // {
1278 // fhLambda0TCardCorrelOtherTCard[indexOtherTCard][matched]->Fill(energy, m02, GetEventWeight());
1279 // fhNCellsTCardCorrelOtherTCard [indexOtherTCard][matched]->Fill(energy, nCellWithWeight, GetEventWeight());
1280 // fhExoticTCardCorrelOtherTCard [indexOtherTCard][matched]->Fill(energy, exoticity, GetEventWeight());
1281 // if ( energy >= 2 && energy < 8 )
1282 // fhColRowTCardCorrelOtherTCardLowE[indexOtherTCard][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1283 // else if ( energy >= 8 )
1284 // fhColRowTCardCorrelOtherTCardHighE[indexOtherTCard][matched]->Fill(icolAbs, irowAbs, GetEventWeight());
1285 // }
1286 }
1287 
1288 //__________________________________________________________________________________________________________________
1298 //__________________________________________________________________________________________________________________
1300 (AliVCluster* clus , Int_t absIdMax, Double_t maxFrac ,
1301  Float_t eCrossFrac, Double_t tmax , Int_t matchedPID, Int_t mcIndex)
1302 {
1303  // By definition a cluster has at least 1 cell,
1304  // and shape only makes sense with at least 2
1305  // in case fNCellMin was open, check again the size
1306  Int_t nCaloCellsPerCluster = clus->GetNCells();
1307  if ( nCaloCellsPerCluster < 2 ) return;
1308 
1309  // Clean the sample with very strict cut on acceptance, select only
1310  // in center of SM
1311  Int_t etaRegion = -1, phiRegion = -1;
1312  GetCaloUtils()->GetEMCALSubregion(clus,fCaloCellList,etaRegion,phiRegion);
1313  // Region 0: center of SM ~0.18<|eta|<0.55
1314  if ( etaRegion !=0 ) return ;
1315 
1316  Float_t energy = clus->E();
1317  Float_t m02 = clus->GetM02();
1318  Float_t m20 = clus->GetM20();
1319  Int_t nCell = 0;
1320 
1321  Int_t dIeta = 0;
1322  Int_t dIphi = 0;
1323  Int_t dIetaNeg = 0;
1324  Int_t dIphiNeg = 0;
1325  Int_t dIetaPos = 0;
1326  Int_t dIphiPos = 0;
1327 
1328  Int_t ietaMax=-1; Int_t iphiMax = 0; Int_t rcuMax = 0;
1329  Int_t smMax = GetModuleNumberCellIndexes(absIdMax,GetCalorimeter(), ietaMax, iphiMax, rcuMax);
1330 
1331  // Loop on cells in cluster to get cell cluster asymmetry and
1332  // other correlation parameters
1333  for (Int_t ipos = 0; ipos < nCaloCellsPerCluster; ipos++)
1334  {
1335  Int_t absId = clus ->GetCellsAbsId()[ipos];
1336  Float_t eCell = fCaloCellList->GetCellAmplitude(absId) ;
1337 
1338  GetCaloUtils()->RecalibrateCellAmplitude(eCell, GetCalorimeter(), absId);
1339 
1340  if( absId == absIdMax || eCell < 0.01 ) continue;
1341 
1342  Float_t weight = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell, energy);
1343 
1344  if( weight < 0.01 ) continue;
1345 
1346  nCell++;
1347 
1349  // Cluster asymmetry in cell units
1351  Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1352  Int_t sm = GetModuleNumberCellIndexes(absId,GetCalorimeter(), ieta, iphi, rcu);
1353 
1354  if(dIphi < TMath::Abs(iphi-iphiMax)) dIphi = TMath::Abs(iphi-iphiMax);
1355  if(iphi-iphiMax < 0 && dIphiNeg > iphi-iphiMax) dIphiNeg = iphi-iphiMax;
1356  if(iphi-iphiMax > 0 && dIphiPos < iphi-iphiMax) dIphiPos = iphi-iphiMax;
1357 
1358  if(smMax==sm)
1359  {
1360  if(dIeta < TMath::Abs(ieta-ietaMax)) dIeta = TMath::Abs(ieta-ietaMax);
1361  if(ieta-ietaMax < 0 && dIetaNeg > ieta-ietaMax) dIetaNeg = ieta-ietaMax;
1362  if(ieta-ietaMax > 0 && dIetaPos < ieta-ietaMax) dIetaPos = ieta-ietaMax;
1363  }
1364  else
1365  {
1366  Int_t ietaShift = ieta;
1367  Int_t ietaMaxShift = ietaMax;
1368 
1369  if (ieta > ietaMax) ietaMaxShift+=48;
1370  else ietaShift +=48;
1371 
1372  if(dIeta < TMath::Abs(ietaShift-ietaMaxShift)) dIeta = TMath::Abs(ietaShift-ietaMaxShift);
1373  if(ietaShift-ietaMaxShift < 0 && dIetaNeg > ietaShift-ietaMaxShift) dIetaNeg = ietaShift-ietaMaxShift;
1374  if(ietaShift-ietaMaxShift > 0 && dIetaPos < ietaShift-ietaMaxShift) dIetaPos = ietaShift-ietaMaxShift;
1375  }
1377  // End calculate cluster asymmetry in cell units
1379 
1380  Float_t frac = fCaloCellList->GetCellAmplitude(absId)/fCaloCellList->GetCellAmplitude(absIdMax);
1381  fhClusterMaxCellCloseCellRatioM02->Fill(energy, frac, m02, GetEventWeight());
1382 
1383  //Float_t ampDiff = fCaloCellList->GetCellAmplitude(absIdMax)-fCaloCellList->GetCellAmplitude(absId);
1384  //fhClusterMaxCellCloseCellDiffM02 ->Fill(energy,ampDiff, m02,GetEventWeight());
1385 
1386  //Double_t time = fCaloCellList->GetCellTime(absId);
1387  //GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
1388  //
1389  //Float_t tdiff = (tmax-(time*1.0e9-fConstantTimeShift));
1390  //fhCellTimeSpreadRespectToCellMaxM02->Fill(energy, tdiff, m02, GetEventWeight());
1391  } // Fill cell-cluster histogram loop
1392 
1393  if ( nCell < 1 ) return;
1394 
1395  // cluster asymmetry
1396  Float_t dIA = 1.*(dIphi-dIeta)/(dIeta+dIphi);
1397  Float_t dIATot = 1.*((dIphiPos-dIphiNeg)-(dIetaPos-dIetaNeg))/((dIetaPos-dIetaNeg)+(dIphiPos-dIphiNeg));
1398 
1399 // Int_t dIphiMin = TMath::Abs(dIphiNeg);
1400 // Int_t dIetaMin = TMath::Abs(dIetaNeg);
1401 // if(dIphiMin > dIphiPos) dIphiMin = dIphiPos ;
1402 // if(dIetaMin > dIetaPos) dIetaMin = dIetaPos ;
1403 // Float_t dIAMin = 0;
1404 // if(dIphiMin > 0 && dIetaMin > 0) dIAMin = 1.*(dIphiMin-dIetaMin)/(dIetaMin+dIphiMin);
1405 
1406  AliDebug(1,Form("E %2.2f, nCell %d, dPhi %d, dEta %d, dIA %2.2f, match %d",energy,nCell, dIphi,dIeta,dIA,matchedPID));
1407 
1408 // if(nCell > 5)
1409 // {
1410 // printf("E %2.2f, nCell %d, dPhi %d, dEta %d, dIA %2.2f, match %d\n",
1411 // energy,nCell, dIphi,dIeta,dIA,matchedPID);
1412 // printf("\t dPhiNeg %d, dPhiPos %d, dEtaNeg %d, dEtaPos %d, dIATot %2.2f, dIAMin %2.2f\n",
1413 // dIphiNeg,dIphiPos,dIetaNeg,dIetaPos,dIATot,dIAMin);
1414 // }
1415 
1416  if(fStudyExotic)
1417  fhClusterMaxCellECrossM02->Fill(energy, eCrossFrac, m02, GetEventWeight());
1418 
1419  //
1420  // Fill histograms only for PID
1421  //
1422  if ( matchedPID < 0 || matchedPID > 2 ) return;
1423 
1424  fhClusterMaxCellDiffM02[matchedPID]->Fill(energy, maxFrac, m02, GetEventWeight());
1425  fhClusterTimeEnergyM02 [matchedPID]->Fill(energy, tmax , m02, GetEventWeight());
1426  fhNCellsPerClusterM02 [matchedPID]->Fill(energy, nCell , m02, GetEventWeight());
1427  fhNCellsPerClusterM20 [matchedPID]->Fill(energy, nCell , m20, GetEventWeight());
1428 
1429  fhDeltaIANCells [matchedPID]->Fill(energy, nCell , dIA , GetEventWeight());
1430  fhDeltaIATotNCells [matchedPID]->Fill(energy, nCell , dIATot, GetEventWeight());
1431 
1432  if ( nCell > 4 ) // it makes sense only for significant size histograms
1433  {
1434  fhDeltaIEtaDeltaIPhi[matchedPID]->Fill(energy, dIeta, dIphi, GetEventWeight());
1435  fhDeltaIA [matchedPID]->Fill(energy, dIA , GetEventWeight());
1436  fhDeltaIAM02 [matchedPID]->Fill(energy, m02 , dIA , GetEventWeight());
1437  fhDeltaIAM20 [matchedPID]->Fill(energy, m20 , dIA , GetEventWeight());
1438 
1439  fhDeltaIEtaDeltaIPhiTot[matchedPID]->Fill(energy,dIetaPos-dIetaNeg, dIphiPos-dIphiNeg, GetEventWeight());
1440  fhDeltaIATot [matchedPID]->Fill(energy, dIATot , GetEventWeight());
1441  fhDeltaIATotM02 [matchedPID]->Fill(energy, m02 , dIATot, GetEventWeight());
1442  fhDeltaIATotM20 [matchedPID]->Fill(energy, m20 , dIATot, GetEventWeight());
1443 
1444  fhSMM02 [matchedPID]->Fill(energy, smMax , m02, GetEventWeight());
1445  fhColM02[matchedPID]->Fill(energy, ietaMax, m02, GetEventWeight());
1446  fhRowM02[matchedPID]->Fill(energy, iphiMax, m02, GetEventWeight());
1447  }
1448 
1449  Float_t l0 = 0., l1 = 0.;
1450  Float_t dispp= 0., dEta = 0., dPhi = 0.;
1451  Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
1452  if ( GetCalorimeter() == kEMCAL )
1453  {
1454  GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), fCaloCellList, clus,
1455  l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
1456 
1457  Float_t sEtaPhiA = -1000.;
1458  if(sEta+sPhi>0.0001) sEtaPhiA = (sPhi-sEta)/(sEta+sPhi);
1459 
1460  AliDebug(2,Form("Recalculate shower shape org: m02 %2.2f, m20 %2.2f, disp %2.2f;"
1461  " new: m02 %2.2f, m20 %2.2f, disp %2.2f; "
1462  "mEta %2.2f, mPhi %2.2f, mEtaPhi %2.2f, A_EtaPhi %2.2f; dEta %2.2f dPhi %2.2f",
1463  m02,m20,clus->GetDispersion(),l0,l1,dispp,sEta,sPhi,sEtaPhi,sEtaPhiA,dEta,dPhi));
1464 
1465  fhNCellsPerClusterMEta [matchedPID]->Fill(energy, nCell, sEta , GetEventWeight());
1466  fhNCellsPerClusterMPhi [matchedPID]->Fill(energy, nCell, sPhi , GetEventWeight());
1467  fhNCellsPerClusterMEtaPhi [matchedPID]->Fill(energy, nCell, sEtaPhi , GetEventWeight());
1468  fhNCellsPerClusterMEtaPhiA[matchedPID]->Fill(energy, nCell, sEtaPhiA, GetEventWeight());
1469  }
1470 
1471  // Check the origin.
1472  if ( IsDataMC() && mcIndex > -1 && mcIndex < 10)
1473  {
1474  fhOriginE [matchedPID]->Fill(energy, mcIndex, GetEventWeight());
1475  fhOriginM02[matchedPID]->Fill(energy, mcIndex, m02, GetEventWeight());
1476 
1477  if ( nCell > 4 )
1478  {
1479  fhDeltaIAOrigin [matchedPID]->Fill(energy, mcIndex, dIA , GetEventWeight());
1480  fhDeltaIATotOrigin[matchedPID]->Fill(energy, mcIndex, dIATot, GetEventWeight());
1481  }
1482  } // MC
1483 }
1484 
1485 //____________________________________________________________________________
1492 //____________________________________________________________________________
1494 (AliVCluster *clus, Int_t & matchedPID)
1495 {
1496 
1497  AliVTrack *track = GetCaloUtils()->GetMatchedTrack(clus, GetReader()->GetInputEvent());
1498 
1499  if(!track)
1500  {
1501  matchedPID = -1;
1502  return ;
1503  }
1504 
1505 // Double_t tpt = track->Pt();
1506 // Double_t tmom = track->P();
1507  Double_t dedx = track->GetTPCsignal();
1508 // Int_t nITS = track->GetNcls(0);
1509 // Int_t nTPC = track->GetNcls(1);
1510 // Bool_t positive = kFALSE;
1511 // if(track) positive = (track->Charge()>0);
1512 
1513  // Residuals
1514 // Float_t deta = clus->GetTrackDz();
1515 // Float_t dphi = clus->GetTrackDx();
1516 // Double_t dR = TMath::Sqrt(dphi*dphi + deta*deta);
1517 // Int_t nModule = GetModuleNumber(clus);
1518 
1519  // Electron or else?
1520 
1521  // Init at least once
1522  if(fdEdXMinEle == 0 || fdEdXMaxEle == 0 || fdEdXMinHad == 0 || fdEdXMaxHad == 0)
1523  InitdEdXParameters();
1524 
1525  if ( dedx >= fdEdXMinEle && dedx < fdEdXMaxEle ) matchedPID = 1;
1526  else if ( dedx >= fdEdXMinHad && dedx < fdEdXMaxHad ) matchedPID = 2;
1527  else
1528  {
1529  AliDebug(1,Form("dEdX out of range %2.2f",dedx));
1530  matchedPID = -1;
1531  }
1532 }
1533 
1534 //____________________________________________________________________________
1543 //____________________________________________________________________________
1545 {
1546  Int_t nCaloClusters = fCaloClusList->GetEntriesFast() ;
1547  Int_t nCaloCellsPerCluster = 0 ;
1548  Bool_t matched = kFALSE;
1549  Int_t nModule =-1 ;
1550 
1551  // Get vertex for photon momentum calculation and event selection
1552  Double_t v[3] = {0,0,0}; //vertex ;
1553  //GetReader()->GetVertex(v);
1554 
1555  AliDebug(1,Form("In %s there are %d clusters", GetCalorimeterString().Data(), nCaloClusters));
1556 
1557  // Loop over CaloClusters
1558  for(Int_t iclus = 0; iclus < nCaloClusters; iclus++)
1559  {
1560  AliDebug(1,Form("Cluster: %d/%d, data %d",iclus+1,nCaloClusters,GetReader()->GetDataType()));
1561 
1562  AliVCluster* clus = (AliVCluster*) fCaloClusList->At(iclus);
1563 
1564  // away from dead region
1565  if ( clus->GetDistanceToBadChannel() < fMinDistToBad ) return ;
1566 
1567  // SuperModule number of cluster
1568  nModule = GetModuleNumber(clus);
1569  if ( nModule < fFirstModule || nModule > fLastModule )
1570  {
1571  AliDebug(1,Form("Cluster module out of range %d",nModule));
1572  continue ;
1573  }
1574 
1575  // Get the fraction of the cluster energy that carries the cell with highest energy and its absId
1576  //
1577  Float_t maxCellFraction = 0.;
1578  Int_t absIdMax = GetCaloUtils()->GetMaxEnergyCell(fCaloCellList, clus, maxCellFraction);
1579 
1580  // Cut on time of clusters
1581  Double_t tof = clus->GetTOF()*1.e9;
1582  if(tof>400) tof-=fConstantTimeShift;
1583 
1584  // Get cluster kinematics
1585  clus->GetMomentum(fClusterMomentum,v);
1586 
1587  Float_t e = fClusterMomentum.E();
1588  Float_t pt = fClusterMomentum.Pt();
1589  Float_t eta = fClusterMomentum.Eta();
1590  Float_t phi = GetPhi(fClusterMomentum.Phi());
1591 
1592  // Check only certain regions
1593  Bool_t in = kTRUE;
1594  if(IsFiducialCutOn())
1596 
1597  if(!in)
1598  {
1599  AliDebug(1,Form("Remove cluster with phi %2.2f and eta %2.2f", phi*TMath::RadToDeg(), eta));
1600  continue;
1601  }
1602 
1603  AliDebug(1,Form("cluster: E %2.3f, pT %2.3f, eta %2.3f, phi %2.3f",e,pt,eta,phi*TMath::RadToDeg()));
1604 
1605  // Select the cluster
1606  //
1607  nCaloCellsPerCluster = clus->GetNCells();
1608 
1609  Bool_t goodCluster = IsGoodCluster(absIdMax, clus->GetM02(), nCaloCellsPerCluster);
1610 
1611  AliDebug(1,Form("Accept cluster? %d",goodCluster));
1612 
1613  if(!goodCluster) continue;
1614 
1615  // MC origin finding
1616  //
1617  Int_t mcTag = 0;
1618  Int_t mcIndex = -1;
1619  if ( IsDataMC() && fStudyShape )
1620  {
1621  mcTag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(), clus->GetNLabels(), GetMC());
1622 
1624  GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCEta ) ) mcIndex = 0;
1628  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCPhoton ) ) mcIndex = 2;
1629  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCElectron ) ) mcIndex = 3;
1630  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCPion ) ) mcIndex = 4;
1631  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCKaon ) ) mcIndex = 5;
1632  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCProton ) ) mcIndex = 6;
1633  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCAntiProton ) ) mcIndex = 7;
1634  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCNeutron ) ) mcIndex = 8;
1635  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag, AliMCAnalysisUtils::kMCAntiNeutron) ) mcIndex = 9;
1636  }
1637 
1638  // Cluster mathed with track? and what kind?
1639  //
1640  matched = GetCaloPID()->IsTrackMatched(clus,GetCaloUtils(), GetReader()->GetInputEvent());
1641 
1642  Int_t matchedPID = 0;
1643  if ( matched && fStudyShape )
1644  ClusterMatchedToTrackPID(clus, matchedPID);
1645 
1646  // Get amp and time of max cell, recalibrate and calculate things
1647  //
1648  Int_t bc = (GetReader()->GetInputEvent())->GetBunchCrossNumber();
1649  Double_t tmax = fCaloCellList->GetCellTime(absIdMax);
1650  Float_t ampMax = fCaloCellList->GetCellAmplitude(absIdMax);
1651 
1652  GetCaloUtils()->RecalibrateCellTime(tmax, GetCalorimeter(), absIdMax, bc);
1653  tmax*=1.e9;
1654  tmax-=fConstantTimeShift;
1655 
1656  GetCaloUtils()->RecalibrateCellAmplitude(ampMax, GetCalorimeter(), absIdMax);
1657 
1658  Float_t eCrossFrac = 0;
1659  if ( ampMax > 0.01 )
1660  eCrossFrac = 1-GetCaloUtils()->GetECross(absIdMax,fCaloCellList,bc)/ampMax;
1661 
1662 
1663  // Call analysis method filling histograms
1664  //
1665 
1666  //
1667  if ( fStudyShape )
1668  ClusterShapeHistograms(clus, absIdMax, maxCellFraction, eCrossFrac, tmax, matchedPID, mcIndex);
1669 
1670  //
1671  if ( fStudyTCardCorrelation )
1672  ChannelCorrelationInTCard(clus, matched, absIdMax, eCrossFrac);
1673 
1674  //
1675  if ( fStudyWeight )
1676  WeightHistograms(clus, mcTag);
1677 
1678  } // Cluster loop
1679 
1680 }
1681 
1682 //_________________________________________________
1684 //_________________________________________________
1686 {
1687  TString parList ; //this will be list of parameters used for this analysis.
1688  const Int_t buffersize = 255;
1689  char onePar[buffersize] ;
1690 
1691  snprintf(onePar,buffersize,"--- AliAnaClusterShapeCorrelStudies ---:") ;
1692  parList+=onePar ;
1693  snprintf(onePar,buffersize,"Calorimeter: %s;",GetCalorimeterString().Data()) ;
1694  parList+=onePar ;
1695  snprintf(onePar,buffersize,"Cluster M02: > %2.2f ; n cells > %d; dist to bad>%2.1f;",fM02Min, fNCellMin, fMinDistToBad) ;
1696  parList+=onePar ;
1697  snprintf(onePar,buffersize,"Inv. Mass %2.1f < E_cl < %2.1f GeV;",fInvMassMinECut, fInvMassMaxECut) ;
1698  parList+=onePar ;
1699  snprintf(onePar,buffersize,"Inv. Mass %2.1f < M02 < %2.1f GeV;",fInvMassMinM02Cut, fInvMassMaxM02Cut) ;
1700  parList+=onePar ;
1701  snprintf(onePar,buffersize,"Cluster pair opening angle < %2.1f rad;",fInvMassMaxOpenAngle) ;
1702  parList+=onePar ;
1703  snprintf(onePar,buffersize,"Cluster pair time difference < %2.1f rad;",fInvMassMaxTimeDifference) ;
1704  parList+=onePar ;
1705 
1706  //Get parameters set in base class.
1707  //parList += GetBaseParametersList() ;
1708 
1709  //Get parameters set in FiducialCut class (not available yet)
1710  //parlist += GetFidCut()->GetFidCutParametersList()
1711 
1712  return new TObjString(parList) ;
1713 }
1714 
1715 //___________________________________________________
1718 //___________________________________________________
1720 {
1721  TList * outputContainer = new TList() ;
1722  outputContainer->SetName("ClusterShapeStudies") ;
1723 
1724  // Init the number of modules, set in the class AliCalorimeterUtils
1725  //
1726  InitCaloParameters(); // See AliCaloTrackCorrBaseClass
1727 
1728  //Int_t totalSM = fLastModule-fFirstModule+1;
1729  //printf("N SM %d, first SM %d, last SM %d, total %d\n",fNModules,fFirstModule,fLastModule, totalSM);
1730 
1731 
1732  // MC origin
1733  TString mcParticleStringLabel[] = {"Merged #gamma#gamma","Decay #gamma","Direct #gamma","e^{#pm}","#pi^{#pm}","k^{#pm}","p","#bar{p}","n","#bar{n}"};
1734  //TString mcParticleStringTitle[] = {"MergedPhoton","DecayPhoton","DirectPhoton","Electron","Pion","Kaon","Proton","AntiProton","Neutron","AntiNeutron"};
1735 
1736  // track-match PID matching
1737  TString matchCase[] = {"Neutral","Electron","Hadron"};
1738 
1739  // Histogram binning and ranges
1740  //
1743 
1746 
1749 
1750  // TM residuals
1757 
1758  // Cell column-row histograms, see base class for data members setting
1759  //fNMaxColsFull+2,-1.5,fNMaxColsFull+0.5, fNMaxRowsFull+2,-1.5,fNMaxRowsFull+0.5
1760  Int_t ncolcell = fNMaxColsFull+2;
1761  Float_t colcellmin = -1.5;
1762  Float_t colcellmax = fNMaxColsFull+0.5;
1763 
1765  Float_t rowcellmin = fNMaxRowsFullMin-1.5;
1766  Float_t rowcellmax = fNMaxRowsFullMax+0.5;
1767 
1768  // E bins in TH3
1769  Int_t nEbins = 16 ;
1770  Float_t minE = 2.5;
1771  Float_t maxE = 18.5;
1772 
1773  // shower shape bins in TH3
1774  Int_t nShShBins = 200;
1775  Float_t minShSh = 0.;
1776  Float_t maxShSh = 2.;
1777 
1778  // Asymmetry bins
1779  Int_t asyBins = 21;
1780  Float_t asyMax = 1.05;
1781  Float_t asyMin = -1*asyMax;
1782 
1783  // n cell bins for TH3
1784  Int_t cellBins = 15;
1785  Float_t cellMax = 15;
1786  Float_t cellMin = 0;
1787 
1788  //
1789  // Init histograms
1790  //
1792  {
1794  ("hColRowHighEPosTime",
1795  "column vs row, exo < 0.97, E > 8 GeV, t > 5 ns",
1796  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1797  fhColRowHighEPosTime->SetYTitle("row");
1798  fhColRowHighEPosTime->SetXTitle("column");
1799  outputContainer->Add(fhColRowHighEPosTime) ;
1800 
1802  ("hColRowHighENegTime",
1803  "column vs row, exo < 0.97, E > 8 GeV, t < -5 ns",
1804  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1805  fhColRowHighENegTime->SetYTitle("row");
1806  fhColRowHighENegTime->SetXTitle("column");
1807  outputContainer->Add(fhColRowHighENegTime) ;
1808 
1810  ("hColRowHighENulTime",
1811  "column vs row, exo < 0.97, E > 8 GeV, -5 < t < 5 ns",
1812  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1813  fhColRowHighENulTime->SetYTitle("row");
1814  fhColRowHighENulTime->SetXTitle("column");
1815  outputContainer->Add(fhColRowHighENulTime) ;
1816 
1817  if(fStudyExotic)
1818  {
1820  ("hColRowExoticHighE1CellPosTime",
1821  "column vs row, 1 cell, E > 8 GeV, t > 5 ns",
1822  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1823  fhColRowExoticHighE1CellPosTime->SetYTitle("row");
1824  fhColRowExoticHighE1CellPosTime->SetXTitle("column");
1825  outputContainer->Add(fhColRowExoticHighE1CellPosTime) ;
1826 
1828  ("hColRowExoticHighEPosTime",
1829  "column vs row, exo > 0.97, E > 8 GeV, t > 5 ns",
1830  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1831  fhColRowExoticHighEPosTime->SetYTitle("row");
1832  fhColRowExoticHighEPosTime->SetXTitle("column");
1833  outputContainer->Add(fhColRowExoticHighEPosTime) ;
1834 
1836  ("hColRowExoticHighE1CellNegTime",
1837  "column vs row, 1 cell, E > 8 GeV, t < -5 ns",
1838  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1839  fhColRowExoticHighE1CellNegTime->SetYTitle("row");
1840  fhColRowExoticHighE1CellNegTime->SetXTitle("column");
1841  outputContainer->Add(fhColRowExoticHighE1CellNegTime) ;
1842 
1844  ("hColRowExoticHighENegTime",
1845  "column vs row, exo > 0.97, E > 8 GeV, t < -5 ns",
1846  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1847  fhColRowExoticHighENegTime->SetYTitle("row");
1848  fhColRowExoticHighENegTime->SetXTitle("column");
1849  outputContainer->Add(fhColRowExoticHighENegTime) ;
1850 
1852  ("hColRowExoticHighE1CellNulTime",
1853  "column vs row, 1 cell, E > 8 GeV, -5 < t < 5 ns",
1854  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1855  fhColRowExoticHighE1CellNulTime->SetYTitle("row");
1856  fhColRowExoticHighE1CellNulTime->SetXTitle("column");
1857  outputContainer->Add(fhColRowExoticHighE1CellNulTime) ;
1858 
1860  ("hColRowExoticHighENulTime",
1861  "column vs row, exo > 0.97, E > 8 GeV, -5 < t < 5 ns",
1862  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1863  fhColRowExoticHighENulTime->SetYTitle("row");
1864  fhColRowExoticHighENulTime->SetXTitle("column");
1865  outputContainer->Add(fhColRowExoticHighENulTime) ;
1866  }
1867 
1868  TString add[] = {"","TrackMatched"};
1869  for(Int_t tm = 0; tm < 2; tm++)
1870  {
1872  (Form("hColRowTCardCorrNoSelectionLowE%s",add[tm].Data()),
1873  Form("column vs row, max E cell for TCard correlation selected clusters, 5 < E < 8 GeV %s",add[tm].Data()),
1874  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1875  fhColRowTCardCorrNoSelectionLowE[tm]->SetYTitle("row");
1876  fhColRowTCardCorrNoSelectionLowE[tm]->SetXTitle("column");
1877  outputContainer->Add(fhColRowTCardCorrNoSelectionLowE[tm]) ;
1878 
1880  (Form("hColRowTCardCorrNoSelectionHighE%s",add[tm].Data()),
1881  Form("column vs row, max E cell for TCard correlation selected clusters, E > 8 GeV %s",add[tm].Data()),
1882  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
1883  fhColRowTCardCorrNoSelectionHighE[tm]->SetYTitle("row");
1884  fhColRowTCardCorrNoSelectionHighE[tm]->SetXTitle("column");
1885  outputContainer->Add(fhColRowTCardCorrNoSelectionHighE[tm]) ;
1886 
1887  //
1888 
1890  (Form("hNCellsTCardCorrNoSelection%s",add[tm].Data()),
1891  Form("# custer # cells vs #it{E} %s",add[tm].Data()),
1892  nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
1893  fhNCellsTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1894  fhNCellsTCardCorrNoSelection[tm]->SetYTitle("#it{n}_{cells}");
1895  outputContainer->Add(fhNCellsTCardCorrNoSelection[tm]);
1896 
1898  (Form("hNCellsTCardCorrWithWeightNoSelection%s",add[tm].Data()),
1899  Form("custer # cells vs #it{E}, w > 0.01 %s",add[tm].Data()),
1900  nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
1901  fhNCellsTCardCorrWithWeightNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1902  fhNCellsTCardCorrWithWeightNoSelection[tm]->SetYTitle("#it{n}_{cells}");
1903  outputContainer->Add(fhNCellsTCardCorrWithWeightNoSelection[tm]);
1904 
1906  (Form("hNCellsTCardCorrRatioWithWeightNoSelection%s",add[tm].Data()),
1907  Form("custer # cells vs #it{E}, w > 0.01 %s",add[tm].Data()),
1908  nptbins,ptmin,ptmax, 100,0,1);
1909  fhNCellsTCardCorrRatioWithWeightNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1910  fhNCellsTCardCorrRatioWithWeightNoSelection[tm]->SetYTitle("#it{n}^{w>0.01}_{cells} / #it{n}_{cells}");
1911  outputContainer->Add(fhNCellsTCardCorrRatioWithWeightNoSelection[tm]);
1912 
1913  fhTimeTCardCorrNoSelection[tm] = new TH2F
1914  (Form("hTimeTCardCorrNoSelection%s",add[tm].Data()),
1915  Form("#it{time} vs #it{E} %s",add[tm].Data()),
1916  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
1917  fhTimeTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1918  fhTimeTCardCorrNoSelection[tm]->SetYTitle("#it{time} (ns)");
1919  outputContainer->Add(fhTimeTCardCorrNoSelection[tm]);
1920 
1922  (Form("hLambda0TCardCorrNoSelection%s",add[tm].Data()),
1923  Form("#lambda^{2}_{0} vs #it{E} %s",add[tm].Data()),
1924  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1925  fhLambda0TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1926  fhLambda0TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{0}");
1927  outputContainer->Add(fhLambda0TCardCorrNoSelection[tm]);
1928 
1930  (Form("hLambda1TCardCorrNoSelection%s",add[tm].Data()),
1931  Form("#lambda^{2}_{1} vs #it{E} %s",add[tm].Data()),
1932  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1933  fhLambda1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1934  fhLambda1TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{1}");
1935  outputContainer->Add(fhLambda1TCardCorrNoSelection[tm]);
1936 
1938  (Form("hLambda0NLM1TCardCorrNoSelection%s",add[tm].Data()),
1939  Form("#lambda^{2}_{0} vs #it{E}, nlm=1 %s",add[tm].Data()),
1940  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1941  fhLambda0NLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1942  fhLambda0NLM1TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{0}");
1943  outputContainer->Add(fhLambda0NLM1TCardCorrNoSelection[tm]);
1944 
1946  (Form("hLambda1NLM1TCardCorrNoSelection%s",add[tm].Data()),
1947  Form("#lambda^{2}_{1} vs #it{E}, nlm=1 %s",add[tm].Data()),
1948  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1949  fhLambda1NLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1950  fhLambda1NLM1TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{1}");
1951  outputContainer->Add(fhLambda1NLM1TCardCorrNoSelection[tm]);
1952 
1954  (Form("hLambda0NLM2TCardCorrNoSelection%s",add[tm].Data()),
1955  Form("#lambda^{2}_{0} vs #it{E}, nlm=2 %s",add[tm].Data()),
1956  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1957  fhLambda0NLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1958  fhLambda0NLM2TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{0}");
1959  outputContainer->Add(fhLambda0NLM2TCardCorrNoSelection[tm]);
1960 
1962  (Form("hLambda1NLM2TCardCorrNoSelection%s",add[tm].Data()),
1963  Form("#lambda^{2}_{1} vs #it{E}, nlm=2 %s",add[tm].Data()),
1964  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1965  fhLambda1NLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1966  fhLambda1NLM2TCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{1}");
1967  outputContainer->Add(fhLambda1NLM2TCardCorrNoSelection[tm]);
1968 
1969 
1971  (Form("hLambdaRTCardCorrNoSelection%s",add[tm].Data()),
1972  Form("#lambda^{1}_{0}/#lambda^{2}_{0} vs #it{E} %s",add[tm].Data()),
1973  nptbins,ptmin,ptmax,110,0,1.1);
1974  fhLambdaRTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
1975  fhLambdaRTCardCorrNoSelection[tm]->SetYTitle("#lambda^{2}_{1}/#lambda^{2}_{0}");
1976  outputContainer->Add(fhLambdaRTCardCorrNoSelection[tm]);
1977 
1979  (Form("hNLocMaxTCardCorrNoSelection%s",add[tm].Data()),
1980  Form("#it{n}_{LM} vs E %s",add[tm].Data()),
1981  nptbins,ptmin,ptmax,10,0,10);
1982  fhNLocMaxTCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
1983  fhNLocMaxTCardCorrNoSelection[tm]->SetYTitle("#it{n}_{LM}");
1984  outputContainer->Add(fhNLocMaxTCardCorrNoSelection[tm]);
1985 
1987  (Form("hEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
1988  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
1989  nptbins,ptmin,ptmax,100,0,1);
1990  fhEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
1991  fhEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
1992  outputContainer->Add(fhEMaxRatNLM1TCardCorrNoSelection[tm]);
1993 
1995  (Form("hEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
1996  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
1997  nptbins,ptmin,ptmax,100,0,1);
1998  fhEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
1999  fhEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2000  outputContainer->Add(fhEMaxRatNLM2TCardCorrNoSelection[tm]);
2001 
2003  (Form("hEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2004  Form("#it{E}_{cell}^{max}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2005  nptbins,ptmin,ptmax,100,0,1);
2006  fhEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2007  fhEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2008  outputContainer->Add(fhEMaxRatNLM3TCardCorrNoSelection[tm]);
2009 
2011  (Form("hE2ndRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2012  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cluster} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
2013  nptbins,ptmin,ptmax,100,0,1);
2014  fhE2ndRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2015  fhE2ndRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
2016  outputContainer->Add(fhE2ndRatNLM1TCardCorrNoSelection[tm]);
2017 
2019  (Form("hE2ndRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2020  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2021  nptbins,ptmin,ptmax,100,0,1);
2022  fhE2ndRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2023  fhE2ndRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2024  outputContainer->Add(fhE2ndRatNLM2TCardCorrNoSelection[tm]);
2025 
2027  (Form("hE2ndRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2028  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2029  nptbins,ptmin,ptmax,100,0,1);
2030  fhE2ndRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2031  fhE2ndRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2032  outputContainer->Add(fhE2ndRatNLM3TCardCorrNoSelection[tm]);
2033 
2034 
2036  (Form("hE2ndEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2037  Form("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}=1 %s",add[tm].Data()),
2038  nptbins,ptmin,ptmax,100,0,1);
2039  fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2040  fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
2041  outputContainer->Add(fhE2ndEMaxRatNLM1TCardCorrNoSelection[tm]);
2042 
2044  (Form("hE2ndEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2045  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2046  nptbins,ptmin,ptmax,100,0,1);
2047  fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2048  fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2049  outputContainer->Add(fhE2ndEMaxRatNLM2TCardCorrNoSelection[tm]);
2050 
2052  (Form("hE2ndEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2053  Form("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2054  nptbins,ptmin,ptmax,100,0,1);
2055  fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2056  fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2057  outputContainer->Add(fhE2ndEMaxRatNLM3TCardCorrNoSelection[tm]);
2058 
2060 
2062  (Form("hE2ndSameRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2063  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()),
2064  nptbins,ptmin,ptmax,100,0,1);
2065  fhE2ndSameRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2066  fhE2ndSameRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
2067  outputContainer->Add(fhE2ndSameRatNLM1TCardCorrNoSelection[tm]);
2068 
2070  (Form("hE2ndSameRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2071  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()),
2072  nptbins,ptmin,ptmax,100,0,1);
2073  fhE2ndSameRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2074  fhE2ndSameRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2075  outputContainer->Add(fhE2ndSameRatNLM2TCardCorrNoSelection[tm]);
2076 
2078  (Form("hE2ndSameRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2079  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()),
2080  nptbins,ptmin,ptmax,100,0,1);
2081  fhE2ndSameRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2082  fhE2ndSameRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2083  outputContainer->Add(fhE2ndSameRatNLM3TCardCorrNoSelection[tm]);
2084 
2085 
2087  (Form("hE2ndSameEMaxRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2088  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()),
2089  nptbins,ptmin,ptmax,100,0,1);
2090  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2091  fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
2092  outputContainer->Add(fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[tm]);
2093 
2095  (Form("hE2ndSameEMaxRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2096  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()),
2097  nptbins,ptmin,ptmax,100,0,1);
2098  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2099  fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2100  outputContainer->Add(fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[tm]);
2101 
2103  (Form("hE2ndSameEMaxRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2104  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()),
2105  nptbins,ptmin,ptmax,100,0,1);
2106  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2107  fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2108  outputContainer->Add(fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[tm]);
2109 
2111 
2113  (Form("hECellClusRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2114  Form("#it{E}_{cell}/#it{E}_{cluster} vs E_{cluster}, #it{n}_{LM}=1 %s",add[tm].Data()),
2115  nptbins,ptmin,ptmax,100,0,1);
2116  fhECellClusRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2117  fhECellClusRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2118  outputContainer->Add(fhECellClusRatNLM1TCardCorrNoSelection[tm]);
2119 
2121  (Form("hECellClusRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2122  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2123  nptbins,ptmin,ptmax,100,0,1);
2124  fhECellClusRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2125  fhECellClusRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2126  outputContainer->Add(fhECellClusRatNLM2TCardCorrNoSelection[tm]);
2127 
2129  (Form("hECellClusRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2130  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2131  nptbins,ptmin,ptmax,100,0,1);
2132  fhECellClusRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2133  fhECellClusRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2134  outputContainer->Add(fhECellClusRatNLM3TCardCorrNoSelection[tm]);
2135 
2137  (Form("hLogECellNLM1TCardCorrNoSelection%s",add[tm].Data()),
2138  Form("log(#it{E}_{cell}) vs E_{cluster}, #it{n}_{LM}=1, w > 0.01 %s",add[tm].Data()),
2139  nptbins,ptmin,ptmax,150,-3,3);
2140  fhLogECellNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2141  fhLogECellNLM1TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2142  outputContainer->Add(fhLogECellNLM1TCardCorrNoSelection[tm]);
2143 
2145  (Form("hLogECellNLM2TCardCorrNoSelection%s",add[tm].Data()),
2146  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}=2, w > 0.01 %s",add[tm].Data()),
2147  nptbins,ptmin,ptmax,150,-3,3);
2148  fhLogECellNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2149  fhLogECellNLM2TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2150  outputContainer->Add(fhLogECellNLM2TCardCorrNoSelection[tm]);
2151 
2153  (Form("hLogECellNLM3TCardCorrNoSelection%s",add[tm].Data()),
2154  Form("log(#it{E}_{cell}) vs E, #it{n}_{LM}>2, w > 0.01 %s",add[tm].Data()),
2155  nptbins,ptmin,ptmax,150,-3,3);
2156  fhLogECellNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2157  fhLogECellNLM3TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2158  outputContainer->Add(fhLogECellNLM3TCardCorrNoSelection[tm]);
2159 
2160 
2162  (Form("hECellWeightNLM1TCardCorrNoSelection%s",add[tm].Data()),
2163  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E_{cluster}, #it{n}_{LM}=1 %s",add[tm].Data()),
2164  nptbins,ptmin,ptmax,90,0,4.5);
2165  fhECellWeightNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2166  fhECellWeightNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2167  outputContainer->Add(fhECellWeightNLM1TCardCorrNoSelection[tm]);
2168 
2170  (Form("hECellWeightNLM2TCardCorrNoSelection%s",add[tm].Data()),
2171  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster})) vs E, #it{n}_{LM}=2 %s",add[tm].Data()),
2172  nptbins,ptmin,ptmax,90,0,4.5);
2173  fhECellWeightNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2174  fhECellWeightNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2175  outputContainer->Add(fhECellWeightNLM2TCardCorrNoSelection[tm]);
2176 
2178  (Form("hECellWeightNLM3TCardCorrNoSelection%s",add[tm].Data()),
2179  Form("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))vs E, #it{n}_{LM}>2 %s",add[tm].Data()),
2180  nptbins,ptmin,ptmax,90,0,4.5);
2181  fhECellWeightNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2182  fhECellWeightNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2183  outputContainer->Add(fhECellWeightNLM3TCardCorrNoSelection[tm]);
2184 
2185 
2187  (Form("hECellSameClusRatNLM1TCardCorrNoSelection%s",add[tm].Data()),
2188  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()),
2189  nptbins,ptmin,ptmax,100,0,1);
2190  fhECellSameClusRatNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2191  fhECellSameClusRatNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2192  outputContainer->Add(fhECellSameClusRatNLM1TCardCorrNoSelection[tm]);
2193 
2195  (Form("hECellSameClusRatNLM2TCardCorrNoSelection%s",add[tm].Data()),
2196  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, cell from same T-Card as leading, #it{n}_{LM}=2 %s",add[tm].Data()),
2197  nptbins,ptmin,ptmax,100,0,1);
2198  fhECellSameClusRatNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2199  fhECellSameClusRatNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2200  outputContainer->Add(fhECellSameClusRatNLM2TCardCorrNoSelection[tm]);
2201 
2203  (Form("hECellSameClusRatNLM3TCardCorrNoSelection%s",add[tm].Data()),
2204  Form("#it{E}_{cell}/#it{E}_{cluster} vs E, cell from same T-Card as leading, #it{n}_{LM}>2 %s",add[tm].Data()),
2205  nptbins,ptmin,ptmax,100,0,1);
2206  fhECellSameClusRatNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2207  fhECellSameClusRatNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2208  outputContainer->Add(fhECellSameClusRatNLM3TCardCorrNoSelection[tm]);
2209 
2211  (Form("hLogECellSameNLM1TCardCorrNoSelection%s",add[tm].Data()),
2212  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()),
2213  nptbins,ptmin,ptmax,150,-3,3);
2214  fhLogECellSameNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2215  fhLogECellSameNLM1TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2216  outputContainer->Add(fhLogECellSameNLM1TCardCorrNoSelection[tm]);
2217 
2219  (Form("hLogECellSameNLM2TCardCorrNoSelection%s",add[tm].Data()),
2220  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()),
2221  nptbins,ptmin,ptmax,150,-3,3);
2222  fhLogECellSameNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2223  fhLogECellSameNLM2TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2224  outputContainer->Add(fhLogECellSameNLM2TCardCorrNoSelection[tm]);
2225 
2227  (Form("hLogECellSameNLM3TCardCorrNoSelection%s",add[tm].Data()),
2228  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()),
2229  nptbins,ptmin,ptmax,150,-3,3);
2230  fhLogECellSameNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2231  fhLogECellSameNLM3TCardCorrNoSelection[tm]->SetYTitle("log(#it{E}_{cell})");
2232  outputContainer->Add(fhLogECellSameNLM3TCardCorrNoSelection[tm]);
2233 
2234 
2236  (Form("hECellSameWeightNLM1TCardCorrNoSelection%s",add[tm].Data()),
2237  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()),
2238  nptbins,ptmin,ptmax,90,0,4.5);
2239  fhECellSameWeightNLM1TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2240  fhECellSameWeightNLM1TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2241  outputContainer->Add(fhECellSameWeightNLM1TCardCorrNoSelection[tm]);
2242 
2244  (Form("hECellSameWeightNLM2TCardCorrNoSelection%s",add[tm].Data()),
2245  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()),
2246  nptbins,ptmin,ptmax,90,0,4.5);
2247  fhECellSameWeightNLM2TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2248  fhECellSameWeightNLM2TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2249  outputContainer->Add(fhECellSameWeightNLM2TCardCorrNoSelection[tm]);
2250 
2252  (Form("hECellSameWeightNLM3TCardCorrNoSelection%s",add[tm].Data()),
2253  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()),
2254  nptbins,ptmin,ptmax,90,0,4.5);
2255  fhECellSameWeightNLM3TCardCorrNoSelection[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2256  fhECellSameWeightNLM3TCardCorrNoSelection[tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2257  outputContainer->Add(fhECellSameWeightNLM3TCardCorrNoSelection[tm]);
2258 
2260  (Form("hExoticTCardCorrNoSelection%s",add[tm].Data()),
2261  Form("exoticity vs #it{E} %s",add[tm].Data()),
2262  nptbins,ptmin,ptmax,200,-1,1);
2263  fhExoticTCardCorrNoSelection[tm]->SetXTitle("#it{E} (GeV)");
2264  fhExoticTCardCorrNoSelection[tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2265  outputContainer->Add(fhExoticTCardCorrNoSelection[tm]);
2266 
2268  (Form("hNCellsTCardSameAndDiffFraction%s",add[tm].Data()),
2269  Form("#it{n}_{cells} same TCard vs diff TCard fraction, w > 0.01, %s",add[tm].Data()),
2270  nptbins,ptmin,ptmax,100,0,1);
2271  fhNCellsTCardSameAndDiffFraction[tm]->SetXTitle("#it{E} (GeV)");
2272  fhNCellsTCardSameAndDiffFraction[tm]->SetYTitle("#it{n}_{cells} - same TCard / #it{n}_{cells} - total");
2273  outputContainer->Add(fhNCellsTCardSameAndDiffFraction[tm]);
2274 
2276  (Form("hSameRowDiffColAndTCardCellsEnergyDiffClusterE%s",add[tm].Data()),
2277  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()),
2278  nptbins,ptmin,ptmax,200,-10,10);
2279  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2280  fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2281  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[tm]);
2282 
2284  (Form("hSameRowDiffColAndTCardCellsTimeDiffClusterE%s",add[tm].Data()),
2285  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()),
2286  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2287  fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2288  fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2289  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffClusterE[tm]);
2290 
2292  (Form("hSameRowDiffColAndTCardCellsEnergyDiffCellMaxE%s",add[tm].Data()),
2293  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()),
2294  nptbins,ptmin,ptmax,200,-10,10);
2295  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2296  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2297  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[tm]);
2298 
2300  (Form("hSameRowDiffColAndTCardCellsTimeDiffCellMaxE%s",add[tm].Data()),
2301  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()),
2302  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2303  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2304  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2305  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[tm]);
2306 
2307  if(fStudyExotic)
2308  {
2309  fhEnergyTime1Cell[tm] = new TH2F
2310  (Form("hEnergyTime1Cell%s",add[tm].Data()),
2311  Form("#it{t} vs #it{E}, 1 cells cluster %s",add[tm].Data()),
2312  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2313  fhEnergyTime1Cell[tm]->SetXTitle("#it{E} (GeV)");
2314  fhEnergyTime1Cell[tm]->SetYTitle("#it{t} (ns)");
2315  outputContainer->Add(fhEnergyTime1Cell[tm]);
2316 
2317  fhEnergyTimeExotic[tm] = new TH2F
2318  (Form("hEnergyTimeExotic%s",add[tm].Data()),
2319  Form("#it{t} vs #it{E}, exo > 0.97, %s",add[tm].Data()),
2320  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2321  fhEnergyTimeExotic[tm]->SetXTitle("#it{E} (GeV)");
2322  fhEnergyTimeExotic[tm]->SetYTitle("#it{t} (ns)");
2323  outputContainer->Add(fhEnergyTimeExotic[tm]);
2324 
2326  (Form("hEnergyTimeTCardCorrNoSelection1Cell%s",add[tm].Data()),
2327  Form("#it{t} vs #it{E}, 1 cells cluster %s",add[tm].Data()),
2328  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2329  fhEnergyTimeTCardCorrNoSelection1Cell[tm]->SetXTitle("#it{E} (GeV)");
2330  fhEnergyTimeTCardCorrNoSelection1Cell[tm]->SetYTitle("#it{t} (ns)");
2331  outputContainer->Add(fhEnergyTimeTCardCorrNoSelection1Cell[tm]);
2332 
2334  (Form("hEnergyTimeTCardCorrNoSelectionExotic%s",add[tm].Data()),
2335  Form("#it{t} vs #it{E}, exo > 0.97, %s",add[tm].Data()),
2336  nptbins,ptmin,ptmax,ntimebins,timemin,timemax);
2337  fhEnergyTimeTCardCorrNoSelectionExotic[tm]->SetXTitle("#it{E} (GeV)");
2338  fhEnergyTimeTCardCorrNoSelectionExotic[tm]->SetYTitle("#it{t} (ns)");
2339  outputContainer->Add(fhEnergyTimeTCardCorrNoSelectionExotic[tm]);
2340 
2341  fhColRowExoticLowE1Cell[tm] = new TH2F
2342  (Form("hColRowExoticLowE1Cell%s",add[tm].Data()),
2343  Form("column vs row, 1 cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2344  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2345  fhColRowExoticLowE1Cell[tm]->SetYTitle("row");
2346  fhColRowExoticLowE1Cell[tm]->SetXTitle("column");
2347  outputContainer->Add(fhColRowExoticLowE1Cell[tm]) ;
2348 
2349  fhColRowExoticHighE1Cell[tm] = new TH2F
2350  (Form("hColRowExoticHighE1Cell%s",add[tm].Data()),
2351  Form("column vs row, 1 cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2352  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2353  fhColRowExoticHighE1Cell[tm]->SetYTitle("row");
2354  fhColRowExoticHighE1Cell[tm]->SetXTitle("column");
2355  outputContainer->Add(fhColRowExoticHighE1Cell[tm]) ;
2356 
2357  fhColRowExoticLowE[tm] = new TH2F
2358  (Form("hColRowExoticLowE%s",add[tm].Data()),
2359  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2360  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2361  fhColRowExoticLowE[tm]->SetYTitle("row");
2362  fhColRowExoticLowE[tm]->SetXTitle("column");
2363  outputContainer->Add(fhColRowExoticLowE[tm]) ;
2364 
2365  fhColRowExoticHighE[tm] = new TH2F
2366  (Form("hColRowExoticHighE%s",add[tm].Data()),
2367  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2368  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2369  fhColRowExoticHighE[tm]->SetYTitle("row");
2370  fhColRowExoticHighE[tm]->SetXTitle("column");
2371  outputContainer->Add(fhColRowExoticHighE[tm]) ;
2372 
2374  (Form("hColRowExotic2ndCellDiffLowE%s",add[tm].Data()),
2375  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2376  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2377  fhColRowExotic2ndCellDiffLowE[tm]->SetYTitle("row");
2378  fhColRowExotic2ndCellDiffLowE[tm]->SetXTitle("column");
2379  outputContainer->Add(fhColRowExotic2ndCellDiffLowE[tm]) ;
2380 
2382  (Form("hColRowExotic2ndCellDiffHighE%s",add[tm].Data()),
2383  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2384  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2385  fhColRowExotic2ndCellDiffHighE[tm]->SetYTitle("row");
2386  fhColRowExotic2ndCellDiffHighE[tm]->SetXTitle("column");
2387  outputContainer->Add(fhColRowExotic2ndCellDiffHighE[tm]) ;
2388 
2390  (Form("hColRowExotic2ndCellSameLowE%s",add[tm].Data()),
2391  Form("column vs row, max E cell, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2392  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2393  fhColRowExotic2ndCellSameLowE[tm]->SetYTitle("row");
2394  fhColRowExotic2ndCellSameLowE[tm]->SetXTitle("column");
2395  outputContainer->Add(fhColRowExotic2ndCellSameLowE[tm]) ;
2396 
2398  (Form("hColRowExotic2ndCellSameHighE%s",add[tm].Data()),
2399  Form("column vs row, max E cell, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2400  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2401  fhColRowExotic2ndCellSameHighE[tm]->SetYTitle("row");
2402  fhColRowExotic2ndCellSameHighE[tm]->SetXTitle("column");
2403  outputContainer->Add(fhColRowExotic2ndCellSameHighE[tm]) ;
2404 
2406  (Form("hColRowTCardCorrNoSelectionExoticLowE%s",add[tm].Data()),
2407  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2408  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2409  fhColRowTCardCorrNoSelectionExoticLowE[tm]->SetYTitle("row");
2410  fhColRowTCardCorrNoSelectionExoticLowE[tm]->SetXTitle("column");
2411  outputContainer->Add(fhColRowTCardCorrNoSelectionExoticLowE[tm]) ;
2412 
2414  (Form("hColRowTCardCorrNoSelectionExoticHighE%s",add[tm].Data()),
2415  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2416  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2417  fhColRowTCardCorrNoSelectionExoticHighE[tm]->SetYTitle("row");
2418  fhColRowTCardCorrNoSelectionExoticHighE[tm]->SetXTitle("column");
2419  outputContainer->Add(fhColRowTCardCorrNoSelectionExoticHighE[tm]) ;
2420 
2422  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffLowE%s",add[tm].Data()),
2423  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2424  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2426  fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE[tm]->SetXTitle("column");
2427  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE[tm]) ;
2428 
2430  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffHighE%s",add[tm].Data()),
2431  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2432  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2434  fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[tm]->SetXTitle("column");
2435  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[tm]) ;
2436 
2438  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameLowE%s",add[tm].Data()),
2439  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2440  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2442  fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE[tm]->SetXTitle("column");
2443  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE[tm]) ;
2444 
2446  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameHighE%s",add[tm].Data()),
2447  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2448  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2450  fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[tm]->SetXTitle("column");
2451  outputContainer->Add(fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[tm]) ;
2452 
2454  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameLowE%s",add[tm].Data()),
2455  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2456  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2460 
2462  (Form("hColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameHighE%s",add[tm].Data()),
2463  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2464  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2468 
2470  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffLowE%s",add[tm].Data()),
2471  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, 5 < E < 8 GeV %s",add[tm].Data()),
2472  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2476 
2478  (Form("hColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffHighE%s",add[tm].Data()),
2479  Form("column vs row, max E cell for TCard correlation selected clusters, exo > 0.97, E > 8 GeV %s",add[tm].Data()),
2480  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2484 
2486  (Form("hNCellsTCardSameAndDiffFraction_Exotic%s",add[tm].Data()),
2487  Form("#it{n}_{cells} same TCard vs diff TCard fraction, w > 0.01, exo > 0.97 %s",add[tm].Data()),
2488  nptbins,ptmin,ptmax,100,0,1);
2489  fhNCellsTCardSameAndDiffFractionExotic[tm]->SetXTitle("#it{E} (GeV)");
2490  fhNCellsTCardSameAndDiffFractionExotic[tm]->SetYTitle("#it{n}_{cells} - same TCard / #it{n}_{cells} - total");
2491  outputContainer->Add(fhNCellsTCardSameAndDiffFractionExotic[tm]);
2492 
2494  (Form("hSameRowDiffColAndTCardCellsEnergyDiffClusterEExo%s",add[tm].Data()),
2495  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()),
2496  nptbins,ptmin,ptmax,200,-10,10);
2497  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2498  fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2499  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[tm]);
2500 
2502  (Form("hSameRowDiffColAndTCardCellsTimeDiffClusterEExo%s",add[tm].Data()),
2503  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()),
2504  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2505  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2506  fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2507  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[tm]);
2508 
2510  (Form("hSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo%s",add[tm].Data()),
2511  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()),
2512  nptbins,ptmin,ptmax,200,-10,10);
2513  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2514  fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]->SetYTitle("#it{E}_{cell}^{same TCard}-#it{E}_{cell}^{diff TCard} (GeV)");
2515  outputContainer->Add(fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[tm]);
2516 
2518  (Form("hSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo%s",add[tm].Data()),
2519  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()),
2520  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2521  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]->SetXTitle("#it{E}_{cell max} (GeV)");
2522  fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]->SetYTitle("#it{t}_{cell}^{same TCard}-#it{t}_{cell}^{diff TCard} (ns)");
2523  outputContainer->Add(fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[tm]);
2524  }
2525 
2526  for(Int_t i = 0; i < 6; i++)
2527  {
2528  for(Int_t j = 0; j < 6; j++)
2529  {
2530  fhLambda0TCardCorrelNCell[i][j][tm] = new TH2F
2531  (Form("hLambda0TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2532  Form("#lambda^{2}_{0} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2533  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2534  fhLambda0TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2535  fhLambda0TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{0}");
2536  outputContainer->Add(fhLambda0TCardCorrelNCell[i][j][tm]);
2537 
2538  fhLambda1TCardCorrelNCell[i][j][tm] = new TH2F
2539  (Form("hLambda1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2540  Form("#lambda^{2}_{1} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2541  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2542  fhLambda1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2543  fhLambda1TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{1}");
2544  outputContainer->Add(fhLambda1TCardCorrelNCell[i][j][tm]);
2545 
2546  fhLambda0NLM1TCardCorrelNCell[i][j][tm] = new TH2F
2547  (Form("hLambda0NLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2548  Form("#lambda^{2}_{0} vs #it{E}, nlm=1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2549  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2550  fhLambda0NLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2551  fhLambda0NLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{0}");
2552  outputContainer->Add(fhLambda0NLM1TCardCorrelNCell[i][j][tm]);
2553 
2554  fhLambda1NLM1TCardCorrelNCell[i][j][tm] = new TH2F
2555  (Form("hLambda1NLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2556  Form("#lambda^{2}_{1} vs #it{E}, nlm=1, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2557  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2558  fhLambda1NLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2559  fhLambda1NLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{1}");
2560  outputContainer->Add(fhLambda1NLM1TCardCorrelNCell[i][j][tm]);
2561 
2562  fhLambda0NLM2TCardCorrelNCell[i][j][tm] = new TH2F
2563  (Form("hLambda0NLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2564  Form("#lambda^{2}_{0} vs #it{E}, nlm=2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2565  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2566  fhLambda0NLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2567  fhLambda0NLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{0}");
2568  outputContainer->Add(fhLambda0NLM2TCardCorrelNCell[i][j][tm]);
2569 
2570  fhLambda1NLM2TCardCorrelNCell[i][j][tm] = new TH2F
2571  (Form("hLambda1NLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2572  Form("#lambda^{2}_{1} vs #it{E}, nlm=2, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2573  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2574  fhLambda1NLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2575  fhLambda1NLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{1}");
2576  outputContainer->Add(fhLambda1NLM2TCardCorrelNCell[i][j][tm]);
2577 
2578 
2579  // fhLambdaRTCardCorrelNCell[i][j][tm] = new TH2F
2580  // (Form("hLambdaRTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2581  // Form("#lambda^{2}_{1}/#lambda^{2}_{0} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2582  // nptbins,ptmin,ptmax,110,0,1.1);
2583  // fhLambdaRTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2584  // fhLambdaRTCardCorrelNCell[i][j][tm]->SetYTitle("#lambda^{2}_{1}/#lambda^{2}_{0}");
2585  // outputContainer->Add(fhLambdaRTCardCorrelNCell[i][j][tm]);
2586 
2587  fhNLocMaxTCardCorrelNCell[i][j][tm] = new TH2F
2588  (Form("hNLocMaxTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2589  Form("#it{n}_{LM} vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2590  nptbins,ptmin,ptmax,10,0,10);
2591  fhNLocMaxTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2592  fhNLocMaxTCardCorrelNCell[i][j][tm]->SetYTitle("#it{n}_{LM}");
2593  outputContainer->Add(fhNLocMaxTCardCorrelNCell[i][j][tm]);
2594 
2595  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2596  (Form("hEMaxRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2597  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()),
2598  nptbins,ptmin,ptmax,100,0,1);
2599  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2600  fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2601  outputContainer->Add(fhEMaxRatNLM1TCardCorrelNCell[i][j][tm]);
2602 
2603  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2604  (Form("hEMaxRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2605  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()),
2606  nptbins,ptmin,ptmax,100,0,1);
2607  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2608  fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2609  outputContainer->Add(fhEMaxRatNLM2TCardCorrelNCell[i][j][tm]);
2610 
2611  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2612  (Form("hEMaxRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2613  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()),
2614  nptbins,ptmin,ptmax,100,0,1);
2615  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2616  fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{max}/#it{E}_{cluster}");
2617  outputContainer->Add(fhEMaxRatNLM3TCardCorrelNCell[i][j][tm]);
2618 
2619  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2620  (Form("hE2ndRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2621  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()),
2622  nptbins,ptmin,ptmax,100,0,1);
2623  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2624  fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cluster}");
2625  outputContainer->Add(fhE2ndRatNLM1TCardCorrelNCell[i][j][tm]);
2626 
2627  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2628  (Form("hE2ndRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2629  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()),
2630  nptbins,ptmin,ptmax,100,0,1);
2631  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2632  fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2633  outputContainer->Add(fhE2ndRatNLM2TCardCorrelNCell[i][j][tm]);
2634 
2635  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2636  (Form("hE2ndRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2637  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()),
2638  nptbins,ptmin,ptmax,100,0,1);
2639  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2640  fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cluster}");
2641  outputContainer->Add(fhE2ndRatNLM3TCardCorrelNCell[i][j][tm]);
2642 
2643  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2644  (Form("hE2ndEMaxRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2645  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()),
2646  nptbins,ptmin,ptmax,100,0,1);
2647  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2648  fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd max}/#it{E}_{cell}^{max}");
2649  outputContainer->Add(fhE2ndEMaxRatNLM1TCardCorrelNCell[i][j][tm]);
2650 
2651  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2652  (Form("hE2ndEMaxRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2653  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()),
2654  nptbins,ptmin,ptmax,100,0,1);
2655  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2656  fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2657  outputContainer->Add(fhE2ndEMaxRatNLM2TCardCorrelNCell[i][j][tm]);
2658 
2659  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2660  (Form("hE2ndEMaxRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2661  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()),
2662  nptbins,ptmin,ptmax,100,0,1);
2663  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2664  fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}^{2nd loc max}/#it{E}_{cell}^{max}");
2665  outputContainer->Add(fhE2ndEMaxRatNLM3TCardCorrelNCell[i][j][tm]);
2666 
2667 
2668  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2669  (Form("hECellClusRatNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2670  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()),
2671  nptbins,ptmin,ptmax,100,0,1);
2672  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2673  fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2674  outputContainer->Add(fhECellClusRatNLM1TCardCorrelNCell[i][j][tm]);
2675 
2676  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2677  (Form("hECellClusRatNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2678  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()),
2679  nptbins,ptmin,ptmax,100,0,1);
2680  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2681  fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2682  outputContainer->Add(fhECellClusRatNLM2TCardCorrelNCell[i][j][tm]);
2683 
2684  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2685  (Form("hECellClusRatNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2686  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()),
2687  nptbins,ptmin,ptmax,100,0,1);
2688  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2689  fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
2690  outputContainer->Add(fhECellClusRatNLM3TCardCorrelNCell[i][j][tm]);
2691 
2692  fhLogECellNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2693  (Form("hLogECellNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2694  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()),
2695  nptbins,ptmin,ptmax,150,-3,3);
2696  fhLogECellNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2697  fhLogECellNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
2698  outputContainer->Add(fhLogECellNLM1TCardCorrelNCell[i][j][tm]);
2699 
2700  fhLogECellNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2701  (Form("hLogECellNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2702  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()),
2703  nptbins,ptmin,ptmax,150,-3,3);
2704  fhLogECellNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2705  fhLogECellNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
2706  outputContainer->Add(fhLogECellNLM2TCardCorrelNCell[i][j][tm]);
2707 
2708  fhLogECellNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2709  (Form("hLogECellNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2710  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()),
2711  nptbins,ptmin,ptmax,150,-3,3);
2712  fhLogECellNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2713  fhLogECellNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("log(#it{E}_{cell})");
2714  outputContainer->Add(fhLogECellNLM3TCardCorrelNCell[i][j][tm]);
2715 
2716  fhECellWeightNLM1TCardCorrelNCell[i][j][tm] = new TH2F
2717  (Form("hECellWeightNLM1TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2718  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()),
2719  nptbins,ptmin,ptmax,90,0,4.5);
2720  fhECellWeightNLM1TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2721  fhECellWeightNLM1TCardCorrelNCell[i][j][tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2722  outputContainer->Add(fhECellWeightNLM1TCardCorrelNCell[i][j][tm]);
2723 
2724  fhECellWeightNLM2TCardCorrelNCell[i][j][tm] = new TH2F
2725  (Form("hECellWeightNLM2TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2726  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()),
2727  nptbins,ptmin,ptmax,90,0,4.5);
2728  fhECellWeightNLM2TCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2729  fhECellWeightNLM2TCardCorrelNCell[i][j][tm]->SetYTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2730  outputContainer->Add(fhECellWeightNLM2TCardCorrelNCell[i][j][tm]);
2731 
2732  fhECellWeightNLM3TCardCorrelNCell[i][j][tm] = new TH2F
2733  (Form("hECellWeightNLM3TCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2734  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()),
2735  nptbins,ptmin,ptmax,90,0,4.5);
2736  fhECellWeightNLM3TCardCorrelNCell[i][j][tm]->SetXTitle("#it{w}=Max(4,5+log(#it{E}_{cell}/#it{E}_{cluster}))");
2737  fhECellWeightNLM3TCardCorrelNCell[i][j][tm]->SetYTitle("Log. weight");
2738  outputContainer->Add(fhECellWeightNLM3TCardCorrelNCell[i][j][tm]);
2739 
2740  fhMassEClusTCardCorrelNCell[i][j][tm] = new TH2F
2741  (Form("hMassEClusTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2742  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()),
2743  nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2744  fhMassEClusTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{cluster} (GeV)");
2745  fhMassEClusTCardCorrelNCell[i][j][tm]->SetYTitle("#it{M}_{#gamma #gamma}");
2746  outputContainer->Add(fhMassEClusTCardCorrelNCell[i][j][tm]);
2747 
2748  // fhMassEPairTCardCorrelNCell[i][j][tm] = new TH2F
2749  // (Form("hMassEPairTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2750  // 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()),
2751  // nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
2752  // fhMassEPairTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E}_{pair} (GeV)");
2753  // fhMassEPairTCardCorrelNCell[i][j][tm]->SetYTitle("#it{M}_{#gamma #gamma}");
2754  // outputContainer->Add(fhMassEPairTCardCorrelNCell[i][j][tm]);
2755 
2756  fhTimeDiffTCardCorrelNCell[i][j][tm] = new TH2F
2757  (Form("hTimeDiffTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2758  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()),
2759  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2760  fhTimeDiffTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2761  fhTimeDiffTCardCorrelNCell[i][j][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell}^{other}");
2762  outputContainer->Add(fhTimeDiffTCardCorrelNCell[i][j][tm]);
2763 
2764  fhColRowTCardCorrelNCellLowE[i][j][tm] = new TH2F
2765  (Form("hColRowTCardCorrelNCellLowE_Same%d_Diff%d%s",i,j,add[tm].Data()),
2766  Form("column vs row, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2767  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2768  fhColRowTCardCorrelNCellLowE[i][j][tm]->SetYTitle("row");
2769  fhColRowTCardCorrelNCellLowE[i][j][tm]->SetXTitle("column");
2770  outputContainer->Add(fhColRowTCardCorrelNCellLowE[i][j][tm]) ;
2771 
2772  fhColRowTCardCorrelNCellHighE[i][j][tm] = new TH2F
2773  (Form("hColRowTCardCorrelNCellHighE_Same%d_Diff%d%s",i,j,add[tm].Data()),
2774  Form("column vs row,N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2775  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2776  fhColRowTCardCorrelNCellHighE[i][j][tm]->SetYTitle("row");
2777  fhColRowTCardCorrelNCellHighE[i][j][tm]->SetXTitle("column");
2778  outputContainer->Add(fhColRowTCardCorrelNCellHighE[i][j][tm]) ;
2779 
2780  if(fStudyExotic)
2781  {
2782  fhExoticTCardCorrelNCell[i][j][tm] = new TH2F
2783  (Form("hExoticTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2784  Form("exoticity vs #it{E}, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2785  nptbins,ptmin,ptmax,200,-1,1);
2786  fhExoticTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2787  fhExoticTCardCorrelNCell[i][j][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2788  outputContainer->Add(fhExoticTCardCorrelNCell[i][j][tm]);
2789 
2790  fhTimeDiffExoTCardCorrelNCell[i][j][tm] = new TH2F
2791  (Form("hTimeDiffExoTCardCorrelNCell_Same%d_Diff%d%s",i,j,add[tm].Data()),
2792  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()),
2793  nptbins,ptmin,ptmax,tdbins,tdmin,tdmax);
2794  fhTimeDiffExoTCardCorrelNCell[i][j][tm]->SetXTitle("#it{E} (GeV)");
2795  fhTimeDiffExoTCardCorrelNCell[i][j][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell}^{other}");
2796  outputContainer->Add(fhTimeDiffExoTCardCorrelNCell[i][j][tm]);
2797 
2799  (Form("hColRowTCardCorrelNCellExoticLowE_Same%d_Diff%d%s",i,j,add[tm].Data()),
2800  Form("column vs row, N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2801  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2802  fhColRowTCardCorrelNCellExoticLowE[i][j][tm]->SetYTitle("row");
2803  fhColRowTCardCorrelNCellExoticLowE[i][j][tm]->SetXTitle("column");
2804  outputContainer->Add(fhColRowTCardCorrelNCellExoticLowE[i][j][tm]) ;
2805 
2807  (Form("hColRowTCardCorrelNCellExoticHighE_Same%d_Diff%d%s",i,j,add[tm].Data()),
2808  Form("column vs row,N cells with w > 0.01, TCard same = %d, diff =%d %s",i,j,add[tm].Data()),
2809  ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2810  fhColRowTCardCorrelNCellExoticHighE[i][j][tm]->SetYTitle("row");
2811  fhColRowTCardCorrelNCellExoticHighE[i][j][tm]->SetXTitle("column");
2812  outputContainer->Add(fhColRowTCardCorrelNCellExoticHighE[i][j][tm]) ;
2813  }
2814  }
2815 
2818 
2819  // fhLambda0TCardCorrelN[i][tm] = new TH2F
2820  // (Form("hLambda0TCardCorrelN_Case%d%s",i,add[tm].Data()),
2821  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
2822  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2823  // fhLambda0TCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
2824  // fhLambda0TCardCorrelN[i][tm]->SetYTitle("#lambda^{2}_{0}");
2825  // outputContainer->Add(fhLambda0TCardCorrelN[i][tm]);
2826  //
2827  // fhNCellsTCardCorrelN[i][tm] = new TH2F
2828  // (Form("hNCellsTCardCorrelN_Case%d%s",i,add[tm].Data()),
2829  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
2830  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2831  // fhNCellsTCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
2832  // fhNCellsTCardCorrelN[i][tm]->SetYTitle("#it{n}_{cells}");
2833  // outputContainer->Add(fhNCellsTCardCorrelN[i][tm]);
2834  //
2835  // fhExoticTCardCorrelN[i][tm] = new TH2F
2836  // (Form("hExoticTCardCorrelN_Case%d%s",i,add[tm].Data()),
2837  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
2838  // nptbins,ptmin,ptmax,200,-1,1);
2839  // fhExoticTCardCorrelN[i][tm]->SetXTitle("#it{E} (GeV)");
2840  // fhExoticTCardCorrelN[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2841  // outputContainer->Add(fhExoticTCardCorrelN[i][tm]);
2842  //
2843  // fhColRowTCardCorrelNLowE[i][tm] = new TH2F
2844  // (Form("hColRowTCardCorrelNLowE_Case%d%s",i,add[tm].Data()),
2845  // Form("column vs row, max E cell correl with TCard cell, E > 2 GeV, N corr = %d %s",i,add[tm].Data()),
2846  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2847  // fhColRowTCardCorrelNLowE[i][tm]->SetYTitle("row");
2848  // fhColRowTCardCorrelNLowE[i][tm]->SetXTitle("column");
2849  // outputContainer->Add(fhColRowTCardCorrelNLowE[i][tm]) ;
2850  //
2851  // fhColRowTCardCorrelNHighE[i][tm] = new TH2F
2852  // (Form("hColRowTCardCorrelNHighE_Case%d%s",i,add[tm].Data()),
2853  // Form("column vs row, max E cell correl with TCard cell, E > 8 GeV, N corr = %d %s",i,add[tm].Data()),
2854  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2855  // fhColRowTCardCorrelNHighE[i][tm]->SetYTitle("row");
2856  // fhColRowTCardCorrelNHighE[i][tm]->SetXTitle("column");
2857  // outputContainer->Add(fhColRowTCardCorrelNHighE[i][tm]) ;
2858  //
2859  // ////////
2860  // ////////
2861  //
2862  // fhLambda0TCardCorrelNExotic[i][tm] = new TH2F
2863  // (Form("hLambda0TCardCorrelN_Exotic_Case%d%s",i,add[tm].Data()),
2864  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, exo > 0.97, N corr = %d %s",i,add[tm].Data()),
2865  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2866  // fhLambda0TCardCorrelNExotic[i][tm]->SetXTitle("#it{E} (GeV)");
2867  // fhLambda0TCardCorrelNExotic[i][tm]->SetYTitle("#lambda^{2}_{0}");
2868  // outputContainer->Add(fhLambda0TCardCorrelNExotic[i][tm]);
2869  //
2870  // fhNCellsTCardCorrelNExotic[i][tm] = new TH2F
2871  // (Form("hNCellsTCardCorrelN_Exotic_Case%d%s",i,add[tm].Data()),
2872  // 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()),
2873  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2874  // fhNCellsTCardCorrelNExotic[i][tm]->SetXTitle("#it{E} (GeV)");
2875  // fhNCellsTCardCorrelNExotic[i][tm]->SetYTitle("#it{n}_{cells}");
2876  // outputContainer->Add(fhNCellsTCardCorrelNExotic[i][tm]);
2877  //
2878  // fhColRowTCardCorrelNLowEExotic[i][tm] = new TH2F
2879  // (Form("hColRowTCardCorrelNLowEExotic_Case%d%s",i,add[tm].Data()),
2880  // 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()),
2881  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2882  // fhColRowTCardCorrelNLowEExotic[i][tm]->SetYTitle("row");
2883  // fhColRowTCardCorrelNLowEExotic[i][tm]->SetXTitle("column");
2884  // outputContainer->Add(fhColRowTCardCorrelNLowEExotic[i][tm]) ;
2885  //
2886  // fhColRowTCardCorrelNHighEExotic[i][tm] = new TH2F
2887  // (Form("hColRowTCardCorrelNHighEExotic_Case%d%s",i,add[tm].Data()),
2888  // 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()),
2889  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2890  // fhColRowTCardCorrelNHighEExotic[i][tm]->SetYTitle("row");
2891  // fhColRowTCardCorrelNHighEExotic[i][tm]->SetXTitle("column");
2892  // outputContainer->Add(fhColRowTCardCorrelNHighEExotic[i][tm]) ;
2893  //
2894  // ///////////
2895  // ///////////
2896  //
2897  // fhLambda0TCardCorrelNAllSameTCard[i][tm] = new TH2F
2898  // (Form("hLambda0TCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
2899  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
2900  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2901  // fhLambda0TCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
2902  // fhLambda0TCardCorrelNAllSameTCard[i][tm]->SetYTitle("#lambda^{2}_{0}");
2903  // outputContainer->Add(fhLambda0TCardCorrelNAllSameTCard[i][tm]);
2904  //
2905  // fhNCellsTCardCorrelNAllSameTCard[i][tm] = new TH2F
2906  // (Form("hNCellsTCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
2907  // 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()),
2908  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2909  // fhNCellsTCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
2910  // fhNCellsTCardCorrelNAllSameTCard[i][tm]->SetYTitle("#it{n}_{cells}");
2911  // outputContainer->Add(fhNCellsTCardCorrelNAllSameTCard[i][tm]);
2912  //
2913  // fhExoticTCardCorrelNAllSameTCard[i][tm] = new TH2F
2914  // (Form("hExoticTCardCorrelNAllSameTCard_Case%d%s",i,add[tm].Data()),
2915  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d, no other TCard cells %s",i,add[tm].Data()),
2916  // nptbins,ptmin,ptmax,200,-1,1);
2917  // fhExoticTCardCorrelNAllSameTCard[i][tm]->SetXTitle("#it{E} (GeV)");
2918  // fhExoticTCardCorrelNAllSameTCard[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2919  // outputContainer->Add(fhExoticTCardCorrelNAllSameTCard[i][tm]);
2920  //
2921  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm] = new TH2F
2922  // (Form("hColRowTCardCorrelNAllSameTCardLowE_Case%d%s",i,add[tm].Data()),
2923  // 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()),
2924  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2925  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm]->SetYTitle("row");
2926  // fhColRowTCardCorrelNAllSameTCardLowE[i][tm]->SetXTitle("column");
2927  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardLowE[i][tm]) ;
2928  //
2929  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm] = new TH2F
2930  // (Form("hColRowTCardCorrelNAllSameTCardHighE_Case%d%s",i,add[tm].Data()),
2931  // 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()),
2932  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2933  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm]->SetYTitle("row");
2934  // fhColRowTCardCorrelNAllSameTCardHighE[i][tm]->SetXTitle("column");
2935  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardHighE[i][tm]) ;
2936  //
2937  // ////////
2938  //
2939  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm] = new TH2F
2940  // (Form("hLambda0TCardCorrelNAllSameTCard_Exotic_Case%d%s",i,add[tm].Data()),
2941  // Form("#lambda^{2}_{0} 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()),
2942  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2943  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]->SetXTitle("#it{E} (GeV)");
2944  // fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]->SetYTitle("#lambda^{2}_{0}");
2945  // outputContainer->Add(fhLambda0TCardCorrelNAllSameTCardExotic[i][tm]);
2946  //
2947  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm] = new TH2F
2948  // (Form("hNCellsTCardCorrelNAllSameTCard_Exotic_Case%d%s",i,add[tm].Data()),
2949  // 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()),
2950  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2951  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]->SetXTitle("#it{E} (GeV)");
2952  // fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]->SetYTitle("#it{n}_{cells}");
2953  // outputContainer->Add(fhNCellsTCardCorrelNAllSameTCardExotic[i][tm]);
2954  //
2955  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm] = new TH2F
2956  // (Form("hColRowTCardCorrelNAllSameTCardLowEExotic_Case%d%s",i,add[tm].Data()),
2957  // 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()),
2958  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2959  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]->SetYTitle("row");
2960  // fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]->SetXTitle("column");
2961  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardLowEExotic[i][tm]) ;
2962  //
2963  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm] = new TH2F
2964  // (Form("hColRowTCardCorrelNAllSameTCardHighEExotic_Case%d%s",i,add[tm].Data()),
2965  // 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()),
2966  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
2967  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]->SetYTitle("row");
2968  // fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]->SetXTitle("column");
2969  // outputContainer->Add(fhColRowTCardCorrelNAllSameTCardHighEExotic[i][tm]) ;
2970  }
2971 
2972  // for(Int_t i = 0; i < 7; i++)
2973  // {
2974  // fhLambda0TCardCorrel[i][tm] = new TH2F
2975  // (Form("hLambda0TCardCorrel_Case%d%s",i,add[tm].Data()),
2976  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
2977  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2978  // fhLambda0TCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
2979  // fhLambda0TCardCorrel[i][tm]->SetYTitle("#lambda^{2}_{0}");
2980  // outputContainer->Add(fhLambda0TCardCorrel[i][tm]);
2981  //
2982  // fhNCellsTCardCorrel[i][tm] = new TH2F
2983  // (Form("hNCellsTCardCorrel_Case%d%s",i,add[tm].Data()),
2984  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
2985  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
2986  // fhNCellsTCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
2987  // fhNCellsTCardCorrel[i][tm]->SetYTitle("#it{n}_{cells}");
2988  // outputContainer->Add(fhNCellsTCardCorrel[i][tm]);
2989  //
2990  // fhExoticTCardCorrel[i][tm] = new TH2F
2991  // (Form("hExoticTCardCorrel_Case%d%s",i,add[tm].Data()),
2992  // Form("exoticity vs #it{E}, max E cell correl with TCard cell, N corr = %d %s",i,add[tm].Data()),
2993  // nptbins,ptmin,ptmax,200,-1,1);
2994  // fhExoticTCardCorrel[i][tm]->SetXTitle("#it{E} (GeV)");
2995  // fhExoticTCardCorrel[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
2996  // outputContainer->Add(fhExoticTCardCorrel[i][tm]);
2997  // }
2998  //
2999  // for(Int_t i = 0; i < 4; i++)
3000  // {
3001  // fhLambda0TCardCorrelExotic[i][tm] = new TH2F
3002  // (Form("hLambda0TCardCorrel_Exotic_Case%d%s",i,add[tm].Data()),
3003  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, exo>0.97, case %d %s",i,add[tm].Data()),
3004  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3005  // fhLambda0TCardCorrelExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3006  // fhLambda0TCardCorrelExotic[i][tm]->SetYTitle("#lambda^{2}_{0}");
3007  // outputContainer->Add(fhLambda0TCardCorrelExotic[i][tm]);
3008  //
3009  // fhNCellsTCardCorrelExotic[i][tm] = new TH2F
3010  // (Form("hNCellsTCardCorrel_Exotic_Case%d%s",i,add[tm].Data()),
3011  // 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()),
3012  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3013  // fhNCellsTCardCorrelExotic[i][tm]->SetXTitle("#it{E} (GeV)");
3014  // fhNCellsTCardCorrelExotic[i][tm]->SetYTitle("#it{n}_{cells}");
3015  // outputContainer->Add(fhNCellsTCardCorrelExotic[i][tm]);
3016  // }
3017 
3018 
3019  for(Int_t i = 0; i < fNEBinCuts; i++)
3020  {
3021  if(fStudyExotic)
3022  {
3023  fhLambda0Exoticity[i][tm] = new TH2F
3024  (Form("hLambda0Exoticity_EBin%d%s",i,add[tm].Data()),
3025  Form("#lambda^{2}_{0} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3026  200,-1,1,ssbins,ssmin,ssmax);
3027  fhLambda0Exoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3028  fhLambda0Exoticity[i][tm]->SetYTitle("#lambda^{2}_{0}");
3029  outputContainer->Add(fhLambda0Exoticity[i][tm]);
3030 
3031  fhLambda1Exoticity[i][tm] = new TH2F
3032  (Form("hLambda1Exoticity_EBin%d%s",i,add[tm].Data()),
3033  Form("#lambda^{2}_{1} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3034  200,-1,1,ssbins,ssmin,ssmax);
3035  fhLambda1Exoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3036  fhLambda1Exoticity[i][tm]->SetYTitle("#lambda^{2}_{1}");
3037  outputContainer->Add(fhLambda1Exoticity[i][tm]);
3038 
3039  // fhLambdaRExoticity[i][tm] = new TH2F
3040  // (Form("hLambdaRExoticity_EBin%d%s",i,add[tm].Data()),
3041  // Form("#lambda^{2}_{1}/#lambda^{2}_{0} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3042  // 200,-1,1,110,0,1.1);
3043  // fhLambdaRExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3044  // fhLambdaRExoticity[i][tm]->SetYTitle("#lambda^{2}_{1}/#lambda^{2}_{0}");
3045  // outputContainer->Add(fhLambdaRExoticity[i][tm]);
3046 
3047  fhNCellsExoticity[i][tm] = new TH2F
3048  (Form("hNCellsExoticity_EBin%d%s",i,add[tm].Data()),
3049  Form("#it{n}_{cells} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3050  200,-1,1,nceclbins,nceclmin,nceclmax);
3051  fhNCellsExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3052  fhNCellsExoticity[i][tm]->SetYTitle("#it{n}_{cells}");
3053  outputContainer->Add(fhNCellsExoticity[i][tm]);
3054 
3055  fhTimeExoticity[i][tm] = new TH2F
3056  (Form("hTimeExoticity_EBin%d%s",i,add[tm].Data()),
3057  Form("#it{t} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3058  200,-1,1,100,-25,25);
3059  fhTimeExoticity[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3060  fhTimeExoticity[i][tm]->SetYTitle("#it{t} (ns)");
3061  outputContainer->Add(fhTimeExoticity[i][tm]);
3062 
3063  fhNCellsTCardSameAndDiffExotic[i][tm] = new TH2F
3064  (Form("hNCellsTCardSameAndDiff_Exotic_EBin%d%s",i,add[tm].Data()),
3065  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()),
3066  nceclbins,nceclmin,nceclmax,nceclbins,nceclmin,nceclmax);
3067  fhNCellsTCardSameAndDiffExotic[i][tm]->SetXTitle("#it{n}_{cells} - diff TCard");
3068  fhNCellsTCardSameAndDiffExotic[i][tm]->SetYTitle("#it{n}_{cells} - same TCard");
3069  outputContainer->Add(fhNCellsTCardSameAndDiffExotic[i][tm]);
3070 
3071  // fhLambda0ExoticityAllSameTCard[i][tm] = new TH2F
3072  // (Form("hLambda0ExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3073  // Form("#lambda^{2}_{0} 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()),
3074  // 200,-1,1,ssbins,ssmin,ssmax);
3075  // fhLambda0ExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3076  // fhLambda0ExoticityAllSameTCard[i][tm]->SetYTitle("#lambda^{2}_{0}");
3077  // outputContainer->Add(fhLambda0ExoticityAllSameTCard[i][tm]);
3078  //
3079  // fhLambda1ExoticityAllSameTCard[i][tm] = new TH2F
3080  // (Form("hLambda1ExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3081  // Form("#lambda^{2}_{1} 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()),
3082  // 200,-1,1,ssbins,ssmin,ssmax);
3083  // fhLambda1ExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3084  // fhLambda1ExoticityAllSameTCard[i][tm]->SetYTitle("#lambda^{2}_{1}");
3085  // outputContainer->Add(fhLambda1ExoticityAllSameTCard[i][tm]);
3086  //
3087  // fhLambdaRExoticityAllSameTCard[i][tm] = new TH2F
3088  // (Form("hLambdaRExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3089  // Form("#lambda^{2}_{1}/#lambda^{2}_{0} 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()),
3090  // 200,-1,1,110,0,1.1);
3091  // fhLambdaRExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3092  // fhLambdaRExoticityAllSameTCard[i][tm]->SetYTitle("#lambda^{2}_{1}/#lambda^{2}_{0}");
3093  // outputContainer->Add(fhLambdaRExoticityAllSameTCard[i][tm]);
3094  //
3095  // fhNCellsExoticityAllSameTCard[i][tm] = new TH2F
3096  // (Form("hNCellsExoticityAllSameTCard_EBin%d%s",i,add[tm].Data()),
3097  // 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()),
3098  // 200,-1,1,nceclbins,nceclmin,nceclmax);
3099  // fhNCellsExoticityAllSameTCard[i][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3100  // fhNCellsExoticityAllSameTCard[i][tm]->SetYTitle("#it{n}_{cells}");
3101  // outputContainer->Add(fhNCellsExoticityAllSameTCard[i][tm]);
3102  //
3103  }
3104 
3105  fhNCellsTCardSameAndDiff[i][tm] = new TH2F
3106  (Form("hNCellsTCardSameAndDiff_EBin%d%s",i,add[tm].Data()),
3107  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()),
3108  nceclbins,nceclmin,nceclmax,nceclbins,nceclmin,nceclmax);
3109  fhNCellsTCardSameAndDiff[i][tm]->SetXTitle("#it{n}_{cells} - diff TCard");
3110  fhNCellsTCardSameAndDiff[i][tm]->SetYTitle("#it{n}_{cells} - same TCard");
3111  outputContainer->Add(fhNCellsTCardSameAndDiff[i][tm]);
3112 
3113  fhLambda0Lambda1[i][tm] = new TH2F
3114  (Form("hLambda0Lambda1_EBin%d%s",i,add[tm].Data()),
3115  Form("#lambda^{2}_{0} vs #lambda^{2}_{1}, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3116  ssbins,ssmin,ssmax,ssbins,ssmin,ssmax);
3117  fhLambda0Lambda1[i][tm]->SetXTitle("#lambda^{2}_{1}");
3118  fhLambda0Lambda1[i][tm]->SetYTitle("#lambda^{2}_{0}");
3119  outputContainer->Add(fhLambda0Lambda1[i][tm]);
3120 
3121  // fhLambda0Lambda1AllSameTCard[i][tm] = new TH2F
3122  // (Form("hLambda0Lambda1AllSameTCard_EBin%d%s",i,add[tm].Data()),
3123  // Form("#lambda^{2}_{0} vs #lambda^{2}_{1}, , all cells same TCard as leading, %2.2f<#it{E}<%2.2f GeV %s",fEBinCuts[i],fEBinCuts[i+1],add[tm].Data()),
3124  // ssbins,ssmin,ssmax,ssbins,ssmin,ssmax);
3125  // fhLambda0Lambda1AllSameTCard[i][tm]->SetXTitle("#lambda^{2}_{1}");
3126  // fhLambda0Lambda1AllSameTCard[i][tm]->SetYTitle("#lambda^{2}_{0}");
3127  // outputContainer->Add(fhLambda0Lambda1AllSameTCard[i][tm]);
3128  }
3129 
3130  if(fStudyExotic)
3131  {
3132  for(Int_t j = 0; j < 6; j++)
3133  {
3134  for(Int_t k = 0; k < 6; k++)
3135  {
3136  fhLambda0ExoticityPerNCell[j][k][tm] = new TH2F
3137  (Form("hLambda0Exoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3138  Form("#lambda^{2}_{0} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3139  200,-1,1,ssbins,ssmin,ssmax);
3140  fhLambda0ExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3141  fhLambda0ExoticityPerNCell[j][k][tm]->SetYTitle("#lambda^{2}_{0}");
3142  outputContainer->Add(fhLambda0ExoticityPerNCell[j][k][tm]);
3143 
3144  fhLambda1ExoticityPerNCell[j][k][tm] = new TH2F
3145  (Form("hLambda1Exoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3146  Form("#lambda^{2}_{1} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3147  200,-1,1,ssbins,ssmin,ssmax);
3148  fhLambda1ExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3149  fhLambda1ExoticityPerNCell[j][k][tm]->SetYTitle("#lambda^{2}_{1}");
3150  outputContainer->Add(fhLambda1ExoticityPerNCell[j][k][tm]);
3151 
3152  // fhLambdaRExoticityPerNCell[j][k][tm] = new TH2F
3153  // (Form("hLambdaRExoticity_NCell_Same%d_Diff%d%s",j,k,add[tm].Data()),
3154  // Form("#lambda^{2}_{1}/#lambda^{2}_{0} vs #it{exoticity}, #it{n}_{cell} TCard same = %d, diff =%d, #it{E}>8 GeV %s",j,k,add[tm].Data()),
3155  // 200,-1,1,110,0,1.1);
3156  // fhLambdaRExoticityPerNCell[j][k][tm]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3157  // fhLambdaRExoticityPerNCell[j][k][tm]->SetYTitle("#lambda^{2}_{1}/#lambda^{2}_{0}");
3158  // outputContainer->Add(fhLambdaRExoticityPerNCell[j][k][tm]);
3159  }
3160  }
3161  }
3162 
3163  // for(Int_t i = 0; i < 6; i++)
3164  // {
3165  // fhLambda0TCardCorrelNearRow[i][tm] = new TH2F
3166  // (Form("hLambda0TCardCorrelNearRow_Case%d%s",i,add[tm].Data()),
3167  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with TCard cell, one TCard cell is 1 row away, case %d %s",i,add[tm].Data()),
3168  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3169  // fhLambda0TCardCorrelNearRow[i][tm]->SetXTitle("#it{E} (GeV)");
3170  // fhLambda0TCardCorrelNearRow[i][tm]->SetYTitle("#lambda^{2}_{0}");
3171  // outputContainer->Add(fhLambda0TCardCorrelNearRow[i][tm]);
3172  //
3173  // fhNCellsTCardCorrelNearRow[i][tm] = new TH2F
3174  // (Form("hNCellsTCardCorrelNearRow_Case%d%s",i,add[tm].Data()),
3175  // Form("custer # cells vs #it{E}, w > 0.01, max E cell correl with TCard cell, case %d %s",i,add[tm].Data()),
3176  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3177  // fhNCellsTCardCorrelNearRow[i][tm]->SetXTitle("#it{E} (GeV)");
3178  // fhNCellsTCardCorrelNearRow[i][tm]->SetYTitle("#it{n}_{cells}");
3179  // outputContainer->Add(fhNCellsTCardCorrelNearRow[i][tm]);
3180  // }
3181  //
3182  // for(Int_t i = 0; i < 4; i++)
3183  // {
3184  // fhLambda0TCardCorrel2ndMax[i][tm] = new TH2F
3185  // (Form("hLambda0TCardCorrel2ndMax_Case%d%s",i,add[tm].Data()),
3186  // Form("#lambda^{2}_{0} vs #it{E}, max E cell correl with 2nd max TCard cell, case %d %s",i,add[tm].Data()),
3187  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3188  // fhLambda0TCardCorrel2ndMax[i][tm]->SetXTitle("#it{E} (GeV)");
3189  // fhLambda0TCardCorrel2ndMax[i][tm]->SetYTitle("#lambda^{2}_{0}");
3190  // outputContainer->Add(fhLambda0TCardCorrel2ndMax[i][tm]);
3191  //
3192  // fhNCellsTCardCorrel2ndMax[i][tm] = new TH2F
3193  // (Form("hNCellsTCardCorrel2ndMax_Case%d%s",i,add[tm].Data()),
3194  // 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()),
3195  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3196  // fhNCellsTCardCorrel2ndMax[i][tm]->SetXTitle("#it{E} (GeV)");
3197  // fhNCellsTCardCorrel2ndMax[i][tm]->SetYTitle("#it{n}_{cells}");
3198  // outputContainer->Add(fhNCellsTCardCorrel2ndMax[i][tm]);
3199  // }
3200  //
3201  // for(Int_t i = 0; i < 7; i++)
3202  // {
3203  // fhLambda0TCardCorrelOtherTCard[i][tm] = new TH2F
3204  // (Form("hLambda0TCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3205  // Form("#lambda^{2}_{0} vs #it{E}, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3206  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3207  // fhLambda0TCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3208  // fhLambda0TCardCorrelOtherTCard[i][tm]->SetYTitle("#lambda^{2}_{0}");
3209  // outputContainer->Add(fhLambda0TCardCorrelOtherTCard[i][tm]);
3210  //
3211  // fhNCellsTCardCorrelOtherTCard[i][tm] = new TH2F
3212  // (Form("hNCellsTCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3213  // Form("custer # cells vs #it{E}, w > 0.01, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3214  // nptbins,ptmin,ptmax, nceclbins,nceclmin,nceclmax);
3215  // fhNCellsTCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3216  // fhNCellsTCardCorrelOtherTCard[i][tm]->SetYTitle("#it{n}_{cells}");
3217  // outputContainer->Add(fhNCellsTCardCorrelOtherTCard[i][tm]);
3218  //
3219  // fhExoticTCardCorrelOtherTCard[i][tm] = new TH2F
3220  // (Form("hExoticTCardCorrelOtherTCard_Case%d%s",i,add[tm].Data()),
3221  // Form("exoticity vs #it{E}, w > 0.01, correlation of cells in different TCards, case %d %s",i,add[tm].Data()),
3222  // nptbins,ptmin,ptmax,200,-1,1);
3223  // fhExoticTCardCorrelOtherTCard[i][tm]->SetXTitle("#it{E} (GeV)");
3224  // fhExoticTCardCorrelOtherTCard[i][tm]->SetYTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3225  // outputContainer->Add(fhExoticTCardCorrelOtherTCard[i][tm]);
3226  //
3227  // fhColRowTCardCorrelOtherTCardLowE[i][tm] = new TH2F
3228  // (Form("hColRowTCardCorrelOtherTCardLowE_Case%d%s",i,add[tm].Data()),
3229  // Form("column vs row for different 2 TCard correlation cases, E > 2 GeV, case %d %s",i,add[tm].Data()),
3230  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3231  // fhColRowTCardCorrelOtherTCardLowE[i][tm]->SetYTitle("row");
3232  // fhColRowTCardCorrelOtherTCardLowE[i][tm]->SetXTitle("column");
3233  // outputContainer->Add(fhColRowTCardCorrelOtherTCardLowE[i][tm]) ;
3234  //
3235  // fhColRowTCardCorrelOtherTCardHighE[i][tm] = new TH2F
3236  // (Form("hColRowTCardCorrelOtherTCardHighE_Case%d%s",i,add[tm].Data()),
3237  // Form("column vs row for different 2 TCard correlation cases, E > 8 GeV, case %d %s",i,add[tm].Data()),
3238  // ncolcell,colcellmin,colcellmax,nrowcell,rowcellmin,rowcellmax);
3239  // fhColRowTCardCorrelOtherTCardHighE[i][tm]->SetYTitle("row");
3240  // fhColRowTCardCorrelOtherTCardHighE[i][tm]->SetXTitle("column");
3241  // outputContainer->Add(fhColRowTCardCorrelOtherTCardHighE[i][tm]) ;
3242  // }
3243 
3244  for(Int_t i = 0; i < 12; i++)
3245  {
3246  fhTCardCorrECellMaxDiff[i][tm] = new TH2F
3247  (Form("hTCardCorrECellMaxDiff_Case%d%s",i,add[tm].Data()),
3248  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()),
3249  nptbins,ptmin,ptmax,210,-1,20);
3250  fhTCardCorrECellMaxDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3251  fhTCardCorrECellMaxDiff[i][tm]->SetYTitle("#it{E}_{cell}^{max}-#it{E}_{cell} (GeV)");
3252  outputContainer->Add(fhTCardCorrECellMaxDiff[i][tm]);
3253 
3254  fhTCardCorrEClusterDiff[i][tm] = new TH2F
3255  (Form("hTCardCorrEClusterDiff_Case%d%s",i,add[tm].Data()),
3256  Form("#it{E}_{cluster}-#it{E}_{cell} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3257  nptbins,ptmin,ptmax,210,-1,20);
3258  fhTCardCorrEClusterDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3259  fhTCardCorrEClusterDiff[i][tm]->SetYTitle("#it{E}_{cluster}-#it{E}_{cell} (GeV)");
3260  outputContainer->Add(fhTCardCorrEClusterDiff[i][tm]);
3261 
3262  // fhTCardCorrECellMaxRat[i][tm] = new TH2F
3263  // (Form("hTCardCorrECellMaxRat_Case%d%s",i,add[tm].Data()),
3264  // 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()),
3265  // nptbins,ptmin,ptmax,110,0,1.1);
3266  // fhTCardCorrECellMaxRat[i][tm]->SetXTitle("#it{E} (GeV)");
3267  // fhTCardCorrECellMaxRat[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}^{max}_{cell}");
3268  // outputContainer->Add(fhTCardCorrECellMaxRat[i][tm]);
3269  //
3270  // fhTCardCorrEClusterRat[i][tm] = new TH2F
3271  // (Form("hTCardCorrEClusterRat_Case%d%s",i,add[tm].Data()),
3272  // Form("#it{E}_{cell}/#it{E}_{cluster} vs #it{E}_{cluster}, for (un)correlated cells in TCard, case %d %s",i,add[tm].Data()),
3273  // nptbins,ptmin,ptmax,110,0,1.1);
3274  // fhTCardCorrEClusterRat[i][tm]->SetXTitle("#it{E} (GeV)");
3275  // fhTCardCorrEClusterRat[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3276  // outputContainer->Add(fhTCardCorrEClusterRat[i][tm]);
3277 
3278  fhTCardCorrTCellMaxDiff[i][tm] = new TH2F
3279  (Form("hTCardCorrTCellMaxDiff_Case%d%s",i,add[tm].Data()),
3280  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()),
3281  nptbins,ptmin,ptmax,1000,-100,100);
3282  fhTCardCorrTCellMaxDiff[i][tm]->SetXTitle("#it{E} (GeV)");
3283  fhTCardCorrTCellMaxDiff[i][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell} (ns)");
3284  outputContainer->Add(fhTCardCorrTCellMaxDiff[i][tm]);
3285 
3286  if(fStudyExotic)
3287  {
3288  fhTCardCorrECellMaxDiffExo[i][tm] = new TH2F
3289  (Form("hTCardCorrECellMaxDiffExo_Case%d%s",i,add[tm].Data()),
3290  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()),
3291  nptbins,ptmin,ptmax,210,-1,20);
3292  fhTCardCorrECellMaxDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3293  fhTCardCorrECellMaxDiffExo[i][tm]->SetYTitle("#it{E}_{cell}^{max}-#it{E}_{cell} (GeV)");
3294  outputContainer->Add(fhTCardCorrECellMaxDiffExo[i][tm]);
3295 
3296  fhTCardCorrEClusterDiffExo[i][tm] = new TH2F
3297  (Form("hTCardCorrEClusterDiffExo_Case%d%s",i,add[tm].Data()),
3298  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()),
3299  nptbins,ptmin,ptmax,210,-1,20);
3300  fhTCardCorrEClusterDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3301  fhTCardCorrEClusterDiffExo[i][tm]->SetYTitle("#it{E}_{cluster}-#it{E}_{cell} (GeV)");
3302  outputContainer->Add(fhTCardCorrEClusterDiffExo[i][tm]);
3303 
3304  // fhTCardCorrECellMaxRatExo[i][tm] = new TH2F
3305  // (Form("hTCardCorrECellMaxRatExo_Case%d%s",i,add[tm].Data()),
3306  // 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()),
3307  // nptbins,ptmin,ptmax,110,0,1.1);
3308  // fhTCardCorrECellMaxRatExo[i][tm]->SetXTitle("#it{E} (GeV)");
3309  // fhTCardCorrECellMaxRatExo[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}^{max}_{cell}");
3310  // outputContainer->Add(fhTCardCorrECellMaxRatExo[i][tm]);
3311  //
3312  // fhTCardCorrEClusterRatExo[i][tm] = new TH2F
3313  // (Form("hTCardCorrEClusterRatExo_Case%d%s",i,add[tm].Data()),
3314  // 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()),
3315  // nptbins,ptmin,ptmax,110,0,1.1);
3316  // fhTCardCorrEClusterRatExo[i][tm]->SetXTitle("#it{E} (GeV)");
3317  // fhTCardCorrEClusterRatExo[i][tm]->SetYTitle("#it{E}_{cell}/#it{E}_{cluster}");
3318  // outputContainer->Add(fhTCardCorrEClusterRatExo[i][tm]);
3319 
3320  fhTCardCorrTCellMaxDiffExo[i][tm] = new TH2F
3321  (Form("hTCardCorrTCellMaxDiffExo_Case%d%s",i,add[tm].Data()),
3322  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()),
3323  nptbins,ptmin,ptmax,1000,-100,100);
3324  fhTCardCorrTCellMaxDiffExo[i][tm]->SetXTitle("#it{E} (GeV)");
3325  fhTCardCorrTCellMaxDiffExo[i][tm]->SetYTitle("#it{t}_{cell}^{max}-#it{t}_{cell} (ns)");
3326  outputContainer->Add(fhTCardCorrTCellMaxDiffExo[i][tm]);
3327  }
3328  }
3329  } // neutral or charged
3330 
3331  if(fStudyExotic)
3332  {
3333  fhEnergyTMEtaResidual1Cell = new TH2F("hEnergyTMEtaResidual1Cell","#Delta #eta_{cluster-track} vs #it{E}, n cell = 1",
3334  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3335  fhEnergyTMEtaResidual1Cell->SetXTitle("#it{E} (GeV)");
3336  fhEnergyTMEtaResidual1Cell->SetYTitle("#Delta #eta_{cluster-track}");
3337  outputContainer->Add(fhEnergyTMEtaResidual1Cell);
3338 
3339  fhEnergyTMPhiResidual1Cell = new TH2F("hEnergyTMPhiResidual1Cell","#Delta #varphi_{cluster-track} vs #it{E}, n cell = 1",
3340  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3341  fhEnergyTMPhiResidual1Cell->SetXTitle("#it{E} (GeV)");
3342  fhEnergyTMPhiResidual1Cell->SetYTitle("#Delta #varphi_{cluster-track}");
3343  outputContainer->Add(fhEnergyTMPhiResidual1Cell);
3344 
3345  fhEnergyTMEtaResidualExotic = new TH2F("hEnergyTMEtaResidualExotic","#Delta #eta_{cluster-track} vs #it{E}, exo > 0.97",
3346  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3347  fhEnergyTMEtaResidualExotic->SetXTitle("#it{E} (GeV)");
3348  fhEnergyTMEtaResidualExotic->SetYTitle("#Delta #eta_{cluster-track}");
3349  outputContainer->Add(fhEnergyTMEtaResidualExotic);
3350 
3351  fhEnergyTMPhiResidualExotic = new TH2F("hEnergyTMPhiResidualExotic","#Delta #varphi_{cluster-track} vs #it{E}, exo > 0.97",
3352  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3353  fhEnergyTMPhiResidualExotic->SetXTitle("#it{E} (GeV)");
3354  fhEnergyTMPhiResidualExotic->SetYTitle("#Delta #varphi_{cluster-track}");
3355  outputContainer->Add(fhEnergyTMPhiResidualExotic);
3356 
3357  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell = new TH2F("hEnergyTMEtaResidualTCardCorrNoSelection1Cell","#Delta #eta_{cluster-track} vs #it{E}, n cell = 1",
3358  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3359  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell->SetXTitle("#it{E} (GeV)");
3360  fhEnergyTMEtaResidualTCardCorrNoSelection1Cell->SetYTitle("#Delta #eta_{cluster-track}");
3361  outputContainer->Add(fhEnergyTMEtaResidualTCardCorrNoSelection1Cell);
3362 
3363  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell = new TH2F("hEnergyTMPhiResidualTCardCorrNoSelection1Cell","#Delta #varphi_{cluster-track} vs #it{E}, n cell = 1",
3364  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3365  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell->SetXTitle("#it{E} (GeV)");
3366  fhEnergyTMPhiResidualTCardCorrNoSelection1Cell->SetYTitle("#Delta #varphi_{cluster-track}");
3367  outputContainer->Add(fhEnergyTMPhiResidualTCardCorrNoSelection1Cell);
3368 
3369  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic = new TH2F("hEnergyTMEtaResidualTCardCorrNoSelectionExotic","#Delta #eta_{cluster-track} vs #it{E}, exo > 0.97",
3370  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3371  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic->SetXTitle("#it{E} (GeV)");
3372  fhEnergyTMEtaResidualTCardCorrNoSelectionExotic->SetYTitle("#Delta #eta_{cluster-track}");
3373  outputContainer->Add(fhEnergyTMEtaResidualTCardCorrNoSelectionExotic);
3374 
3375  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic = new TH2F("hEnergyTMPhiResidualTCardCorrNoSelectionExotic","#Delta #varphi_{cluster-track} vs #it{E}, exo > 0.97",
3376  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3377  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic->SetXTitle("#it{E} (GeV)");
3378  fhEnergyTMPhiResidualTCardCorrNoSelectionExotic->SetYTitle("#Delta #varphi_{cluster-track}");
3379  outputContainer->Add(fhEnergyTMPhiResidualTCardCorrNoSelectionExotic);
3380 
3381  for(Int_t i = 0; i < fNEBinCuts; i++)
3382  {
3383  fhTMPhiResidualExoticity[i] = new TH2F
3384  (Form("hTMPhiResidual_EBin%d",i),
3385  Form("#Delta #varphi_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3386  200,-1,1,nresphibins,resphimin,resphimax);
3387  fhTMPhiResidualExoticity[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3388  fhTMPhiResidualExoticity[i]->SetYTitle("#Delta #varphi_{cluster-track}");
3389  outputContainer->Add(fhTMPhiResidualExoticity[i]);
3390 
3391  fhTMEtaResidualExoticity[i] = new TH2F
3392  (Form("hTMEtaResidual_EBin%d",i),
3393  Form("#Delta #eta_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3394  200,-1,1,nresetabins,resetamin,resetamax);
3395  fhTMEtaResidualExoticity[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3396  fhTMEtaResidualExoticity[i]->SetYTitle("#Delta #eta_{cluster-track}");
3397  outputContainer->Add(fhTMEtaResidualExoticity[i]);
3398 
3400  (Form("hTMPhiResidual_LooseCut_EBin%d",i),
3401  Form("#Delta #varphi_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3402  200,-1,1,nresphibins,resphimin,resphimax);
3403  fhTMPhiResidualExoticityLooseCut[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3404  fhTMPhiResidualExoticityLooseCut[i]->SetYTitle("#Delta #varphi_{cluster-track}");
3405  outputContainer->Add(fhTMPhiResidualExoticityLooseCut[i]);
3406 
3408  (Form("hTMEtaResidual_LooseCut_EBin%d",i),
3409  Form("#Delta #eta_{cluster-track} vs #it{exoticity}, %2.2f<#it{E}<%2.2f GeV",fEBinCuts[i],fEBinCuts[i+1]),
3410  200,-1,1,nresetabins,resetamin,resetamax);
3411  fhTMEtaResidualExoticityLooseCut[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3412  fhTMEtaResidualExoticityLooseCut[i]->SetYTitle("#Delta #eta_{cluster-track}");
3413  outputContainer->Add(fhTMEtaResidualExoticityLooseCut[i]);
3414 
3415  // fhTMPhiResidualExoticityAllSameTCard[i] = new TH2F
3416  // (Form("hTMPhiResidualAllSameTCard_EBin%d",i),
3417  // 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]),
3418  // 200,-1,1,nresphibins,resphimin,resphimax);
3419  // fhTMPhiResidualExoticityAllSameTCard[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3420  // fhTMPhiResidualExoticityAllSameTCard[i]->SetYTitle("#Delta #varphi_{cluster-track}");
3421  // outputContainer->Add(fhTMPhiResidualExoticityAllSameTCard[i]);
3422  //
3423  // fhTMEtaResidualExoticityAllSameTCard[i] = new TH2F
3424  // (Form("hTMEtaResidualAllSameTCard_EBin%d",i),
3425  // 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]),
3426  // 200,-1,1,nresetabins,resetamin,resetamax);
3427  // fhTMEtaResidualExoticityAllSameTCard[i]->SetXTitle("#it{F}_{+}=1-#it{E}_{+}/#it{E}_{lead cell}");
3428  // fhTMEtaResidualExoticityAllSameTCard[i]->SetYTitle("#Delta #eta_{cluster-track}");
3429  // outputContainer->Add(fhTMEtaResidualExoticityAllSameTCard[i]);
3430  }
3431  }
3432  } // TCard correlation studies
3433 
3434  // Cluster size in terms of cells and shape TH3
3435  if(fStudyShape)
3436  {
3437  for(Int_t imatch = 0; imatch < 3; imatch++)
3438  {
3439  fhDeltaIEtaDeltaIPhi[imatch] = new TH3F
3440  (Form("hDeltaIEtaDeltaIPhi_%s",matchCase[imatch].Data()),
3441  Form("Cluster max size with respect main cell in columns vs rows vs E for %s, #it{n}_{cells}^{w>0.01}>4",matchCase[imatch].Data()),
3442  nEbins,minE,maxE,cellBins,cellMin,cellMax,cellBins,cellMin,cellMax);
3443  fhDeltaIEtaDeltaIPhi[imatch]->SetXTitle("#it{E}_{cluster}");
3444  fhDeltaIEtaDeltaIPhi[imatch]->SetYTitle("#Delta Column");
3445  fhDeltaIEtaDeltaIPhi[imatch]->SetZTitle("#Delta Row");
3446  outputContainer->Add(fhDeltaIEtaDeltaIPhi[imatch]);
3447 
3448  fhDeltaIEtaDeltaIPhiTot[imatch] = new TH3F
3449  (Form("hDeltaIEtaDeltaIPhiTot_%s",matchCase[imatch].Data()),
3450  Form("Cluster size in columns vs rows, minus main cell, vs E for %s, #it{n}_{cells}^{w>0.01}>4",matchCase[imatch].Data()),
3451  nEbins,minE,maxE,cellBins,cellMin,cellMax,cellBins,cellMin,cellMax);
3452  fhDeltaIEtaDeltaIPhiTot[imatch]->SetXTitle("#it{E}_{cluster}");
3453  fhDeltaIEtaDeltaIPhiTot[imatch]->SetYTitle("#Delta Column");
3454  fhDeltaIEtaDeltaIPhiTot[imatch]->SetZTitle("#Delta Row");
3455  outputContainer->Add(fhDeltaIEtaDeltaIPhiTot[imatch]);
3456 
3457  fhDeltaIA[imatch] = new TH2F
3458  (Form("hDeltaIA_%s",matchCase[imatch].Data()),
3459  Form("Cluster *asymmetry* in cell units vs E for %s",matchCase[imatch].Data()),
3460  nptbins,ptmin,ptmax,asyBins,asyMin,asyMax);
3461  fhDeltaIA[imatch]->SetXTitle("#it{E}_{cluster}");
3462  fhDeltaIA[imatch]->SetYTitle("#it{A}_{cell in cluster}");
3463  outputContainer->Add(fhDeltaIA[imatch]);
3464 
3465  fhDeltaIATot[imatch] = new TH2F
3466  (Form("hDeltaIATot_%s",matchCase[imatch].Data()),
3467  Form("Cluster *total asymmetry* in cell units vs E for %s",matchCase[imatch].Data()),
3468  nptbins,ptmin,ptmax,asyBins,asyMin,asyMax);
3469  fhDeltaIATot[imatch]->SetXTitle("#it{E}_{cluster}");
3470  fhDeltaIATot[imatch]->SetYTitle("#it{A}_{cell in cluster}^{total}");
3471  outputContainer->Add(fhDeltaIATot[imatch]);
3472 
3473  fhDeltaIAM02[imatch] = new TH3F
3474  (Form("hDeltaIAM02_%s",matchCase[imatch].Data()),
3475  Form("Cluster *asymmetry* in cell units vs #lambda^{2}_{0} for %s",matchCase[imatch].Data()),
3476  nEbins,minE,maxE,nShShBins,minShSh,maxShSh,asyBins,asyMin,asyMax);
3477  fhDeltaIAM02[imatch]->SetXTitle("#it{E}_{cluster}");
3478  fhDeltaIAM02[imatch]->SetYTitle("#lambda^{2}_{0}");
3479  fhDeltaIAM02[imatch]->SetZTitle("#it{A}_{cell in cluster}");
3480  outputContainer->Add(fhDeltaIAM02[imatch]);
3481 
3482  fhDeltaIATotM02[imatch] = new TH3F
3483  (Form("hDeltaIATotM02_%s",matchCase[imatch].Data()),
3484  Form("Cluster *total asymmetry* in cell units vs #lambda^{2}_{0} for %s",matchCase[imatch].Data()),
3485  nEbins,minE,maxE,nShShBins,minShSh,maxShSh,asyBins,asyMin,asyMax);
3486  fhDeltaIATotM02[imatch]->SetXTitle("#it{E}_{cluster}");
3487  fhDeltaIATotM02[imatch]->SetYTitle("#lambda^{2}_{0}");
3488  fhDeltaIATotM02[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
3489  outputContainer->Add(fhDeltaIATotM02[imatch]);
3490 
3491  fhDeltaIAM20[imatch] = new TH3F
3492  (Form("hDeltaIAM20_%s",matchCase[imatch].Data()),
3493  Form("Cluster *asymmetry* in cell units vs #lambda^{2}_{1} for %s",matchCase[imatch].Data()),
3494  nEbins,minE,maxE,(Int_t)nShShBins/1.5,minShSh,(Int_t)maxShSh/1.5,asyBins,asyMin,asyMax);
3495  fhDeltaIAM20[imatch]->SetXTitle("#it{E}_{cluster}");
3496  fhDeltaIAM20[imatch]->SetYTitle("#lambda^{2}_{1}");
3497  fhDeltaIAM20[imatch]->SetZTitle("#it{A}_{cell in cluster}");
3498  outputContainer->Add(fhDeltaIAM20[imatch]);
3499 
3500  fhDeltaIATotM20[imatch] = new TH3F
3501  (Form("hDeltaIATotM20_%s",matchCase[imatch].Data()),
3502  Form("Cluster *total asymmetry* in cell units vs #lambda^{2}_{1} for %s",matchCase[imatch].Data()),
3503  nEbins,minE,maxE,(Int_t)nShShBins/1.5,minShSh,(Int_t)maxShSh/1.5,asyBins,asyMin,asyMax);
3504  fhDeltaIATotM20[imatch]->SetXTitle("#it{E}_{cluster}");
3505  fhDeltaIATotM20[imatch]->SetYTitle("#lambda^{2}_{1}");
3506  fhDeltaIATotM20[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
3507  outputContainer->Add(fhDeltaIATotM20[imatch]);
3508 
3509  fhDeltaIANCells[imatch] = new TH3F
3510  (Form("hDeltaIANCells_%s",matchCase[imatch].Data()),
3511  Form("Cluster *asymmetry* in cell units vs N cells in cluster for %s",matchCase[imatch].Data()),
3512  nEbins,minE,maxE,cellBins,cellMin,cellMax,asyBins,asyMin,asyMax);
3513  fhDeltaIANCells[imatch]->SetXTitle("#it{E}_{cluster}");
3514  fhDeltaIANCells[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3515  fhDeltaIANCells[imatch]->SetZTitle("#it{A}_{cell in cluster}");
3516  outputContainer->Add(fhDeltaIANCells[imatch]);
3517 
3518  fhDeltaIATotNCells[imatch] = new TH3F
3519  (Form("hDeltaIATotNCells_%s",matchCase[imatch].Data()),
3520  Form("Cluster *total asymmetry* in cell units vs N cells in cluster for %s",matchCase[imatch].Data()),
3521  nEbins,minE,maxE,cellBins,cellMin,cellMax,asyBins,asyMin,asyMax);
3522  fhDeltaIATotNCells[imatch]->SetXTitle("#it{E}_{cluster}");
3523  fhDeltaIATotNCells[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3524  fhDeltaIATotNCells[imatch]->SetZTitle("#it{A}_{cell in cluster}^{total}");
3525  outputContainer->Add(fhDeltaIATotNCells[imatch]);
3526 
3527  fhClusterMaxCellDiffM02[imatch] = new TH3F
3528  (Form("hClusterMaxCellDiffM02_%s",matchCase[imatch].Data()),
3529  Form("#it{E} vs (#it{E}_{cluster} - #it{E}_{cell max})/#it{E}_{cluster} vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3530  nEbins,minE,maxE, 20,0,1.,nShShBins,minShSh,maxShSh);
3531  fhClusterMaxCellDiffM02[imatch]->SetXTitle("#it{E}_{cluster} (GeV) ");
3532  fhClusterMaxCellDiffM02[imatch]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
3533  fhClusterMaxCellDiffM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3534  outputContainer->Add(fhClusterMaxCellDiffM02[imatch]);
3535 
3536  fhClusterTimeEnergyM02[imatch] = new TH3F
3537  (Form("hClusterTimeEnergyM02_%s",matchCase[imatch].Data()),
3538  Form("#it{E} vs TOF vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3539  nEbins,minE,maxE,45,-25.5,20.5,nShShBins,minShSh,maxShSh);
3540  fhClusterTimeEnergyM02[imatch]->SetXTitle("#it{E} (GeV) ");
3541  fhClusterTimeEnergyM02[imatch]->SetYTitle("TOF (ns)");
3542  fhClusterTimeEnergyM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3543  outputContainer->Add(fhClusterTimeEnergyM02[imatch]);
3544 
3545  fhNCellsPerClusterM02[imatch] = new TH3F
3546  (Form("hNCellsPerClusterM02_%s",matchCase[imatch].Data()),
3547  Form("#it{E} vs #it{n}_{cells} vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3548  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
3549  fhNCellsPerClusterM02[imatch]->SetXTitle("#it{E} (GeV)");
3550  fhNCellsPerClusterM02[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3551  fhNCellsPerClusterM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3552  outputContainer->Add(fhNCellsPerClusterM02[imatch]);
3553 
3554  fhNCellsPerClusterM20[imatch] = new TH3F
3555  (Form("hNCellsPerClusterM20_%s",matchCase[imatch].Data()),
3556  Form("#it{E} vs #it{n}_{cells} vs #lambda_{1}^{2} for ID %s",matchCase[imatch].Data()),
3557  nEbins,minE,maxE,cellBins,cellMin,cellMax,(Int_t)nShShBins/1.5,minShSh,(Int_t)maxShSh/1.5);
3558  fhNCellsPerClusterM20[imatch]->SetXTitle("#it{E} (GeV)");
3559  fhNCellsPerClusterM20[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3560  fhNCellsPerClusterM20[imatch]->SetZTitle("#lambda_{1}^{2}");
3561  outputContainer->Add(fhNCellsPerClusterM20[imatch]);
3562 
3563  fhSMM02[imatch] = new TH3F
3564  (Form("hSMM02_%s",matchCase[imatch].Data()),
3565  Form("#it{E} vs SM number vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3566  nEbins,minE,maxE,fNModules,-0.5,fNModules-0.5,nShShBins,minShSh,maxShSh);
3567  fhSMM02[imatch]->SetXTitle("#it{E} (GeV)");
3568  fhSMM02[imatch]->SetYTitle("SM number");
3569  fhSMM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3570  outputContainer->Add(fhSMM02[imatch]);
3571 
3572  fhColM02[imatch] = new TH3F
3573  (Form("hColM02_%s",matchCase[imatch].Data()),
3574  Form("#it{E} vs column number vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3575  nEbins,minE,maxE,48,-0.5,47.5,nShShBins,minShSh,maxShSh);
3576  fhColM02[imatch]->SetXTitle("#it{E} (GeV)");
3577  fhColM02[imatch]->SetYTitle("column number");
3578  fhColM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3579  outputContainer->Add(fhColM02[imatch]);
3580 
3581  fhRowM02[imatch] = new TH3F
3582  (Form("hRowM02_%s",matchCase[imatch].Data()),
3583  Form("#it{E} vs row number vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3584  nEbins,minE,maxE,24,-0.5,23.5,nShShBins,minShSh,maxShSh);
3585  fhRowM02[imatch]->SetXTitle("#it{E} (GeV)");
3586  fhRowM02[imatch]->SetYTitle("row number");
3587  fhRowM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3588  outputContainer->Add(fhRowM02[imatch]);
3589 
3590  if ( GetCalorimeter() == kEMCAL )
3591  {
3592  fhNCellsPerClusterMEta[imatch] = new TH3F
3593  (Form("hNCellsPerClusterMEta_%s",matchCase[imatch].Data()),
3594  Form("#it{E} vs #it{n}_{cells} vs #sigma_{#eta}^{2} for ID %s",matchCase[imatch].Data()),
3595  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
3596  fhNCellsPerClusterMEta[imatch]->SetXTitle("#it{E} (GeV)");
3597  fhNCellsPerClusterMEta[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3598  fhNCellsPerClusterMEta[imatch]->SetZTitle("#sigma_{#eta}^{2}");
3599  outputContainer->Add(fhNCellsPerClusterMEta[imatch]);
3600 
3601  fhNCellsPerClusterMPhi[imatch] = new TH3F
3602  (Form("hNCellsPerClusterMPhi_%s",matchCase[imatch].Data()),
3603  Form("#it{E} vs #it{n}_{cells} vs #sigma_{#varphi}^{2} for ID %s",matchCase[imatch].Data()),
3604  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,minShSh,maxShSh);
3605  fhNCellsPerClusterMPhi[imatch]->SetXTitle("#it{E} (GeV)");
3606  fhNCellsPerClusterMPhi[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3607  fhNCellsPerClusterMPhi[imatch]->SetZTitle("#sigma_{#varphi}^{2}");
3608  outputContainer->Add(fhNCellsPerClusterMPhi[imatch]);
3609 
3610  fhNCellsPerClusterMEtaPhi[imatch] = new TH3F
3611  (Form("hNCellsPerClusterMEtaPhi_%s",matchCase[imatch].Data()),
3612  Form("#it{E} vs #it{n}_{cells} vs #sigma_{#eta#varphi}^{2} for ID %s",matchCase[imatch].Data()),
3613  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,-1*maxShSh,maxShSh);
3614  fhNCellsPerClusterMEtaPhi[imatch]->SetXTitle("#it{E} (GeV)");
3615  fhNCellsPerClusterMEtaPhi[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3616  fhNCellsPerClusterMEtaPhi[imatch]->SetZTitle("#sigma_{#eta#varphi}^{2}");
3617  outputContainer->Add(fhNCellsPerClusterMEtaPhi[imatch]);
3618 
3619  fhNCellsPerClusterMEtaPhiA[imatch] = new TH3F
3620  (Form("hNCellsPerClusterMEtaPhiA_%s",matchCase[imatch].Data()),
3621  Form("#it{E} vs #it{n}_{cells} vs (#sigma_{#varphi}^{2}-#sigma_{#eta}^{2})/(#sigma_{#varphi}^{2}+#sigma_{#eta}^{2}) for ID %s",matchCase[imatch].Data()),
3622  nEbins,minE,maxE,cellBins,cellMin,cellMax,nShShBins,-1*maxShSh,maxShSh);
3623  fhNCellsPerClusterMEtaPhiA[imatch]->SetXTitle("#it{E} (GeV)");
3624  fhNCellsPerClusterMEtaPhiA[imatch]->SetYTitle("#it{n}_{cells}^{w>0.01}");
3625  fhNCellsPerClusterMEtaPhiA[imatch]->SetZTitle("(#sigma_{#varphi}^{2}-#sigma_{#eta}^{2})/(#sigma_{#varphi}^{2}+#sigma_{#eta}^{2})");
3626  outputContainer->Add(fhNCellsPerClusterMEtaPhiA[imatch]);
3627  }
3628 
3629  if ( IsDataMC() )
3630  {
3631  fhOriginE[imatch] = new TH2F
3632  (Form("hOrigin_%s",matchCase[imatch].Data()),
3633  Form("#it{E} vs origin for ID %s",matchCase[imatch].Data()),
3634  nEbins,minE,maxE, 10,-0.5,9.5);
3635  fhOriginE[imatch]->SetXTitle("#it{E} (GeV)");
3636  fhOriginE[imatch]->SetYTitle("particle");
3637  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
3638  fhOriginE[imatch]->GetYaxis()->SetBinLabel(ilabel ,mcParticleStringLabel[ilabel-1]);
3639  outputContainer->Add(fhOriginE[imatch]);
3640 
3641  fhOriginM02[imatch] = new TH3F
3642  (Form("hOriginM02_%s",matchCase[imatch].Data()),
3643  Form("#it{E} vs origin vs #lambda_{0}^{2} for ID %s",matchCase[imatch].Data()),
3644  nEbins,minE,maxE,10,-0.5,9.5,nShShBins,minShSh,maxShSh);
3645  fhOriginM02[imatch]->SetXTitle("#it{E} (GeV)");
3646  fhOriginM02[imatch]->SetYTitle("particle");
3647  fhOriginM02[imatch]->SetZTitle("#lambda_{0}^{2}");
3648  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
3649  fhOriginM02[imatch]->GetYaxis()->SetBinLabel(ilabel,mcParticleStringLabel[ilabel-1]);
3650  outputContainer->Add(fhOriginM02[imatch]);
3651 
3652  fhDeltaIAOrigin[imatch] = new TH3F
3653  (Form("hDeltaIAOrigin_%s",matchCase[imatch].Data()),
3654  Form("Cluster *asymmetry* in cell units vs E vs primary ID, for ID %s",matchCase[imatch].Data()),
3655  nEbins,minE,maxE,10,-0.5,9.5,asyBins,asyMin,asyMax);
3656  fhDeltaIAOrigin[imatch]->SetXTitle("#it{E}_{cluster}");
3657  fhDeltaIAOrigin[imatch]->SetYTitle("particle");
3658  fhDeltaIAOrigin[imatch]->SetZTitle("#it{A}_{cell in cluster}");
3659  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
3660  fhDeltaIAOrigin[imatch]->GetYaxis()->SetBinLabel(ilabel,mcParticleStringLabel[ilabel-1]);
3661  outputContainer->Add(fhDeltaIAOrigin[imatch]);
3662 
3663  fhDeltaIATotOrigin[imatch] = new TH3F
3664  (Form("hDeltaIATotOrigin_%s",matchCase[imatch].Data()),
3665  Form("Cluster *total asymmetry* in cell units vs E vs primary ID, for ID %s",matchCase[imatch].Data()),
3666  nEbins,minE,maxE,10,-0.5,9.5,asyBins,asyMin,asyMax);
3667  fhDeltaIATotOrigin[imatch]->SetXTitle("#it{E}_{cluster}");
3668  fhDeltaIATotOrigin[imatch]->SetYTitle("particle");
3669  fhDeltaIATotOrigin[imatch]->SetZTitle("#it{A}_{cell in cluster}");
3670  for(Int_t ilabel = 1; ilabel <=10; ilabel++)
3671  fhDeltaIATotOrigin[imatch]->GetYaxis()->SetBinLabel(ilabel,mcParticleStringLabel[ilabel-1]);
3672  outputContainer->Add(fhDeltaIATotOrigin[imatch]);
3673  } // MC
3674  } // match loop
3675 
3676  // fhCellTimeSpreadRespectToCellMaxM02 = new TH3F
3677  // ("hCellTimeSpreadRespectToCellMaxM02",
3678  // "#it{E} vs t_{cell max}-t_{cell i} vs #lambda_{0}^{2}",
3679  // nEbins,minE,maxE,100,-100,100,nShShBins,minShSh,maxShSh);
3680  // fhCellTimeSpreadRespectToCellMaxM02->SetXTitle("#it{E} (GeV)");
3681  // fhCellTimeSpreadRespectToCellMaxM02->SetYTitle("#Delta #it{t}_{cell max-i} (ns)");
3682  // fhCellTimeSpreadRespectToCellMaxM02->SetZTitle("#lambda_{0}^{2}");
3683  // outputContainer->Add(fhCellTimeSpreadRespectToCellMaxM02);
3684 
3686  ("hClusterMaxCellCloseCellRatioM02","#it{E} vs #it{E}_{cell-i}/#it{E}_{cell max} vs #lambda_{0}^{2}",
3687  nEbins,minE,maxE, 20,0,1.,nShShBins,minShSh,maxShSh);
3688  fhClusterMaxCellCloseCellRatioM02->SetXTitle("#it{E}_{cluster} (GeV) ");
3689  fhClusterMaxCellCloseCellRatioM02->SetYTitle("#it{E}_{cell i}/#it{E}_{cell max}");
3690  fhClusterMaxCellCloseCellRatioM02->SetZTitle("#lambda_{0}^{2}");
3691  outputContainer->Add(fhClusterMaxCellCloseCellRatioM02);
3692 
3693  // fhClusterMaxCellCloseCellDiffM02 = new TH3F
3694  // ("hClusterMaxCellCloseCellDiffM02",
3695  // "#it{E} vs #it{E}_{cell max}-#it{E}_{cell i} vs #lambda_{0}^{2}",
3696  // nEbins,minE,maxE, 40,0,20,nShShBins,minShSh,maxShSh);
3697  // fhClusterMaxCellCloseCellDiffM02->SetXTitle("#it{E}_{cluster} (GeV) ");
3698  // fhClusterMaxCellCloseCellDiffM02->SetYTitle("#it{E}_{cell max}-#it{E}_{cell i} (GeV)");
3699  // fhClusterMaxCellCloseCellDiffM02->SetZTitle("#lambda_{0}^{2}");
3700  // outputContainer->Add(fhClusterMaxCellCloseCellDiffM02);
3701 
3702  if(fStudyExotic)
3703  {
3705  ("hClusterMaxCellECrossM02",
3706  "#it{E} vs exoticity vs #lambda_{0}^{2}",
3707  nEbins,minE,maxE, 40,0.6,1.,nShShBins,minShSh,maxShSh);
3708  fhClusterMaxCellECrossM02->SetXTitle("#it{E}_{cluster} (GeV) ");
3709  fhClusterMaxCellECrossM02->SetYTitle("1- #it{E}_{cross}/#it{E}_{cell max}");
3710  fhClusterMaxCellECrossM02->SetZTitle("#lambda_{0}^{2}");
3711  outputContainer->Add(fhClusterMaxCellECrossM02);
3712  }
3713  }
3714 
3715  if(fStudyWeight)
3716  {
3717  fhECellClusterRatio = new TH2F ("hECellClusterRatio"," cell energy / cluster energy vs cluster energy",
3718  nptbins,ptmin,ptmax, 100,0,1.);
3719  fhECellClusterRatio->SetXTitle("#it{E}_{cluster} (GeV) ");
3720  fhECellClusterRatio->SetYTitle("#it{E}_{cell i}/#it{E}_{cluster}");
3721  outputContainer->Add(fhECellClusterRatio);
3722 
3723  fhECellClusterLogRatio = new TH2F ("hECellClusterLogRatio"," Log(cell energy / cluster energy) vs cluster energy",
3724  nptbins,ptmin,ptmax, 100,-10,0);
3725  fhECellClusterLogRatio->SetXTitle("#it{E}_{cluster} (GeV) ");
3726  fhECellClusterLogRatio->SetYTitle("Log(#it{E}_{cell i}/#it{E}_{cluster})");
3727  outputContainer->Add(fhECellClusterLogRatio);
3728 
3729  fhEMaxCellClusterRatio = new TH2F ("hEMaxCellClusterRatio"," max cell energy / cluster energy vs cluster energy",
3730  nptbins,ptmin,ptmax, 100,0,1.);
3731  fhEMaxCellClusterRatio->SetXTitle("#it{E}_{cluster} (GeV) ");
3732  fhEMaxCellClusterRatio->SetYTitle("#it{E}_{max cell}/#it{E}_{cluster}");
3733  outputContainer->Add(fhEMaxCellClusterRatio);
3734 
3735  fhEMaxCellClusterLogRatio = new TH2F ("hEMaxCellClusterLogRatio"," Log(max cell energy / cluster energy) vs cluster energy",
3736  nptbins,ptmin,ptmax, 100,-10,0);
3737  fhEMaxCellClusterLogRatio->SetXTitle("#it{E}_{cluster} (GeV) ");
3738  fhEMaxCellClusterLogRatio->SetYTitle("Log (#it{E}_{max cell}/#it{E}_{cluster})");
3739  outputContainer->Add(fhEMaxCellClusterLogRatio);
3740 
3741  fhECellTotalRatio = new TH2F ("hECellTotalRatio"," cell energy / sum all energy vs all energy",
3742  nptbins*2,ptmin,ptmax*2, 100,0,1.);
3743  fhECellTotalRatio->SetXTitle("#it{E}_{total} (GeV) ");
3744  fhECellTotalRatio->SetYTitle("#it{E}_{cell i}/#it{E}_{total}");
3745  outputContainer->Add(fhECellTotalRatio);
3746 
3747  fhECellTotalLogRatio = new TH2F ("hECellTotalLogRatio"," Log(cell energy / sum all energy) vs all energy",
3748  nptbins*2,ptmin,ptmax*2, 100,-10,0);
3749  fhECellTotalLogRatio->SetXTitle("#it{E}_{total} (GeV) ");
3750  fhECellTotalLogRatio->SetYTitle("Log(#it{E}_{cell i}/#it{E}_{total})");
3751  outputContainer->Add(fhECellTotalLogRatio);
3752 
3755 
3756  for(Int_t imod = 0; imod < fNModules; imod++)
3757  {
3758  if(imod < fFirstModule || imod > fLastModule) continue;
3759 
3760  fhECellTotalRatioMod[imod] = new TH2F (Form("hECellTotalRatio_Mod%d",imod),
3761  Form("#cell energy / sum all energy vs all energy in Module %d",imod),
3762  nptbins*2,ptmin,ptmax*2, 100,0,1.);
3763  fhECellTotalRatioMod[imod]->SetXTitle("#it{E} (GeV)");
3764  fhECellTotalRatioMod[imod]->SetYTitle("#it{n}_{cells}");
3765  outputContainer->Add(fhECellTotalRatioMod[imod]);
3766 
3767  fhECellTotalLogRatioMod[imod] = new TH2F (Form("hECellTotalLogRatio_Mod%d",imod),
3768  Form("Log(cell energy / sum all energy) vs all energy in Module %d",imod),
3769  nptbins*2,ptmin,ptmax*2, 100,-10,0);
3770  fhECellTotalLogRatioMod[imod]->SetXTitle("#it{E} (GeV)");
3771  fhECellTotalLogRatioMod[imod]->SetYTitle("#it{n}_{cells}");
3772  outputContainer->Add(fhECellTotalLogRatioMod[imod]);
3773  }
3774 
3775  // To be done properly with setters and data members ...
3776  Float_t cellEmin [] = {0.05,0.1,0.15,0.2};
3777  Float_t cellTmin [] = {50.,100.,1000000.};
3778 
3779  for(Int_t iw = 0; iw < 12; iw++)
3780  {
3781  Float_t w0 = 4+0.05*iw; // 3+0.25*iw;
3782  for(Int_t iEmin = 0; iEmin < 4; iEmin++)
3783  {
3784  for(Int_t iTmin = 0; iTmin < 3; iTmin++)
3785  {
3786  fhLambda0ForW0AndCellCuts[iw][iEmin][iTmin] = new TH2F (Form("hLambda0ForW0%d_CellEMin%d_TimeMax%d",iw,iEmin,iTmin),
3787  Form("#lambda^{2}_{0} vs E, w0=%1.2f, cell E>%2.2f MeV, |t|<%2.0f ns",
3788  w0, cellEmin[iEmin], cellTmin[iTmin]),
3789  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3790  fhLambda0ForW0AndCellCuts[iw][iEmin][iTmin]->SetXTitle("#it{E}_{cluster}");
3791  fhLambda0ForW0AndCellCuts[iw][iEmin][iTmin]->SetYTitle("#lambda^{2}_{0}");
3792  outputContainer->Add(fhLambda0ForW0AndCellCuts[iw][iEmin][iTmin]);
3793 
3794 
3795  // fhLambda1ForW0AndCellCuts[iw][iEmin][iTmin] = new TH2F (Form("hLambda1ForW0%d_CellEMin%d_TimeMax%d",iw,iEmin,iTmin),
3796  // Form("#lambda^{2}_{1} vs E, w0=%1.2f, cell E>%2.2f MeV, |t|<%2.0f ns"",
3797  // w0, cellEmin[iEmin], cellTmin[iTmin]),
3798  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3799  // fhLambda1ForW0AndCellCuts[iw][iEmin][iTmin]->SetXTitle("#it{E}_{cluster}");
3800  // fhLambda1ForW0AndCellCuts[iw][iEmin][iTmin]->SetYTitle("#lambda^{2}_{1}");
3801  // outputContainer->Add(fhLambda1ForW0AndCellCuts[iw][iEmin][iTmin]);
3802 
3803  fhLambda0ForW0AndCellCutsEta0[iw][iEmin][iTmin] = new TH2F (Form("hLambda0ForW0%d_CellEMin%d_TimeMax%d_Eta0",iw,iEmin,iTmin),
3804  Form("#lambda^{2}_{0} vs E, w0=%1.2f, cell E>%2.2f MeV, |t|<%2.0f ns, |#eta| < 0.15",
3805  w0, cellEmin[iEmin], cellTmin[iTmin]),
3806  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3807  fhLambda0ForW0AndCellCutsEta0[iw][iEmin][iTmin]->SetXTitle("#it{E}_{cluster}");
3808  fhLambda0ForW0AndCellCutsEta0[iw][iEmin][iTmin]->SetYTitle("#lambda^{2}_{0}");
3809  outputContainer->Add(fhLambda0ForW0AndCellCutsEta0[iw][iEmin][iTmin]);
3810  }
3811  }
3812 
3813  if(IsDataMC())
3814  {
3815  TString mcnames[] = {"Photon", "Electron","Conversion","Pi0","Hadron"};
3816  for(Int_t imc = 0; imc < 5; imc++)
3817  {
3818  fhLambda0ForW0MC[iw][imc] = new TH2F (Form("hLambda0ForW0%d_MC%s",iw,mcnames[imc].Data()),
3819  Form("shower shape, #lambda^{2}_{0} vs E, w0 = %1.1f, for MC %s",w0,mcnames[imc].Data()),
3820  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3821  fhLambda0ForW0MC[iw][imc]->SetXTitle("#it{E}_{cluster}");
3822  fhLambda0ForW0MC[iw][imc]->SetYTitle("#lambda^{2}_{0}");
3823  outputContainer->Add(fhLambda0ForW0MC[iw][imc]);
3824 
3825  // fhLambda1ForW0MC[iw][imc] = new TH2F (Form("hLambda1ForW0%d_MC%s",iw,mcnames[imc].Data()),
3826  // Form("shower shape, #lambda^{2}_{1} vs E, w0 = %1.1f, for MC %s",w0,mcnames[imc].Data()),
3827  // nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3828  // fhLambda1ForW0MC[iw][imc]->SetXTitle("#it{E}_{cluster}");
3829  // fhLambda1ForW0MC[iw][imc]->SetYTitle("#lambda^{2}_{1}");
3830  // outputContainer->Add(fhLambda1ForW0MC[iw][imc]);
3831  }
3832  }
3833  }
3834  }
3835 
3836  // for(Int_t i = 0; i < outputContainer->GetEntries() ; i++)
3837  // printf("i=%d, name= %s\n",i,outputContainer->At(i)->GetName());
3838 
3839  return outputContainer;
3840 }
3841 
3842 //______________________________
3844 //______________________________
3846 {
3847  if(GetCalorimeter() != kPHOS && GetCalorimeter() !=kEMCAL)
3848  AliFatal(Form("Wrong calorimeter name <%s>", GetCalorimeterString().Data()));
3849 
3850  //if(GetReader()->GetDataType()== AliCaloTrackReader::kMC)
3851  // AliFatal("Analysis of reconstructed data, MC reader not aplicable");
3852 }
3853 
3854 //________________________________________
3856 //________________________________________
3858 {
3859  AddToHistogramsName("AnaClusShapeCorr_");
3860 
3861  fM02Min = 0.05;
3862 
3863  fNCellMin = 3; // at least 3
3864 
3865  fMinDistToBad = 5;
3866 
3867  fInvMassMinECut = 0.5; // 500 MeV
3868  fInvMassMaxECut = 10;
3869 
3870  fInvMassMinM02Cut = 0.1;
3871  fInvMassMaxM02Cut = 0.4;
3872 
3873  fInvMassMaxTimeDifference = 200; // ns, quite open
3874 
3875  fInvMassMaxOpenAngle = 100*TMath::DegToRad(); // 100 degrees
3876 
3877  fNEBinCuts = 7;
3878  fEBinCuts[0] = 2. ; fEBinCuts[1] = 4. ; fEBinCuts[2] = 6. ;
3879  fEBinCuts[3] = 8. ; fEBinCuts[4] = 10.; fEBinCuts[5] = 12.;
3880  fEBinCuts[6] = 16.; fEBinCuts[7] = 20.;
3881  for(Int_t i = fNEBinCuts+1; i < 15; i++) fEBinCuts[i] = 1000.;
3882 }
3883 
3884 //________________________________________
3886 //________________________________________
3888 {
3889  if(IsDataMC())
3890  {
3891  fdEdXMinEle = 80;
3892  fdEdXMaxEle =100;
3893  fdEdXMinHad = 45;
3894  fdEdXMaxHad = 78;
3895 
3896  AliInfo(Form("dEdX cuts init for MC: %d<dedx_ele<%d; %d<dedx_had<%d",
3898  } // MC
3899  else
3900  {
3901  Int_t runNumber = GetReader()->GetInputEvent()->GetRunNumber();
3902 
3903  // data
3904  if ( runNumber < 146861 ) // LHC11a, LHC10 check for both
3905  {
3906  fdEdXMinEle = 72;
3907  fdEdXMaxEle = 90;
3908  fdEdXMinHad = 40;
3909  fdEdXMaxHad = 70;
3910  }
3911  else if ( runNumber < 156000 ) // LHC11c, LHC11b, check for b
3912  {
3913  fdEdXMinEle = 60;
3914  fdEdXMaxEle = 72;
3915  fdEdXMinHad = 35;
3916  fdEdXMaxHad = 56;
3917  }
3918  else if ( runNumber < 165000 ) // LHC11d and other, check for other
3919  {
3920  fdEdXMinEle = 74;
3921  fdEdXMaxEle = 90;
3922  fdEdXMinHad = 40;
3923  fdEdXMaxHad = 70;
3924  }
3925  else // LHC12cdfhi and beyond, check for >=LHC13!
3926  {
3927  fdEdXMinEle = 78;
3928  fdEdXMaxEle = 95;
3929  fdEdXMinHad = 40;
3930  fdEdXMaxHad = 74;
3931  }
3932 
3933  AliInfo(Form("dEdX cuts init for run %d: %d<dedx_ele<%d; %d<dedx_had<%d",
3935  } // data
3936 }
3937 
3938 //_____________________________________________________________________________
3945 //_____________________________________________________________________________
3947  Int_t nCellsPerCluster)
3948 {
3949  if( m02 < fM02Min || nCellsPerCluster < fNCellMin ) return kFALSE ; // mild shower shape cut for exotics
3950 
3951  Int_t bc = (GetReader()->GetInputEvent())->GetBunchCrossNumber();
3952 
3953  if(GetCalorimeter() == kEMCAL)
3954  {
3955  if(!GetCaloUtils()->GetEMCALRecoUtils()->IsRejectExoticCluster())
3956  return !(GetCaloUtils()->GetEMCALRecoUtils()->IsExoticCell(absIdMax,fCaloCellList,bc));
3957  else
3958  return kTRUE;
3959  }
3960  else // PHOS
3961  {
3962  Float_t ampMax = fCaloCellList->GetCellAmplitude(absIdMax);
3963  GetCaloUtils()->RecalibrateCellAmplitude(ampMax, GetCalorimeter(), absIdMax);
3964 
3965  if(ampMax < 0.01) return kFALSE;
3966  if(1-GetCaloUtils()->GetECross(absIdMax,fCaloCellList,bc)/ampMax > 0.95)
3967  return kFALSE;
3968  else
3969  return kTRUE;
3970  }
3971 }
3972 
3973 //_________________________________________________________
3975 //_________________________________________________________
3977 {
3978  if(! opt)
3979  return;
3980 
3981  printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
3983 
3984  printf("Select Calorimeter %s \n",GetCalorimeterString().Data());
3985  printf("Min n cells : %d\n" , fNCellMin) ;
3986  printf("Min dist to bad: %2.1f\n", fMinDistToBad) ;
3987  printf("Min M02 : %1.2f\n", fM02Min) ;
3988 
3989  printf("Inv. Mass %2.1f < E_clus < %2.1f GeV/c\n" , fInvMassMinECut , fInvMassMaxECut ) ;
3990  printf("Inv. Mass %2.1f < M02_clus < %2.1f GeV/c\n", fInvMassMinM02Cut, fInvMassMaxM02Cut) ;
3991  printf("Inv. Mass open angle : %2.1f deg\n" , fInvMassMaxOpenAngle*TMath::RadToDeg()) ;
3992  printf("Inv. Mass time difference: %2.1f ns\n" , fInvMassMaxTimeDifference) ;
3993 }
3994 
3995 //_____________________________________________________
4000 //_____________________________________________________
4002 {
4003  AliDebug(1,"Start");
4004 
4005  //Print("");
4006 
4007  // Get List with CaloClusters , calo Cells, init min amplitude
4008  if (GetCalorimeter() == kPHOS)
4009  {
4012  }
4013  else if (GetCalorimeter() == kEMCAL)
4014  {
4017  }
4018  else
4019  AliFatal(Form("AliAnaClusterShapeCorrelStudies::MakeAnalysisFillHistograms() - Wrong calorimeter name <%s>, END", GetCalorimeterString().Data()));
4020 
4021  if( !fCaloClusList || !fCaloCellList )
4022  {
4023  AliFatal(Form("AliAnaClusterShapeCorrelStudies::MakeAnalysisFillHistograms() - No CaloClusters or CaloCells available"));
4024  return; // trick coverity
4025  }
4026 
4027  if(fCaloClusList->GetEntriesFast() == 0) return ;
4028 
4029  AliDebug(1,Form("N cells %d, N clusters %d \n",fCaloCellList->GetNumberOfCells(),fCaloClusList->GetEntriesFast()));
4030 
4031  // Clusters
4033 
4034  AliDebug(1,"End");
4035 }
4036 
4037 //_________________________________________________________________________________
4043 //_________________________________________________________________________________
4045 {
4046  // First recalculate energy in case non linearity was applied
4047  Float_t energy = 0;
4048  Float_t ampMax = 0;
4049  Int_t bc = GetReader()->GetInputEvent()->GetBunchCrossNumber();
4050  Float_t enOrg = clus->E();
4051 
4052  // Do study when there are enough cells in cluster
4053  if(clus->GetNCells() < 3) return ;
4054 
4055  for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
4056  {
4057  Int_t id = clus->GetCellsAbsId()[ipos];
4058 
4059  //Recalibrate cell energy if needed
4060  Float_t amp = fCaloCellList->GetCellAmplitude(id);
4062 
4063  energy += amp;
4064 
4065  if ( amp > ampMax )
4066  ampMax = amp;
4067 
4068  } // energy loop
4069 
4070  if ( energy <=0 )
4071  {
4072  AliWarning(Form("Wrong calculated energy %f",energy));
4073  return;
4074  }
4075 
4076  // Remove non linearity correction
4077  clus->SetE(energy);
4078 
4079  fhEMaxCellClusterRatio ->Fill(energy, ampMax/energy , GetEventWeight());
4080  fhEMaxCellClusterLogRatio->Fill(energy, TMath::Log(ampMax/energy), GetEventWeight());
4081 
4082  // Get the ratio and log ratio to all cells in cluster
4083  for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
4084  {
4085  Int_t id = clus->GetCellsAbsId()[ipos];
4086 
4087  // Recalibrate cell energy if needed
4088  Float_t amp = fCaloCellList->GetCellAmplitude(id);
4090 
4091  fhECellClusterRatio ->Fill(energy, amp/energy , GetEventWeight());
4092  fhECellClusterLogRatio->Fill(energy, TMath::Log(amp/energy), GetEventWeight());
4093  }
4094 
4095  //
4096  // Recalculate shower shape for different W0 and cell cuts
4097  //
4098  if ( GetCalorimeter() == kEMCAL )
4099  {
4100  Float_t l0org = clus->GetM02();
4101  Float_t l1org = clus->GetM20();
4102  Float_t dorg = clus->GetDispersion();
4103  Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0();
4104 
4105  Int_t mcIndex = -1;
4106  if(IsDataMC() && clus->GetNLabels() > 0)
4107  {
4112  mcIndex = 0;
4113  } // Pure Photon
4116  mcIndex = 1;
4117  } // Electron
4119  mcIndex = 2;
4120  } // Conversion
4122  mcIndex = 3;
4123  }// Pi0
4126  mcIndex = 4;
4127  } // Hadron
4128  } // Is MC
4129 
4130  // To be done properly with setters and data members ...
4131  Float_t cellEmin [] = {0.05,0.1,0.15,0.2};
4132  Float_t cellTmin [] = {50.,100.,1000000.};
4133 
4134  for(Int_t iw = 0; iw < 12; iw++)
4135  {
4136  for(Int_t iEmin = 0; iEmin < 4; iEmin++)
4137  {
4138  for(Int_t iTmin = 0; iTmin < 3; iTmin++)
4139  {
4140  GetCaloUtils()->GetEMCALRecoUtils()->SetW0(4+iw*0.05);
4141 
4142  Float_t newEnergy = 0;
4143  Float_t l0 = 0, l1 = 0;
4144  Float_t disp = 0, dEta = 0, dPhi = 0;
4145  Float_t sEta = 0, sPhi = 0, sEtaPhi = 0;
4146 
4147  GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParametersWithCellCuts(GetEMCALGeometry(),
4148  GetReader()->GetEMCALCells(), clus,
4149  cellEmin[iEmin], cellTmin[iTmin], bc,
4150  newEnergy, l0, l1, disp, dEta, dPhi,
4151  sEta, sPhi, sEtaPhi);
4152 
4153 
4154 
4155  fhLambda0ForW0AndCellCuts[iw][iEmin][iTmin]->Fill(enOrg, l0, GetEventWeight());
4156 // fhLambda1ForW0AndCellCuts[iw][iEmin][iTmin]->Fill(enOrg, l0, GetEventWeight());
4157 
4158  if(TMath::Abs(fClusterMomentum.Eta()) < 0.15)
4159  fhLambda0ForW0AndCellCutsEta0[iw][iEmin][iTmin]->Fill(enOrg, l0, GetEventWeight());
4160 
4161  } // E cell loop
4162  } // Time loop
4163 
4164  if(IsDataMC() && mcIndex >= 0)
4165  {
4166  fhLambda0ForW0MC[iw][mcIndex]->Fill(energy, clus->GetM02(), GetEventWeight());
4167 // fhLambda1ForW0MC[iw][mcIndex]->Fill(energy, clus->GetM20(), GetEventWeight());
4168  }
4169  } // w0 loop
4170 
4171  // Set the original values back
4172  clus->SetM02(l0org);
4173  clus->SetM20(l1org);
4174  clus->SetDispersion(dorg);
4175 
4176  GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org);
4177 
4178  } // EMCAL
4179 
4180  clus->SetE(enOrg);
4181 }
4182 
4183 
4184 
TH2F * fhNCellsTCardSameAndDiffFraction[2]
! Cluster fraction of NCells in same TCard as leading vs energy
Float_t GetHistoPtMax() const
TH2F * fhECellClusRatNLM1TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM=1 vs E for clusters selected for TCard correlation studies ...
TH2F * fhLambda1NLM2TCardCorrNoSelection[2]
! Cluster m20 vs E for clusters selected for TCard correlation studies, nlm=2
TH2F * fhEMaxCellClusterRatio
! e max cell / e cluster vs e cluster
TH2F * fhLambda0NLM1TCardCorrelNCell[6][6][2]
! Cluster m02 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
TH2F * fhE2ndRatNLM1TCardCorrelNCell[6][6][2]
! Cluster E cell second max / E cluster for NLM=1 vs E, cluster contains 0 to more than 6 cells with ...
TH2F * fhColRowTCardCorrNoSelectionExoticLowE[2]
! col-row cluster cell max for those selected for TCard correlation studies, 5 < E < 8 GeV...
TH2F * fhColRowTCardCorrelNCellExoticHighE[6][6][2]
! Cluster max cell col vs row, E > 8 GeV, cluster contains 0 to more than 6 cells with w > 0...
TH3F * fhClusterMaxCellCloseCellRatioM02
! Ratio between max cell energy and cell energy of the same cluster
Float_t fM02Min
Minimum M02 on clusters.
TH2F * fhECellTotalRatio
! e cell / e total vs e total
Int_t GetHistoNClusterCellMin() const
TH2F * fhExoticTCardCorrNoSelection[2]
! exoticity per cluster vs cluster energy, clusters selected for TCard correlation studies ...
TH2F * fhTMPhiResidualExoticity[14]
! Cluster-track matching residual in phi vs exoticity
Float_t GetHistoPtMin() const
TH2F * fhLogECellNLM2TCardCorrNoSelection[2]
! Cluster Log E cell for NLM=2 vs E for clusters selected for TCard correlation studies ...
TH2F * fhTimeTCardCorrNoSelection[2]
! Cluster time vs E for clusters selected for TCard correlation studies
TH2F * fhColRowTCardCorrelNCellExoticLowE[6][6][2]
! Cluster max cell col vs row, E > 2 GeV, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhEnergyTimeTCardCorrNoSelectionExotic[2]
! cluster energy vs time, exo > 0.97, T-Card strict cuts
Int_t fNMaxColsFull
Number of EMCAL/PHOS columns full detector.
TH2F * fhTCardCorrEClusterDiffExo[12][2]
! Cluster energy - secondary cell energy in cluster vs cluster energy, different secondary cell selec...
double Double_t
Definition: External.C:58
TH3F * fhClusterMaxCellDiffM02[3]
! Difference between cluster energy and energy of cell with more energy, vs m02
Int_t GetHistoShowerShapeBins() const
Definition: External.C:260
TH2F * fhSameRowDiffColAndTCardCellsTimeDiffCellMaxE[2]
! Secondary cell energy difference vs leading cell energy, one in same TCard as cell max...
TH2F * fhSameRowDiffColAndTCardCellsTimeDiffCellMaxEExo[2]
! Secondary cell energy difference vs leading cell energy, one in same TCard as cell max...
virtual void AddToHistogramsName(TString add)
virtual AliVCaloCells * GetEMCALCells() const
TH3F * fhNCellsPerClusterMEtaPhi[3]
! N cells per cluster vs cluster energy vs shape in eta*phi direction
TH3F * fhDeltaIAOrigin[3]
! Cluster "asymmetry" vs E vs origin
Definition: External.C:236
TH2F * fhECellClusRatNLM2TCardCorrelNCell[6][6][2]
! Cluster E cell / E cluster for NLM=2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F ** fhECellTotalRatioMod
! e cell / e total vs e total, per SM
Int_t fNEBinCuts
Number of energy bin cuts.
TH2F * fhNLocMaxTCardCorrelNCell[6][6][2]
! Cluster nlocmax vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff T...
void WeightHistograms(AliVCluster *clus, Int_t mcTag)
TH3F * fhColM02[3]
! main cell column vs m02
Int_t fLastModule
Last EMCAL/PHOS module, set in CaloUtils or depending fidutial cuts.
TH2F * fhNCellsTCardCorrWithWeightNoSelection[2]
! Ncells per cluster vs cluster energy, select cells with w>0.01, clusters selected for TCard correla...
TH3F * fhNCellsPerClusterMPhi[3]
! N cells per cluster vs cluster energy vs shape in phi direction
TH2F * fhE2ndEMaxRatNLM3TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM>2 vs E for clusters selected for TCard correlation st...
AliEMCALRecoUtils * GetEMCALRecoUtils() const
TH3F * fhDeltaIEtaDeltaIPhiTot[3]
! Difference between max cell index and farthest cells left/up to right/down, eta vs phi vs E ...
TH2F * fhColRowHighEPosTime
! cluster col-row cluster cell max, E > 8 GeV, t > 5 ns exo < 0.97, n cell > 1
TH2F * fhTCardCorrECellMaxDiff[12][2]
! Cell max energy - secondary cell energy in cluster vs cluster energy, different secondary cell sele...
Float_t GetECross(Int_t absId, AliVCaloCells *cells, Int_t bc)
TH2F * fhColRowHighENegTime
! cluster col-row cluster cell max, E > 8 GeV, t < -5 ns exo < 0.97, n cell > 1
TH2F * fhLogECellNLM3TCardCorrelNCell[6][6][2]
! Cluster log E cell vs E cluster for NLM>2 vs E, cluster contains 0 to more than 6 cells with w > 0...
Float_t GetPhi(Float_t phi) const
Shift phi angle in case of negative value 360 degrees. Example TLorenzVector::Phi defined in -pi to p...
TH2F * fhE2ndEMaxRatNLM1TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM=1 vs E for clusters selected for TCard correlation st...
void ClusterShapeHistograms(AliVCluster *cluster, Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax, Int_t matchedPID, Int_t mcIndex)
TH2F * fhLogECellSameNLM2TCardCorrNoSelection[2]
! Cluster Log E cell for NLM=2 vs E for clusters selected for TCard correlation studies, same Tcard as leading
virtual AliVEvent * GetInputEvent() const
Float_t fInvMassMaxM02Cut
Maximum M02 shower shape cut value for clusters entering the invariant mass calculation.
TH3F * fhNCellsPerClusterMEtaPhiA[3]
! N cells per cluster vs cluster energy vs shape in (phi-eta)/(eta+phi)
Double_t mass
energy
Definition: HFPtSpectrum.C:44
TH2F * fhLogECellSameNLM1TCardCorrNoSelection[2]
! Cluster Log E cell for NLM=1 vs E for clusters selected for TCard correlation studies, same Tcard as leading
Int_t fNModules
Number of EMCAL/PHOS modules to use in analysis, set in CaloUtils.
TH2F * fhLambda1TCardCorrNoSelection[2]
! Cluster m20 vs E for clusters selected for TCard correlation studies
TH2F * fhEMaxRatNLM3TCardCorrelNCell[6][6][2]
! Cluster E cell max / E cluster for NLM>2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhEMaxRatNLM2TCardCorrelNCell[6][6][2]
! Cluster E cell max / E cluster for NLM=2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhE2ndSameEMaxRatNLM2TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM=2 vs E for clusters selected for TCard correlation st...
TH2F * fhColRowExoticHighE1CellNegTime
! cluster col-row cluster cell max, E > 8 GeV, t < -5 ns
TH2F * fhEnergyTMEtaResidualTCardCorrNoSelectionExotic
! cluster energy vs eta track-cluster residual, exo > 0.97, T-Card strict cuts
TH2F * fhE2ndEMaxRatNLM1TCardCorrelNCell[6][6][2]
! Cluster E cell second max / E cell max for NLM=1 vs E, cluster contains 0 to more than 6 cells with...
TH2F * fhEMaxRatNLM1TCardCorrNoSelection[2]
! Cluster E cell max / E cluster for NLM=1 vs E for clusters selected for TCard correlation studies ...
Float_t fMinDistToBad
Minimum distance to bad channel.
Bool_t IsTrackMatched(AliVCluster *cluster, AliCalorimeterUtils *cu, AliVEvent *event)
TH2F * fhColRowExotic2ndCellSameLowE[2]
! secondary cell in same TCard col vs row, 5 < E < 8 GeV, exo > 0.97, loose cuts
Int_t GetHistoMassBins() const
TH2F * fhColRowExoticHighEPosTime
! cluster col-row cluster cell max, E > 8 GeV, t > 5 ns exo > 0.97
TH2F * fhNLocMaxTCardCorrNoSelection[2]
! Cluster Number of local Maxima vs E for clusters selected for TCard correlation studies ...
TH3F * fhDeltaIATotOrigin[3]
! Cluster "total asymmetry" vs E vs origin
TH2F * fhColRowExoticHighENegTime
! cluster col-row cluster cell max, E > 8 GeV, t < -5 ns exo > 0.97
TH2F * fhLambda0NLM2TCardCorrelNCell[6][6][2]
! Cluster m02 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
TH2F * fhTCardCorrTCellMaxDiffExo[12][2]
! Cell max energy - secondary cell time in cell vs cluster energy, different secondary cell selection...
TH3F * fhDeltaIANCells[3]
! Cluster "asymmetry" vs n cells vs E
Float_t GetHistoMassMin() const
TH2F * fhECellSameClusRatNLM2TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM=2 vs E for clusters selected for TCard correlation studies...
TH2F * fhTMPhiResidualExoticityLooseCut[14]
! Cluster-track matching residual in phi vs exoticity, loose acceptance cut
Int_t fdEdXMaxEle
dEdX max cut for electrons
TH2F * fhColRowTCardCorrNoSelectionLowE[2]
! col-row cluster cell max for those selected for TCard correlation studies, 5 < E < 8 GeV ...
TH2F * fhTCardCorrECellMaxDiffExo[12][2]
! Cell max energy - secondary cell energy in cluster vs cluster energy, different secondary cell sele...
TH2F * fhColRowExoticHighE[2]
! col-row cluster cell max, E > 8 GeV, exo > 0.97, loose cuts
TH2F * fhECellTotalLogRatio
! log (e cell / e total) vs e total
Float_t GetHistoTrackResidualPhiMin() const
TH2F * fhColRowExoticHighENulTime
! cluster col-row cluster cell max, E > 8 GeV, -5 < t < 5 ns exo > 0.97
TH2F * fhEMaxRatNLM2TCardCorrNoSelection[2]
! Cluster E cell max / E cluster for NLM=2 vs E for clusters selected for TCard correlation studies ...
Float_t GetHistoTrackResidualEtaMin() const
Int_t GetHistoNClusterCellBins() const
TH2F * fhE2ndSameEMaxRatNLM3TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM>2 vs E for clusters selected for TCard correlation st...
Float_t GetHistoDiffTimeMin() const
TH2F * fhE2ndSameRatNLM1TCardCorrNoSelection[2]
! Cluster E cell second max / E cluster for NLM=1 vs E for clusters selected for TCard correlation st...
TH2F * fhECellWeightNLM3TCardCorrelNCell[6][6][2]
! Cluster E cell weight for NLM>2 vs E, cluster contains 0 to more than 6 cells with w > 0...
AliVCaloCells * fCaloCellList
! cells temporary container
TH2F * fhEMaxCellClusterLogRatio
! log (e max cell / e cluster) vs e cluster
TH2F * fhSameRowDiffColAndTCardCellsEnergyDiffClusterE[2]
! Secondary cell energy difference vs cluster energy, one in same TCard as cell max, the other not, both in same row and 1 column
TH2F * fhLambda0ForW0AndCellCuts[12][4][3]
! L0 for different w0 and cell cuts
void InitParameters()
Initialize the parameters of the analysis.
Float_t GetHistoDiffTimeMax() const
Int_t CheckOrigin(Int_t label, const AliMCEvent *mcevent)
TH2F * fhE2ndRatNLM2TCardCorrNoSelection[2]
! Cluster E cell second loc max / E cluster for NLM=2 vs E for clusters selected for TCard correlatio...
TH2F * fhE2ndRatNLM3TCardCorrelNCell[6][6][2]
! Cluster E cell second loc max / E cluster for NLM>2 vs E, cluster contains 0 to more than 6 cells w...
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellSameLowE[2]
! secondary cell in same TCard col vs row, 5 < E < 8 GeV, exo > 0.97
TH2F * fhSameRowDiffColAndTCardCellsTimeDiffClusterE[2]
! Secondary cell energy difference vs cluster energy, one in same TCard as cell max, the other not, both in same row and 1 column
TH2F * fhECellSameClusRatNLM1TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM=1 vs E for clusters selected for TCard correlation studies...
TH2F * fhColRowExoticHighE1CellPosTime
! cluster col-row cluster cell max, E > 8 GeV, t > 5 ns
void ChannelCorrelationInTCard(AliVCluster *clus, Bool_t matched, Int_t absIdMax, Float_t exoticity)
TH2F * fhE2ndRatNLM3TCardCorrNoSelection[2]
! Cluster E cell second loc max / E cluster for NLM>2 vs E for clusters selected for TCard correlatio...
TH2F * fhColRowExotic2ndCellSameHighE[2]
! secondary cell in same TCard col vs row, E > 8 GeV, exo > 0.97, loose cuts
TH2F * fhLogECellNLM1TCardCorrelNCell[6][6][2]
! Cluster log E cell vs E cluster for NLM=1, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhECellWeightNLM1TCardCorrNoSelection[2]
! Cluster E cell weight for NLM=1 vs E for clusters selected for TCard correlation studies ...
TH2F * fhColRowExotic2ndCellDiffHighE[2]
! secondary cell in diff TCard col vs row, E > 8 GeV, exo > 0.97, loose cuts
TH2F * fhEnergyTMEtaResidualTCardCorrNoSelection1Cell
! 1 cell cluster energy vs eta track-cluster residual, T-Card strict cuts
TH2F * fhNCellsTCardSameAndDiffExotic[14][2]
! Cluster NCells in same TCard as leading vs NCells on different TCard, exoticity > 0...
TH2F * fhE2ndEMaxRatNLM2TCardCorrelNCell[6][6][2]
! Cluster E cell second loc max / E cell max for NLM=2 vs E, cluster contains 0 to more than 6 cells ...
Float_t GetHistoMassMax() const
void Init()
Check if the calorimeter setting is ok, if not abort.
Base class for CaloTrackCorr analysis algorithms.
TH2F * fhColRowTCardCorrelNCellHighE[6][6][2]
! Cluster max cell col vs row, E > 8 GeV, cluster contains 0 to more than 6 cells with w > 0...
virtual TString GetCalorimeterString() const
Float_t fInvMassMaxTimeDifference
Maximum difference between the time of the 2 clusters to be considered in invariant mass...
TH2F * fhLambda0NLM2TCardCorrNoSelection[2]
! Cluster m02 vs E for clusters selected for TCard correlation studies, nlm=2
TH2F * fhLambda0TCardCorrelNCell[6][6][2]
! Cluster m02 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
TH2F * fhColRowTCardCorrNoSelectionHighE[2]
! col-row cluster cell max for those selected for TCard correlation studies, E > 8 GeV ...
virtual AliFiducialCut * GetFiducialCut()
Int_t fNCellMin
Minimum number of cells on clusters.
TH2F * fhNCellsTCardCorrRatioWithWeightNoSelection[2]
! Ncells per cluster/Ncells per cluster with w>0.01 vs cl. energy, clusters selected for TCard correl...
int Int_t
Definition: External.C:63
TH2F * fhColRowTCardCorrNoSelectionExoticHighE[2]
! col-row cluster cell max for those selected for TCard correlation studies, E > 8 GeV...
Bool_t fStudyWeight
Study the energy weight used in different cluster calculations.
virtual AliHistogramRanges * GetHistogramRanges()
TH2F * fhLambda1NLM1TCardCorrNoSelection[2]
! Cluster m20 vs E for clusters selected for TCard correlation studies, nlm=1
Int_t GetHistoDiffTimeBins() const
TH2F * fhLambda1TCardCorrelNCell[6][6][2]
! Cluster m20 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
float Float_t
Definition: External.C:68
TH2F * fhLambda1Exoticity[14][2]
! Cluster m02 vs exoticy, for different cluster energy bins
Float_t GetHistoTrackResidualPhiMax() const
TH2F * fhEnergyTMEtaResidual1Cell
! 1 cell cluster energy vs eta track-cluster residual
const Double_t ptmax
Class for cluster shape, cell T-Card correlation and exoticity.
Float_t fInvMassMaxECut
Maximum energy cut value for clusters entering the invariant mass calculation.
Float_t fInvMassMaxOpenAngle
Combine clusters within with a maximum opening angle between them. In radians.
Bool_t fStudyShape
Study asymmetry and shower shape of clusters.
TH2F * fhMassEClusTCardCorrelNCell[6][6][2]
! Cluster invariant mass vs E cluster, one of clusters 0.1<m02<0.4 contains 0 to more than 6 cells wi...
TH2F * fhLogECellNLM3TCardCorrNoSelection[2]
! Cluster Log E cell for NLM>2 vs E for clusters selected for TCard correlation studies ...
virtual AliEMCALGeometry * GetEMCALGeometry() const
TH2F * fhLambda0TCardCorrNoSelection[2]
! Cluster m02 vs E for clusters selected for TCard correlation studies
Int_t fdEdXMinHad
dEdX min cut for hadrons
TH2F * fhEnergyTimeTCardCorrNoSelection1Cell[2]
! 1 cell cluster energy vs time, T-Card strict cuts
TH3F * fhNCellsPerClusterM20[3]
! N cells per cluster vs cluster energy vs m20
TH2F * fhEnergyTMPhiResidualExotic
! cluster energy vs phi track-cluster residual, exo > 0.97, loose cuts
TH2F * fhOriginE[3]
! check origin of selected clusters
TH2F * fhEMaxRatNLM1TCardCorrelNCell[6][6][2]
! Cluster E cell max / E cluster for NLM=1 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhE2ndSameRatNLM3TCardCorrNoSelection[2]
! Cluster E cell second loc max / E cluster for NLM>2 vs E for clusters selected for TCard correlatio...
Bool_t IsInFiducialCut(Float_t eta, Float_t phi, Int_t det) const
TH2F * fhE2ndRatNLM2TCardCorrelNCell[6][6][2]
! Cluster E cell second loc max / E cluster for NLM=2 vs E, cluster contains 0 to more than 6 cells w...
TH3F * fhClusterMaxCellECrossM02
! 1 - Energy in cross around max energy cell / max energy cell vs cluster energy
Bool_t fStudyTCardCorrelation
Study TCard channels cross correlation.
TH2F * fhEnergyTMPhiResidualTCardCorrNoSelection1Cell
! 1 cell cluster energy vs phi track-cluster residual, T-Card strict cuts
TH2F * fhECellClusRatNLM2TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM=2 vs E for clusters selected for TCard correlation studies ...
Float_t GetHistoShowerShapeMin() const
TH2F * fhECellClusRatNLM3TCardCorrelNCell[6][6][2]
! Cluster E cell / E cluster for NLM>2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhEMaxRatNLM3TCardCorrNoSelection[2]
! Cluster E cell max / E cluster for NLM>2 vs E for clusters selected for TCard correlation studies ...
virtual AliCalorimeterUtils * GetCaloUtils() const
Int_t fNMaxRowsFullMin
Last of EMCAL/PHOS rows full detector.
Int_t GetHistoNClusterCellMax() const
Bool_t fStudyExotic
Study the exotic cluster for different cuts, for TCard correl studies.
TH3F * fhRowM02[3]
! main cell row vs m02
Int_t GetHistoTrackResidualEtaBins() const
TH2F * fhColRowExotic2ndCellDiffLowE[2]
! secondary cell in diff TCard col vs row, 5 < E < 8 GeV, exo > 0.97, loose cuts
TH3F * fhDeltaIATotNCells[3]
! Cluster "total asymmetry" vs n cells vs E
Int_t GetHistoTrackResidualPhiBins() const
const Double_t ptmin
Float_t fConstantTimeShift
Apply a 615 ns time shift in case of simulation, shift in ns.
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameLowE[2]
! secondary cell in diff TCard col vs row, 5 < E < 8 GeV, exo > 0.97, 0 cells in same T-Card ...
TH3F * fhDeltaIAM20[3]
! Cluster "asymmetry" vs Lambda1 vs E
TH2F * fhColRowHighENulTime
! cluster col-row cluster cell max, E > 8 GeV, -5 < t < 5 ns exo < 0.97, n cell > 1 ...
TH2F * fhColRowExoticHighE1Cell[2]
! 1 cell cluster col-row cluster cell max, E > 8 GeV
virtual Double_t GetEventWeight() const
TH2F * fhECellSameWeightNLM1TCardCorrNoSelection[2]
! Cluster E cell weight for NLM=1 vs E for clusters selected for TCard correlation studies...
TH2F * fhECellWeightNLM1TCardCorrelNCell[6][6][2]
! Cluster E cell weight for NLM=1 vs E, cluster contains 0 to more than 6 cells with w > 0...
TLorentzVector fClusterMomentum
! Cluster momentum, temporary container
TH2F * fhTCardCorrTCellMaxDiff[12][2]
! Cell max energy - secondary cell time in cell vs cluster energy, different secondary cell selection...
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellSameHighE[2]
! secondary cell in same TCard col vs row, E > 8 GeV, exo > 0.97
TH2F * fhTMEtaResidualExoticity[14]
! Cluster-track matching residual in phi vs exoticity
virtual TObjArray * GetPHOSClusters() const
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellDiffHighE[2]
! secondary cell in diff TCard col vs row, E > 8 GeV, exo > 0.97
TH2F * fhECellClusterRatio
! e cell / e cluster vs e cluster
TH2F * fhTimeExoticity[14][2]
! Cluster time vs exoticy, for different cluster energy bins
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH2F * fhEnergyTimeExotic[2]
! cluster energy vs time, exo > 0.97, loose cuts
TH2F * fhSameRowDiffColAndTCardCellsEnergyDiffClusterEExo[2]
! Secondary cell energy difference vs cluster energy, one in same TCard as cell max, the other not, both in same row and 1 column, exo > 0.97
TH2F ** fhECellTotalLogRatioMod
! log (e cell / e total) vs e total, per SM
Float_t fInvMassMinM02Cut
Minimum M02 shower shape cut value for clusters entering the invariant mass calculation.
virtual Int_t GetModuleNumber(AliAODPWG4Particle *part) const
TObjArray * fCaloClusList
! clusters temporary container
TH2F * fhNCellsTCardSameAndDiffFractionExotic[2]
! Cluster fraction of NCells in same TCard as leading vs energy, exoticity > 0.97 ...
TH3F * fhClusterTimeEnergyM02[3]
! Cluster Time vs Energy vs m02
void ClusterMatchedToTrackPID(AliVCluster *clus, Int_t &matchedPID)
TH2F * fhTCardCorrEClusterDiff[12][2]
! Cluster energy - secondary cell energy in cluster vs cluster energy, different secondary cell selec...
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffLowE[2]
! secondary cell in same TCard col vs row, 5 < E < 8 GeV, exo > 0.97, 0 cells in diff T-Card ...
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellDiffNoSameHighE[2]
! secondary cell in diff TCard col vs row, E > 8 GeV, exo > 0.97, 0 cells in same T-Card ...
TH2F * fhECellSameWeightNLM3TCardCorrNoSelection[2]
! Cluster E cell weight for NLM>2 vs E for clusters selected for TCard correlation studies...
TH2F * fhECellClusRatNLM1TCardCorrelNCell[6][6][2]
! Cluster E cell / E cluster vs E for NLM=1, cluster contains 0 to more than 6 cells with w > 0...
Int_t GetHistoPtBins() const
TH2F * fhSameRowDiffColAndTCardCellsTimeDiffClusterEExo[2]
! Secondary cell energy difference vs cluster energy, one in same TCard as cell max, the other not, both in same row and 1 column, exo > 0.97
TH2F * fhLambdaRTCardCorrNoSelection[2]
! Cluster m20/m02 vs E for clusters selected for TCard correlation studies
Int_t fdEdXMaxHad
dEdX max cut for hadrons
TH2F * fhLambda1NLM2TCardCorrelNCell[6][6][2]
! Cluster m20 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
TH2F * fhECellSameClusRatNLM3TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM>2 vs E for clusters selected for TCard correlation studies...
TH2F * fhTimeDiffExoTCardCorrelNCell[6][6][2]
! Cluster time-secondary cell time vs E, for exotic luster contains 0 to more than 6 cells with w > 0...
Bool_t IsGoodCluster(Int_t absIdMax, Float_t m02, Int_t nCellsPerCluster)
TH2F * fhEnergyTMEtaResidualExotic
! cluster energy vs eta track-cluster residual, exo > 0.97, loose cuts
TH2F * fhTMEtaResidualExoticityLooseCut[14]
! Cluster-track matching residual in phi vs exoticity, loose acceptance cut
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
TH2F * fhLambda0Lambda1[14][2]
! Cluster m02 vs m20,for different cluster energy bins
TH2F * fhEnergyTMPhiResidual1Cell
! 1 cell cluster energy vs phi track-cluster residual
TH3F * fhDeltaIAM02[3]
! Cluster "asymmetry" vs Lambda0 vs E
TH2F * fhLambda0NLM1TCardCorrNoSelection[2]
! Cluster m02 vs E for clusters selected for TCard correlation studies, nlm=1
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellSameNoDiffHighE[2]
! secondary cell in same TCard col vs row, E > 8 GeV, exo > 0.97, 0 cells in diff T-Card ...
TH2F * fhECellWeightNLM2TCardCorrNoSelection[2]
! Cluster E cell weight for NLM=2 vs E for clusters selected for TCard correlation studies ...
void RecalibrateCellAmplitude(Float_t &amp, Int_t calo, Int_t absId) const
Recalculate cell energy if recalibration factor.
virtual AliMCAnalysisUtils * GetMCAnalysisUtils()
TH2F * fhE2ndEMaxRatNLM2TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM=2 vs E for clusters selected for TCard correlation st...
TH3F * fhDeltaIATotM20[3]
! Cluster "total asymmetry" vs Lambda1 vs E
TH2F * fhColRowExoticLowE1Cell[2]
! 1 cell cluster col-row cluster cell max, 5 < E < 8 GeV
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
Int_t GetHistoTimeBins() const
Int_t fdEdXMinEle
dEdX min cut for electrons, set in InitdEdXParameters()
TH3F * fhDeltaIATotM02[3]
! Cluster "total asymmetry" vs Lambda0 vs E
const char Option_t
Definition: External.C:48
TH2F * fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxE[2]
! Secondary cell energy difference vs leading cell energy, one in same TCard as cell max...
TH2F * fhECellClusRatNLM3TCardCorrNoSelection[2]
! Cluster E cell / E cluster for NLM>2 vs E for clusters selected for TCard correlation studies ...
Float_t GetHistoTimeMax() const
Float_t GetHistoTimeMin() const
Float_t GetHistoShowerShapeMax() const
TH2F * fhE2ndEMaxRatNLM3TCardCorrelNCell[6][6][2]
! Cluster E cell second loc max / E cell max for NLM>2 vs E, cluster contains 0 to more than 6 cells ...
TH2F * fhECellWeightNLM2TCardCorrelNCell[6][6][2]
! Cluster E cell weight for NLM=2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhColRowTCardCorrNoSelectionExotic2ndCellDiffLowE[2]
! secondary cell in diff TCard col vs row, 5 < E < 8 GeV, exo > 0.97
virtual AliCaloTrackReader * GetReader() const
bool Bool_t
Definition: External.C:53
Int_t fNMaxRowsFullMax
First of EMCAL/PHOS rows full detector.
TH2F * fhLambda0ForW0MC[12][5]
! L0 for different w0, depending on the particle of origin
TH2F * fhNCellsTCardSameAndDiff[14][2]
! Cluster NCells in same TCard as leading vs NCells on different TCard
TH2F * fhLambda0ForW0AndCellCutsEta0[12][4][3]
! L0 for different w0 and cell cuts, |eta| < 0.15
TH2F * fhE2ndRatNLM1TCardCorrNoSelection[2]
! Cluster E cell second max / E cluster for NLM=1 vs E for clusters selected for TCard correlation st...
TH2F * fhLambda0Exoticity[14][2]
! Cluster m02 vs exoticy, for different cluster energy bins
TH2F * fhLogECellNLM2TCardCorrelNCell[6][6][2]
! Cluster log E cell vs E cluster for NLM=2 vs E, cluster contains 0 to more than 6 cells with w > 0...
TH3F * fhNCellsPerClusterM02[3]
! N cells per cluster vs cluster energy vs m02
Float_t GetHistoTrackResidualEtaMax() const
virtual TObjArray * GetEMCALClusters() const
TH2F * fhColRowExoticLowE[2]
! col-row cluster cell max, 5 < E < 8 GeV, exo > 0.97, loose cuts
TH2F * fhE2ndSameRatNLM2TCardCorrNoSelection[2]
! Cluster E cell second loc max / E cluster for NLM=2 vs E for clusters selected for TCard correlatio...
TH2F * fhEnergyTime1Cell[2]
! 1 cell cluster energy vs time
virtual AliVCaloCells * GetPHOSCells() const
TH2F * fhSameRowDiffColAndTCardCellsEnergyDiffCellMaxEExo[2]
! Secondary cell energy difference vs leading cell energy, one in same TCard as cell max...
TObjString * GetAnalysisCuts()
Save parameters used for analysis in a string.
TH2F * fhLambda1NLM1TCardCorrelNCell[6][6][2]
! Cluster m20 vs E, cluster contains 0 to more than 6 cells with w > 0.01 in same TCard or diff TCard...
void RecalibrateCellTime(Double_t &time, Int_t calo, Int_t absId, Int_t bunchCrossNumber) const
Recalculate time if time recalibration available for EMCAL not ready for PHOS.
Bool_t CheckTagBit(Int_t tag, UInt_t test) const
Int_t GetMaxEnergyCell(AliVCaloCells *cells, AliVCluster *clu, Float_t &fraction) const
For a given CaloCluster, it gets the absId of the cell with maximum energy deposit.
TH2F * fhLambda1ExoticityPerNCell[6][6][2]
! Cluster m20 vs exoticy,for E > 8 and n cell bins with w>0.01, in same TCard or diff TCard ...
TH2F * fhColRowTCardCorrelNCellLowE[6][6][2]
! Cluster max cell col vs row, E > 2 GeV, cluster contains 0 to more than 6 cells with w > 0...
TH2F * fhE2ndSameEMaxRatNLM1TCardCorrNoSelection[2]
! Cluster E cell second loc max / E Max for NLM=1 vs E for clusters selected for TCard correlation st...
TH2F * fhECellWeightNLM3TCardCorrNoSelection[2]
! Cluster E cell weight for NLM>2 vs E for clusters selected for TCard correlation studies ...
Int_t nptbins
TH2F * fhDeltaIA[3]
! Cluster "asymmetry" vs E
TH2F * fhNCellsTCardCorrNoSelection[2]
! Ncells per cluster vs cluster energy, clusters selected for TCard correlation studies ...
TH2F * fhLogECellSameNLM3TCardCorrNoSelection[2]
! Cluster Log E cell for NLM>2 vs E for clusters selected for TCard correlation studies, same Tcard as leading
TH2F * fhNCellsExoticity[14][2]
! Cluster NCells vs exoticy, for different cluster energy bins
TH2F * fhTimeDiffTCardCorrelNCell[6][6][2]
! Cluster time-secondary cell time vs E, cluster contains 0 to more than 6 cells with w > 0...