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