]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h
move the calculation of the invariant mass and the filling of the histograms with...
[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   AliAnaInsideClusterInvariantMass() ; // default ctor
30   virtual ~AliAnaInsideClusterInvariantMass() { ; } //virtual dtor
31
32   
33   TObjString * GetAnalysisCuts();
34   
35   TList      * GetCreateOutputObjects();
36   
37   TLorentzVector GetCellMomentum(const Int_t absId, Float_t energy, AliVCaloCells* cells) ;
38   
39   void         Init();
40   
41   void         InitParameters();
42      
43   void         MakeAnalysisFillHistograms() ; 
44       
45   void         Print(const Option_t * opt) const;
46
47   void         SetCalorimeter(TString & det)             { fCalorimeter = det ; }
48     
49   void         SetM02Cut(Float_t min=0, Float_t max=10)  { fM02MinCut   = min ; fM02MaxCut  = max ; }
50
51   void         SetMinNCells(Int_t cut)                   { fMinNCells   = cut ; }
52   
53   void         SetPi0MassRange(Float_t min, Float_t max) { fMassPi0Min  = min ; fMassPi0Max = max ; }
54   void         SetEtaMassRange(Float_t min, Float_t max) { fMassEtaMin  = min ; fMassEtaMax = max ; }
55   void         SetConMassRange(Float_t min, Float_t max) { fMassConMin  = min ; fMassConMax = max ; }
56   
57   void         SplitEnergy(const Int_t absId1, const Int_t absId2, 
58                            AliVCluster *cluster, 
59                            AliVCaloCells* cells,
60                            //Float_t & e1, Float_t & e2,
61                            AliAODCaloCluster *cluster1, 
62                            AliAODCaloCluster *cluster2, 
63                            const Int_t nMax//, Int_t *absIdList, Float_t *maxEList,
64                            );
65   
66   void         SwitchOnClusterPlot()                     { fPlotCluster = kTRUE  ; }
67   void         SwitchOffClusterPlot()                    { fPlotCluster = kFALSE ; }
68
69   
70   //For histograms
71   enum mcTypes { kmcPhoton = 1, kmcConversion = 2, kmcPi0    = 3,  
72                  kmcEta    = 4, kmcElectron   = 5, kmcHadron = 6 };
73
74  private:
75   
76   TString      fCalorimeter ;          // Calorimeter where the gamma is searched
77   Float_t      fM02MaxCut    ;         // Study clusters with l0 smaller than cut
78   Float_t      fM02MinCut    ;         // Study clusters with l0 larger than cut
79   Int_t        fMinNCells ;            // Study clusters with ncells larger than cut
80   Float_t      fMassEtaMin;            // Min Eta mass
81   Float_t      fMassEtaMax;            // Max Eta mass  
82   Float_t      fMassPi0Min;            // Min Pi0 mass
83   Float_t      fMassPi0Max;            // Min Pi0 mass
84   Float_t      fMassConMin;            // Min Conversions mass
85   Float_t      fMassConMax;            // Min Conversions mass
86   Bool_t       fPlotCluster;           // Plot cluster
87   
88   //Histograms
89   
90   TH2F       * fhMassNLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
91   TH2F       * fhMassNLocMax2[7][2]  ; //! Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
92   TH2F       * fhMassNLocMaxN[7][2]  ; //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
93
94   TH2F       * fhMassM02NLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
95   TH2F       * fhMassM02NLocMax2[7][2]  ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
96   TH2F       * fhMassM02NLocMaxN[7][2]  ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
97   
98   TH2F       * fhMassM02NLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
99   TH2F       * fhMassM02NLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
100   TH2F       * fhMassM02NLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
101   
102   TH2F       * fhNLocMax      [7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types
103   TH2F       * fhNLocMaxNLabel[7][2] ; //! Number of maxima in cluster vs nLabels, E > 5, 1-6 for different MC particle types
104   TH2F       * fhNLocMaxEMax  [7][2] ; //! Number of maxima in cluster vs E of each maxima, 1-6 for different MC particle types
105   TH2F       * fhNLocMaxEFrac [7][2] ; //! Number of maxima in cluster vs fraction of cluster E of each maxima, 1-6 for different MC particle types
106   TH2F       * fhNLocMaxM02Cut[7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut
107
108   TH2F       * fhM02NLocMax1  [7][2] ; //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types
109   TH2F       * fhM02NLocMax2  [7][2] ; //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types
110   TH2F       * fhM02NLocMaxN  [7][2] ; //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types
111
112   TH2F       * fhNCellNLocMax1[7][2] ; //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types
113   TH2F       * fhNCellNLocMax2[7][2] ; //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types
114   TH2F       * fhNCellNLocMaxN[7][2] ; //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types
115   
116   TH2F       * fhM02Pi0LocMax1[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 1
117   TH2F       * fhM02EtaLocMax1[7][2] ; //! M02 for Mass around eta, N Local Maxima = 1
118   TH2F       * fhM02ConLocMax1[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 1
119
120   TH2F       * fhM02Pi0LocMax2[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 2
121   TH2F       * fhM02EtaLocMax2[7][2] ; //! M02 for Mass around eta, N Local Maxima = 2
122   TH2F       * fhM02ConLocMax2[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 2
123   
124   TH2F       * fhM02Pi0LocMaxN[7][2] ; //! M02 for Mass around pi0, N Local Maxima > 2
125   TH2F       * fhM02EtaLocMaxN[7][2] ; //! M02 for Mass around eta, N Local Maxima > 2
126   TH2F       * fhM02ConLocMaxN[7][2] ; //! M02 for Mass around close to 0, N Local Maxima > 2
127   
128   TH2F       * fhAnglePairLocMax1[2] ; //! pair opening angle vs E
129   TH2F       * fhAnglePairLocMax2[2] ; //! pair opening angle vs E
130   TH2F       * fhAnglePairLocMaxN[2] ; //! pair opening angle vs E
131   
132   TH2F       * fhAnglePairMassLocMax1[2] ; //! pair opening angle vs Mass for E > 7 GeV
133   TH2F       * fhAnglePairMassLocMax2[2] ; //! pair opening angle vs Mass for E > 7 GeV
134   TH2F       * fhAnglePairMassLocMaxN[2] ; //! pair opening angle vs Mass for E > 7 GeV
135   
136   TH2F       * fhTrackMatchedDEtaLocMax1[7] ; //! Eta distance between track and cluster vs cluster E, 1 local maximum
137   TH2F       * fhTrackMatchedDPhiLocMax1[7] ; //! Phi distance between track and cluster vs cluster E, 1 local maximum
138   TH2F       * fhTrackMatchedDEtaLocMax2[7] ; //! Eta distance between track and cluster vs cluster E, 2 local maximum
139   TH2F       * fhTrackMatchedDPhiLocMax2[7] ; //! Phi distance between track and cluster vs cluster E, 2 local maximum
140   TH2F       * fhTrackMatchedDEtaLocMaxN[7] ; //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
141   TH2F       * fhTrackMatchedDPhiLocMaxN[7] ; //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
142   
143   AliAnaInsideClusterInvariantMass(              const AliAnaInsideClusterInvariantMass & g) ; // cpy ctor
144   AliAnaInsideClusterInvariantMass & operator = (const AliAnaInsideClusterInvariantMass & g) ; // cpy assignment
145   
146   ClassDef(AliAnaInsideClusterInvariantMass,9)
147   
148 } ;
149
150 #endif //ALIANAINSIDECLUSTERINVARIANTMASS_H
151
152
153