]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliConversionPhotonBase.h
sync
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliConversionPhotonBase.h
CommitLineData
2eedd4ed 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
10using namespace std;
11
12class AliConversionPhotonBase {
13
14 public:
15
16 //Constructors
17 AliConversionPhotonBase();
18
19 //Copy Constructor
20 AliConversionPhotonBase(const AliConversionPhotonBase & g);
21 //assignment operator
22 AliConversionPhotonBase & operator = (const AliConversionPhotonBase & g);
23
24 //Destructor
25 virtual ~AliConversionPhotonBase();
26
27 ///Set the tag for decay meson
28 void SetTag( Bool_t tagged ) { fTagged = tagged; }
29 Bool_t IsTagged(){return fTagged;}
30
31 //Get the Chi2 of particle
32 void SetChi2perNDF(Float_t chi2) {fChi2perNDF = chi2;}
33 Float_t GetChi2perNDF() const {return fChi2perNDF;}
34
35 ///Track labels
36 void SetLabelPositive(Int_t label){fLabel[0] = label;}
37 void SetLabelNegative(Int_t label){fLabel[1] = label;}
38 void SetTrackLabels(Int_t label1, Int_t label2){fLabel[0] = label1; fLabel[1] = label2;}
39 Int_t GetTrackLabelPositive() const{return fLabel[0];}
40 Int_t GetTrackLabelNegative() const {return fLabel[1];}
41 Int_t GetTrackLabel(Int_t i) const {return fLabel[i];}
3b77b2d1 42 virtual Int_t GetLabel(Int_t i) const { return GetTrackLabel(i); };
43 virtual Int_t GetLabel1() const { return GetTrackLabelPositive(); };
44 virtual Int_t GetLabel2() const { return GetTrackLabelNegative(); };
2eedd4ed 45
46 // MC Label
47
48 void SetMCLabel(Int_t* label){fMCLabel[0]=label[0];fMCLabel[1]=label[1];}
49 void SetMCLabelPositive(Int_t label){fMCLabel[0]=label;}
50 void SetMCLabelNegative(Int_t label){fMCLabel[1]=label;}
51 Int_t GetMCLabel(Int_t i) const{return fMCLabel[i];}
52 Int_t GetMCLabelPositive() const{return fMCLabel[0];}
53 Int_t GetMCLabelNegative() const{return fMCLabel[1];}
54 Int_t GetMCParticleLabel(AliStack *fMCStack);
55
56 // GetMCParticle
57
92efd725 58 Bool_t IsTruePhoton(AliStack *fMCStack);
2eedd4ed 59 TParticle *GetMCParticle(AliStack *fMCStack);
60 TParticle *GetPositiveMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,0);};
61 TParticle *GetNegativeMCDaughter(AliStack *fMCStack){return GetMCDaughter(fMCStack,1);};
62 TParticle *GetMCDaughter(AliStack *fMCStack,Int_t label);
63
64 // V0Index
3b77b2d1 65 Int_t GetV0Index() const {return fV0Index;}
66 void SetV0Index(Int_t index) {fV0Index=index;}
2eedd4ed 67
68 // Conversion Point
69 void SetConversionPoint(Double_t convpoint[3]){fConversionPoint[0]=convpoint[0];fConversionPoint[1]=convpoint[1];fConversionPoint[2]=convpoint[2];}
70 void GetConversionPoint(Double_t convpoint[3]){convpoint[0]=fConversionPoint[0];convpoint[1]=fConversionPoint[1];convpoint[2]=fConversionPoint[2];}
3b77b2d1 71 Double_t GetConversionRadius() const {return TMath::Sqrt(fConversionPoint[0]*fConversionPoint[0]+fConversionPoint[1]*fConversionPoint[1]);}
72 Double_t GetConversionX() const {return fConversionPoint[0];}
73 Double_t GetConversionY() const {return fConversionPoint[1];}
74 Double_t GetConversionZ() const {return fConversionPoint[2];}
2eedd4ed 75
76 // Armenteros Qt Alpha
77 void GetArmenterosQtAlpha(Double_t qtalpha[2]){qtalpha[0]=fArmenteros[0];qtalpha[1]=fArmenteros[1];}
3b77b2d1 78 Double_t GetArmenterosQt() const {return fArmenteros[0];}
79 Double_t GetArmenterosAlpha() const {return fArmenteros[1];}
2eedd4ed 80
81 // virtual functions to be implemented in KF/AOD classes
82
83 virtual Double_t GetPhotonMass() const = 0;
84 virtual Double_t GetPhotonPt()const = 0;
85 virtual Double_t GetPhotonP() const = 0;
86 virtual Double_t GetPhotonEta() const = 0;
69b05e50 87 virtual Double_t GetPhotonPhi() const =0;
3b77b2d1 88 virtual Double_t GetPx() const = 0;
89 virtual Double_t GetPy() const = 0;
90 virtual Double_t GetPz() const = 0;
91
92
93 Float_t GetMass() const { return fIMass; }
94 void SetMass( Float_t mass) { fIMass = mass; }
2eedd4ed 95
92efd725 96 Float_t GetPsiPair() const {return fPsiPair;}
97 void SetPsiPair(Float_t PsiPair){fPsiPair=PsiPair;}
2eedd4ed 98
99 protected:
100
101 Int_t fLabel[2]; // Electron/Positron Track Label
102 Int_t fV0Index; // Index of the V0
103 Int_t fMCLabel[2]; // Electron/Positron MC Label
104 Float_t fChi2perNDF; // Chi2perNDF
105 Double_t fArmenteros[2]; // Armenteros Paramters
2eedd4ed 106 Double_t fConversionPoint[3]; // Conversion Point
107 Bool_t fTagged; // Is it tagged as decay pion (only for gammas)
92efd725 108 Float_t fIMass; // Invariant Mass of dilepton pair
109 Float_t fPsiPair; // Psi Pair Value
3b77b2d1 110
92efd725 111 ClassDef(AliConversionPhotonBase,3);
2eedd4ed 112};
113
114
115#endif
116
117
118