]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/AliAnaGammaJetLeadCone.h
First step towards reading of the new RCU firmware trailer. Thanks to Luciano we...
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaJetLeadCone.h
CommitLineData
bdcfac30 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$
4b707925 10 * Revision 1.2 2007/08/17 12:40:04 schutz
11 * New analysis classes by Gustavo Conesa
12 *
bdcfac30 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
3bb2c538 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//
bdcfac30 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
31class AliAnaGammaJetLeadCone : public AliAnaGammaCorrelation {
32
33public:
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
3bb2c538 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
bdcfac30 186
3bb2c538 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
bdcfac30 190
3bb2c538 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
bdcfac30 195
196
4b707925 197 ClassDef(AliAnaGammaJetLeadCone,1)
bdcfac30 198} ;
199
200
201#endif //ALIANAGAMMAJETLEADCONE_H
202
203
204