add histograms related to opening angle of split clusters
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaInsideClusterInvariantMass.h
1 #ifndef ALIANAINSIDECLUSTERINVARIANTMASS_H
2 #define ALIANAINSIDECLUSTERINVARIANTMASS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 //_________________________________________________________________________
7 //
8 // Split clusters with some criteria and calculate invariant mass
9 // to identify them as pi0 or conversion
10 //
11 //
12 //-- Author: Gustavo Conesa (LPSC-Grenoble)
13 //_________________________________________________________________________
14
15
16 // --- ROOT system ---
17 class TList ;
18 class TObjString;
19 class TLorentzVector;
20
21 // --- ANALYSIS system ---
22 class AliAODCaloCluster;
23
24 #include "AliAnaCaloTrackCorrBaseClass.h"
25
26 class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
27
28  public: 
29   
30   AliAnaInsideClusterInvariantMass() ; // default ctor
31   virtual ~AliAnaInsideClusterInvariantMass() { ; } //virtual dtor
32   
33   void         CheckLocalMaximaMCOrigin(AliVCluster* cluster, const Int_t mcindex, const Int_t noverlaps,
34                                         const Float_t e1,     const Float_t e2,    const Float_t mass);
35                                         //, Float_t m02, TLorentzVector l1, TLorentzVector l2);
36   
37   TObjString * GetAnalysisCuts();
38   
39   TList      * GetCreateOutputObjects();
40   
41   void         GetMCIndex(AliVCluster * cluster, Int_t & mcindex, Int_t & mcTag);
42   
43   void         GetMCPrimaryKine(AliVCluster* cluster, const Int_t mcindex, const Int_t mcTag, const Bool_t matched,
44                                 Float_t & eprim, Float_t & asymGen, Float_t & angleGen, Int_t & noverlaps );
45   
46   void         FillAngleHistograms(const Int_t nMax, const Bool_t matched, const Int_t mcindex,
47                                    const Float_t en, const Float_t angle, const Float_t mass, const Float_t anglePrim);
48   
49
50   void         FillArmenterosHistograms(const Int_t nMax, const Int_t ebin, const Int_t mcindex,
51                                         TLorentzVector pi0, TLorentzVector g1, TLorentzVector g2,
52                                         const Float_t m02, const Int_t pid);
53
54   
55   void         FillEBinHistograms(const Int_t ebin, const Int_t nMax, const Int_t mcindex, const Float_t splitFrac,
56                                   const Float_t mass, const Float_t asym, const Float_t l0);
57   
58   void         FillMCHistograms(const Float_t en,        const Float_t e1  , const Float_t e2,
59                                 const Int_t ebin,        const Int_t mcindex,const Int_t noverlaps,
60                                 const Float_t l0,        const Float_t mass,
61                                 const Int_t nMax,        const Bool_t  matched,
62                                 const Float_t splitFrac, const Float_t asym,
63                                 const Float_t eprim,     const Float_t asymGen);
64   
65   void         FillMCOverlapHistograms(const Float_t en,      const Float_t enprim,
66                                        const Int_t   nc,      const Float_t mass,    const Float_t l0,
67                                        const Float_t asym,    const Float_t splitFrac,
68                                        const Int_t   nlm,     const Int_t ebin,   const Bool_t matched,
69                                        const Int_t   mcindex, const Int_t noverlaps);
70   
71   void         FillSSWeightHistograms(AliVCluster *cluster, const Int_t nlm, const Int_t absId1, const Int_t absId2);
72   
73   void         FillSSExtraHistograms(AliVCluster *cluster, const Int_t nMax,
74                                      const Bool_t matched, const Int_t mcindex,
75                                      const Float_t mass  , const Int_t ebin);
76
77   void         FillNCellHistograms(const Int_t   ncells,  const Float_t energy, const Int_t nMax,
78                                    const Bool_t  matched, const Int_t mcindex,
79                                    const Float_t mass   , const Float_t l0);
80   
81   void         FillTrackMatchingHistograms(AliVCluster * cluster,const Int_t nMax, const Int_t mcindex);
82   
83   void         FillHistograms1(const Float_t en,     const Float_t e1,     const Float_t e2,
84                                const Int_t nMax,     const Float_t mass,   const Float_t l0,
85                                const Float_t eta,    const Float_t phi,
86                                const Bool_t matched, const Int_t mcindex);
87
88   
89   void         FillHistograms2(const Float_t en,     const Float_t eprim,
90                                const Float_t e1,     const Float_t e2,      const Int_t nMax,  
91                                const Float_t mass,   const Float_t l0,
92                                const Bool_t matched, const Int_t mcindex);
93   
94   void         FillIdPi0Histograms(const Float_t en,     const Float_t e1,  const Float_t e2,
95                                    const Int_t nc,       const Int_t nMax,  const Float_t t12diff,
96                                    const Float_t mass,   const Float_t l0,
97                                    const Float_t eta,    const Float_t phi,
98                                    const Bool_t matched, const Int_t mcindex);
99   
100   void         FillIdEtaHistograms(const Float_t en,     const Float_t e1,  const Float_t e2,
101                                    const Int_t nc,       const Int_t nMax,  const Float_t t12diff,
102                                    const Float_t mass,   const Float_t l0,
103                                    const Float_t eta,    const Float_t phi,
104                                    const Bool_t matched, const Int_t mcindex);
105   
106   void         FillIdConvHistograms(const Float_t en,    const Int_t nMax, const Float_t asym,
107                                     const Float_t mass,   const Float_t l0,
108                                     const Bool_t matched, const Int_t mcindex);
109   
110   void         Init();
111   
112   void         InitParameters();
113   
114   void         MakeAnalysisFillHistograms() ;
115   
116   void         Print(const Option_t * opt) const;
117
118   void         SetCalorimeter(TString & det)             { fCalorimeter = det ; }
119   
120   void         SetMinNCells(Int_t cut)                   { fMinNCells   = cut ; }
121
122   void         SetMinBadChannelDistance(Float_t cut)     { fMinBadDist  = cut ; }
123
124   void         SetWCorrectionParameter(Float_t p = 0.07) { fWSimu       = p   ; }
125   
126   void         SwitchOnFillAngleHistograms()             { fFillAngleHisto      = kTRUE  ; }
127   void         SwitchOffFillAngleHistograms()            { fFillAngleHisto      = kFALSE ; }
128
129   void         SwitchOnFillArmenterosHistograms()        { fFillArmenterosHisto = kTRUE  ; }
130   void         SwitchOffFillArmenterosHistograms()       { fFillArmenterosHisto = kFALSE ; }
131
132   void         SwitchOnFillExtraSSHistograms()           { fFillSSExtraHisto    = kTRUE  ; }
133   void         SwitchOffFillExtraSSHistograms()          { fFillSSExtraHisto    = kFALSE ; }
134   
135   void         SwitchOnFillHighMultHistograms()          { fFillHighMultHisto   = kTRUE  ; }
136   void         SwitchOffFillHighMultHistograms()         { fFillHighMultHisto   = kFALSE ; }
137   
138   void         SwitchOnFillIdConvHistograms()            { fFillIdConvHisto     = kTRUE  ; }
139   void         SwitchOffFillIdConvHistograms()           { fFillIdConvHisto     = kFALSE ; }
140
141   void         SwitchOnFillIdEtaHistograms()             { fFillIdEtaHisto      = kTRUE  ; }
142   void         SwitchOffFillIdEtaHistograms()            { fFillIdEtaHisto      = kFALSE ; }
143   
144   void         SwitchOnFillTMHistograms()                { fFillTMHisto         = kTRUE  ; }
145   void         SwitchOffFillTMHistograms()               { fFillTMHisto         = kFALSE ; }
146   
147   void         SwitchOnFillTMResidualHistograms()        { fFillTMResidualHisto = kTRUE  ; }
148   void         SwitchOffFillTMResidualHistograms()       { fFillTMResidualHisto = kFALSE ; }
149   
150   void         SwitchOnFillMCPrimaryHistograms()         { fFillMCHisto         = kTRUE  ; }
151   void         SwitchOffFillMCPrimaryHistograms()        { fFillMCHisto         = kFALSE ; }
152
153   void         SwitchOnFillSSWeightHistograms()          { fFillSSWeightHisto   = kTRUE  ; }
154   void         SwitchOffFillSSWeightHistograms()         { fFillSSWeightHisto   = kFALSE ; }
155
156   void         SwitchOnFillEbinHistograms()              { fFillEbinHisto       = kTRUE  ; }
157   void         SwitchOffFillEbinHistograms()             { fFillEbinHisto       = kFALSE ; }
158   
159   void         SwitchOnFillMCOverlapHistograms()         { fFillMCOverlapHisto  = kTRUE  ; }
160   void         SwitchOffFillMCOverlapHistograms()        { fFillMCOverlapHisto  = kFALSE ; }
161
162   void         SwitchOnFillNCellHistograms()             { fFillNCellHisto      = kTRUE  ; }
163   void         SwitchOffFillNCellHistograms()            { fFillNCellHisto      = kFALSE ; }
164   
165   void         SwitchOnSplitClusterDistToBad()           { fCheckSplitDistToBad = kTRUE  ; }
166   void         SwitchOffSplitClusterDistToBad()          { fCheckSplitDistToBad = kFALSE ; }
167   
168   void         SetNWeightForShowerShape(Int_t n)           { fSSWeightN = n ; }
169   void         SetWeightForShowerShape(Int_t i, Float_t v) { if (i < 10) fSSWeight[i] = v ; }
170
171   void         SetNECellCutForShowerShape(Int_t n)           { fSSECellCutN = n ; }
172   void         SetECellCutForShowerShape(Int_t i, Float_t v) { if (i < 10) fSSECellCut[i] = v ; }
173
174  
175   void         RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom, AliVCaloCells* cells, AliVCluster * cluster,
176                                                    Float_t & l0,   Float_t & l1,
177                                                    Float_t & disp, Float_t & dEta, Float_t & dPhi,
178                                                    Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,Float_t eCellMin = 0.);
179
180   
181   //For histograms
182   enum mcTypes { kmcPhoton = 1, kmcConversion = 2, kmcPi0    = 3,  kmcPi0Conv = 4,
183                  kmcEta    = 5, kmcHadron = 6  };
184
185  private:
186   
187   TString      fCalorimeter ;          // Calorimeter where the gamma is searched
188   Int_t        fMinNCells   ;          // Study clusters with ncells larger than cut
189   Float_t      fMinBadDist  ;          // Minimal distance to bad channel to accept cluster
190   Float_t      fHistoECut   ;          // Fixed E cut for some histograms
191   Bool_t       fCheckSplitDistToBad;   // Check the distance to bad channel and to EMCal borders of split clusters
192   
193   Bool_t       fFillAngleHisto;        // Fill splitted clusters angle histograms
194   Bool_t       fFillTMHisto ;          // Fill track matching histos,
195   Bool_t       fFillTMResidualHisto ;  // Fill track matching histos, residuals
196   Bool_t       fFillSSExtraHisto ;     // Fill shower shape extra histos
197   Bool_t       fFillMCHisto ;          // Fill MC energy fraction histos
198   Bool_t       fFillSSWeightHisto ;    // Fill weigth histograms
199   Bool_t       fFillEbinHisto ;        // Fill E bin histograms
200   Bool_t       fFillMCOverlapHisto ;   // Fill MC particles overlap histograms
201   Bool_t       fFillNCellHisto ;       // Fill n cells in cluster dependent histograms
202   Bool_t       fFillIdConvHisto ;      // Fill histograms for clusters identified as conversion
203   Bool_t       fFillIdEtaHisto ;       // Fill histograms for clusters identified as Eta
204   Bool_t       fFillHighMultHisto;     // Fill centrality/event plane histograms
205   Bool_t       fFillArmenterosHisto;   // Fill armenteros type histo
206   
207   Float_t      fSSWeight[10];          // List of weights to test
208   Int_t        fSSWeightN;             // Total number of weights to test
209   
210   Float_t      fSSECellCut[10];        // List of cell min energy cuts to test
211   Int_t        fSSECellCutN;           // Total number of cell min energy cuts to test
212   
213   Float_t      fWSimu;                 // Slope of the linear correction factor for the shower
214                                        // shape weight in simulation, about 0.07
215   
216   //Histograms
217   
218   TH2F       * fhMassNLocMax1[7][2]  ;                  //! Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
219   TH2F       * fhMassNLocMax2[7][2]  ;                  //! Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
220   TH2F       * fhMassNLocMaxN[7][2]  ;                  //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
221
222   TH2F       * fhAsymNLocMax1[7][2]  ;                  //! Asymmetry of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
223   TH2F       * fhAsymNLocMax2[7][2]  ;                  //! Asymmetry of 2 cells local maxima vs E,  1-6 for different MC particle types
224   TH2F       * fhAsymNLocMaxN[7][2]  ;                  //! Asymmetry of >2 cells local maxima vs E, 1-6 for different MC particle types
225   
226   TH2F       * fhArmNLocMax1[7][4]  ;                   //! Armenteros of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
227   TH2F       * fhArmNLocMax2[7][4]  ;                   //! Armenteros of 2 cells local maxima vs E,  1-6 for different MC particle types
228   TH2F       * fhArmNLocMaxN[7][4]  ;                   //! Armenteros of >2 cells local maxima vs E, 1-6 for different MC particle types
229   
230   TH2F       * fhSplitEFractionvsAsyNLocMax1[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1 vs |A|
231   TH2F       * fhSplitEFractionvsAsyNLocMax2[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2 vs |A|
232   TH2F       * fhSplitEFractionvsAsyNLocMaxN[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2 vs |A|  
233
234   TH2F       * fhMassAsyCutNLocMax1  ;                  //! Asy(E) selection, not matched, Mass of split clusters, NLM = 1
235   TH2F       * fhMassAsyCutNLocMax2  ;                  //! Asy(E) selection, not matched, Mass of split clusters, NLM = 1
236   TH2F       * fhMassAsyCutNLocMaxN  ;                  //! Asy(E) selection, not matched, Mass of split clusters, NLM > 2
237   
238   TH2F       * fhM02AsyCutNLocMax1  ;                   //! Asy(E) selection, not matched, M02, NLM = 1
239   TH2F       * fhM02AsyCutNLocMax2  ;                   //! Asy(E) selection, not matched, M02, NLM = 2
240   TH2F       * fhM02AsyCutNLocMaxN  ;                   //! Asy(E) selection, not matched, M02, NLM > 2
241   
242   TH2F       * fhMassM02CutNLocMax1  ;                  //! M02(E) selection, not matched, Mass of split clusters, NLM = 1
243   TH2F       * fhMassM02CutNLocMax2  ;                  //! M02(E) selection, not matched, Mass of split clusters, NLM = 1
244   TH2F       * fhMassM02CutNLocMaxN  ;                  //! M02(E) selection, not matched, Mass of split clusters, NLM > 2
245
246   TH2F       * fhAsymM02CutNLocMax1  ;                  //! M02(E) selection, not matched, energy asymmetry of split clusters, NLM = 1
247   TH2F       * fhAsymM02CutNLocMax2  ;                  //! M02(E) selection, not matched, energy asymmetry of split clusters, NLM = 2
248   TH2F       * fhAsymM02CutNLocMaxN  ;                  //! M02(E) selection, not matched, energy asymmetry of split clusters, NLM > 2
249   
250   TH2F       * fhMassSplitECutNLocMax1 ;                //! 85% of split energy, not matched, Mass of split clusters, NLM = 1
251   TH2F       * fhMassSplitECutNLocMax2 ;                //! 85% of split energy, not matched, Mass of split clusters, NLM = 1
252   TH2F       * fhMassSplitECutNLocMaxN ;                //! 85% of split energy, not matched, Mass of split clusters, NLM > 2    
253     
254   TH2F       * fhMassM02NLocMax1[7][2]  ;               //! Mass of splitted clusters when 1  local max vs M02, for E > 8 GeV, 1-6 for different MC particle types
255   TH2F       * fhMassM02NLocMax2[7][2]  ;               //! Mass of splitted clusters when 2  local max vs M02, for E > 8 GeV, 1-6 for different MC particle types
256   TH2F       * fhMassM02NLocMaxN[7][2]  ;               //! Mass of splitted clusters when >2 local max vs M02, for E > 8 GeV, 1-6 for different MC particle types
257   
258   TH2F       * fhMassM02NLocMax1Ebin[4] ;               //! Mass of splitted clusters when 1  local max vs M02, 4 E bins, neutral clusters
259   TH2F       * fhMassM02NLocMax2Ebin[4] ;               //! Mass of splitted clusters when 2  local max vs M02, 4 E bins, neutral clusters
260   TH2F       * fhMassM02NLocMaxNEbin[4] ;               //! Mass of splitted clusters when >2 local max vs M02, 4 E bins, neutral clusters
261
262   TH2F       * fhMassAsyNLocMax1Ebin[4] ;               //! Mass of Mass of splitted clusters when 1  local max vs asymmetry, 4 E bins, neutral clusters
263   TH2F       * fhMassAsyNLocMax2Ebin[4] ;               //! Mass of Mass of splitted clusters when 2  local max vs asymmetry, 4 E bins, neutral clusters
264   TH2F       * fhMassAsyNLocMaxNEbin[4] ;               //! Mass of Mass of splitted clusters when >2 local max vs asymmetry, 4 E bins, neutral clusters
265
266   TH2F       * fhAsyMCGenRecoNLocMax1EbinPi0[4] ;       //! Generated vs reconstructed asymmetry of splitted clusters from pi0 when 1  local max, 4 E bins, neutral clusters
267   TH2F       * fhAsyMCGenRecoNLocMax2EbinPi0[4] ;       //! Generated vs reconstructed asymmetry of splitted clusters from pi0 when 2  local max, 4 E bins, neutral clusters
268   TH2F       * fhAsyMCGenRecoNLocMaxNEbinPi0[4] ;       //! Generated vs reconstructed asymmetry of splitted clusters from pi0 when >2 local max, 4 E bins, neutral clusters
269   
270   TH2F       * fhAsyMCGenRecoDiffMCPi0[3];              //! reconstructed-generated asymmetry of splitted clusters vs E from pi0, for 3 NLM cases
271   TH2F       * fhAsyMCGenRecoDiffMCPi0Conv[3];          //! reconstructed-generated asymmetry of splitted clusters vs E from converted pi0, for 3 NLM cases
272   
273   TH2F       * fhMassDispEtaNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 8 GeV, 1-6 for different MC particle types 
274   TH2F       * fhMassDispEtaNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 8 GeV,  1-6 for different MC particle types
275   TH2F       * fhMassDispEtaNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 8 GeV, 1-6 for different MC particle types  
276   
277   TH2F       * fhMassDispEtaNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
278   TH2F       * fhMassDispEtaNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
279   TH2F       * fhMassDispEtaNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
280   
281   TH2F       * fhMassDispPhiNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 8 GeV, 1-6 for different MC particle types 
282   TH2F       * fhMassDispPhiNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 8 GeV,  1-6 for different MC particle types
283   TH2F       * fhMassDispPhiNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 8 GeV, 1-6 for different MC particle types  
284   
285   TH2F       * fhMassDispPhiNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
286   TH2F       * fhMassDispPhiNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
287   TH2F       * fhMassDispPhiNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
288   
289   TH2F       * fhMassDispAsyNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 8 GeV, 1-6 for different MC particle types 
290   TH2F       * fhMassDispAsyNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 8 GeV,  1-6 for different MC particle types
291   TH2F       * fhMassDispAsyNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 8 GeV, 1-6 for different MC particle types  
292   
293   TH2F       * fhMassDispAsyNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
294   TH2F       * fhMassDispAsyNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
295   TH2F       * fhMassDispAsyNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
296   
297   TH2F       * fhNLocMax      [7][2] ;                  //! Number of maxima in cluster vs E, 1-6 for different MC particle types
298   TH2F       * fhNLocMaxM02Cut[7][2] ;                  //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut
299
300   TH2F       * fhSplitClusterENLocMax[7][2] ;           //! Number of maxima in cluster vs E of splitted clusters, 1-6 for different MC particle types
301   TH2F       * fhSplitClusterEPi0NLocMax[7][2] ;        //! Number of maxima in cluster vs E of splitted clusters when cluster id as pi0, 1-6 for different MC particle types
302   
303   TH2F       * fhM02NLocMax1  [7][2] ;                  //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types
304   TH2F       * fhM02NLocMax2  [7][2] ;                  //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types
305   TH2F       * fhM02NLocMaxN  [7][2] ;                  //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types
306   
307   TH2F       * fhMCAsymM02NLocMax1MCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster = 1, for 4 energy bins
308   TH2F       * fhMCAsymM02NLocMax2MCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster = 2, for 4 energy bins
309   TH2F       * fhMCAsymM02NLocMaxNMCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster > 2, for 4 energy bins
310   
311   TH2F       * fhMCGenFracNLocMax1[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
312   TH2F       * fhMCGenFracNLocMax2[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
313   TH2F       * fhMCGenFracNLocMaxN[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
314
315   TH2F       * fhMCGenFracNLocMax1NoOverlap[7][2] ;     //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, no overlap found
316   TH2F       * fhMCGenFracNLocMax2NoOverlap[7][2] ;     //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, no overlap found
317   TH2F       * fhMCGenFracNLocMaxNNoOverlap[7][2] ;     //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, no overlap found
318   
319   TH2F       * fhMCGenFracAfterCutsNLocMax1MCPi0 ;      //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, MCPi0 after M02 and asymmetry cut
320   TH2F       * fhMCGenFracAfterCutsNLocMax2MCPi0 ;      //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, MCPi0, after M02 and asymmetry cut
321   TH2F       * fhMCGenFracAfterCutsNLocMaxNMCPi0 ;      //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, MCPi0, after M02 and asymmetry cut
322
323   TH2F       * fhMCGenSplitEFracNLocMax1[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
324   TH2F       * fhMCGenSplitEFracNLocMax2[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
325   TH2F       * fhMCGenSplitEFracNLocMaxN[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
326
327   TH2F       * fhMCGenSplitEFracNLocMax1NoOverlap[7][2];//! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, no overlap
328   TH2F       * fhMCGenSplitEFracNLocMax2NoOverlap[7][2];//! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, no overlap
329   TH2F       * fhMCGenSplitEFracNLocMaxNNoOverlap[7][2];//! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, no overlap
330   
331   TH2F       * fhMCGenSplitEFracAfterCutsNLocMax1MCPi0; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
332   TH2F       * fhMCGenSplitEFracAfterCutsNLocMax2MCPi0; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
333   TH2F       * fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types
334   
335   TH2F       * fhMCGenEFracvsSplitEFracNLocMax1[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 1, MC pi0
336   TH2F       * fhMCGenEFracvsSplitEFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 2, MC pi0
337   TH2F       * fhMCGenEFracvsSplitEFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster > 2, MC pi0
338   
339   TH2F       * fhMCGenEvsSplitENLocMax1[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster = 1, 1-6 for different MC particle types
340   TH2F       * fhMCGenEvsSplitENLocMax2[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster = 2, 1-6 for different MC particle types
341   TH2F       * fhMCGenEvsSplitENLocMaxN[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster > 2, 1-6 for different MC particle types  
342   
343   TH2F       * fhMCGenFracNLocMaxEbin[7][4] ;           //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, not matched to track
344   TH2F       * fhMCGenFracNLocMaxEbinMatched[7][4] ;    //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, matched to track
345   
346   TH2F       * fhM02MCGenFracNLocMax1Ebin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
347   TH2F       * fhM02MCGenFracNLocMax2Ebin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
348   TH2F       * fhM02MCGenFracNLocMaxNEbin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
349   
350   TH2F       * fhMassMCGenFracNLocMax1Ebin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
351   TH2F       * fhMassMCGenFracNLocMax2Ebin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
352   TH2F       * fhMassMCGenFracNLocMaxNEbin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
353   
354   TH2F       * fhNCellNLocMax1[7][2] ;                  //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types
355   TH2F       * fhNCellNLocMax2[7][2] ;                  //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types
356   TH2F       * fhNCellNLocMaxN[7][2] ;                  //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types
357   
358   TH2F       * fhNCellMassEHighNLocMax1MCPi0 ;          //! n cells in cluster vs mass for high energy clusters,  for N max in cluster = 1, for MC pi0
359   TH2F       * fhNCellM02EHighNLocMax1MCPi0  ;          //! n cells in cluster vs m02  for high energy clusters,  for N max in cluster = 1, for MC pi0
360   TH2F       * fhNCellMassELowNLocMax1MCPi0  ;          //! n cells in cluster vs mass for low  energy clusters,  for N max in cluster = 1, for MC pi0
361   TH2F       * fhNCellM02ELowNLocMax1MCPi0   ;          //! n cells in cluster vs m02  for low  energy clusters,  for N max in cluster = 1, for MC pi0
362
363   TH2F       * fhNCellMassEHighNLocMax2MCPi0 ;          //! n cells in cluster vs mass for high energy clusters,  for N max in cluster = 2, for MC pi0
364   TH2F       * fhNCellM02EHighNLocMax2MCPi0  ;          //! n cells in cluster vs m02  for high energy clusters,  for N max in cluster = 2, for MC pi0
365   TH2F       * fhNCellMassELowNLocMax2MCPi0  ;          //! n cells in cluster vs mass for low  energy clusters,  for N max in cluster = 2, for MC pi0
366   TH2F       * fhNCellM02ELowNLocMax2MCPi0   ;          //! n cells in cluster vs m02  for low  energy clusters,  for N max in cluster = 2, for MC pi0
367   
368   TH2F       * fhNCellMassEHighNLocMaxNMCPi0 ;          //! n cells in cluster vs mass for high energy clusters,  for N max in cluster > 2, for MC pi0
369   TH2F       * fhNCellM02EHighNLocMaxNMCPi0  ;          //! n cells in cluster vs m02  for high energy clusters,  for N max in cluster > 2, for MC pi0
370   TH2F       * fhNCellMassELowNLocMaxNMCPi0  ;          //! n cells in cluster vs mass for low  energy clusters,  for N max in cluster > 2, for MC pi0
371   TH2F       * fhNCellM02ELowNLocMaxNMCPi0   ;          //! n cells in cluster vs m02  for low  energy clusters,  for N max in cluster > 2, for MC pi0
372   
373   TH2F       * fhM02Pi0NLocMax1[7][2] ;                 //! M02 for Mass around pi0, N Local Maxima = 1
374   TH2F       * fhM02EtaNLocMax1[7][2] ;                 //! M02 for Mass around eta, N Local Maxima = 1
375   TH2F       * fhM02ConNLocMax1[7][2] ;                 //! M02 for Mass around close to 0, N Local Maxima = 1
376   
377   TH2F       * fhM02Pi0NLocMax2[7][2] ;                 //! M02 for Mass around pi0, N Local Maxima = 2
378   TH2F       * fhM02EtaNLocMax2[7][2] ;                 //! M02 for Mass around eta, N Local Maxima = 2
379   TH2F       * fhM02ConNLocMax2[7][2] ;                 //! M02 for Mass around close to 0, N Local Maxima = 2
380   
381   TH2F       * fhM02Pi0NLocMaxN[7][2] ;                 //! M02 for Mass around pi0, N Local Maxima > 2
382   TH2F       * fhM02EtaNLocMaxN[7][2] ;                 //! M02 for Mass around eta, N Local Maxima > 2
383   TH2F       * fhM02ConNLocMaxN[7][2] ;                 //! M02 for Mass around close to 0, N Local Maxima > 2
384
385   TH2F       * fhMassPi0NLocMax1[7][2] ;                //! Mass for selected pi0, N Local Maxima = 1
386   TH2F       * fhMassEtaNLocMax1[7][2] ;                //! Mass for selected around eta, N Local Maxima = 1
387   TH2F       * fhMassConNLocMax1[7][2] ;                //! Mass for selected around close to 0, N Local Maxima = 1
388   
389   TH2F       * fhMassPi0NLocMax2[7][2] ;                //! Mass for selected around pi0, N Local Maxima = 2
390   TH2F       * fhMassEtaNLocMax2[7][2] ;                //! Mass for selected around eta, N Local Maxima = 2
391   TH2F       * fhMassConNLocMax2[7][2] ;                //! Mass for selected around close to 0, N Local Maxima = 2
392   
393   TH2F       * fhMassPi0NLocMaxN[7][2] ;                //! Mass for selected around pi0, N Local Maxima > 2
394   TH2F       * fhMassEtaNLocMaxN[7][2] ;                //! Mass for selected around eta, N Local Maxima > 2
395   TH2F       * fhMassConNLocMaxN[7][2] ;                //! Mass for selected around close to 0, N Local Maxima > 2
396
397   TH2F       * fhArmPi0NLocMax1[7][4] ;                 //! Armenteros for selected pi0, N Local Maxima = 1
398   TH2F       * fhArmPi0NLocMax2[7][4] ;                 //! Armenteros for selected pi0, N Local Maxima = 2
399   TH2F       * fhArmPi0NLocMaxN[7][4] ;                 //! Armenteros for selected pi0, N Local Maxima > 2
400   
401   TH2F       * fhNCellPi0NLocMax1[7][2] ;               //! n cells for selected around pi0, N Local Maxima = 1
402   TH2F       * fhNCellEtaNLocMax1[7][2] ;               //! n cells for selected around eta, N Local Maxima = 1
403   TH2F       * fhNCellPi0NLocMax2[7][2] ;               //! n cells for selected around pi0, N Local Maxima = 2
404   TH2F       * fhNCellEtaNLocMax2[7][2] ;               //! n cells for selected around eta, N Local Maxima = 2
405   TH2F       * fhNCellPi0NLocMaxN[7][2] ;               //! n cells for selected around pi0, N Local Maxima > 2
406   TH2F       * fhNCellEtaNLocMaxN[7][2] ;               //! n cells for selected around eta, N Local Maxima > 2
407   
408   TH2F       * fhMassAfterCutsNLocMax1[7][2] ;          //! Mass after M02, asymmetry cuts for pi0, N Local Maxima = 1
409   TH2F       * fhMassAfterCutsNLocMax2[7][2] ;          //! Mass after M02, asymmetry cuts for pi0, N Local Maxima = 2
410   TH2F       * fhMassAfterCutsNLocMaxN[7][2] ;          //! Mass after M02, asymmetry cuts for pi0, N Local Maxima > 2
411
412   TH2F       * fhArmAfterCutsNLocMax1[7][4] ;           //! Armenteros after M02, asymmetry cuts for pi0, N Local Maxima = 1
413   TH2F       * fhArmAfterCutsNLocMax2[7][4] ;           //! Armenteros after M02, asymmetry cuts for pi0, N Local Maxima = 2
414   TH2F       * fhArmAfterCutsNLocMaxN[7][4] ;           //! Armenteros after M02, asymmetry cuts for pi0, N Local Maxima > 2
415   
416   TH2F       * fhAsyPi0NLocMax1[7][2] ;                 //! Asy for Mass around pi0, N Local Maxima = 1
417   TH2F       * fhAsyEtaNLocMax1[7][2] ;                 //! Asy for Mass around eta, N Local Maxima = 1
418   TH2F       * fhAsyConNLocMax1[7][2] ;                 //! Asy for Mass around close to 0, N Local Maxima = 1
419   
420   TH2F       * fhAsyPi0NLocMax2[7][2] ;                 //! Asy for Mass around pi0, N Local Maxima = 2
421   TH2F       * fhAsyEtaNLocMax2[7][2] ;                 //! Asy for Mass around eta, N Local Maxima = 2
422   TH2F       * fhAsyConNLocMax2[7][2] ;                 //! Asy for Mass around close to 0, N Local Maxima = 2
423   
424   TH2F       * fhAsyPi0NLocMaxN[7][2] ;                 //! Asy for Mass around pi0, N Local Maxima > 2
425   TH2F       * fhAsyEtaNLocMaxN[7][2] ;                 //! Asy for Mass around eta, N Local Maxima > 2
426   TH2F       * fhAsyConNLocMaxN[7][2] ;                 //! Asy for Mass around close to 0, N Local Maxima > 2
427   
428   TH2F       * fhSplitEFractionNLocMax1[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1
429   TH2F       * fhSplitEFractionNLocMax2[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2
430   TH2F       * fhSplitEFractionNLocMaxN[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2
431
432   TH2F       * fhSplitEFractionAfterCutsNLocMax1[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1, after M02 and asymmetry cut
433   TH2F       * fhSplitEFractionAfterCutsNLocMax2[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2, after M02 and asymmetry cut
434   TH2F       * fhSplitEFractionAfterCutsNLocMaxN[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2, after M02 and asymmetry cut
435   
436   TH2F       * fhMassSplitEFractionNLocMax1Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 1, 1-6 for different MC particle types, not track matched
437   TH2F       * fhMassSplitEFractionNLocMax2Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 2, 1-6 for different MC particle types, not track matched
438   TH2F       * fhMassSplitEFractionNLocMaxNEbin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
439     
440   TH2F       * fhAnglePairNLocMax1[7][2] ;              //! pair opening angle vs E
441   TH2F       * fhAnglePairNLocMax2[7][2] ;              //! pair opening angle vs E
442   TH2F       * fhAnglePairNLocMaxN[7][2] ;              //! pair opening angle vs E
443
444   TH2F       * fhAnglePairMassNLocMax1[7][2] ;          //! pair opening angle vs Mass for E > 7 GeV
445   TH2F       * fhAnglePairMassNLocMax2[7][2] ;          //! pair opening angle vs Mass for E > 7 GeV
446   TH2F       * fhAnglePairMassNLocMaxN[7][2] ;          //! pair opening angle vs Mass for E > 7 GeV
447   
448   TH2F       * fhAnglePairPrimPi0RecoNLocMax1;          //! pair opening angle pi0 generated/reconstructed vs E
449   TH2F       * fhAnglePairPrimPi0RecoNLocMax2;          //! pair opening angle pi0 generated/reconstructed vs E
450   TH2F       * fhAnglePairPrimPi0RecoNLocMaxN;          //! pair opening angle pi0 generated/reconstructed vs E
451
452   TH2F       * fhAnglePairPrimPi0vsRecoNLocMax1;          //! pair opening angle pi0 generated vs reconstructed
453   TH2F       * fhAnglePairPrimPi0vsRecoNLocMax2;          //! pair opening angle pi0 generated vs reconstructed
454   TH2F       * fhAnglePairPrimPi0vsRecoNLocMaxN;          //! pair opening angle pi0 generated vs reconstructed
455   
456   TH2F       * fhTrackMatchedDEtaNLocMax1[7] ;          //! Eta distance between track and cluster vs cluster E, 1 local maximum
457   TH2F       * fhTrackMatchedDPhiNLocMax1[7] ;          //! Phi distance between track and cluster vs cluster E, 1 local maximum
458   TH2F       * fhTrackMatchedDEtaNLocMax2[7] ;          //! Eta distance between track and cluster vs cluster E, 2 local maximum
459   TH2F       * fhTrackMatchedDPhiNLocMax2[7] ;          //! Phi distance between track and cluster vs cluster E, 2 local maximum
460   TH2F       * fhTrackMatchedDEtaNLocMaxN[7] ;          //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
461   TH2F       * fhTrackMatchedDPhiNLocMaxN[7] ;          //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
462
463   TH2F       * fhTrackMatchedDEtaNLocMax1Pos[7] ;       //! Eta distance between track and cluster vs cluster E, 1 local maximum
464   TH2F       * fhTrackMatchedDPhiNLocMax1Pos[7] ;       //! Phi distance between track and cluster vs cluster E, 1 local maximum
465   TH2F       * fhTrackMatchedDEtaNLocMax2Pos[7] ;       //! Eta distance between track and cluster vs cluster E, 2 local maximum
466   TH2F       * fhTrackMatchedDPhiNLocMax2Pos[7] ;       //! Phi distance between track and cluster vs cluster E, 2 local maximum
467   TH2F       * fhTrackMatchedDEtaNLocMaxNPos[7] ;       //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
468   TH2F       * fhTrackMatchedDPhiNLocMaxNPos[7] ;       //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
469
470   TH2F       * fhTrackMatchedDEtaNLocMax1Neg[7] ;       //! Eta distance between track and cluster vs cluster E, 1 local maximum
471   TH2F       * fhTrackMatchedDPhiNLocMax1Neg[7] ;       //! Phi distance between track and cluster vs cluster E, 1 local maximum
472   TH2F       * fhTrackMatchedDEtaNLocMax2Neg[7] ;       //! Eta distance between track and cluster vs cluster E, 2 local maximum
473   TH2F       * fhTrackMatchedDPhiNLocMax2Neg[7] ;       //! Phi distance between track and cluster vs cluster E, 2 local maximum
474   TH2F       * fhTrackMatchedDEtaNLocMaxNNeg[7] ;       //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
475   TH2F       * fhTrackMatchedDPhiNLocMaxNNeg[7] ;       //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
476
477   TH2F       * fhCentralityPi0NLocMax1 ;                //! Centrality for selected pi0, N Local Maxima = 1
478   TH2F       * fhCentralityEtaNLocMax1 ;                //! Centrality for selected eta, N Local Maxima = 1
479   TH2F       * fhCentralityPi0NLocMax2 ;                //! Centrality for selected pi0, N Local Maxima = 2
480   TH2F       * fhCentralityEtaNLocMax2 ;                //! Centrality for selected eta, N Local Maxima = 2
481   TH2F       * fhCentralityPi0NLocMaxN ;                //! Centrality for selected pi0, N Local Maxima > 2
482   TH2F       * fhCentralityEtaNLocMaxN ;                //! Centrality for selected eta, N Local Maxima > 2
483
484   TH2F       * fhEventPlanePi0NLocMax1 ;                //! Event plane for selected pi0, N Local Maxima = 1
485   TH2F       * fhEventPlaneEtaNLocMax1 ;                //! Event plane for selected eta, N Local Maxima = 1
486   TH2F       * fhEventPlanePi0NLocMax2 ;                //! Event plane for selected pi0, N Local Maxima = 2
487   TH2F       * fhEventPlaneEtaNLocMax2 ;                //! Event plane for selected eta, N Local Maxima = 2
488   TH2F       * fhEventPlanePi0NLocMaxN ;                //! Event plane for selected pi0, N Local Maxima > 2
489   TH2F       * fhEventPlaneEtaNLocMaxN ;                //! Event plane for selected eta, N Local Maxima > 2
490
491   TH2F       * fhClusterEtaPhiNLocMax1 ;                //! Eta vs Phi of clusters with N Local Maxima = 1, E > 8 GeV
492   TH2F       * fhClusterEtaPhiNLocMax2 ;                //! Eta vs Phi of clusters with N Local Maxima = 2, E > 8 GeV
493   TH2F       * fhClusterEtaPhiNLocMaxN ;                //! Eta vs Phi of clusters with N Local Maxima > 2, E > 8 GeV
494   TH2F       * fhPi0EtaPhiNLocMax1 ;                    //! Eta vs Phi of pi0's with N Local Maxima = 1, E > 8 GeV
495   TH2F       * fhPi0EtaPhiNLocMax2 ;                    //! Eta vs Phi of pi0's with N Local Maxima = 2, E > 8 GeV
496   TH2F       * fhPi0EtaPhiNLocMaxN ;                    //! Eta vs Phi of pi0's with N Local Maxima > N, E > 8 GeV
497   TH2F       * fhEtaEtaPhiNLocMax1 ;                    //! Eta vs Phi of eta's with N Local Maxima = 1, E > 8 GeV
498   TH2F       * fhEtaEtaPhiNLocMax2 ;                    //! Eta vs Phi of eta's with N Local Maxima = 2, E > 8 GeV
499   TH2F       * fhEtaEtaPhiNLocMaxN ;                    //! Eta vs Phi of eta's with N Local Maxima > N, E > 8 GeV
500
501   TH2F       * fhPi0CellE[3] ;                          //! pi0's energy vs cluster cell energy with NLM = 1, = 2, > 2 
502   TH2F       * fhPi0CellEFrac[3] ;                      //! pi0's energy vs cluster cell energy fraction with NLM = 1, = 2, > 2 
503   TH2F       * fhPi0CellLogEFrac[3] ;                   //! pi0's energy vs cluster log cell energy fraction with NLM = 1, = 2, > 2
504   TH2F       * fhPi0CellEMaxEMax2Frac   [3];            //! pi0's energy vs fraction of 2 main maxima energy with NLM = 1, = 2, > 2
505   TH2F       * fhPi0CellEMaxClusterFrac [3];            //! pi0's energy vs energy fraction of main   LM and cluster energy with NLM = 1, = 2, > 2
506   TH2F       * fhPi0CellEMax2ClusterFrac[3];            //! pi0's energy vs energy fraction of second LM and cluster energy with NLM = 1, = 2, > 2
507   TH2F       * fhPi0CellEMaxFrac [3];                   //! pi0's energy vs energy fraction of main LM and cluster cell energy with NLM = 1, = 2, > 2
508   TH2F       * fhPi0CellEMax2Frac [3];                  //! pi0's energy vs energy fraction of second LM and cluster cell energy with NLM = 1, = 2, > 2
509   
510   TH2F       * fhM02WeightPi0[3][10] ;                  //! M02 for selected pi0 with different weight, with NLM = 1, = 2, > 2
511   TH2F       * fhM02ECellCutPi0[3][10] ;                //! M02 for selected pi0 with different cut on cell energy, with NLM = 1, = 2, > 2
512
513   TH2F       * fhPi0EPairDiffTimeNLM1;                  //! E vs Pair of clusters time difference vs E, for selected pi0, NLM=1
514   TH2F       * fhPi0EPairDiffTimeNLM2;                  //! E vs Pair of clusters time difference vs E, for selected pi0, NLM=2
515   TH2F       * fhPi0EPairDiffTimeNLMN;                  //! E vs Pair of clusters time difference vs E, for selected pi0, NLM>2
516   TH2F       * fhEtaEPairDiffTimeNLM1;                  //! E vs Pair of clusters time difference vs E, for selected eta, NLM=1
517   TH2F       * fhEtaEPairDiffTimeNLM2;                  //! E vs Pair of clusters time difference vs E, for selected eta, NLM=2
518   TH2F       * fhEtaEPairDiffTimeNLMN;                  //! E vs Pair of clusters time difference vs E, for selected eta, NLM>2
519
520   TH2F       * fhMCEM02Overlap0[3][7];                  //! E vs M02 for different MC origin, no other MC particles contributes, neutral cluster
521   TH2F       * fhMCEM02Overlap1[3][7];                  //! E vs M02 for different MC origin, 1  other MC particles contributes, neutral cluster
522   TH2F       * fhMCEM02OverlapN[3][7];                  //! E vs M02 for different MC origin, N  other MC particles contributes, neutral cluster
523   TH2F       * fhMCEM02Overlap0Match[3][7];             //! E vs M02 for different MC origin, no other MC particles contributes, charged cluster
524   TH2F       * fhMCEM02Overlap1Match[3][7];             //! E vs M02 for different MC origin, 1  other MC particles contributes, charged cluster
525   TH2F       * fhMCEM02OverlapNMatch[3][7];             //! E vs M02 for different MC origin, N  other MC particles contributes, charged cluster
526   
527   TH2F       * fhMCEMassOverlap0[3][7];                 //! E vs Mass for different MC origin, no other MC particles contributes, neutral cluster
528   TH2F       * fhMCEMassOverlap1[3][7];                 //! E vs Mass for different MC origin, 1  other MC particles contributes, neutral cluster
529   TH2F       * fhMCEMassOverlapN[3][7];                 //! E vs Mass for different MC origin, N  other MC particles contributes, neutral cluster
530   TH2F       * fhMCEMassOverlap0Match[3][7];            //! E vs Mass for different MC origin, no other MC particles contributes, charged cluster
531   TH2F       * fhMCEMassOverlap1Match[3][7];            //! E vs Mass for different MC origin, 1  other MC particles contributes, charged cluster
532   TH2F       * fhMCEMassOverlapNMatch[3][7];            //! E vs Mass for different MC origin, N  other MC particles contributes, charged cluster
533
534   TH2F       * fhMCESplitEFracOverlap0[3][7];           //! E vs sum of splitted cluster energy / cluster energy for different MC origin, no other MC particles contributes, neutral cluster
535   TH2F       * fhMCESplitEFracOverlap1[3][7];           //! E vs sum of splitted cluster energy / cluster energy for different MC origin, 1  other MC particles contributes, neutral cluster
536   TH2F       * fhMCESplitEFracOverlapN[3][7];           //! E vs sum of splitted cluster energy / cluster energy for different MC origin, N  other MC particles contributes, neutral cluster
537   TH2F       * fhMCESplitEFracOverlap0Match[3][7];      //! E vs sum of splitted cluster energy / cluster energy for different MC origin, no other MC particles contributes, charged cluster
538   TH2F       * fhMCESplitEFracOverlap1Match[3][7];      //! E vs sum of splitted cluster energy / cluster energy for different MC origin, 1  other MC particles contributes, charged cluster
539   TH2F       * fhMCESplitEFracOverlapNMatch[3][7];      //! E vs sum of splitted cluster energy / cluster energy for different MC origin, N  other MC particles contributes, charged cluster
540
541   TH2F       * fhMCEAsymOverlap0[3][7];                 //! E vs sum of splitted cluster energy asymmetry for different MC origin, no other MC particles contributes, neutral cluster
542   TH2F       * fhMCEAsymOverlap1[3][7];                 //! E vs sum of splitted cluster energy asymmetry for different MC origin, 1  other MC particles contributes, neutral cluster
543   TH2F       * fhMCEAsymOverlapN[3][7];                 //! E vs sum of splitted cluster energy asymmetry for different MC origin, N  other MC particles contributes, neutral cluster
544   TH2F       * fhMCEAsymOverlap0Match[3][7];            //! E vs sum of splitted cluster energy asymmetry for different MC origin, no other MC particles contributes, charged cluster
545   TH2F       * fhMCEAsymOverlap1Match[3][7];            //! E vs sum of splitted cluster energy asymmetry for different MC origin, 1  other MC particles contributes, charged cluster
546   TH2F       * fhMCEAsymOverlapNMatch[3][7];            //! E vs sum of splitted cluster energy asymmetry for different MC origin, N  other MC particles contributes, charged cluster
547
548   TH2F       * fhMCENCellOverlap0[3][7];                //! E vs sum of splitted cluster energy asymmetry for different MC origin, no other MC particles contributes, neutral cluster
549   TH2F       * fhMCENCellOverlap1[3][7];                //! E vs sum of splitted cluster energy asymmetry for different MC origin, 1  other MC particles contributes, neutral cluster
550   TH2F       * fhMCENCellOverlapN[3][7];                //! E vs sum of splitted cluster energy asymmetry for different MC origin, N  other MC particles contributes, neutral cluster
551   TH2F       * fhMCENCellOverlap0Match[3][7];           //! E vs sum of splitted cluster energy asymmetry for different MC origin, no other MC particles contributes, charged cluster
552   TH2F       * fhMCENCellOverlap1Match[3][7];           //! E vs sum of splitted cluster energy asymmetry for different MC origin, 1  other MC particles contributes, charged cluster
553   TH2F       * fhMCENCellOverlapNMatch[3][7];           //! E vs sum of splitted cluster energy asymmetry for different MC origin, N  other MC particles contributes, charged cluster
554   
555   TH2F       * fhMCEEpriOverlap0[3][7];                 //! E reco vs primary for different MC origin, no other MC particles contributes, neutral cluster
556   TH2F       * fhMCEEpriOverlap1[3][7];                 //! E reco vs primary for different MC origin, 1  other MC particles contributes, neutral cluster
557   TH2F       * fhMCEEpriOverlapN[3][7];                 //! E reco vs primary for different MC origin, N  other MC particles contributes, neutral cluster
558   TH2F       * fhMCEEpriOverlap0Match[3][7];            //! E reco vs primary for different MC origin, no other MC particles contributes, charged cluster
559   TH2F       * fhMCEEpriOverlap1Match[3][7];            //! E reco vs primary for different MC origin, 1  other MC particles contributes, charged cluster
560   TH2F       * fhMCEEpriOverlapNMatch[3][7];            //! E reco vs primary for different MC origin, N  other MC particles contributes, charged cluster
561   
562   TH2F       * fhMCEEpriOverlap0IdPi0[3][7];            //! E reco vs primary for different MC origin, no other MC particles contributes, neutral cluster, neutral clusters id as pi0
563   TH2F       * fhMCEEpriOverlap1IdPi0[3][7];            //! E reco vs primary for different MC origin, 1  other MC particles contributes, neutral cluster, neutral clusters id as pi0
564   TH2F       * fhMCEEpriOverlapNIdPi0[3][7];            //! E reco vs primary for different MC origin, 1  other MC particles contributes, neutral cluster, neutral clusters is as pi0
565   
566   TH2F       * fhMCPi0MassM02Overlap0[3][4];            //! MC Pi0 M02 vs Mass for different MC origin, no other MC particles contributes, neutral cluster, 4 E bins
567   TH2F       * fhMCPi0MassM02Overlap1[3][4];            //! MC Pi0 M02 vs Mass for different MC origin, 1  other MC particles contributes, neutral cluster, 4 E bins
568   TH2F       * fhMCPi0MassM02OverlapN[3][4];            //! MC Pi0 M02 vs Mass for different MC origin, N  other MC particles contributes, neutral cluster, 4 E bins
569   TH2F       * fhMCPi0MassM02Overlap0Match[3][4];       //! MC Pi0 M02 vs Mass for different MC origin, no other MC particles contributes, charged cluster, 4 E bins
570   TH2F       * fhMCPi0MassM02Overlap1Match[3][4];       //! MC Pi0 M02 vs Mass for different MC origin, 1  other MC particles contributes, charged cluster, 4 E bins
571   TH2F       * fhMCPi0MassM02OverlapNMatch[3][4];       //! MC Pi0 M02 vs Mass for different MC origin, N  other MC particles contributes, charged cluster, 4 E bins
572   
573   TH2F       * fhMCENOverlaps[3][7];                    //! E vs number of Overlaps in MC, neutral cluster
574   TH2F       * fhMCENOverlapsMatch[3][7];               //! E vs number of Overlaps in MC, charged cluster
575   
576   TH2F       * fhMCPi0HighNLMPair;                      //! E vs NLM when cluster originated in pi0 merging and highest energy local maxima correspond to 2 photons
577   TH2F       * fhMCPi0LowNLMPair;                       //! E vs NLM when cluster originated in pi0 merging and a pair of local maxima except highest energy correspond to 2 photons
578   TH2F       * fhMCPi0AnyNLMPair;                       //! E vs NLM when cluster originated in pi0 merging and a both highest energy pairs and other pairs correspond to 2 photons
579   TH2F       * fhMCPi0NoneNLMPair;                      //! E vs NLM when cluster originated in pi0 merging and a both no NLM corresponds to the photons
580   // No match between highest energy local maxima and highest energy MC particle 
581   TH2F       * fhMCPi0HighNLMPairNoMCMatch;             //! E vs NLM when cluster originated in pi0 merging and highest energy local maxima correspond to 2 photons
582   TH2F       * fhMCPi0LowNLMPairNoMCMatch;              //! E vs NLM when cluster originated in pi0 merging and a pair of local maxima except highest energy correspond to 2 photons
583   TH2F       * fhMCPi0AnyNLMPairNoMCMatch;              //! E vs NLM when cluster originated in pi0 merging and a both highest energy pairs and other pairs correspond to 2 photons
584   TH2F       * fhMCPi0NoneNLMPairNoMCMatch;             //! E vs NLM when cluster originated in pi0 merging and a both no NLM corresponds to the photons
585
586   TH2F       * fhMCPi0HighNLMPairOverlap;              //! E vs NLM when cluster originated in pi0 merging and highest energy local maxima correspond to 2 photons, overlap
587   TH2F       * fhMCPi0LowNLMPairOverlap;               //! E vs NLM when cluster originated in pi0 merging and a pair of local maxima except highest energy correspond to 2 photons, overlap
588   TH2F       * fhMCPi0AnyNLMPairOverlap;               //! E vs NLM when cluster originated in pi0 merging and a both highest energy pairs and other pairs correspond to 2 photons, overlap
589   TH2F       * fhMCPi0NoneNLMPairOverlap;              //! E vs NLM when cluster originated in pi0 merging and a both no NLM corresponds to the photons, overlap
590   // No match between highest energy local maxima and highest energy MC particle
591   TH2F       * fhMCPi0HighNLMPairNoMCMatchOverlap;     //! E vs NLM when cluster originated in pi0 merging and highest energy local maxima correspond to 2 photons, overlap
592   TH2F       * fhMCPi0LowNLMPairNoMCMatchOverlap;      //! E vs NLM when cluster originated in pi0 merging and a pair of local maxima except highest energy correspond to 2 photons, overlap
593   TH2F       * fhMCPi0AnyNLMPairNoMCMatchOverlap;      //! E vs NLM when cluster originated in pi0 merging and a both highest energy pairs and other pairs correspond to 2 photons, overlap
594   TH2F       * fhMCPi0NoneNLMPairNoMCMatchOverlap;     //! E vs NLM when cluster originated in pi0 merging and a both no NLM corresponds to the photons, overlap
595   
596   TH2F       * fhMCPi0DecayPhotonHitHighLM;             //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
597   TH2F       * fhMCPi0DecayPhotonAdjHighLM;             //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima
598   TH2F       * fhMCPi0DecayPhotonHitOtherLM;            //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high
599   TH2F       * fhMCPi0DecayPhotonAdjOtherLM;            //! E vs NLM when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high
600   TH2F       * fhMCPi0DecayPhotonAdjacent;              //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit adjacen cells, not 2 LM
601   TH2F       * fhMCPi0DecayPhotonHitNoLM;               //! E vs NLM when cluster originated in pi0 merging and MC photon decay do not hit the cell local maximas
602   
603   TH2F       * fhMCPi0DecayPhotonHitHighLMOverlap;      //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the cell local maxima, overlap
604   TH2F       * fhMCPi0DecayPhotonAdjHighLMOverlap;      //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima, overlap
605   TH2F       * fhMCPi0DecayPhotonHitOtherLMOverlap;     //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high, overlap
606   TH2F       * fhMCPi0DecayPhotonAdjOtherLMOverlap;     //! E vs NLM when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high, overlap
607   TH2F       * fhMCPi0DecayPhotonAdjacentOverlap;       //! E vs NLM when cluster originated in pi0 merging and MC photon decay hit adjacen cells, not 2 LM, overlap
608   TH2F       * fhMCPi0DecayPhotonHitNoLMOverlap;        //! E vs NLM when cluster originated in pi0 merging and MC photon decay do not hit the cell local maximas, overlap
609
610   TH2F       * fhMCPi0DecayPhotonHitHighLMDiffELM1[3];             //! E vs Ephoton-Esplit cluster when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
611   TH2F       * fhMCPi0DecayPhotonAdjHighLMDiffELM1[3];             //! E vs Ephoton-Esplit cluster when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima
612   TH2F       * fhMCPi0DecayPhotonHitOtherLMDiffELM1[3];            //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high
613   TH2F       * fhMCPi0DecayPhotonAdjOtherLMDiffELM1[3];            //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high
614  
615   TH2F       * fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[3];      //! E vs Ephoton-Esplit cluster when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
616   TH2F       * fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[3];      //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima, overlap
617   TH2F       * fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[3];     //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high, overlap
618   TH2F       * fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[3];     //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high, overlap
619  
620   TH2F       * fhMCPi0DecayPhotonHitHighLMDiffELM2[3];             //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
621   TH2F       * fhMCPi0DecayPhotonAdjHighLMDiffELM2[3];             //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima
622   TH2F       * fhMCPi0DecayPhotonHitOtherLMDiffELM2[3];            //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high
623   TH2F       * fhMCPi0DecayPhotonAdjOtherLMDiffELM2[3];            //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high
624   
625   TH2F       * fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[3];      //! E vs Ephoton-Esplit cluster when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
626   TH2F       * fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[3];      //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima, overlap
627   TH2F       * fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[3];     //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high, overlap
628   TH2F       * fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[3];     //! E vs Ephoton-Esplit when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high, overlap
629   
630   TH2F       * fhMCPi0DecayPhotonHitHighLMMass[3];                 //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the cell local maxima
631   TH2F       * fhMCPi0DecayPhotonAdjHighLMMass[3];                 //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima
632   TH2F       * fhMCPi0DecayPhotonHitOtherLMMass[3];                //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high
633   TH2F       * fhMCPi0DecayPhotonAdjOtherLMMass[3];                //! E vs Mass when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high
634   TH2F       * fhMCPi0DecayPhotonAdjacentMass[3];                  //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit adjacen cells, not 2 LM
635   TH2F       * fhMCPi0DecayPhotonHitNoLMMass[3];                   //! E vs Mass when cluster originated in pi0 merging and MC photon decay do not hit the cell local maximas
636                
637   TH2F       * fhMCPi0DecayPhotonHitHighLMOverlapMass[3];          //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the cell local maxima, overlap
638   TH2F       * fhMCPi0DecayPhotonAdjHighLMOverlapMass[3];          //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the adjacent cell local maxima, overlap
639   TH2F       * fhMCPi0DecayPhotonHitOtherLMOverlapMass[3];         //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit the cell local maximas, not high, overlap
640   TH2F       * fhMCPi0DecayPhotonAdjOtherLMOverlapMass[3];         //! E vs Mass when cluster originated in pi0 merging and MC photon decay do not hit the adjacent cell local maximas, not high, overlap
641   TH2F       * fhMCPi0DecayPhotonAdjacentOverlapMass[3];           //! E vs Mass when cluster originated in pi0 merging and MC photon decay hit adjacen cells, not 2 LM, overlap
642   TH2F       * fhMCPi0DecayPhotonHitNoLMOverlapMass[3];            //! E vs Mass when cluster originated in pi0 merging and MC photon decay do not hit the cell local maximas, overlap
643
644   
645   TH2F       * fhMCEOverlapType;                        //! what particles overlap with pi0, neutral clusters
646   TH2F       * fhMCEOverlapTypeMatch;                   //! what particles overlap with pi0, charged clusters
647   
648   TH2F       * fhMassBadDistClose[3];                   //! split mass of clusters with second LM close to bad channel
649   TH2F       * fhM02BadDistClose[3];                    //! m02 of clusters with second LM close to bad channel
650   TH2F       * fhMassOnBorder[3];                       //! split mass of clusters with second LM on EMCAL border
651   TH2F       * fhM02OnBorder[3];                        //! m02 of clusters with second LM close to EMCAL border
652
653   
654   AliAnaInsideClusterInvariantMass(              const AliAnaInsideClusterInvariantMass & split) ; // cpy ctor
655   AliAnaInsideClusterInvariantMass & operator = (const AliAnaInsideClusterInvariantMass & split) ; // cpy assignment
656   
657   ClassDef(AliAnaInsideClusterInvariantMass,26)
658   
659 } ;
660
661 #endif //ALIANAINSIDECLUSTERINVARIANTMASS_H
662
663
664