]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h
Add method to : calculate number of local maxima in cluster; check if cells are neigh...
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaInsideClusterInvariantMass.h
CommitLineData
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 ---
17class TList ;
18class TObjString;
19class TLorentzVector;
20
21// --- ANALYSIS system ---
745913ae 22#include "AliAnaCaloTrackCorrBaseClass.h"
992b14a7 23
745913ae 24class 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