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