]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAODConversionPhoton.cxx
- changes in ConversionCuts in order to make cut on photon quality possible on AODs...
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAODConversionPhoton.cxx
1 #include "AliAODConversionPhoton.h"
2 #include "AliKFConversionPhoton.h"
3
4 using namespace std;
5
6 ClassImp(AliAODConversionPhoton)
7
8 AliAODConversionPhoton::AliAODConversionPhoton() :
9 AliAODConversionParticle(),
10 AliConversionPhotonBase(),
11 fDCArPrimVtx(0),
12 fDCAzPrimVtx(0)
13 {
14   //Standard constructor
15 }
16
17 AliAODConversionPhoton::AliAODConversionPhoton(AliKFConversionPhoton *kfphoton) :
18 AliAODConversionParticle(kfphoton),
19 AliConversionPhotonBase(*((AliConversionPhotonBase*)kfphoton)),
20 fDCArPrimVtx(0),
21 fDCAzPrimVtx(0)
22 {
23     //Constructor from kfphoton
24
25     // puts the mass to zero and store dilepton mass
26             SetMass(kfphoton->M());
27                         //SetE(P());
28 }
29
30 AliAODConversionPhoton::AliAODConversionPhoton(TLorentzVector *vec) :
31 AliAODConversionParticle(vec),
32 AliConversionPhotonBase(),
33 fDCArPrimVtx(0),
34 fDCAzPrimVtx(0)
35 {
36     //Constructor from TLorentzVector
37 }
38
39
40
41 AliAODConversionPhoton::AliAODConversionPhoton(const AliAODConversionPhoton & original) :
42 AliAODConversionParticle(original),
43 AliConversionPhotonBase(original),
44 fDCArPrimVtx(original.fDCArPrimVtx),
45 fDCAzPrimVtx(original.fDCAzPrimVtx)
46 {
47   //Copy constructor
48 }
49
50 AliAODConversionPhoton::~AliAODConversionPhoton()
51 {
52   // empty standard destructor
53 }
54
55 AliAODConversionPhoton & AliAODConversionPhoton::operator = (const AliAODConversionPhoton & /*source*/)
56 {
57   // assignment operator
58   return *this;
59 }
60
61 ///________________________________________________________________________
62 void AliAODConversionPhoton::CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex ){
63
64    Double_t primCo[3] = {primVertex->GetX(),primVertex->GetY(),primVertex->GetZ()};
65
66    Double_t absoluteP = TMath::Sqrt(TMath::Power(GetPx(),2) + TMath::Power(GetPy(),2) + TMath::Power(GetPz(),2));   
67    Double_t p[3] = {GetPx()/absoluteP,GetPy()/absoluteP,GetPz()/absoluteP};
68    Double_t CP[3];
69    
70    CP[0] =  fConversionPoint[0] - primCo[0];
71    CP[1] =  fConversionPoint[1] - primCo[1];
72    CP[2] =  fConversionPoint[2] - primCo[2];
73    
74    Double_t Lambda = - (CP[0]*p[0]+CP[1]*p[1]+CP[2]*p[2])/(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
75    
76    Double_t S[3];
77    S[0] = fConversionPoint[0] + p[0]*Lambda;
78    S[1] = fConversionPoint[1] + p[1]*Lambda;
79    S[2] = fConversionPoint[2] + p[2]*Lambda;
80   
81    fDCArPrimVtx = TMath::Sqrt( TMath::Power(primCo[0]-S[0],2) + TMath::Power(primCo[1]-S[1],2));
82    fDCAzPrimVtx = primCo[2]-S[2];
83     
84    return;
85 }
86