]>
Commit | Line | Data |
---|---|---|
3244eeed | 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 */ | |
5 | ||
27de2dfb | 6 | /* $Id$ */ |
7 | ||
3244eeed | 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 | //*********************************************************** | |
14 | ||
15 | #include "AliAODRecoDecay.h" | |
16 | #include "AliAODRecoDecayHF.h" | |
e0fb900a | 17 | #include "AliAODEvent.h" |
3244eeed | 18 | |
19 | class AliAODRecoDecayHF3Prong : public AliAODRecoDecayHF { | |
20 | ||
21 | public: | |
2e153422 | 22 | |
3244eeed | 23 | AliAODRecoDecayHF3Prong(); |
24 | AliAODRecoDecayHF3Prong(AliAODVertex *vtx2, | |
25 | Double_t *px,Double_t *py,Double_t *pz, | |
26 | Double_t *d0,Double_t *d0err, | |
27 | Double_t *dca, Double_t sigvert, | |
28 | Double_t dist12,Double_t dist23,Short_t charge); | |
29 | AliAODRecoDecayHF3Prong(AliAODVertex *vtx2, | |
30 | Double_t *d0,Double_t *d0err, | |
31 | Double_t *dca, Double_t sigvert, | |
32 | Double_t dist12,Double_t dist23, Short_t charge); | |
33 | ||
34 | AliAODRecoDecayHF3Prong(const AliAODRecoDecayHF3Prong& source); | |
35 | AliAODRecoDecayHF3Prong& operator=(const AliAODRecoDecayHF3Prong& source); | |
6185d025 | 36 | void GetDCAs(Double_t dca[3]) const |
3244eeed | 37 | {for(Int_t i=0;i<3;i++) dca[i]=GetDCA(i);} |
cc4bd7b4 | 38 | Double_t GetSigmaVert(const AliAODEvent* aod=0x0) { |
e0fb900a | 39 | if(fSigmaVert>0.00001) return fSigmaVert; |
40 | if(aod) fSigmaVert=ComputeSigmaVert(aod); | |
41 | return fSigmaVert; | |
42 | } | |
5ba83ee1 | 43 | Double_t ComputeSigmaVert(const AliAODEvent* aod) const; |
778cb231 | 44 | Double_t GetDist12toPrim() const { return fDist12toPrim; } |
45 | Double_t GetDist23toPrim() const { return fDist23toPrim; } | |
ed6324e5 | 46 | void SetDist12toPrim(Double_t d) { fDist12toPrim=d; } |
47 | void SetDist23toPrim(Double_t d) { fDist23toPrim=d; } | |
3244eeed | 48 | |
49 | ||
50 | // D+->Kpipi | |
51 | Double_t EDplus() const {return E(411);} | |
52 | Double_t YDplus() const {return Y(411);} | |
53 | Double_t CtDplus() const {return Ct(411);} | |
54 | Double_t CtDplus(Double_t point[3]) const {return AliAODRecoDecay::Ct(411,point);} | |
55 | Double_t CtDplus(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(411,vtx1);} | |
56 | Double_t InvMassDplus() const {UInt_t pdg[3]={211,321,211};return InvMass(3,pdg);} | |
57 | Bool_t SelectDplus(const Double_t* cuts) const; | |
58 | ||
79250a2b | 59 | // Ds+->KKpi |
3244eeed | 60 | Double_t EDs() const {return E(431);} |
61 | Double_t YDs() const {return Y(431);} | |
62 | Double_t CtDs() const {return Ct(431);} | |
63 | Double_t CtDs(Double_t point[3]) const {return AliAODRecoDecay::Ct(431,point);} | |
64 | Double_t CtDs(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(431,vtx1);} | |
65 | Double_t InvMassDsKKpi() const {UInt_t pdg[3]={321,321,211};return InvMass(3,pdg);} | |
66 | Double_t InvMassDspiKK() const {UInt_t pdg[3]={211,321,321};return InvMass(3,pdg);} | |
2e153422 | 67 | |
68 | Double_t CosPiKPhiRFrameKKpi() const {return CosPiKPhiRFrame(0);} | |
69 | Double_t CosPiKPhiRFramepiKK() const {return CosPiKPhiRFrame(1);} | |
70 | Double_t CosPiDsLabFrameKKpi() const {return CosPiDsLabFrame(0);} | |
71 | Double_t CosPiDsLabFramepiKK() const {return CosPiDsLabFrame(1);} | |
72 | ||
73 | Double_t CosPiKPhiRFrame(Int_t option) const; | |
74 | Double_t CosPiDsLabFrame(Int_t option) const; | |
9fce5365 | 75 | Bool_t SelectDs(const Double_t* cuts,Int_t &okDsKKpi,Int_t &okDspiKK, Int_t &okMassPhi, Int_t &okMassK0star) |
6ea608bf | 76 | const; // same variables as D+, for now |
79250a2b | 77 | |
78 | // Lambdac+->pKpi | |
79 | Double_t ELc() const {return E(4122);} | |
80 | Double_t YLc() const {return Y(4122);} | |
81 | Double_t CtLc() const {return Ct(4122);} | |
82 | Double_t CtLc(Double_t point[3]) const {return AliAODRecoDecay::Ct(4122,point);} | |
83 | Double_t CtLc(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(4122,vtx1);} | |
84 | Double_t InvMassLcpKpi() const {UInt_t pdg[3]={2212,321,211};return InvMass(3,pdg);} | |
85 | Double_t InvMassLcpiKp() const {UInt_t pdg[3]={211,321,2212};return InvMass(3,pdg);} | |
86 | Bool_t SelectLc(const Double_t* cuts,Int_t &okLcpKpi,Int_t &okLcpiKp) | |
6ea608bf | 87 | const; // same variables as D+, for now |
3244eeed | 88 | |
89 | private: | |
90 | ||
8fc2083a | 91 | Double_t fSigmaVert; // track dispersion around the secondary vertex |
92 | Double_t fDist12toPrim; //distance prim vert - 2 opposite sign track vertex | |
93 | Double_t fDist23toPrim; //distance prim vert - 2 opposite sign track vertex | |
3244eeed | 94 | |
95 | ||
96 | ||
97 | ClassDef(AliAODRecoDecayHF3Prong,1) // base class for AOD reconstructed | |
98 | // heavy-flavour 3-prong decays | |
99 | }; | |
100 | ||
101 | #endif |