1 #ifndef ALIAODRECODECAYHF_H 2 #define ALIAODRECODECAYHF_H 15 #include "AliAODTrack.h" 16 #include "AliAODRecoDecay.h" 68 {
return AliAODRecoDecay::NormalizedDecayLength(
GetPrimaryVtx());}
70 {
return AliAODRecoDecay::NormalizedDecayLength2(
GetPrimaryVtx());}
74 {
return AliAODRecoDecay::DecayLengthXYError(
GetPrimaryVtx());}
76 {
return AliAODRecoDecay::NormalizedDecayLengthXY(
GetPrimaryVtx());}
82 {
return AliAODRecoDecay::CosPointingAngleXY(
GetPrimaryVtx());}
86 {
return AliAODRecoDecay::QtProngFlightLine(ip,
GetPrimaryVtx());}
88 {
return AliAODRecoDecay::QlProngFlightLine(ip,
GetPrimaryVtx());}
155 if(GetNProngs() && nprongsHF!=GetNProngs()){
156 printf(
"Cannot set nprongsHF for a candidate with a value already set \n ");
163 if(nIDs!=GetNProngs()) {
164 printf(
"Wrong number of IDs, must be nProngs\n");
169 for(
Int_t i=0;i<nIDs;i++)
178 Int_t ndg=GetNDaughters();
180 printf(
"Daughters not available\n");
183 Int_t chargeDg0 = ((AliAODTrack*)GetDaughter(0))->Charge();
185 for(
Int_t i=1; i<ndg; i++) {
186 if(chargeDg0!=((AliAODTrack*)GetDaughter(i))->Charge())
return kFALSE;
208 printf(
"ERROR: layer has to be in the range 0-5\n");
211 AliAODTrack *t = (AliAODTrack*)GetDaughter(dg);
212 if(!t)
return kFALSE;
214 return TESTBIT(t->GetITSClusterMap(),l);
222 for(
Int_t i=0; i<GetNDaughters(); i++) {
223 AliAODTrack *track=(AliAODTrack*)GetDaughter(i);
225 if(track->Charge()==0) {
226 AliAODRecoDecay *rd=(AliAODRecoDecay*)GetDaughter(i);
227 for(
Int_t j=0; j<rd->GetNDaughters(); j++) {
228 AliAODTrack *track2=(AliAODTrack*)GetDaughter(j);
229 if(track2->GetLabel()<0) nfakes++;
234 if(track->GetLabel()<0) nfakes++;
241 if(nprongs!=GetNProngs()) {
242 printf(
"Wrong number of d0 err values, must be nProngs\n");
246 fd0err =
new Double32_t[nprongs];
248 for(
Int_t i=0;i<nprongs;i++) {
259 for(
Int_t iDau=0; iDau<GetNDaughters(); iDau++){
260 if (GetDaughter(iDau)==NULL)
continue;
261 AliAODTrack* at=
dynamic_cast<AliAODTrack*
>(GetDaughter(iDau));
263 if(at->Charge()==0)
continue;
264 if(at->GetTPCNcls()==0)
continue;
265 if(!(at->TestFilterMask(BIT(4))))
return kTRUE;
Double_t * fd0err
error on prongs rphi impact param [cm]
Double_t NormalizedDecayLengthXY() const
Double_t NormalizedDecayLength() const
AliAODRecoDecayHF & operator=(const AliAODRecoDecayHF &source)
void SetSelectionBit(Int_t i)
selection map
void UnsetOwnSecondaryVtx()
void Getd0MeasMinusExpProng(Int_t ip, Double_t magf, Double_t &d0diff, Double_t &errd0diff) const
virtual ~AliAODRecoDecayHF()
Bool_t HasSelectionBit(Int_t i) const
Double_t Ct(UInt_t pdg) const
void UnsetOwnPrimaryVtx()
TList * GetListOfCuts() const
AliAODVertex * fOwnPrimaryVtx
TPC+ITS tracks not passing the StandardCuts2010 with loose DCA.
Double_t NormalizedDecayLength2() const
Double_t ImpParXY() const
Int_t fIsFilled
used to store outcome of selection in AliAnalysisVertexingHF
Double_t CosPointingAngleXY() const
virtual void DeleteRecoD()
ULong_t GetSelectionMap() const
AliAODVertex * GetPrimaryVtxRef() const
void RecalculateImpPars(AliAODVertex *vtxAODNew, AliAODEvent *aod)
Bool_t HasBadDaughters() const
void GetOwnPrimaryVtx(Double_t vtx[3]) const
AliRDHFCuts * GetCuts(const char *name) const
Int_t GetIsFilled() const
void SetListOfCutsRef(TObject *obj)
list of cuts
AliAODVertex * GetOwnPrimaryVtx() const
void SetProngIDs(Int_t nIDs, UShort_t *id)
Double_t Getd0errProng(Int_t ip) const
prongs
UShort_t GetProngID(Int_t ip) const
UShort_t * fProngID
track ID of daughters
AliAODVertex * RemoveDaughtersFromPrimaryVtx(AliAODEvent *aod)
Double_t DecayLength2() const
kinematics & topology
void SetPrimaryVtxRef(TObject *vtx)
primary vertex
void Misalign(TString misal="null")
misalign
Bool_t DaughterHasPointOnITSLayer(Int_t dg, Int_t l) const
ITS clustermap for daughters.
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
Double_t DecayLengthXY() const
TRef fEventPrimaryVtx
primary vertex for this candidate
Double_t Normalizedd0Prong(Int_t ip) const
void Setd0errProngs(Int_t nprongs, Double_t *d0)
Int_t fNProngsHF
ref to the list of analysis cuts
TRef fListOfCuts
ref to primary vertex of the event
Double_t DecayLengthError() const
Int_t NumberOfFakeDaughters() const
Double_t QlProngFlightLine(Int_t ip) const
void CheckOwnPrimaryVtx() const
AliAODVertex * GetPrimaryVtx() const
void SetNProngsHF(Int_t nprongsHF)
Double_t QtProngFlightLine(Int_t ip) const
AliKFParticle * ApplyVertexingKF(Int_t *iprongs, Int_t nprongs, Int_t *pdgs, Bool_t topoCostraint, Double_t bzkG, Double_t *mass) const
vertexing KF:
Double_t CosPointingAngle() const
Double_t DecayLengthXYError() const
Double_t DecayLength() const
Bool_t IsLikeSign() const
check if it is like-sign
void SetIsFilled(Int_t filled)