1 /**************************************************************************
2 * Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /////////////////////////////////////////////////////////////
18 // Base class for AOD reconstructed heavy-flavour 4-prong decay
20 // Authors: G.E.Bruno Giuseppe.Bruno@to.infn.it, R.Romita Rossella.Romita@ba.infn.it
21 /////////////////////////////////////////////////////////////
23 #include <TDatabasePDG.h>
24 #include "AliAODRecoDecayHF.h"
25 #include "AliAODRecoDecayHF4Prong.h"
26 #include "TRandom.h" // for the time being
28 ClassImp(AliAODRecoDecayHF4Prong)
30 //--------------------------------------------------------------------------
31 AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong() :
40 // Default Constructor
43 //--------------------------------------------------------------------------
44 AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
45 Double_t *px,Double_t *py,Double_t *pz,
46 Double_t *d0,Double_t *d0err,
47 Double_t *dca, //Double_t sigvert,
48 Double_t dist12,Double_t dist23,
49 Double_t dist14,Double_t dist34,
51 AliAODRecoDecayHF(vtx2,4,charge,px,py,pz,d0,d0err),
52 // fSigmaVert(sigvert),
53 fDist12toPrim(dist12),
54 fDist23toPrim(dist23),
55 fDist14toPrim(dist14),
59 // Constructor with AliAODVertex for decay vertex
63 //--------------------------------------------------------------------------
64 AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
65 Double_t *d0,Double_t *d0err,
66 Double_t *dca, //Double_t sigvert,
67 Double_t dist12,Double_t dist23,
68 Double_t dist14,Double_t dist34,
70 AliAODRecoDecayHF(vtx2,4,charge,d0,d0err),
71 //fSigmaVert(sigvert),
72 fDist12toPrim(dist12),
73 fDist23toPrim(dist23),
74 fDist14toPrim(dist14),
78 // Constructor with AliAODVertex for decay vertex and without prongs momenta
82 //--------------------------------------------------------------------------
83 AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(const AliAODRecoDecayHF4Prong &source) :
84 AliAODRecoDecayHF(source),
85 //fSigmaVert(source.fSigmaVert),
86 fDist12toPrim(source.fDist12toPrim),
87 fDist23toPrim(source.fDist23toPrim),
88 fDist14toPrim(source.fDist14toPrim),
89 fDist34toPrim(source.fDist34toPrim)
95 //--------------------------------------------------------------------------
96 AliAODRecoDecayHF4Prong &AliAODRecoDecayHF4Prong::operator=(const AliAODRecoDecayHF4Prong &source)
99 // assignment operator
101 if(&source == this) return *this;
103 AliAODRecoDecayHF::operator=(source);
105 fDist12toPrim= source.fDist12toPrim;
106 fDist23toPrim= source.fDist23toPrim;
107 fDist14toPrim= source.fDist14toPrim;
108 fDist34toPrim= source.fDist34toPrim;
109 //fSigmaVert= source.fSigmaVert;
113 //--------------------------------------------------------------------------
114 Bool_t AliAODRecoDecayHF4Prong::SelectD0(const Double_t *cuts,Int_t &okD0,Int_t &okD0bar)
117 // This function compares the D0 with a set of cuts:
126 // If candidate D0 does not pass the cuts return kFALSE
130 Double_t mD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
131 Double_t mD0=InvMassD0();
132 if(TMath::Abs(mD0-mD0PDG)>cuts[0]) return kFALSE;
135 //if(TMath::Abs(PtProng(2)) < cuts[2] || TMath::Abs(Getd0Prong(2))<cuts[4])return kFALSE;//Pion2
138 //for(Int_t i=0;i<3;i++) if(cuts[11]>0 && GetDCA(i)>cuts[11])return kFALSE;
141 //if(fDist12toPrim<cuts[5] || fDist23toPrim<cuts[5])return kFALSE;
142 //if(Getd0Prong(0)*Getd0Prong(1)<0 && Getd0Prong(2)*Getd0Prong(1)<0)return kFALSE;
145 //if(fSigmaVert>cuts[6])return kFALSE;
147 //if(DecayLength()<cuts[7])return kFALSE;
149 return kFALSE; // for the time being
150 // return kTRUE; // after implementation