1 #ifndef ALIAODRECOCASCADEHF3PRONG_H
2 #define ALIAODRECOCASCADEHF3PRONG_H
3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //***********************************************************
9 // Class AliAODRecoCascadeHF3Prong
10 // base class for AOD reconstructed heavy-flavour cascade 3Prong decays
11 // (Xic+->pi Xi pi, ...)
12 // The convention is: prong 0 is bachelor, prong 1 is cascade
13 // prong 2 is bachelor
15 // Author: Y.S. Watanabe, wyosuke@cns.s.u-tokyo.ac.jp
16 //***********************************************************
19 #include <TRefArray.h>
20 #include <TClonesArray.h>
22 #include "AliAODVertex.h"
23 #include "AliAODcascade.h"
25 #include "AliAODRecoDecayHF3Prong.h"
27 class AliAODRecoCascadeHF3Prong : public AliAODRecoDecayHF3Prong {
31 AliAODRecoCascadeHF3Prong();
32 AliAODRecoCascadeHF3Prong(AliAODVertex *vtx2, Short_t charge,
33 Double_t *px, Double_t *py, Double_t *pz,
34 Double_t *d0, Double_t *d0err,
35 Double_t *dca, Double_t sigvert,
36 Double_t dist12,Double_t dist23);
37 virtual ~AliAODRecoCascadeHF3Prong();
39 AliAODRecoCascadeHF3Prong(const AliAODRecoCascadeHF3Prong& source);
40 AliAODRecoCascadeHF3Prong& operator=(const AliAODRecoCascadeHF3Prong& source);
42 AliAODTrack* GetBachelor1() const {return (AliAODTrack*)GetDaughter(0);}
43 AliAODTrack* GetBachelor2() const {return (AliAODTrack*)GetDaughter(2);}
44 AliAODcascade* GetCascade() const {
45 if ( ! ((AliAODRecoDecay*)GetDaughter(1))->IsA()->InheritsFrom("AliAODcascade") ){
46 AliWarning("Object is not of type cascade");
49 return (AliAODcascade*)GetDaughter(1);
52 AliAODTrack* GetCascadePositiveTrack() const { return (AliAODTrack*)GetCascade()->GetDaughter(0); }
53 AliAODTrack* GetCascadeNegativeTrack() const { return (AliAODTrack*)GetCascade()->GetDaughter(1); }
54 AliAODTrack* GetCascadeBachelorTrack() const { return (AliAODTrack*)GetCascade()->GetDecayVertexXi()->GetDaughter(0); }
57 Double_t InvMassPiXiPi() const {
58 UInt_t pdg[3]={211,3312,211}; return InvMass(3,pdg);
61 // Int_t MatchToMC(Int_t pdgabs,Int_t pdgabs3prong,
62 // Int_t *pdgDg,Int_t *pdgDg3prong,
63 // TClonesArray *mcArray, Bool_t isV0=kFALSE) const;
65 Double_t CascDcaXiDaughters() const;
66 Double_t CascDcaV0Daughters() const;
67 Double_t CascDecayLength() const;
68 Double_t CascDecayLengthV0() const;
69 Double_t CascCosPointingAngle() const;
70 Double_t CascCosPointingAngleV0() const;
71 Double_t CascDcaV0ToPrimVertex() const;
72 Double_t CascDcaPosToPrimVertex() const;
73 Double_t CascDcaNegToPrimVertex() const;
74 Double_t CascDcaBachToPrimVertex() const;
75 Double_t CascMassXi() const;
76 Double_t CascMassLambda() const;
77 Double_t CascMassAntiLambda() const;
79 Double_t XicCosPointingAngle() const;
83 ClassDef(AliAODRecoCascadeHF3Prong, 1); // heavy-flavour cascade 3prong class