]>
Commit | Line | Data |
---|---|---|
992b14a7 | 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 */ | |
992b14a7 | 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 --- | |
5c46c992 | 22 | class AliAODCaloCluster; |
23 | ||
745913ae | 24 | #include "AliAnaCaloTrackCorrBaseClass.h" |
992b14a7 | 25 | |
745913ae | 26 | class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass { |
992b14a7 | 27 | |
28 | public: | |
29 | AliAnaInsideClusterInvariantMass() ; // default ctor | |
30 | virtual ~AliAnaInsideClusterInvariantMass() { ; } //virtual dtor | |
992b14a7 | 31 | |
992b14a7 | 32 | |
33 | TObjString * GetAnalysisCuts(); | |
34 | ||
35 | TList * GetCreateOutputObjects(); | |
36 | ||
243c2909 | 37 | TLorentzVector GetCellMomentum(const Int_t absId, Float_t energy, AliVCaloCells* cells) ; |
992b14a7 | 38 | |
992b14a7 | 39 | void Init(); |
40 | ||
41 | void InitParameters(); | |
42 | ||
43 | void MakeAnalysisFillHistograms() ; | |
992b14a7 | 44 | |
29ca9cad | 45 | void SetCalorimeter(TString & det) { fCalorimeter = det ; } |
dbba06ca | 46 | |
29ca9cad | 47 | void SetM02Cut(Float_t cut) { fM02Cut = cut ; } |
992b14a7 | 48 | |
5287b56e | 49 | void SetMinNCells(Int_t cut) { fMinNCells = cut ; } |
992b14a7 | 50 | |
243c2909 | 51 | void SetPi0MassRange(Float_t min, Float_t max) { fMassPi0Min = min ; fMassPi0Max = max ; } |
52 | void SetEtaMassRange(Float_t min, Float_t max) { fMassEtaMin = min ; fMassEtaMax = max ; } | |
53 | void SetConMassRange(Float_t min, Float_t max) { fMassConMin = min ; fMassConMax = max ; } | |
54 | ||
55 | void SplitEnergy(const Int_t absId1, const Int_t absId2, | |
56 | AliVCluster *cluster, | |
57 | AliVCaloCells* cells, | |
5c46c992 | 58 | //Float_t & e1, Float_t & e2, |
59 | AliAODCaloCluster *cluster1, | |
60 | AliAODCaloCluster *cluster2, | |
29ca9cad | 61 | const Int_t nMax//, Int_t *absIdList, Float_t *maxEList, |
62 | ); | |
992b14a7 | 63 | |
64 | void Print(const Option_t * opt) const; | |
65 | ||
66 | //For histograms | |
c5693f62 | 67 | enum mcTypes { kmcPhoton = 1, kmcConversion = 2, kmcPi0 = 3, |
68 | kmcEta = 4, kmcElectron = 5, kmcHadron = 6 }; | |
992b14a7 | 69 | |
70 | private: | |
71 | ||
5c46c992 | 72 | TString fCalorimeter ; // Calorimeter where the gamma is searched |
73 | Float_t fM02Cut ; // Study clusters with l0 larger than cut | |
74 | Int_t fMinNCells ; // Study clusters with ncells larger than cut | |
75 | Float_t fMassEtaMin; // Min Eta mass | |
76 | Float_t fMassEtaMax; // Max Eta mass | |
77 | Float_t fMassPi0Min; // Min Pi0 mass | |
78 | Float_t fMassPi0Max; // Min Pi0 mass | |
79 | Float_t fMassConMin; // Min Conversions mass | |
80 | Float_t fMassConMax; // Min Conversions mass | |
243c2909 | 81 | |
992b14a7 | 82 | //Histograms |
83 | ||
5c46c992 | 84 | TH2F * fhMassNLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max, 1-6 for different MC particle types |
85 | TH2F * fhMassNLocMax2[7][2] ; //! Mass of 2 cells local maxima vs E, 1-6 for different MC particle types | |
86 | TH2F * fhMassNLocMaxN[7][2] ; //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types | |
87 | ||
88 | TH2F * fhNLocMax [7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types | |
89 | TH2F * fhNLocMaxEMax [7][2] ; //! Number of maxima in cluster vs E of each maxima, 1-6 for different MC particle types | |
90 | TH2F * fhNLocMaxEFrac [7][2] ; //! Number of maxima in cluster vs fraction of cluster E of each maxima, 1-6 for different MC particle types | |
91 | TH2F * fhNLocMaxM02Cut[7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut | |
92 | ||
93 | TH2F * fhM02NLocMax1 [7][2] ; //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types | |
94 | TH2F * fhM02NLocMax2 [7][2] ; //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types | |
95 | TH2F * fhM02NLocMaxN [7][2] ; //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types | |
96 | ||
97 | TH2F * fhNCellNLocMax1[7][2] ; //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types | |
98 | TH2F * fhNCellNLocMax2[7][2] ; //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types | |
99 | TH2F * fhNCellNLocMaxN[7][2] ; //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types | |
992b14a7 | 100 | |
5c46c992 | 101 | TH2F * fhM02Pi0LocMax1[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 1 |
102 | TH2F * fhM02EtaLocMax1[7][2] ; //! M02 for Mass around eta, N Local Maxima = 1 | |
103 | TH2F * fhM02ConLocMax1[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 1 | |
992b14a7 | 104 | |
5c46c992 | 105 | TH2F * fhM02Pi0LocMax2[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 2 |
106 | TH2F * fhM02EtaLocMax2[7][2] ; //! M02 for Mass around eta, N Local Maxima = 2 | |
107 | TH2F * fhM02ConLocMax2[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 2 | |
108 | ||
109 | TH2F * fhM02Pi0LocMaxN[7][2] ; //! M02 for Mass around pi0, N Local Maxima > 2 | |
110 | TH2F * fhM02EtaLocMaxN[7][2] ; //! M02 for Mass around eta, N Local Maxima > 2 | |
111 | TH2F * fhM02ConLocMaxN[7][2] ; //! M02 for Mass around close to 0, N Local Maxima > 2 | |
112 | ||
113 | TH2F * fhAnglePairLocMax1[2] ; //! pair opening angle vs E | |
114 | TH2F * fhAnglePairLocMax2[2] ; //! pair opening angle vs E | |
115 | TH2F * fhAnglePairLocMaxN[2] ; //! pair opening angle vs E | |
116 | ||
117 | TH2F * fhAnglePairMassLocMax1[2] ; //! pair opening angle vs Mass for E > 5 GeV | |
118 | TH2F * fhAnglePairMassLocMax2[2] ; //! pair opening angle vs Mass for E > 5 GeV | |
119 | TH2F * fhAnglePairMassLocMaxN[2] ; //! pair opening angle vs Mass for E > 5 GeV | |
243c2909 | 120 | |
5c46c992 | 121 | TH2F * fhTrackMatchedDEtaLocMax1[7] ; //! Eta distance between track and cluster vs cluster E, 1 local maximum |
122 | TH2F * fhTrackMatchedDPhiLocMax1[7] ; //! Phi distance between track and cluster vs cluster E, 1 local maximum | |
123 | TH2F * fhTrackMatchedDEtaLocMax2[7] ; //! Eta distance between track and cluster vs cluster E, 2 local maximum | |
124 | TH2F * fhTrackMatchedDPhiLocMax2[7] ; //! Phi distance between track and cluster vs cluster E, 2 local maximum | |
125 | TH2F * fhTrackMatchedDEtaLocMaxN[7] ; //! Eta distance between track and cluster vs cluster E, more than 2 local maximum | |
126 | TH2F * fhTrackMatchedDPhiLocMaxN[7] ; //! Phi distance between track and cluster vs cluster E, more than 2 local maximum | |
243c2909 | 127 | |
128 | AliAnaInsideClusterInvariantMass( const AliAnaInsideClusterInvariantMass & g) ; // cpy ctor | |
29ca9cad | 129 | AliAnaInsideClusterInvariantMass & operator = (const AliAnaInsideClusterInvariantMass & g) ; // cpy assignment |
992b14a7 | 130 | |
5c46c992 | 131 | ClassDef(AliAnaInsideClusterInvariantMass,6) |
992b14a7 | 132 | |
133 | } ; | |
134 | ||
135 | #endif //ALIANAINSIDECLUSTERINVARIANTMASS_H | |
136 | ||
137 | ||
138 |