Fix
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoDecayHF3Prong.h
CommitLineData
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
19class 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);}
e0fb900a 38 Double_t GetSigmaVert(AliAODEvent* aod=0x0) {
39 if(fSigmaVert>0.00001) return fSigmaVert;
40 if(aod) fSigmaVert=ComputeSigmaVert(aod);
41 return fSigmaVert;
42 }
43 Double_t ComputeSigmaVert(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
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
94
95
96
97 ClassDef(AliAODRecoDecayHF3Prong,1) // base class for AOD reconstructed
98 // heavy-flavour 3-prong decays
99};
100
101#endif