1 #ifndef ALIANAGAMMADIRECT_H
2 #define ALIANAGAMMADIRECT_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:
10 * Revision 1.4.4.3 2007/07/26 10:32:09 schutz
11 * new analysis classes in the the new analysis framework
16 //_________________________________________________________________________
18 // Class for the analysis of prompt gamma, isolation cut.
20 // Class created from old AliPHOSGammaJet
21 // (see AliRoot versions previous Release 4-09)
23 //*-- Author: Gustavo Conesa (INFN-LNF)
25 // --- ROOT system ---
26 #include <TParticle.h>
27 #include <TClonesArray.h>
33 class AliAnaGammaDirect : public TObject {
37 AliAnaGammaDirect() ; // default ctor
38 AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
39 AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
40 virtual ~AliAnaGammaDirect() ; //virtual dtor
42 enum anatype_t {kNoIC, kPtIC, kSumPtIC, kSeveralIC};
44 Double_t GetMinGammaPt() const {return fMinGammaPt ; }
45 Float_t GetConeSize() const {return fConeSize ; }
46 Float_t GetPtThreshold() const {return fPtThreshold ; }
47 Float_t GetPtSumThres() const {return fPtSumThreshold ; }
48 Int_t GetICMethod() const {return fICMethod ; }
50 TList * GetCreateOutputObjects();
51 void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TParticle * pGamma, Bool_t &Is) const;
53 void MakeSeveralICAnalysis(TClonesArray * plCalo, TClonesArray * plCTS);
54 void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe,
55 TParticle *pCandidate, Int_t index,
56 Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ;
58 void Print(const Option_t * opt)const;
60 void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;}
61 void SetConeSize(Float_t r) {fConeSize = r ; }
62 void SetPtThreshold(Float_t pt) {fPtThreshold = pt; };
63 void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; };
64 void SetICMethod(Int_t i ) {fICMethod = i ; }
66 Int_t GetNCones() const {return fNCones ; }
67 Int_t GetNPtThresholds() const {return fNPtThres ; }
68 Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; }
69 Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; }
71 void InitParameters();
73 void SetNCones(Int_t ncs) {fNCones = ncs ; }
74 void SetNPtThresholds(Int_t npt) {fNPtThres = npt; }
75 void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; }
76 void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }
81 Double_t fMinGammaPt ; // Min pt in Calorimeter
82 Float_t fConeSize ; //Size of the isolation cone
83 Float_t fPtThreshold ; //Mimium pt of the particles in the cone to set isolation
84 Float_t fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation
85 Int_t fICMethod ; //Isolation cut method to be used
86 // kNoIC: No isolation
87 // kPtIC: Pt threshold method
88 // kSumPtIC: Cone pt sum method
89 // kSeveralIC: Analysis for several cuts
91 TH1F * fhNGamma ; //Number of (isolated) gamma identified
92 TH2F * fhPhiGamma ; // Phi of identified gamma
93 TH2F * fhEtaGamma ; // eta of identified gamma
95 //Prompt photon analysis data members for multiple cones and pt thresholds kIsolationCut
96 Int_t fNCones ; //Number of cone sizes to test
97 Int_t fNPtThres ; //Number of ptThres to test
98 Float_t fConeSizes[10] ; // Array with cones to test
99 Float_t fPtThresholds[10] ; // Array with pt thresholds to test
101 TH1F* fhPtThresIsolated[20][20]; // Isolated gamma with pt threshold
102 TH2F* fhPtSumIsolated[20] ; // Isolated gamma with threshold on cone pt sume
104 ClassDef(AliAnaGammaDirect,0)
108 #endif //ALIANAGAMMADIRECT_H