]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAODConversionMother.cxx
macro for lego train + small io bugfix
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAODConversionMother.cxx
CommitLineData
2eedd4ed 1#include "AliAODConversionMother.h"
2#include "AliKFConversionMother.h"
3#include "AliKFParticle.h"
4
5
6// Author D. Lohner (Daniel.Lohner@cern.ch)
7
8using namespace std;
9
10ClassImp(AliAODConversionMother)
11
12AliAODConversionMother::AliAODConversionMother() :
13AliAODConversionParticle(),
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
25AliAODConversionMother::AliAODConversionMother(AliKFConversionMother *kf):
26AliAODConversionParticle(),
92efd725 27fMCLabel(kf->GetMCLabel()),
2eedd4ed 28fChi2(kf->GetChi2()),
29fOpeningAngle(kf->GetOpeningAngle()),
69b05e50 30fAlpha(kf->GetAlpha()),
31fWeight(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
42AliAODConversionMother::AliAODConversionMother(AliAODConversionPhoton *y1,AliAODConversionPhoton *y2):
43AliAODConversionParticle(),
92efd725 44fMCLabel(-1),
2eedd4ed 45fChi2(-1),
46fOpeningAngle(-1),
69b05e50 47fAlpha(-1),
48fWeight(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
72AliAODConversionMother::~AliAODConversionMother() {
92efd725 73 // empty standard destructor
74}
75
76TParticle *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
85Bool_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