Coding violations corrected
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaJetLeadCone.h
1 #ifndef ALIANAGAMMAJETLEADCONE_H
2 #define ALIANAGAMMAJETLEADCONE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id$ */
6
7 /* History of cvs commits:
8  *
9  * $Log$
10  * Revision 1.2  2007/08/17 12:40:04  schutz
11  * New analysis classes by Gustavo Conesa
12  *
13  * Revision 1.1.2.1  2007/07/26 10:32:09  schutz
14  * new analysis classes in the the new analysis framework
15  *
16  *
17  */
18
19 //_________________________________________________________________________
20 // Class that contains the algorithm for the reconstruction of jet, cone around leading particle
21 // 1)Take the prompt photon found with AliAnaGammaDirect,
22 // 2) Search for the highest pt leading particle opposite to the photon within a phi, pt window
23 // 3) Take all particles around leading in a cone R with pt larger than threshold and construct the jet
24 //
25 //  Class created from old AliPHOSGammaJet
26 //  (see AliRoot versions previous Release 4-09)
27 //-- Author: Gustavo Conesa (INFN-LNF)
28
29 #include "AliAnaGammaCorrelation.h"
30
31 class AliAnaGammaJetLeadCone : public AliAnaGammaCorrelation {
32
33 public: 
34   
35   AliAnaGammaJetLeadCone() ; // default ctor
36   AliAnaGammaJetLeadCone(const AliAnaGammaJetLeadCone & g) ; // cpy ctor
37   AliAnaGammaJetLeadCone & operator = (const AliAnaGammaJetLeadCone & g) ;//cpy assignment
38   virtual ~AliAnaGammaJetLeadCone() ; //virtual dtor
39   
40   TList * GetCreateOutputObjects();
41
42   void InitParameters();
43
44   void Print(const Option_t * opt) const;
45  
46   Bool_t   AreSeveralConeAndPtCuts() const {return fSeveralConeAndPtCuts ; }
47   void SetSeveralConeAndPtCuts(Bool_t several){fSeveralConeAndPtCuts = several ;}
48
49   Bool_t   IsPbPb() const {return fPbPb ; }
50   void SetPbPb(Bool_t opt){fPbPb = opt; }
51
52   Double_t GetEtaEMCALCut() const {return fEtaEMCALCut;}
53   Double_t GetPhiEMCALCut(Int_t i) const {return fPhiEMCALCut[i];}
54   void SetEtaEMCALCut(Double_t etacut) {fEtaEMCALCut = etacut ; }
55   void SetPhiEMCALCut(Double_t phi, Int_t i){fPhiEMCALCut[i] = phi; }
56
57   Double_t GetPtJetSelectionCut() const {return fPtJetSelectionCut ; }
58   Double_t GetJetRatioMaxCut() const {return fJetRatioMaxCut ; }
59   Double_t GetJetRatioMinCut() const {return fJetRatioMinCut ; }
60  
61   void SetPtJetSelectionCut(Double_t cut){fPtJetSelectionCut = cut; }
62   void SetJetSelection(UInt_t select){ fSelect= select ; }
63
64   Int_t       GetJetNCones() const {return fJetNCone ; }
65   Int_t       GetJetNPtThres() const {return fJetNPt ; }
66   Float_t    GetJetCone() const {return fJetCone ; }
67   Float_t    GetJetPtThreshold() const {return fJetPtThreshold ; }
68   Float_t    GetJetPtThresPbPb() const {return fJetPtThresPbPb ; }
69   Float_t    GetJetCones(Int_t i) const {return fJetCones[i] ; }
70   Float_t    GetJetPtThreshold(Int_t i) const {return fJetPtThres[i] ; }
71   TString   GetJetConeName(Int_t i) const {return fJetNameCones[i] ; }
72   TString   GetJetPtThresName(Int_t i) const {return fJetNamePtThres[i] ; }
73
74   void SetJetNCones(Int_t n){fJetNCone = n ; }
75   void SetJetNPtThresholds(Int_t n){fJetNPt = n ; }
76   void SetJetCones(Int_t i, Float_t cone, TString sc)
77     {fJetCones[i] = cone ; fJetNameCones[i] = sc; };
78   void SetCone(Float_t cone)
79     {fJetCone = cone; }
80   void SetJetPtThreshold(Float_t pt){fJetPtThreshold = pt; };
81   void SetJetPtThresPbPb(Float_t pt){fJetPtThresPbPb = pt; };
82   void SetJetPtThresholds(Int_t i,Float_t pt, TString spt){fJetPtThres[i] = pt ; 
83   fJetNamePtThres[i] = spt; };
84
85   void SetJetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
86     {fJetRatioMaxCut =ratiomax;  fJetRatioMinCut = ratiomin ; }
87   void SetJetCTSRatioCutRange(Double_t ratiomin, Double_t ratiomax)
88     {fJetCTSRatioMaxCut =ratiomax;  fJetCTSRatioMinCut = ratiomin ; }
89   
90   void MakeGammaCorrelation(TParticle * pGamma, TClonesArray * plCTS,   TClonesArray * plNe) ;
91   
92   private:
93
94   Double_t CalculateJetRatioLimit(const Double_t ptg, const Double_t *param, 
95                                   const Double_t *x);
96   void FillJetHistos(TClonesArray * pl, Double_t ptg, Double_t ptl,TString type, TString lastname);
97
98   Bool_t IsJetSelected(const Double_t ptg, const Double_t ptjet);
99
100   void MakeJet(TClonesArray * plCTS, TClonesArray * plNe, 
101                TParticle * pGamma, TParticle* pLeading, TString lastname); 
102   
103   void GetLeadingCharge(TClonesArray * pl, TParticle *pGamma, TParticle * pLeading) const ;
104   void GetLeadingPi0   (TClonesArray * pl, TParticle *pGamma, TParticle * pLeading)  ;
105   Bool_t GetLeadingParticle(TClonesArray * plCTS, TClonesArray * plNe, 
106                             TParticle *pGamma, TParticle * pLeading) ;
107   
108   void SetJet(TParticle * part, Bool_t & b, Float_t cone, Double_t eta, 
109               Double_t phi);
110
111   private:
112
113   Bool_t       fPbPb;          // PbPb event
114   Bool_t       fSeveralConeAndPtCuts;     //  To play with the jet cone size and pt th.
115
116   Double_t   fEtaEMCALCut ;         // Eta EMCAL acceptance
117   Double_t   fPhiEMCALCut[2] ; // Phi cut maximum
118
119   //Jet selection parameters
120   //Fixed cuts (old)
121   Double_t   fJetCTSRatioMaxCut ; // Leading particle/gamma Ratio cut maximum
122   Double_t   fJetCTSRatioMinCut ; // Leading particle/gamma Ratio cut minimum
123   Double_t   fJetRatioMaxCut ; // Jet/gamma Ratio cut maximum
124   Double_t   fJetRatioMinCut ; // Jet/gamma Ratio cut minimum
125
126   //Cuts depending on jet pt
127   Double_t fJetE1[2];    //Rec. jet energy parameters
128   Double_t fJetE2[2];    //Rec. jet energy parameters
129   Double_t fJetSigma1[2];//Rec. sigma of jet energy  parameters
130   Double_t fJetSigma2[2];//Rec. sigma of jet energy  parameters
131   Double_t fBkgMean[6];  //Background mean energy 
132   Double_t fBkgRMS[6];   //Background RMS
133   Double_t fJetXMin1[6]; //X Factor to set jet min limit for pp
134   Double_t fJetXMin2[6]; //X Factor to set jet min limit for PbPb
135   Double_t fJetXMax1[6]; //X Factor to set jet max limit for pp
136   Double_t fJetXMax2[6]; //X Factor to set jet max limit for PbPb
137
138   Int_t         fJetNCone ;            // Number of jet cones sizes
139   Int_t         fJetNPt   ;            // Number of jet particle pT threshold
140   Double_t   fJetCone  ;            // Jet cone sizes under study (!fSeveralConeAndPtCuts)
141   Double_t   fJetCones[10];         // Jet cone sizes under study (fSeveralConeAndPtCuts)
142   TString     fJetNameCones[10];     // String name of cone to append to histos
143   Double_t   fJetPtThreshold;       // Jet pT threshold under study(!fSeveralConeAndPtCuts)
144   Double_t   fJetPtThresPbPb;       // Jet pT threshold under study(!fSeveralConeAndPtCuts)
145   Double_t   fJetPtThres[10];       // Jet pT threshold under study(fSeveralConeAndPtCuts)
146   TString     fJetNamePtThres[10];   // String name of pt th to append to histos
147   Double_t   fPtJetSelectionCut; // Jet pt to change to low pt jets analysis
148   UInt_t       fSelect  ;   //kTRUE: Selects all jets, no limits.
149  
150   //Histograms
151   //Particle distributions
152   TH2F * fhPhiCharged  ; //Phi distribution of charged particles
153   TH2F * fhPhiNeutral   ;  //Phi distribution of neutral particles
154   TH2F * fhEtaCharged  ;  //Eta distribution of charged particles
155   TH2F * fhEtaNeutral   ;  //Eta distribution of neutral particles
156   //Leading particle distributions
157   TH2F * fhDeltaPhiGammaCharged  ;   //Difference of charged particle phi and prompt gamma phi as function of gamma pT
158   TH2F * fhDeltaPhiGammaNeutral   ;  //Difference of neutral particle phi and prompt gamma phi as function of gamma pT
159   TH2F * fhDeltaEtaGammaCharged  ;  //Difference of charged particle eta and prompt gamma eta as function of gamma pT
160   TH2F * fhDeltaEtaGammaNeutral  ;   //Difference of charged particle eta and prompt gamma eta as function of charged pT
161
162   TH2F * fhAnglePairLeading  ; //Aperture angle of decay photons of leading pi0
163   TH2F * fhInvMassPairLeading  ; //Invariant mass of decay photons of leading pi0
164   TH2F * fhChargedRatio  ; //Ratio of leading charge and prompt gamma
165   TH2F * fhNeutralRatio   ;  //Ratio of leading neutral and prompt gamma
166   TH1F * fhNBkg   ; //Bakground multiplicity
167   TH2F * fhNLeading  ; //Accepted leading particle pt distribution
168
169   //Jet distributions
170   //Fixed cone and pt threshold
171   TH1F * fhNJet  ; //Accepted reconstructed Jet pt distribution 
172   TH2F * fhJetRatio  ; //Ratio of pt jet and pt gamma
173   TH2F * fhJetPt   ; //reconstructed pt jet vs prompt pt gamma
174   TH2F * fhBkgRatio   ; //leading pt bakground / pt gamma 
175   TH2F * fhBkgPt  ; //leading pt bakground vs pt gamma 
176   TH2F * fhJetFragment  ; //Accepted reconstructed jet fragmentation function
177   TH2F * fhBkgFragment  ;  //Background "fragmentation function"
178   TH2F * fhJetPtDist  ; //Jet particle pt distribution
179   TH2F * fhBkgPtDist  ; //Background jet particle pt distribution
180
181   //Variable cone and pt threshold
182   TH2F * fhJetRatios[5][5]; //Ratio of pt jet and pt gamma
183   TH2F * fhJetPts[5][5]; //reconstructed pt jet vs prompt pt gamma
184   TH2F * fhBkgRatios[5][5];  //leading pt bakground / pt gamma 
185   TH2F * fhBkgPts[5][5]; //leading pt bakground vs pt gamma 
186   
187   TH2F * fhNLeadings[5][5];  //Accepted leading particle pt distribution
188   TH1F * fhNJets[5][5]; //Accepted reconstructed Jet pt distribution 
189   TH1F * fhNBkgs[5][5]; //Bakground multiplicity
190   
191   TH2F * fhJetFragments[5][5];//Accepted reconstructed jet fragmentation function
192   TH2F * fhBkgFragments[5][5];  //Background "fragmentation function"
193   TH2F * fhJetPtDists[5][5]; //Jet particle pt distribution
194   TH2F * fhBkgPtDists[5][5]; //Background jet particle pt distribution
195   
196
197   ClassDef(AliAnaGammaJetLeadCone,1)
198 } ;
199  
200
201 #endif //ALIANAGAMMAJETLEADCONE_H
202
203
204