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