]>
Commit | Line | Data |
---|---|---|
f9cea31c | 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 */ | |
5 | /* $Id$ */ | |
6 | ||
7 | /* History of cvs commits: | |
8 | * | |
9 | * $Log$ | |
10 | * | |
11 | */ | |
12 | ||
13 | //_________________________________________________________________________ | |
14 | ||
15 | // Class for the analysis of gamma (gamma-jet, | |
16 | // gamma-hadron(Arleo, TODO)) | |
17 | // This class only contains 3 methods: one to fill lists of particles (ESDs) comming | |
18 | // from the CTS (ITS+TPC) and the calorimeters: The other search in the | |
19 | // corresponing calorimeter for the highest energy cluster, identify it as | |
20 | // prompt photon(Shower Shape (done) and Isolation Cut (TODO in new class?)). | |
21 | // | |
22 | // Class created from old AliPHOSGammaJet | |
23 | // (see AliRoot versions previous Release 4-09) | |
24 | ||
25 | //*-- Author: Gustavo Conesa (INFN-LNF) | |
26 | ||
27 | // --- ROOT system --- | |
28 | #include <TROOT.h> | |
29 | #include <TChain.h> | |
30 | #include "TTask.h" | |
31 | #include "TArrayD.h" | |
32 | #include "TChain.h" | |
33 | #include <TH2F.h> | |
34 | #include <TTree.h> | |
35 | #include <TParticle.h> | |
36 | #include "AliAnalysisTask.h" | |
37 | ||
38 | class AliESD ; | |
39 | ||
40 | class AliAnaGammaDirect : public AliAnalysisTask { | |
41 | ||
42 | public: | |
43 | ||
44 | AliAnaGammaDirect(const char *name) ; // default ctor | |
45 | AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor | |
46 | virtual ~AliAnaGammaDirect() ; //virtual dtor | |
47 | virtual void Exec(Option_t * opt = "") ; | |
48 | virtual void Init(Option_t * opt = ""); | |
49 | virtual void Terminate(Option_t * opt = ""); | |
50 | ||
51 | TTree * GetChain() const {return fChain ; } | |
52 | AliESD * GetESD() const {return fESD ; } | |
53 | TObjArray * GetOutputContainer() const {return fOutputContainer ; } | |
54 | Double_t GetMinGammaPt() const {return fMinGammaPt ; } | |
55 | TString GetCalorimeter() const {return fCalorimeter ; } | |
56 | Bool_t GetPrintInfo() const {return fPrintInfo ; } | |
57 | Float_t GetConeSize() const {return fConeSize ; } | |
58 | Float_t GetPtThreshold() const {return fPtThreshold ; } | |
59 | Float_t GetPtSumThres() const {return fPtSumThreshold ; } | |
60 | Int_t GetICMethod() const {return fMakeICMethod ; } | |
61 | ||
62 | Bool_t IsEMCALPIDOn() const {return fEMCALPID ; } | |
63 | Bool_t IsPHOSPIDOn() const {return fPHOSPID ; } | |
64 | ||
65 | void Print(const Option_t * opt)const; | |
66 | ||
67 | void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;} | |
68 | void SetCalorimeter(TString calo){ fCalorimeter= calo ; } | |
69 | void SetPrintInfo(Bool_t print){ fPrintInfo = print ; } | |
70 | void SetConeSize(Float_t r) {fConeSize = r ; } | |
71 | void SetPtThreshold(Float_t pt) {fPtThreshold = pt; }; | |
72 | void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; }; | |
73 | void SetICMethod(Int_t i ) {fMakeICMethod = i ; } | |
74 | ||
75 | void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; } | |
76 | void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }; | |
77 | ||
78 | void SetEMCALPIDOn(Bool_t pid){ fEMCALPID= pid ; } | |
79 | void SetPHOSPIDOn(Bool_t pid){ fPHOSPID= pid ; } | |
80 | ||
81 | void CreateParticleList(TClonesArray * particleList, | |
82 | TClonesArray * plCh, TClonesArray * plNe, | |
83 | TClonesArray * plNePHOS); | |
84 | ||
85 | ||
86 | void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TParticle * pGamma, Bool_t &Is) const; | |
87 | ||
88 | void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe, | |
89 | TParticle *pCandidate, Int_t index, | |
90 | Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ; | |
91 | ||
92 | void MakeHistos() ; | |
93 | ||
94 | ||
95 | private: | |
96 | ||
97 | TTree *fChain ; //!pointer to the analyzed TTree or TChain | |
98 | AliESD *fESD ; //! Declaration of leave types | |
99 | TObjArray *fOutputContainer ; //! output data container | |
100 | Bool_t fPrintInfo ; //Print most interesting information on screen | |
101 | Double_t fMinGammaPt ; // Min pt in Calorimeter | |
102 | TString fCalorimeter ; //PHOS or EMCAL detects Gamma | |
103 | Bool_t fEMCALPID ;//Fill EMCAL particle lists with particles with corresponding pid | |
104 | Bool_t fPHOSPID; //Fill PHOS particle lists with particles with corresponding pid | |
105 | Float_t fConeSize ; //Size of the isolation cone | |
106 | Float_t fPtThreshold ; //Mimium pt of the particles in the cone to set isolation | |
107 | Float_t fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation | |
108 | Int_t fNCones ; //Number of cone sizes to test | |
109 | Int_t fNPtThres ; //Number of ptThres to test | |
110 | Float_t fConeSizes[10] ; // Arrat with cones to test | |
111 | Float_t fPtThresholds[10] ; // Array with pt thresholds to test | |
112 | Int_t fMakeICMethod ; //Isolation cut method to be used | |
113 | // 0: No isolation | |
114 | // 1: Pt threshold method | |
115 | // 2: Cone pt sum method | |
116 | // 3: Study both methods for several cones and pt. | |
117 | //Histograms | |
118 | TH1F * fhNGamma ; | |
119 | TH2F * fhPhiGamma ; | |
120 | TH2F * fhEtaGamma ; | |
121 | TH1F * fhPtCandidate ; | |
122 | TH1F* fhPtThresIsolated[10][10] ; | |
123 | TH2F* fhPtSumIsolated[10] ; | |
124 | ||
125 | ClassDef(AliAnaGammaDirect,0) | |
126 | } ; | |
127 | ||
128 | ||
129 | #endif //ALIANAGAMMADIRECT_H | |
130 | ||
131 | ||
132 |