]>
Commit | Line | Data |
---|---|---|
2eedd4ed | 1 | #include "AliAODConversionMother.h" |
2 | #include "AliKFConversionMother.h" | |
3 | #include "AliKFParticle.h" | |
4 | ||
5 | ||
6 | // Author D. Lohner (Daniel.Lohner@cern.ch) | |
7 | ||
8 | using namespace std; | |
9 | ||
10 | ClassImp(AliAODConversionMother) | |
11 | ||
12 | AliAODConversionMother::AliAODConversionMother() : | |
13 | AliAODConversionParticle(), | |
92efd725 | 14 | fMCLabel(-1), |
15 | fChi2(-1), | |
16 | fOpeningAngle(-1), | |
69b05e50 | 17 | fAlpha(-1), |
18 | fWeight(1) | |
2eedd4ed | 19 | { |
fd420a4f | 20 | fLabel[0] = -1; |
21 | fLabel[1] = -1; | |
92efd725 | 22 | fLabel[2] = 0; |
2eedd4ed | 23 | } |
24 | ||
25 | AliAODConversionMother::AliAODConversionMother(AliKFConversionMother *kf): | |
26 | AliAODConversionParticle(), | |
92efd725 | 27 | fMCLabel(kf->GetMCLabel()), |
2eedd4ed | 28 | fChi2(kf->GetChi2()), |
29 | fOpeningAngle(kf->GetOpeningAngle()), | |
69b05e50 | 30 | fAlpha(kf->GetAlpha()), |
31 | fWeight(1) | |
2eedd4ed | 32 | { |
33 | // Set 4momentu | |
34 | SetPxPyPzE(kf->GetPx(),kf->GetPy(),kf->GetPz(),kf->GetE()); | |
35 | ||
36 | //Set Decay Photon Labels | |
37 | fLabel[0]=kf->GetGammaLabel(0); | |
38 | fLabel[1]=kf->GetGammaLabel(1); | |
92efd725 | 39 | fLabel[2]=0; |
2eedd4ed | 40 | } |
41 | ||
42 | AliAODConversionMother::AliAODConversionMother(AliAODConversionPhoton *y1,AliAODConversionPhoton *y2): | |
43 | AliAODConversionParticle(), | |
92efd725 | 44 | fMCLabel(-1), |
2eedd4ed | 45 | fChi2(-1), |
46 | fOpeningAngle(-1), | |
69b05e50 | 47 | fAlpha(-1), |
48 | fWeight(1) | |
2eedd4ed | 49 | { |
50 | // Set 4momentum | |
51 | SetPxPyPzE(y1->Px()+y2->Px(),y1->Py()+y2->Py(),y1->Pz()+y2->Pz(),y1->E()+y2->E()); | |
52 | ||
53 | // Calculate Opening Angle | |
54 | TVector3 v1(y1->Px(),y1->Py(),y1->Pz()); | |
55 | TVector3 v2(y2->Px(),y2->Py(),y2->Pz()); | |
56 | fOpeningAngle=v1.Angle(v2); | |
57 | ||
58 | // Calculate Alpha | |
59 | if((y1->E()+y2->E()) != 0){ | |
60 | fAlpha=TMath::Abs((y1->E()-y2->E())/(y1->E()+y2->E())); | |
61 | } | |
62 | ||
63 | // Set Chi2 to the mean chi2 of gammas | |
3b77b2d1 | 64 | // fChi2=0.5*(y1->GetChi2perNDF()+y2->GetChi2perNDF()); |
2eedd4ed | 65 | |
66 | //Set Decay Photon Labels | |
67 | fLabel[0]=-1; | |
68 | fLabel[1]=-1; | |
a280ac15 | 69 | fLabel[2]=0; |
2eedd4ed | 70 | } |
71 | ||
72 | AliAODConversionMother::~AliAODConversionMother() { | |
92efd725 | 73 | // empty standard destructor |
74 | } | |
75 | ||
76 | TParticle *AliAODConversionMother::GetMCParticle(AliStack *fMCStack){ | |
77 | if(!fMCStack){AliError("MC Stack not defined");return 0x0;} | |
2eedd4ed | 78 | |
92efd725 | 79 | if(fMCLabel>-1){ |
80 | return fMCStack->Particle(fMCLabel); | |
81 | } | |
82 | return 0x0; | |
83 | } | |
84 | ||
85 | Bool_t AliAODConversionMother::IsTrueMeson(AliStack *fMCStack,Int_t pdgcode){ | |
86 | TParticle *part=GetMCParticle(fMCStack); | |
87 | ||
88 | if(part){ | |
89 | // Check if it is a true photon | |
90 | if(part->GetPdgCode()==pdgcode){ | |
91 | return kTRUE; | |
92 | } | |
93 | } | |
94 | return kFALSE; | |
2eedd4ed | 95 | } |
96 |