]>
Commit | Line | Data |
---|---|---|
05d80dd6 | 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 | // | |
2f6fddeb | 12 | // Author: X-M. Zhang, zhangxm@iop.ccnu.edu.cn |
05d80dd6 | 13 | //*********************************************************** |
14 | ||
15 | #include <TRef.h> | |
16 | #include <TRefArray.h> | |
17 | #include "AliAODVertex.h" | |
18 | #include "AliAODRecoDecayHF2Prong.h" | |
19 | ||
20 | class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong { | |
21 | ||
22 | public: | |
23 | ||
24 | AliAODRecoCascadeHF(); | |
25 | AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge, | |
26 | Double_t *px, Double_t *py, Double_t *pz, | |
27 | Double_t *d0, Double_t *d0err, Double_t dca); | |
28 | AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge, | |
29 | Double_t *d0, Double_t *d0err, Double_t dca); | |
30 | virtual ~AliAODRecoCascadeHF(); | |
31 | ||
32 | AliAODRecoCascadeHF(const AliAODRecoCascadeHF& source); | |
33 | AliAODRecoCascadeHF& operator=(const AliAODRecoCascadeHF& source); | |
34 | ||
35 | // 2prong (D0 for Dstar) | |
36 | void Set2Prong(TObject *the2Prong) { f2Prong = the2Prong; } | |
37 | void Check2Prong() const { if(!f2Prong.GetObject()) printf("f2Prong not set\n"); return; } | |
38 | // GetDaughter(1) doesn't work because the V0 and the bachelor have different | |
39 | // process id and they can't go to the same TRefArray | |
40 | AliAODRecoDecayHF2Prong* Get2Prong() const { if(GetDaughter(1)) { return (AliAODRecoDecayHF2Prong*)GetDaughter(1); } else { return (AliAODRecoDecayHF2Prong*)f2Prong.GetObject(); } } | |
41 | void Unset2Prong () { f2Prong=0; return; } | |
42 | ||
43 | // Bachelor (soft pion for Dstar) | |
44 | AliAODTrack* GetBachelor() const {return (AliAODTrack*)GetDaughter(0);} | |
45 | ||
46 | // D*->D0pi, D0->Kpi | |
47 | Double_t EDstar() const {return E(413);} | |
48 | Double_t YDstar() const {return Y(413);} | |
49 | Bool_t SelectDstar(const Double_t *cutsDstar,const Double_t *cutsD0,Bool_t testD0=kTRUE) const; | |
50 | Double_t InvMassD0() const {return (Charge()>0 ? Get2Prong()->InvMassD0() : Get2Prong()->InvMassD0bar());} | |
51 | Double_t InvMassDstarKpipi() const; | |
52 | Double_t DeltaInvMass() const {return (InvMassDstarKpipi()-InvMassD0());} | |
53 | ||
54 | protected: | |
55 | ||
56 | ||
57 | TRef f2Prong; // the "V0" (e.g. D0->Kpi) | |
58 | ||
59 | ClassDef(AliAODRecoCascadeHF, 1); // heavy-flavour cascade class | |
60 | }; | |
61 | ||
62 | #endif |