]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/AliAODRecoDecayHF4Prong.h
new classes for open heavy flavour decay candidates
[u/mrichter/AliRoot.git] / PWG3 / AliAODRecoDecayHF4Prong.h
1 #ifndef ALIAODRECODECAYHF4PRONG_H
2 #define ALIAODRECODECAYHF4PRONG_H
3 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //***********************************************************
7 // Class AliAODRecoDecayHF4Prong
8 // base class for AOD reconstructed 4-prong heavy-flavour decays
9 // (D0->Kpipipi, etc...)
10 // Authors: G.E.Bruno Giuseppe.Bruno@ba.infn.it, R.Romita Rossella.Romita@ba.infn.it
11 //***********************************************************
12
13 #include "AliAODRecoDecay.h"
14 #include "AliAODRecoDecayHF.h"
15
16 class AliAODRecoDecayHF4Prong : public AliAODRecoDecayHF {
17
18  public:
19
20   AliAODRecoDecayHF4Prong();
21   AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
22                            Double_t *px,Double_t *py,Double_t *pz,
23                            Double_t *d0,Double_t *d0err,
24                            Double_t *dca, //Double_t sigvert,
25                            Double_t dist12,Double_t dist23, 
26                            Double_t dist14,Double_t dist34, 
27                            Short_t charge);
28    AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
29                            Double_t *d0,Double_t *d0err,
30                            Double_t *dca, //Double_t sigvert,
31                            Double_t dist12,Double_t dist23, 
32                            Double_t dist14,Double_t dist34, 
33                            Short_t charge);
34
35   AliAODRecoDecayHF4Prong(const AliAODRecoDecayHF4Prong& source);
36   AliAODRecoDecayHF4Prong& operator=(const AliAODRecoDecayHF4Prong& source); 
37
38   virtual ~AliAODRecoDecayHF4Prong() {}  
39  
40   void GetDCAs(Float_t dca[6]) const 
41     {for(Int_t i=0;i<6;i++) dca[i]=GetDCA(i);} // convention:fDCA[0]=p0p1,fDCA[1]=p0p2,fDCA[2]=p0p3,fDCA[3]=p1p2...
42
43
44   // D0->pi+K- pipi and D0bar->K+pi- pipi (in the order given) 
45   Double_t ED0() const {return E(421);}
46   Double_t YD0() const {return Y(421);} 
47   Double_t CtD0() const {return Ct(421);} 
48   Double_t CtD0(Double_t point[3]) const {return AliAODRecoDecay::Ct(421,point);}
49   Double_t CtD0(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(421,vtx1);}
50   Double_t InvMassRho() const {return InvMass2Prongs(2,3,211,211);} 
51   Double_t InvMassD0() const {UInt_t pdg[4]={211,321,211,211};return InvMass(4,pdg);}
52   Double_t InvMassD0bar() const {UInt_t pdg[4]={321,211,211,211};return InvMass(4,pdg);}
53   void InvMassD0(Double_t &mD0,Double_t &mD0bar) const
54     {mD0=InvMassD0();mD0bar=InvMassD0bar();return;}
55
56
57   Bool_t   SelectD0(const Double_t* cuts,Int_t &okD0,Int_t &okD0bar) const;
58
59
60  private:
61
62   //Double_t fSigmaVert; // track dispersion around the secondary vertex
63   Double_t fDist12toPrim; //distance prim vert - 2 opposite sign track vertex 
64   Double_t fDist23toPrim; //distance prim vert - 2 opposite sign track vertex 
65   Double_t fDist14toPrim; //distance prim vert - 2 opposite sign track vertex 
66   Double_t fDist34toPrim; //distance prim vert - 2 opposite sign track vertex 
67   //Double_t fDist123toPrim;  //distance 
68
69   ClassDef(AliAODRecoDecayHF4Prong,1)  // base class for AOD reconstructed 
70                                        // heavy-flavour 3-prong decays
71 };
72
73 #endif