Updated buspatch and DDL numbers for station 345 and started buspatch at 1
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaDirect.h
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  * Revision 1.3  2007/03/08 10:24:32  schutz
11  * Coding convention
12  *
13  * Revision 1.2  2007/02/09 18:40:40  schutz
14  * B\bNew version from Gustavo
15  *
16  * Revision 1.1  2007/01/23 17:17:29  schutz
17  * New Gamma package
18  *
19  *
20  */
21
22 //_________________________________________________________________________
23
24 // Class for the analysis of gamma 
25 // This class only contains 3 methods: one to fill lists of particles (ESDs) comming 
26 //  from the CTS (ITS+TPC) and the calorimeters; the other search in the 
27 //  corresponing calorimeter for the highest energy cluster, identify it as 
28 //  prompt photon(Shower Shape and Isolation Cut), the last method does the 
29 //  isolation selection
30 //
31 //  Class created from old AliPHOSGammaJet
32 //  (see AliRoot versions previous Release 4-09)
33
34 //*-- Author: Gustavo Conesa (INFN-LNF)
35
36 // --- ROOT system ---
37 #include <TParticle.h> 
38 #include <TClonesArray.h> 
39 #include <TTree.h> 
40 #include "AliAnalysisTask.h" 
41 #include <TH2F.h>
42
43 class AliESD ; 
44  
45 class AliAnaGammaDirect : public AliAnalysisTask {
46
47 public: 
48
49   AliAnaGammaDirect(const char *name) ; // default ctor
50   AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
51   AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
52   virtual ~AliAnaGammaDirect() ; //virtual dtor
53
54   virtual void Exec(Option_t * opt = "") ;
55   virtual void ConnectInputData(Option_t *);
56   virtual void CreateOutputObjects();
57   virtual void Terminate(Option_t * opt = "");
58   
59   void InitParameters();
60   TTree *     GetChain()                const {return fChain ; }
61   AliESD *    GetESD()                  const {return fESD ; }
62   TObjArray * GetOutputContainer()      const {return fOutputContainer ; }
63   Double_t  GetMinGammaPt()    const {return fMinGammaPt ; }
64   TString    GetCalorimeter()       const {return fCalorimeter ; }
65   Bool_t      GetPrintInfo()           const {return fPrintInfo ; }
66   Float_t     GetConeSize()          const {return fConeSize ; }
67   Float_t     GetPtThreshold()      const {return fPtThreshold ; }
68   Float_t     GetPtSumThres()     const {return fPtSumThreshold ; }
69   Int_t        GetICMethod()          const {return fMakeICMethod ; }
70
71   Bool_t   IsEMCALPIDOn() const {return fEMCALPID ; }
72   Bool_t   IsPHOSPIDOn() const {return fPHOSPID ; }
73   Float_t  GetEMCALPhotonWeight() { return  fEMCALPhotonWeight  ; }
74   Float_t  GetEMCALPi0Weight()    {  return fEMCALPi0Weight  ; }
75   Float_t  GetPHOSPhotonWeight()  {  return fPHOSPhotonWeight  ; }
76
77   void Print(const Option_t * opt)const;
78
79   void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;}
80   void SetCalorimeter(TString calo){ fCalorimeter= calo ; }
81   void SetPrintInfo(Bool_t print){ fPrintInfo = print ; }
82   void SetConeSize(Float_t r)              {fConeSize = r ; }
83   void SetPtThreshold(Float_t pt)        {fPtThreshold = pt; };
84   void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; };
85   void SetICMethod(Int_t i )          {fMakeICMethod = i ; }
86   
87   void SetEMCALPIDOn(Bool_t pid){ fEMCALPID= pid ; }
88   void SetPHOSPIDOn(Bool_t pid){ fPHOSPID= pid ; }
89   void SetEMCALPhotonWeight(Float_t  w){  fEMCALPhotonWeight = w ; }
90   void SetEMCALPi0Weight(Float_t  w){  fEMCALPi0Weight = w ; }
91   void SetPHOSPhotonWeight(Float_t  w){  fPHOSPhotonWeight = w ; }
92
93   void CreateParticleList(TClonesArray * particleList, 
94                           TClonesArray * plCh, TClonesArray * plNe, 
95                           TClonesArray * plNePHOS);
96   
97   
98   void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TParticle * pGamma, Bool_t &Is)  const;
99   
100   void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe, 
101                         TParticle *pCandidate, Int_t index, 
102                         Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ;  
103   
104  private:
105
106   TTree       *fChain ;   //!pointer to the analyzed TTree or TChain
107   AliESD       *fESD ;     //! Declaration of leave types
108   TObjArray  *fOutputContainer ; //! output data container
109   Bool_t        fPrintInfo ;      //Print most interesting information on screen
110   Double_t    fMinGammaPt ;  // Min pt in Calorimeter
111   TString      fCalorimeter ; //PHOS or EMCAL detects Gamma
112   Bool_t       fEMCALPID ;//Fill EMCAL particle lists with particles with corresponding pid
113   Bool_t       fPHOSPID;  //Fill PHOS particle lists with particles with corresponding pid
114   Float_t      fEMCALPhotonWeight; //Bayesian PID weight for photons in EMCAL 
115   Float_t      fEMCALPi0Weight;  //Bayesian PID weight for pi0 in EMCAL 
116   Float_t      fPHOSPhotonWeight; //Bayesian PID weight for photons in PHOS 
117   Float_t      fConeSize ; //Size of the isolation cone 
118   Float_t      fPtThreshold ; //Mimium pt of the particles in the cone to set isolation
119   Float_t      fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation  
120   Int_t        fMakeICMethod ; //Isolation cut method to be used
121                                            // 0: No isolation
122                                            // 1: Pt threshold method
123                                            // 2: Cone pt sum method
124   //Histograms  
125   TH1F * fhNGamma    ; 
126   TH2F * fhPhiGamma    ; 
127   TH2F * fhEtaGamma    ; 
128
129   ClassDef(AliAnaGammaDirect,0)
130 } ;
131  
132
133 #endif //ALIANAGAMMADIRECT_H
134
135
136