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