Use new method AliAODRecoDecay::MatchToMC that simplifies matching to MC
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoCascadeHF.h
1 #ifndef ALIAODRECOCASCADEHF_H
2 #define ALIAODRECOCASCADEHF_H
3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //***********************************************************
7 // Class AliAODRecoCascadeHF
8 // base class for AOD reconstructed heavy-flavour cascade decays
9 // (D*->D0pi, ...)
10 // The convention is: prong 0 is the bachelor, prong 1 is the "V0"
11 //
12 // Author: X-M. Zhang, zhangxm@iopp.ccnu.edu.cn
13 //***********************************************************
14
15 #include <TRef.h>
16 #include <TRefArray.h>
17 #include <TClonesArray.h>
18 #include "AliAODVertex.h"
19 #include "AliAODRecoDecayHF2Prong.h"
20
21 class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong {
22
23  public:
24
25   AliAODRecoCascadeHF();
26   AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge,
27                       Double_t *px, Double_t *py, Double_t *pz,
28                       Double_t *d0, Double_t *d0err, Double_t dca);
29   AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge,
30                       Double_t *d0, Double_t *d0err, Double_t dca);
31   virtual ~AliAODRecoCascadeHF();
32
33   AliAODRecoCascadeHF(const AliAODRecoCascadeHF& source);
34   AliAODRecoCascadeHF& operator=(const AliAODRecoCascadeHF& source);
35
36   // 2prong (D0 for Dstar)
37   AliAODRecoDecayHF2Prong* Get2Prong() const {return (AliAODRecoDecayHF2Prong*)GetDaughter(1);}
38
39   // Bachelor (soft pion for Dstar)
40   AliAODTrack* GetBachelor() const {return (AliAODTrack*)GetDaughter(0);}
41
42   // D*->D0pi, D0->Kpi
43   Double_t EDstar() const {return E(413);} 
44   Double_t YDstar() const {return Y(413);} 
45   Bool_t   SelectDstar(const Double_t *cutsDstar,const Double_t *cutsD0,Bool_t testD0=kTRUE) const;
46   Double_t InvMassD0() const {return (Charge()>0 ? Get2Prong()->InvMassD0() : Get2Prong()->InvMassD0bar());}
47   Double_t InvMassDstarKpipi() const;
48   Double_t DeltaInvMass() const {return (InvMassDstarKpipi()-InvMassD0());}
49
50   Int_t MatchToMC(Int_t pdgabs,Int_t pdgabs2prong,TClonesArray *mcArray) const;
51
52  protected:
53
54   ClassDef(AliAODRecoCascadeHF, 2); // heavy-flavour cascade class
55 };
56
57 #endif