1 #ifndef ALIAODRECODECAYHF_H
2 #define ALIAODRECODECAYHF_H
3 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 //***********************************************************
7 // Class AliAODRecoDecayHF
8 // base class for AOD reconstructed heavy-flavour decays
9 // Author: A.Dainese, andrea.dainese@lnl.infn.it
10 //***********************************************************
12 #include "AliAODRecoDecay.h"
14 class AliAODRecoDecayHF : public AliAODRecoDecay {
19 AliAODRecoDecayHF(AliAODVertex *vtx2,Int_t nprongs,Short_t charge,
20 Double_t *px,Double_t *py,Double_t *pz,
21 Double_t *d0,Double_t *d0err);
22 AliAODRecoDecayHF(AliAODVertex *vtx2,Int_t nprongs,Short_t charge,
23 Double_t *d0,Double_t *d0err);
24 virtual ~AliAODRecoDecayHF();
26 AliAODRecoDecayHF(const AliAODRecoDecayHF& source);
27 AliAODRecoDecayHF& operator=(const AliAODRecoDecayHF& source);
31 void SetOwnPrimaryVtx(AliAODVertex *vtx2) {fOwnPrimaryVtx = vtx2;}
32 void CheckOwnPrimaryVtx() const
33 {if(!fOwnPrimaryVtx) printf("fOwnPrimaryVtx not set"); return;}
34 AliAODVertex* GetOwnPrimaryVtx() const {return fOwnPrimaryVtx;}
35 void GetOwnPrimaryVtx(Double_t vtx[3]) const
36 {CheckOwnPrimaryVtx();fOwnPrimaryVtx->GetPosition(vtx);}
38 // kinematics & topology
39 Double_t DecayLength() const
40 {CheckOwnPrimaryVtx();return AliAODRecoDecay::DecayLength(fOwnPrimaryVtx);}
41 Double_t DecayLengthError() const
42 {CheckOwnPrimaryVtx();return AliAODRecoDecay::DecayLengthError(fOwnPrimaryVtx);}
43 Double_t NormalizedDecayLength() const
44 {CheckOwnPrimaryVtx();return AliAODRecoDecay::NormalizedDecayLength(fOwnPrimaryVtx);}
45 Double_t DecayLengthXY() const
46 {CheckOwnPrimaryVtx();return AliAODRecoDecay::DecayLengthXY(fOwnPrimaryVtx);}
47 Double_t DecayLengthXYError() const
48 {CheckOwnPrimaryVtx();return AliAODRecoDecay::DecayLengthXYError(fOwnPrimaryVtx);}
49 Double_t NormalizedDecayLengthXY() const
50 {CheckOwnPrimaryVtx();return AliAODRecoDecay::NormalizedDecayLengthXY(fOwnPrimaryVtx);}
51 Double_t Ct(UInt_t pdg) const
52 {CheckOwnPrimaryVtx();return AliAODRecoDecay::Ct(pdg,fOwnPrimaryVtx);}
53 Double_t CosPointingAngle() const
54 {CheckOwnPrimaryVtx();return AliAODRecoDecay::CosPointingAngle(fOwnPrimaryVtx);}
55 Double_t CosPointingAngleXY() const
56 {CheckOwnPrimaryVtx();return AliAODRecoDecay::CosPointingAngleXY(fOwnPrimaryVtx);}
57 Double_t ImpParXY() const
58 {CheckOwnPrimaryVtx();return AliAODRecoDecay::ImpParXY(fOwnPrimaryVtx);}
59 Double_t QtProngFlightLine(Int_t ip) const
60 {CheckOwnPrimaryVtx();return AliAODRecoDecay::QtProngFlightLine(ip,fOwnPrimaryVtx);}
61 Double_t QlProngFlightLine(Int_t ip) const
62 {CheckOwnPrimaryVtx();return AliAODRecoDecay::QlProngFlightLine(ip,fOwnPrimaryVtx);}
65 Double_t Getd0errProng(Int_t ip) const {return fd0err[ip];}
66 Double_t Normalizedd0Prong(Int_t ip) const
67 {return Getd0Prong(ip)/Getd0errProng(ip);}
72 AliAODVertex *fOwnPrimaryVtx; // primary vertex for this candidate
73 Double_t *fd0err; //[fNProngs] error on prongs rphi impact param [cm]
75 ClassDef(AliAODRecoDecayHF,1) // base class for AOD reconstructed
76 // heavy-flavour decays