#include "AliAODTrack.h"
#include "AliVTrack.h"
+class AliVVertex;
+
class AliAODRecoDecay : public AliVTrack {
public:
// check if this candidate is matched to a MC signal
// If no, return -1
// If yes, return label (>=0) of the AliAODMCParticle
- Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray) const;
+ // if ndgCk>0, checks also daughters PDGs
+ Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray,Int_t ndgCk=0,Int_t *pdgDg=0) const;
// PID
void SetPID(Int_t nprongs,Double_t *pid);
virtual ULong_t GetStatus() const;
virtual Bool_t GetXYZ(Double_t *p) const { return XvYvZv(p); }
virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const;
+ virtual Bool_t PropagateToDCA(const AliVVertex* vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]);
// kinematics & topology
Double_t Px() const;
Double_t M() const
{printf("Dummy function"); return (Double_t)-999.;}
Int_t GetLabel() const {return -1;}
+ Int_t PdgCode() const {return 0;}
+
protected:
- Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray,Int_t dgLabels[10],Int_t ndg) const;
+ Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray,Int_t dgLabels[10],Int_t ndg,Int_t ndgCk=0,Int_t *pdgDg=0) const;
Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray,Int_t dgLabels[10]) const { return MatchToMC(pdgabs,mcArray,dgLabels,GetNDaughters()); }
TRef fSecondaryVtx; // decay vertex