1 #ifndef ALIANAGAMMAJET_H
2 #define ALIANAGAMMAJET_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 /* History of cvs commits:
13 //_________________________________________________________________________
14 // Class for the analysis of gamma-jet correlations.
15 // Basically it seaches for a prompt photon in the Calorimeters acceptance,
16 // if so we construct a jet around the highest pt particle in the opposite
17 // side in azimuth. This jet has to fullfill several conditions to be
18 // accepted. Then the fragmentation function of this jet is constructed
19 // Class created from old AliPHOSGammaJet
21 //*-- Author: Gustavo Conesa (INFN-LNF)
23 // --- ROOT system ---
31 #include "AliAnaGammaDirect.h"
35 class AliAnaGammaJet : public AliAnaGammaDirect {
39 AliAnaGammaJet(const char *name) ; // default ctor
40 AliAnaGammaJet(const AliAnaGammaJet & gj) ; // cpy ctor
41 virtual ~AliAnaGammaJet() ; //virtual dtor
42 virtual void Exec(Option_t * opt = "") ;
43 virtual void Init(Option_t * opt = "");
44 virtual void Terminate(Option_t * opt = "");
46 Bool_t AreJetOnlyInCTS() const {return fJetsOnlyInCTS ; }
47 Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
48 Double_t GetEtaEMCALCut() const {return fEtaEMCALCut;}
49 Double_t GetPhiEMCALCut(Int_t i) const {return fPhiEMCALCut[i];}
50 Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
51 Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
52 Double_t GetPhiMaxCut() const {return fPhiMaxCut ; }
53 Double_t GetPhiMinCut() const {return fPhiMinCut ; }
54 Double_t GetPtJetSelectionCut() const {return fPtJetSelectionCut ; }
55 Double_t GetJetRatioMaxCut() const {return fJetRatioMaxCut ; }
56 Double_t GetJetRatioMinCut() const {return fJetRatioMinCut ; }
57 Double_t GetRatioMaxCut() const {return fRatioMaxCut ; }
58 Double_t GetRatioMinCut() const {return fRatioMinCut ; }
59 Int_t GetNCones() const {return fNCone ; }
60 Int_t GetNPtThres() const {return fNPt ; }
61 Float_t GetCone() const {return fCone ; }
62 Float_t GetPtThreshold() const {return fPtThreshold ; }
63 Float_t GetCones(Int_t i) const {return fCones[i] ; }
64 Float_t GetPtThreshold(Int_t i) const {return fPtThres[i] ; }
65 TString GetConeName(Int_t i) const {return fNameCones[i] ; }
66 TString GetPtThresName(Int_t i) const {return fNamePtThres[i] ; }
68 Bool_t AreSeveralConeAndPtCuts() const {return fSeveralConeAndPtCuts ; }
69 Bool_t IsPbPb() const {return fPbPb ; }
72 void Print(const Option_t * opt)const;
74 void SetAngleMaxParam(Int_t i, Double_t par)
75 {fAngleMaxParam.AddAt(par,i) ; }
76 void SetSeveralConeAndPtCuts(Bool_t several){fSeveralConeAndPtCuts = several ;}
77 void SetEtaEMCALCut(Double_t etacut) {fEtaEMCALCut = etacut ; }
78 void SetPhiEMCALCut(Double_t phi, Int_t i){fPhiEMCALCut[i] = phi; }
79 void SetPbPb(Bool_t opt){fPbPb = opt; }
80 void SetNCones(Int_t n){fNCone = n ; }
81 void SetNPtThresholds(Int_t n){fNPt = n ; }
82 void SetCones(Int_t i, Float_t cone, TString sc)
83 {fCones[i] = cone ; fNameCones[i] = sc; };
84 void SetCone(Float_t cone)
86 void SetPtThreshold(Float_t pt){fPtThreshold = pt; };
87 void SetPtThresholds(Int_t i,Float_t pt, TString spt){fPtThres[i] = pt ;
88 fNamePtThres[i] = spt; };
89 void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
90 {fInvMassMaxCut =invmassmax; fInvMassMinCut =invmassmin;}
91 void SetJetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
92 {fJetRatioMaxCut =ratiomax; fJetRatioMinCut = ratiomin ; }
93 void SetJetsOnlyInCTS(Bool_t opt){fJetsOnlyInCTS = opt; }
94 void SetJetCTSRatioCutRange(Double_t ratiomin, Double_t ratiomax)
95 {fJetCTSRatioMaxCut =ratiomax; fJetCTSRatioMinCut = ratiomin ; }
96 void SetPhiCutRange(Double_t phimin, Double_t phimax)
97 {fPhiMaxCut =phimax; fPhiMinCut =phimin;}
98 void SetPtJetSelectionCut(Double_t cut){fPtJetSelectionCut = cut; }
99 void SetJetSelection(UInt_t select){ fSelect= select ; }
100 void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
101 {fRatioMaxCut = ratiomax; fRatioMinCut = ratiomin;}
106 Double_t CalculateJetRatioLimit(const Double_t ptg, const Double_t *param,
109 void FillJetHistos(TClonesArray * pl, Double_t ptg, Double_t ptl,TString type, TString lastname);
111 Bool_t IsAngleInWindow(const Float_t angle, const Float_t e);
112 Bool_t IsJetSelected(const Double_t ptg, const Double_t ptjet);
114 void MakeJet(TClonesArray * particleList, TParticle * pGamma, TParticle* pLeading, TString lastname);
116 void GetLeadingCharge(TClonesArray * pl, TParticle *pGamma, TParticle * pLeading) const ;
117 void GetLeadingPi0 (TClonesArray * pl, TParticle *pGamma, TParticle * pLeading) ;
118 Bool_t GetLeadingParticle(TClonesArray * plCTS, TClonesArray * plNe, TParticle *pGamma, TParticle * pLeading) ;
121 void SetJet(TParticle * part, Bool_t & b, Float_t cone, Double_t eta,
126 // TTree *fChain ; //!pointer to the analyzed TTree or TChain
127 //AliESD *fESD ; //! Declaration of leave types
129 Bool_t fSeveralConeAndPtCuts; // To play with the jet cone size and pt th.
130 //Bool_t fPrintInfo ; //Print most interesting information on screen
131 // and give interesting information
133 Bool_t fPbPb; // PbPb event
134 Bool_t fJetsOnlyInCTS ; // Jets measured only in TPC+ITS.
135 Double_t fEtaEMCALCut ; // Eta EMCAL acceptance
136 Double_t fPhiEMCALCut[2] ; // Phi cut maximum
137 Double_t fPhiMaxCut ; // Phi EMCAL maximum acceptance
138 Double_t fPhiMinCut ; // Phi EMCAL minimum acceptance
139 // Double_t fGammaPtCut ; // Min pt in Calorimeter
140 Double_t fInvMassMaxCut ; // Invariant Mass cut maximum
141 Double_t fInvMassMinCut ; // Invariant Masscut minimun
142 Double_t fRatioMaxCut ; // Leading particle/gamma Ratio cut maximum
143 Double_t fRatioMinCut ; // Leading particle/gamma Ratio cut minimum
145 //Jet selection parameters
147 Double_t fJetCTSRatioMaxCut ; // Leading particle/gamma Ratio cut maximum
148 Double_t fJetCTSRatioMinCut ; // Leading particle/gamma Ratio cut minimum
149 Double_t fJetRatioMaxCut ; // Jet/gamma Ratio cut maximum
150 Double_t fJetRatioMinCut ; // Jet/gamma Ratio cut minimum
152 //Cuts depending on jet pt
153 Double_t fJetE1[2]; //Rec. jet energy parameters
154 Double_t fJetE2[2]; //Rec. jet energy parameters
155 Double_t fJetSigma1[2];//Rec. sigma of jet energy parameters
156 Double_t fJetSigma2[2];//Rec. sigma of jet energy parameters
157 Double_t fBkgMean[6]; //Background mean energy
158 Double_t fBkgRMS[6]; //Background RMS
159 Double_t fJetXMin1[6]; //X Factor to set jet min limit for pp
160 Double_t fJetXMin2[6]; //X Factor to set jet min limit for PbPb
161 Double_t fJetXMax1[6]; //X Factor to set jet max limit for pp
162 Double_t fJetXMax2[6]; //X Factor to set jet max limit for PbPb
164 Int_t fNCone ; // Number of jet cones sizes
165 Int_t fNPt ; // Number of jet particle pT threshold
166 Double_t fCone ; // Jet cone sizes under study (!fSeveralConeAndPtCuts)
167 Double_t fCones[10]; // Jet cone sizes under study (fSeveralConeAndPtCuts)
168 TString fNameCones[10]; // String name of cone to append to histos
169 Double_t fPtThreshold; // Jet pT threshold under study(!fSeveralConeAndPtCuts)
170 Double_t fPtThres[10]; // Jet pT threshold under study(fSeveralConeAndPtCuts)
171 Double_t fPtJetSelectionCut; // Jet pt to change to low pt jets analysis
172 TObjArray *fOutputContainer ; //! output data container
173 TString fNamePtThres[10]; // String name of pt th to append to histos
174 TArrayD fAngleMaxParam ; //Max opening angle selection parameters
175 UInt_t fSelect ; //kTRUE: Selects all jets, no limits.
176 //TString fCalorimeter ; //PHOS or EMCAL detects Gamma
177 //Bool_t fEMCALPID ; //Fill EMCAL particle lists with particles with corresponding pid
178 //Bool_t fPHOSPID; //Fill PHOS particle lists with particles with corresponding pid
182 TH2F * fhChargeRatio ;
184 TH2F * fhDeltaPhiCharge ;
185 TH2F * fhDeltaPhiPi0 ;
186 TH2F * fhDeltaEtaCharge ;
187 TH2F * fhDeltaEtaPi0 ;
189 TH2F * fhAnglePairAccepted ;
190 TH2F * fhAnglePairNoCut ;
191 TH2F * fhAnglePairLeadingCut ;
192 TH2F * fhAnglePairAngleCut ;
193 TH2F * fhAnglePairAllCut ;
194 TH2F * fhAnglePairLeading ;
195 TH2F * fhInvMassPairNoCut ;
196 TH2F * fhInvMassPairLeadingCut ;
197 TH2F * fhInvMassPairAngleCut ;
198 TH2F * fhInvMassPairAllCut ;
199 TH2F * fhInvMassPairLeading ;
207 TH2F * fhJetFragment ;
208 TH2F * fhBkgFragment ;
212 TH2F * fhJetRatios[5][5];
213 TH2F * fhJetPts[5][5];
214 TH2F * fhBkgRatios[5][5];
215 TH2F * fhBkgPts[5][5];
217 TH2F * fhNLeadings[5][5];
218 TH1F * fhNJets[5][5];
219 TH1F * fhNBkgs[5][5];
221 TH2F * fhJetFragments[5][5];
222 TH2F * fhBkgFragments[5][5];
223 TH2F * fhJetPtDists[5][5];
224 TH2F * fhBkgPtDists[5][5];
226 ClassDef(AliAnaGammaJet,0)
230 #endif //ALIANAGAMMAJET_H