AliPhysics  b752f14 (b752f14)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliConversionPhotonBase.h
Go to the documentation of this file.
1 #ifndef ALICONVERSIONPHOTONBASE_H
2 #define ALICONVERSIONPHOTONBASE_H
3 
4 #include "TMath.h"
5 #include "TParticle.h"
6 #include "AliStack.h"
7 #include "AliLog.h"
8 #include "TObject.h"
9 #include "AliMCEvent.h"
10 #include "AliESDEvent.h"
11 #include "AliKFParticle.h"
12 #include "TParticle.h"
13 #include <vector>
14 #include "AliESDpid.h"
15 #include "TF1.h"
16 #include "TRandom3.h"
17 #include "AliPID.h"
18 #include "AliESDtrack.h"
19 #include "AliKFVertex.h"
20 #include "AliMCEventHandler.h"
21 #include "AliESDtrackCuts.h"
22 #include "AliGenCocktailEventHeader.h"
23 #include "TList.h"
24 
25 
26 using namespace std;
27 
29 
30  public:
31 
32  //Constructors
34 
35  //Copy Constructor
37  //assignment operator
38  AliConversionPhotonBase & operator = (const AliConversionPhotonBase & g);
39 
40  //Destructor
41  virtual ~AliConversionPhotonBase();
42 
44  void SetTag( Bool_t tagged ) { fTagged = tagged; }
45  Bool_t IsTagged(){return fTagged;}
46 
47  //Get the Chi2 of particle
48  void SetChi2perNDF(Float_t chi2) {fChi2perNDF = chi2;}
49  Float_t GetChi2perNDF() const {return fChi2perNDF;}
50 
51 
53  void SetLabelPositive(Int_t label){fLabel[0] = label;}
54  void SetLabelNegative(Int_t label){fLabel[1] = label;}
55  void SetTrackLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;}
56  Int_t GetTrackLabelPositive() const{return fLabel[0];}
57  Int_t GetTrackLabelNegative() const {return fLabel[1];}
58  Int_t GetTrackLabel(Int_t i) const {return fLabel[i];}
59  virtual Int_t GetLabel(Int_t i) const { return GetTrackLabel(i); }
60  virtual Int_t GetLabel1() const { return GetTrackLabelPositive(); }
61  virtual Int_t GetLabel2() const { return GetTrackLabelNegative(); }
62 
63  // MC Label
64 
65  void SetMCLabel(Int_t* label){fMCLabel[0]=label[0];fMCLabel[1]=label[1];}
66  void SetMCLabelPositive(Int_t label){fMCLabel[0]=label;}
67  void SetMCLabelNegative(Int_t label){fMCLabel[1]=label;}
68  Int_t GetMCLabel(Int_t i) const{return fMCLabel[i];}
69  Int_t GetMCLabelPositive() const{return fMCLabel[0];}
70  Int_t GetMCLabelNegative() const{return fMCLabel[1];}
71  Int_t GetMCParticleLabel(AliStack *fMCStack);
72 
73  // GetMCParticle
74 
75  Bool_t IsTruePhoton(AliStack *fMCStack);
76  TParticle *GetMCParticle(AliStack *fMCStack);
77  TParticle *GetPositiveMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,0);}
78  TParticle *GetNegativeMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,1);}
79  TParticle *GetMCDaughter(AliStack *fMCStack,Int_t label);
80 
81  // V0Index
82  Int_t GetV0Index() const {return fV0Index;}
83  void SetV0Index(Int_t index) {fV0Index=index;}
84 
85  // leadingCellID - stored in fV0Index for GammaCalo analysis
86  Int_t GetLeadingCellID() const {return fV0Index;}
87  void SetLeadingCellID(Int_t index) {fV0Index=index;}
88 
89  // Conversion Point
90  void SetConversionPoint(Double_t convpoint[3]){fConversionPoint[0]=convpoint[0];fConversionPoint[1]=convpoint[1];fConversionPoint[2]=convpoint[2];}
91  void GetConversionPoint(Double_t convpoint[3]){convpoint[0]=fConversionPoint[0];convpoint[1]=fConversionPoint[1];convpoint[2]=fConversionPoint[2];}
92  Double_t GetConversionRadius() const {return TMath::Sqrt(fConversionPoint[0]*fConversionPoint[0]+fConversionPoint[1]*fConversionPoint[1]);}
93  Double_t GetConversionX() const {return fConversionPoint[0];}
94  Double_t GetConversionY() const {return fConversionPoint[1];}
95  Double_t GetConversionZ() const {return fConversionPoint[2];}
96  void GetDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex, Float_t * dca);
97  void DeterminePhotonQuality(AliVTrack* negTrack, AliVTrack* posTrack);
98  UChar_t GetPhotonQuality() const {return fQuality;}
99  // Armenteros Qt Alpha
100  void GetArmenterosQtAlpha(Double_t qtalpha[2]){qtalpha[0]=fArmenteros[0];qtalpha[1]=fArmenteros[1];}
101  Double_t GetArmenterosQt() const {return fArmenteros[0];}
102  Double_t GetArmenterosAlpha() const {return fArmenteros[1];}
103 
104  // virtual functions to be implemented in KF/AOD classes
105 
106  virtual Double_t GetPhotonMass() const = 0;
107  virtual Double_t GetPhotonPt()const = 0;
108  virtual Double_t GetPhotonP() const = 0;
109  virtual Double_t GetPhotonEta() const = 0;
110  virtual Double_t GetPhotonPhi() const =0;
111 // virtual Double_t GetPhotonTheta() const =0;
112  virtual Double_t GetPx() const = 0;
113  virtual Double_t GetPy() const = 0;
114  virtual Double_t GetPz() const = 0;
115 
116 
117  Float_t GetMass() const { return fIMass; }
118  void SetMass( Float_t mass) { fIMass = mass; }
119 
120  Float_t GetPsiPair() const {return fPsiPair;}
121  void SetPsiPair(Float_t PsiPair){fPsiPair=PsiPair;}
122 
123 
124  protected:
125 
126  Int_t fLabel[2]; // Electron/Positron Track Label
127  Int_t fV0Index; // Index of the V0
128  Int_t fMCLabel[2]; // Electron/Positron MC Label
129  Float_t fChi2perNDF; // Chi2perNDF
130  Double_t fArmenteros[2]; // Armenteros Paramters
131  Double_t fConversionPoint[3]; // Conversion Point
132  Bool_t fTagged; // Is it tagged as decay pion (only for gammas)
133  Float_t fIMass; // Invariant Mass of dilepton pair
134  Float_t fPsiPair; // Psi Pair Value
135  UChar_t fQuality; //Photon Quality:
136  //0: garbage,
137  //1: both tracks TPC only,
138  //2: 1 track TPC only
139  //3: both tracks more than 1 ITS cluster
140  ClassDef(AliConversionPhotonBase,5);
141 };
142 
143 
144 #endif
145 
146 
147 
void GetArmenterosQtAlpha(Double_t qtalpha[2])
Double_t GetArmenterosAlpha() const
double Double_t
Definition: External.C:58
void SetConversionPoint(Double_t convpoint[3])
void SetMCLabelNegative(Int_t label)
Double_t mass
virtual Int_t GetLabel(Int_t i) const
void GetConversionPoint(Double_t convpoint[3])
int Int_t
Definition: External.C:63
Int_t GetMCLabel(Int_t i) const
float Float_t
Definition: External.C:68
void SetMCLabelPositive(Int_t label)
Int_t GetTrackLabel(Int_t i) const
TParticle * GetPositiveMCDaughter(AliStack *fMCStack)
void SetChi2perNDF(Float_t chi2)
void SetLeadingCellID(Int_t index)
virtual Int_t GetLabel2() const
void SetTrackLabels(Int_t label1, Int_t label2)
void SetLabelPositive(Int_t label)
Track labels.
void SetLabelNegative(Int_t label)
void SetTag(Bool_t tagged)
Set the tag for decay meson.
void SetPsiPair(Float_t PsiPair)
TParticle * GetNegativeMCDaughter(AliStack *fMCStack)
bool Bool_t
Definition: External.C:53
virtual Int_t GetLabel1() const
Double_t GetConversionRadius() const