1 #ifndef ALIAODRECODECAYHF3PRONG_H
2 #define ALIAODRECODECAYHF3PRONG_H
3 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //***********************************************************
9 // Class AliAODRecoDecayHF3Prong
10 // base class for AOD reconstructed 3-prong heavy-flavour decays
11 // (D+->Kpipi, Ds->KKpi ...)
12 // Author: E.Bruna bruna@to.infn.it, F.Prino prino@to.infn.it
13 //***********************************************************
15 #include "AliAODRecoDecay.h"
16 #include "AliAODRecoDecayHF.h"
18 class AliAODRecoDecayHF3Prong : public AliAODRecoDecayHF {
22 AliAODRecoDecayHF3Prong();
23 AliAODRecoDecayHF3Prong(AliAODVertex *vtx2,
24 Double_t *px,Double_t *py,Double_t *pz,
25 Double_t *d0,Double_t *d0err,
26 Double_t *dca, Double_t sigvert,
27 Double_t dist12,Double_t dist23,Short_t charge);
28 AliAODRecoDecayHF3Prong(AliAODVertex *vtx2,
29 Double_t *d0,Double_t *d0err,
30 Double_t *dca, Double_t sigvert,
31 Double_t dist12,Double_t dist23, Short_t charge);
33 AliAODRecoDecayHF3Prong(const AliAODRecoDecayHF3Prong& source);
34 AliAODRecoDecayHF3Prong& operator=(const AliAODRecoDecayHF3Prong& source);
35 void GetDCAs(Double_t dca[3]) const
36 {for(Int_t i=0;i<3;i++) dca[i]=GetDCA(i);}
37 Double_t GetSigmaVert() const { return fSigmaVert; }
38 Double_t GetDist12toPrim() const { return fDist12toPrim; }
39 Double_t GetDist23toPrim() const { return fDist23toPrim; }
40 void SetDist12toPrim(Double_t d) { fDist12toPrim=d; }
41 void SetDist23toPrim(Double_t d) { fDist23toPrim=d; }
45 Double_t EDplus() const {return E(411);}
46 Double_t YDplus() const {return Y(411);}
47 Double_t CtDplus() const {return Ct(411);}
48 Double_t CtDplus(Double_t point[3]) const {return AliAODRecoDecay::Ct(411,point);}
49 Double_t CtDplus(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(411,vtx1);}
50 Double_t InvMassDplus() const {UInt_t pdg[3]={211,321,211};return InvMass(3,pdg);}
51 Bool_t SelectDplus(const Double_t* cuts) const;
54 Double_t EDs() const {return E(431);}
55 Double_t YDs() const {return Y(431);}
56 Double_t CtDs() const {return Ct(431);}
57 Double_t CtDs(Double_t point[3]) const {return AliAODRecoDecay::Ct(431,point);}
58 Double_t CtDs(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(431,vtx1);}
59 Double_t InvMassDsKKpi() const {UInt_t pdg[3]={321,321,211};return InvMass(3,pdg);}
60 Double_t InvMassDspiKK() const {UInt_t pdg[3]={211,321,321};return InvMass(3,pdg);}
61 Bool_t SelectDs(const Double_t* cuts,Int_t &okDsKKpi,Int_t &okDspiKK, Int_t &okMassPhi, Int_t &okMassK0star)
62 const; // same variables as D+, for now
65 Double_t ELc() const {return E(4122);}
66 Double_t YLc() const {return Y(4122);}
67 Double_t CtLc() const {return Ct(4122);}
68 Double_t CtLc(Double_t point[3]) const {return AliAODRecoDecay::Ct(4122,point);}
69 Double_t CtLc(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(4122,vtx1);}
70 Double_t InvMassLcpKpi() const {UInt_t pdg[3]={2212,321,211};return InvMass(3,pdg);}
71 Double_t InvMassLcpiKp() const {UInt_t pdg[3]={211,321,2212};return InvMass(3,pdg);}
72 Bool_t SelectLc(const Double_t* cuts,Int_t &okLcpKpi,Int_t &okLcpiKp)
73 const; // same variables as D+, for now
77 Double_t fSigmaVert; // track dispersion around the secondary vertex
78 Double_t fDist12toPrim; //distance prim vert - 2 opposite sign track vertex
79 Double_t fDist23toPrim; //distance prim vert - 2 opposite sign track vertex
83 ClassDef(AliAODRecoDecayHF3Prong,1) // base class for AOD reconstructed
84 // heavy-flavour 3-prong decays