Histograms in AliAnalysisTaskPi0.cxx were updated. Proset is added.
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_pp_pi0 / AliCaloPhoton.h
1 #ifndef ALICALOPHOTON_H
2 #define ALICALOPHOTON_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 //_________________________________________________________________________
8 // Class to fill two-photon invariant mass hisograms
9 // to be used to extract pi0 raw yield.
10 //
11 //-- Author: Dmitri Peressounko (RRC "KI")
12 // This class contains all (minimal) necessary information about photon to 
13 // calculate invarint mass distr for pi0
14 // and for tagging and isolation analysis
15
16
17 #include "TLorentzVector.h"
18
19 class AliCaloPhoton :public TLorentzVector{
20   
21  public:
22   
23   AliCaloPhoton() ;
24   AliCaloPhoton(Double_t px,Double_t py,Double_t pz,Double_t E) ; 
25   ~AliCaloPhoton(){} 
26
27    const TLorentzVector * GetMomV2()const{return &fMomV2;}
28    Double_t EMCx(void)const {return fZ;}
29    Double_t EMCy(void)const {return fZ;}
30    Double_t EMCz(void)const {return fZ;}
31    Int_t    Module(void)const{return fModule;}
32    Int_t    DistToBad()const  {return fBadDist ;}
33    Int_t    GetNCells()const { return fNCells ;}
34
35    Bool_t   IsDispOK(void)const {return fDisp;}
36    Bool_t   IsTOFOK(void)const {return fTof;}
37    Bool_t   IsCPVOK(void)const {return fCpv;}
38    Bool_t   IsIsolated(void)const{return fIsIsolated ;}
39    Bool_t   IsTagged(void) const{return fIsTagged ;} //check if this photon is tagged
40    Bool_t   IsTagged(Int_t i,Int_t k) const{return fIsTagged_reg[i][k] ;} //check if this photon is tagged
41    Bool_t   IsPIDOK(const Int_t ipid) const ;
42    Bool_t   IsPhoton()const {return fIsPhoton ;} //check if this particle is indeed photon (this bit is set with MC stack info
43    Int_t    IsConvertedPartner(){ if(fConvertedPartner == 1) return 1; else return 0; }
44 //ConvertedPair bit is set for events when photon's FirstMother is not e+/e- but pi0, but after pi0 decayed
45 //there is conversion of one or both of the photons and results of their conversion are registered by PHOS.
46 //This process is marked as tagged photons but actually the energy of photons is changed and pi0 can't be
47 //correctly found.
48    Int_t IsConverted(){ if(fConverted == 1) return 1; else return 0; }
49 //Converted bit is set if this photon originate from e+/e- conversion on medium
50    Int_t IsPi0Decay(){ if(fPi0Decayflag == 1) return 1; else return 0; }
51 //Pi0Decayflag is set if this photon originate from pi0 decay
52    void Pi0Decay(Int_t flag){ fPi0Decayflag=flag; }
53    void Pi0Id(Int_t id){ fPi0Id=id; }
54 //Id of pi0 from which this photon is decayed (to check if 2 photons originate from the same pi0 or not)
55
56
57    void SetMomV2(TLorentzVector * p){fMomV2=(*p);}
58    void SetNCells(Int_t n){fNCells=n;}
59    void SetConverted(Int_t flag){ fConverted=flag; }
60    Int_t ComparePi0Ids( AliCaloPhoton *phot) { if(AliCaloPhoton::fPi0Id!=0 && (*phot).fPi0Id !=0 && AliCaloPhoton::fPi0Id == (*phot).fPi0Id) return 1; else return 0; }
61    void SetConvertedPartner(Int_t flag){ fConvertedPartner=flag; }
62    void SetPhoton(Int_t flag){ fIsPhoton=flag; }
63    void SetDispBit(Bool_t chi2){fDisp = chi2 ;} 
64    void SetTOFBit(Bool_t tof){fTof = tof ;} 
65    void SetCPVBit(Bool_t cpv){fCpv = cpv; }
66    void SetPCAPID(Bool_t pca){fPCA = pca;}
67    void SetTrig(Bool_t trig){fTrig=trig;}
68    void SetEMCx(Double_t x){fX = x ;} 
69    void SetEMCy(Double_t y){fY = y ;} 
70    void SetEMCz(Double_t z){fZ = z ;} 
71    void SetModule(Int_t mod){fModule = mod ;} 
72    void SetDistToBad(Int_t dist){fBadDist=dist;} 
73    void SetTagged(Bool_t bit){fIsTagged=bit;}
74    void SetTagged(Bool_t bit,Int_t i,Int_t k){fIsTagged_reg[i][k]=bit;}
75    void SetIsolated(Bool_t bit){fIsIsolated=bit;}
76    void SetPartnerPt(Double_t pt){fPartnerPt=pt;}
77    void SetPrimary(Int_t label){fPrimary=label;}
78
79    Int_t GetPrimary(){return fPrimary;}
80    Double_t GetPartnerPt(){return fPartnerPt;}  
81 private:
82   TLorentzVector fMomV2 ; //Alternative momentum
83   Bool_t    fDisp ;   //Dispersion bit
84   Bool_t    fTof ;    //TOF bit
85   Bool_t    fCpv ;    //Charged bit
86   Bool_t    fPCA ;    //Principal Component Analysis bit
87   Bool_t    fTrig ;      //If this photon fired trigger
88   Bool_t    fIsTagged;   //If it is tagged 
89   Bool_t    fIsTagged_reg[10][20];   //If it is tagged 
90   Bool_t    fIsIsolated ; //it is isolated
91   Bool_t    fIsPhoton; //If it is really photon or not
92   Double_t  fX ;        //Cluster coordinates in ALICE ref system 
93   Double_t  fY ;        //Cluster coordinates in ALICE ref system
94   Double_t  fZ ;        //Cluster coordinates in ALICE ref system
95   Int_t     fModule ;   //Module number
96   Int_t     fBadDist ;  //Distance to bad module in module units
97   Int_t     fNCells ;   //Number of cells in cluster
98   Int_t     fPi0Decayflag; //if this photon is from pi0 decay (from simulation)
99   Int_t     fPi0Id;
100   Int_t     fConverted; //If this photon originated from convertion on material (i.e. its primary is electron)
101   Int_t     fConvertedPartner;
102   Double_t  fPartnerPt;
103   Int_t     fPrimary;   //Primary label
104
105   ClassDef(AliCaloPhoton,1)
106
107 };
108
109 #endif // #ifdef ALICALOPHOTON_H
110
111