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