Update (Andrea)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoDecayHF2Prong.h
1 #ifndef ALIAODRECODECAYHF2PRONG_H
2 #define ALIAODRECODECAYHF2PRONG_H
3 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */ 
7
8 //***********************************************************
9 // Class AliAODRecoDecayHF2Prong
10 // base class for AOD reconstructed 2-prong heavy-flavour decays
11 // (D0->Kpi, J/psi->ee, ...)
12 // Author: A.Dainese, andrea.dainese@lnl.infn.it
13 //         G.E.Bruno, giuseppe.bruno@ba.infn.it 
14 //***********************************************************
15
16 #include "AliAODRecoDecay.h"
17 #include "AliAODRecoDecayHF.h"
18
19 class AliAODRecoDecayHF2Prong : public AliAODRecoDecayHF {
20
21  public:
22
23   AliAODRecoDecayHF2Prong();
24   AliAODRecoDecayHF2Prong(AliAODVertex *vtx2,
25                           Double_t *px,Double_t *py,Double_t *pz,
26                           Double_t *d0,Double_t *d0err,Float_t dca);
27   AliAODRecoDecayHF2Prong(AliAODVertex *vtx2,
28                           Double_t *d0,Double_t *d0err,Float_t dca);    
29   AliAODRecoDecayHF2Prong(const AliAODRecoDecayHF2Prong& source);
30   AliAODRecoDecayHF2Prong& operator=(const AliAODRecoDecayHF2Prong& source); 
31
32   virtual ~AliAODRecoDecayHF2Prong() {}  
33  
34   Double_t Prodd0d0() const {return AliAODRecoDecay::Prodd0d0(0,1);} 
35
36   // D0->Kpi
37   Double_t ED0() const {return E(421);} 
38   Double_t YD0() const {return Y(421);} 
39
40   Double_t CtD0() const {return Ct(421);} 
41   Double_t CtD0(Double_t point[3]) const {return AliAODRecoDecay::Ct(421,point);}
42   Double_t CtD0(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(421,vtx1);}
43
44   Double_t CosThetaStarD0() const {return CosThetaStar(1,421,211,321);} // angle of K
45   Double_t CosThetaStarD0bar() const {return CosThetaStar(0,421,321,211);} // angle of K
46   void CosThetaStarD0(Double_t &ctsD0,Double_t &ctsD0bar) const 
47     {ctsD0=CosThetaStarD0();ctsD0bar=CosThetaStarD0bar();return;}
48
49   Double_t InvMassD0() const {UInt_t pdg[2]={211,321};return InvMass(2,pdg);}
50   Double_t InvMassD0bar() const {UInt_t pdg[2]={321,211};return InvMass(2,pdg);}
51   void InvMassD0(Double_t &mD0,Double_t &mD0bar) const 
52     {mD0=InvMassD0();mD0bar=InvMassD0bar();return;}
53
54   Bool_t   SelectD0(const Double_t* cuts,Int_t &okD0,Int_t &okD0bar) const;
55
56   // Jpsi (from B) -> ee
57   Double_t EJPSI() const {return E(443);}
58   Double_t YJPSI() const {return Y(443);}
59
60   Double_t CtJPSI() const {return Ct(443);}
61   Double_t CtJPSI(Double_t point[3]) const {return AliAODRecoDecay::Ct(443,point);}
62   Double_t CtJPSI(AliAODVertex *vtx1) const {return AliAODRecoDecay::Ct(443,vtx1);}
63
64   Double_t CosThetaStarJPSI() const {return CosThetaStar(1,443,11,11);} // angle of e-
65
66   Double_t InvMassJPSIee() const {UInt_t pdg[2]={11,11};return InvMass(2,pdg);}
67
68   Bool_t   SelectBtoJPSI(const Double_t* cuts,Int_t &okB) const;
69   
70
71  private:
72
73   ClassDef(AliAODRecoDecayHF2Prong,1)  // base class for AOD reconstructed 
74                                        // heavy-flavour 2-prong decays
75 };
76
77 #endif