TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAODConversionMother.h
CommitLineData
2eedd4ed 1#ifndef ALIAODCONVERSIONMOTHER_H
2#define ALIAODCONVERSIONMOTHER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6////////////////////////////////////////////////
7//---------------------------------------------
8// Class reconstructing the mother particle of conversion gammas
9//---------------------------------------------
10////////////////////////////////////////////////
11
12//Author Daniel Lohner (Daniel.Lohner@cern.ch)
13
14#include "TLorentzVector.h"
15#include "AliAODConversionParticle.h"
16#include "AliAODConversionPhoton.h"
17#include "AliKFConversionMother.h"
18#include "AliKFParticle.h"
19
20class AliAODConversionMother : public AliAODConversionParticle{
21
f61c548e 22 public:
2eedd4ed 23
f61c548e 24 //Default Constructor
25 AliAODConversionMother();
2eedd4ed 26
f61c548e 27 // Constructor for ESD to AOD Conversion
28 AliAODConversionMother(AliKFConversionMother *kf);
92efd725 29
f61c548e 30 //Constructor Decay Mother Particle
31 AliAODConversionMother(AliAODConversionPhoton *y1,AliAODConversionPhoton *y2);
32 // Constructor Mother particle from one photon and one meson
33 AliAODConversionMother(AliAODConversionMother *meson, AliAODConversionPhoton *gamma);
2eedd4ed 34
92efd725 35
f61c548e 36 //Destructor
37 virtual ~AliAODConversionMother();
38
39 // MC
40
41 void SetMCLabel(Int_t i){fMCLabel=i;}
42 Int_t GetMCLabel(){return fMCLabel;}
43 TParticle *GetMCParticle(AliStack *fMCStack);
44 Bool_t IsTrueMeson(AliStack *fMCStack,Int_t pdgcode);
45
46 ///Set the Chi2 of reconstructed conversion gamma
47 void SetChi2(Float_t chi2) {fChi2 = chi2;}
48
49 //Get the Chi2 of particle
50 Float_t Chi2() const {return fChi2;}
51
52 ///Set track or MC labels
53 void SetLabel1(Int_t label){fLabel[0] = label;}
54 void SetLabel2(Int_t label){fLabel[1] = label;}
55 void SetLabel3(Int_t label){fLabel[2] = label;}
56 void SetLabels(Int_t label1, Int_t label2, Int_t label3 = 0){fLabel[0] = label1; fLabel[1] = label2; fLabel[2] = label3;}
57
58 Int_t GetLabel(Int_t i) const {return fLabel[i];}
59 Int_t GetLabel1() const {return fLabel[0];}
60 Int_t GetLabel2() const {return fLabel[1];}
61 Int_t GetLabel3() const {return fLabel[2];}
62
63 Double_t GetProductionRadius() const {return TMath::Sqrt(fProductionVtx[0]*fProductionVtx[0]+fProductionVtx[1]*fProductionVtx[1]);}
64 Double_t GetProductionX() const {return fProductionVtx[0];}
65 Double_t GetProductionY() const {return fProductionVtx[1];}
66 Double_t GetProductionZ() const {return fProductionVtx[2];}
67
68 void SetProductionX(Double_t x) {fProductionVtx[0]=x;}
69 void SetProductionY(Double_t y) {fProductionVtx[1]=y;}
70 void SetProductionZ(Double_t z) {fProductionVtx[2]=z;}
71 void SetProductionPoint(Double_t* point){
72 fProductionVtx[0] = point[0];
73 fProductionVtx[1] = point[1];
74 fProductionVtx[2] = point[2];
75 }
76
77 Float_t GetDCABetweenPhotons() const {return fdcaBetweenPhotons;}
78 Float_t GetDCAZMotherPrimVtx() const {return fdcaZPrimVtx;}
79 Float_t GetDCARMotherPrimVtx() const {return fdcaRPrimVtx;}
80 UChar_t GetMesonQuality() const {return fQuality;}
81
82 Double_t GetOpeningAngle() const { return fOpeningAngle;}
83
84 Double_t GetAlpha() const { return fAlpha;}
85
86 void SetWeight(Double_t weight) {fWeight=weight;}
87 Double_t GetWeight() const {return fWeight;}
88
89 Float_t CalculateDistanceBetweenPhotons(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2 , Double_t prodPoint[3]);
90 void CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex);
91 void DetermineMesonQuality(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2);
eed82f0e 92
93 void SetTrueMesonValue(Int_t trueMeson) {fTrueMeson = trueMeson;}
94 Int_t GetTrueMesonValue()const {return fTrueMeson;}
95
96
f61c548e 97 private:
98 Int_t fLabel[3]; // Labels of the decay photons
99 Int_t fMCLabel; // MC Label
100 Float_t fChi2; // Chi sq of reconstructed mother
101 Double_t fOpeningAngle;
102 Double_t fAlpha;
103 Double_t fWeight; // Weight for BG Calculation
104 Float_t fdcaBetweenPhotons; // dca between the two photons
105 Double_t fProductionVtx[3]; // Production vertex
106 Float_t fdcaZPrimVtx; // dca Z of meson to primary vertex
107 Float_t fdcaRPrimVtx; // dca R of meson to primary vertex
108 UChar_t fQuality; // Quality of the meson:
109 // 0: garbage
110 // 1: both photons quality 1
111 // 2: 1 photon quality 1, 1 photon quality 2
112 // 3: 1 photon quality 1, 1 photon quality 3
113 // 4: both photons quality 2
114 // 5: 1 photon quality 2, 1 photon quality 3
115 // 6: both photons quality 3
116
eed82f0e 117 Int_t fTrueMeson; // is true meson
118 // 0 : no
119 // 1 : pi0
120 // 2 : eta
121 // 3 : eta'
122 // 4 : omega
f61c548e 123
eed82f0e 124 ClassDef(AliAODConversionMother,5)
2eedd4ed 125};
126
127#endif