Corrected typo in contact mail address
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAODRecoCascadeHF.h
CommitLineData
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
20class 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