New Gamma package
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaHadron.h
1 #ifndef ALIANAGAMMAHADRON_H
2 #define ALIANAGAMMAHADRON_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 //  Class for the analysis of gamma-jet correlations.     
15 //  Basically it seaches for a prompt photon in the Calorimeters acceptance, 
16 //  if so we construct a jet around the highest pt particle in the opposite 
17 //  side in azimuth. This jet has to fullfill several conditions to be 
18 //  accepted. Then the fragmentation function of this jet is constructed 
19 //  Class created from old AliPHOSGammaPion
20
21 //*-- Author: Gustavo Conesa (INFN-LNF)
22
23 // --- ROOT system ---
24 #include <TROOT.h>
25 #include <TChain.h>
26 #include "TTask.h"
27 #include "TArrayD.h"
28 #include "TChain.h"
29 #include <TH2F.h>
30 #include <TTree.h> 
31 #include "AliAnaGammaDirect.h" 
32
33 class AliESD ; 
34  
35 class AliAnaGammaHadron : public AliAnaGammaDirect {
36
37 public: 
38
39   AliAnaGammaHadron(const char *name) ; // default ctor
40   AliAnaGammaHadron(const AliAnaGammaHadron & gj) ; // cpy ctor
41   virtual ~AliAnaGammaHadron() ; //virtual dtor
42   virtual void Exec(Option_t * opt = "") ;
43   virtual void Init(Option_t * opt = "");
44   virtual void Terminate(Option_t * opt = "");
45  
46   Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
47   Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
48   Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
49   Double_t GetPhiMaxCut() const {return fPhiMaxCut ; }
50   Double_t GetPhiMinCut() const {return fPhiMinCut ; }
51   Float_t    GetMinPtPion() const {return fMinPtPion ; }
52
53   void Print(const Option_t * opt)const;
54   
55   void SetAngleMaxParam(Int_t i, Double_t par)
56   {fAngleMaxParam.AddAt(par,i) ; }
57   void SetMinPtPion(Float_t pt){fMinPtPion = pt; };
58   void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
59     {fInvMassMaxCut =invmassmax;  fInvMassMinCut =invmassmin;}  
60   void SetPhiCutRange(Double_t phimin, Double_t phimax)
61   {fPhiMaxCut =phimax;  fPhiMinCut =phimin;}
62
63   private:
64
65   Bool_t IsAngleInWindow(const Float_t angle, const Float_t e);
66   void MakeGammaChargedCorrelation(TClonesArray * pl, TParticle *pGamma) const ;
67   void MakeGammaNeutralCorrelation(TClonesArray * pl, TParticle *pGamma)  ;
68   void MakeHistos() ;
69
70  private:
71
72   //  TTree       *fChain ;   //!pointer to the analyzed TTree or TChain
73   //AliESD       *fESD ;     //! Declaration of leave types
74
75   Double_t   fPhiMaxCut ;      // 
76   Double_t   fPhiMinCut ;      // 
77   // Double_t   fGammaPtCut ;  // Min pt in Calorimeter
78   Double_t   fInvMassMaxCut ;  // Invariant Mass cut maximum
79   Double_t   fInvMassMinCut ;  // Invariant Masscut minimun
80  
81   Double_t   fMinPtPion;       // Minimum pt of pion
82   TObjArray  *fOutputContainer ; //! output data container
83   TString     fNamePtThres[10];   // String name of pt th to append to histos
84   TArrayD    fAngleMaxParam ; //Max opening angle selection parameters
85   //TString     fCalorimeter ; //PHOS or EMCAL detects Gamma
86   //Bool_t      fEMCALPID ; //Fill EMCAL particle lists with particles with corresponding pid
87   //Bool_t      fPHOSPID;   //Fill PHOS particle lists with particles with corresponding pid
88
89   //Histograms
90
91   TH2F * fhPhiCharged  ; 
92   TH2F * fhPhiNeutral   ; 
93   TH2F * fhEtaCharged  ; 
94   TH2F * fhEtaNeutral   ; 
95   TH2F * fhDeltaPhiGammaCharged  ;  
96   TH2F * fhDeltaPhiGammaNeutral   ; 
97   TH2F * fhDeltaEtaGammaCharged  ; 
98   TH2F * fhDeltaEtaGammaNeutral  ; 
99
100   TH2F * fhCorrelationGammaNeutral  ; 
101   TH2F * fhCorrelationGammaCharged  ; 
102
103   TH2F * fhAnglePairAccepted  ; 
104   TH2F * fhAnglePairNoCut  ; 
105   TH2F * fhAnglePairAzimuthCut  ; 
106   TH2F * fhAnglePairOpeningAngleCut   ; 
107   TH2F * fhAnglePairAllCut   ; 
108   TH2F * fhInvMassPairNoCut    ; 
109   TH2F * fhInvMassPairAzimuthCut  ; 
110   TH2F * fhInvMassPairOpeningAngleCut  ; 
111   TH2F * fhInvMassPairAllCut   ; 
112   
113   ClassDef(AliAnaGammaHadron,0)
114 } ;
115  
116
117 #endif //ALIANAGAMMAHADRON_H
118
119
120