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