]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/AliAnaGammaJetLeadCone.h
New analysis classes by Gustavo Conesa
[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$
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
24class AliAnaGammaJetLeadCone : public AliAnaGammaCorrelation {
25
26public:
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