]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAODRecoCascadeHF.h
Updates in PbPb cuts (Andrea Rossi)
[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
27de2dfb 6/* $Id$ */
7
05d80dd6 8//***********************************************************
9// Class AliAODRecoCascadeHF
10// base class for AOD reconstructed heavy-flavour cascade decays
11// (D*->D0pi, ...)
12// The convention is: prong 0 is the bachelor, prong 1 is the "V0"
13//
c3fe1eed 14// Author: X-M. Zhang, zhangxm@iopp.ccnu.edu.cn
05d80dd6 15//***********************************************************
16
17#include <TRef.h>
18#include <TRefArray.h>
b3999999 19#include <TClonesArray.h>
a07ad8e0 20#include <TClass.h>
05d80dd6 21#include "AliAODVertex.h"
a07ad8e0 22#include "AliAODv0.h"
05d80dd6 23#include "AliAODRecoDecayHF2Prong.h"
24
25class AliAODRecoCascadeHF : public AliAODRecoDecayHF2Prong {
26
27 public:
28
29 AliAODRecoCascadeHF();
30 AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge,
31 Double_t *px, Double_t *py, Double_t *pz,
32 Double_t *d0, Double_t *d0err, Double_t dca);
33 AliAODRecoCascadeHF(AliAODVertex *vtx2, Short_t charge,
34 Double_t *d0, Double_t *d0err, Double_t dca);
35 virtual ~AliAODRecoCascadeHF();
36
37 AliAODRecoCascadeHF(const AliAODRecoCascadeHF& source);
38 AliAODRecoCascadeHF& operator=(const AliAODRecoCascadeHF& source);
39
40 // 2prong (D0 for Dstar)
a07ad8e0 41 AliAODRecoDecayHF2Prong* Get2Prong() const {
42 if ( ! ((AliAODRecoDecay*)GetDaughter(1))->IsA()->InheritsFrom("AliAODRecoDecayHF2Prong") ){
43 AliWarning("Object is not of type AliAODRecoDecayHF2Prong");
44 return 0;
45 }
46 return (AliAODRecoDecayHF2Prong*)GetDaughter(1);
47 }
05d80dd6 48
49 // Bachelor (soft pion for Dstar)
50 AliAODTrack* GetBachelor() const {return (AliAODTrack*)GetDaughter(0);}
51
a07ad8e0 52 // v0 (Ks or Lambda for Lambda_c)
53 AliAODv0* Getv0() const {
54 if ( ! ((AliAODRecoDecay*)GetDaughter(1))->IsA()->InheritsFrom("AliAODv0") ){
55 AliWarning("Object is not of type v0");
56 return 0;
57 }
58 return (AliAODv0*)GetDaughter(1);
59 }
60
61 // Get v0 positive track
62 AliAODTrack* Getv0PositiveTrack() const { return (AliAODTrack*)Getv0()->GetDaughter(0); }
63 // Get v0 negative track
64 AliAODTrack* Getv0NegativeTrack() const { return (AliAODTrack*)Getv0()->GetDaughter(1); }
65
05d80dd6 66 // D*->D0pi, D0->Kpi
67 Double_t EDstar() const {return E(413);}
68 Double_t YDstar() const {return Y(413);}
69 Bool_t SelectDstar(const Double_t *cutsDstar,const Double_t *cutsD0,Bool_t testD0=kTRUE) const;
70 Double_t InvMassD0() const {return (Charge()>0 ? Get2Prong()->InvMassD0() : Get2Prong()->InvMassD0bar());}
71 Double_t InvMassDstarKpipi() const;
72 Double_t DeltaInvMass() const {return (InvMassDstarKpipi()-InvMassD0());}
3f6adfc9 73 Double_t AngleD0dkpPisoft() const;
ccfae9f3 74 Bool_t TrigonometricalCut() const;
05d80dd6 75
a07ad8e0 76 // Lc invariant mass
77 Double_t InvMassLctoK0sP() const {
78 UInt_t pdg[2]={2212,310}; return InvMass(2,pdg);
79 }
80 Double_t InvMassLctoLambdaPi() const {
81 UInt_t pdg[2]={211,3122}; return InvMass(2,pdg);
82 }
83 Bool_t SelectLctoV0(const Double_t *cutsLctoV0, Bool_t okLck0sp, Bool_t okLcLpi) const;
84
383937f0 85 Int_t MatchToMC(Int_t pdgabs,Int_t pdgabs2prong,
86 Int_t *pdgDg,Int_t *pdgDg2prong,
87 TClonesArray *mcArray) const;
b3999999 88
05d80dd6 89 protected:
90
dcfa35b3 91 ClassDef(AliAODRecoCascadeHF, 2); // heavy-flavour cascade class
05d80dd6 92};
93
94#endif