#include <TMath.h>
#include <TRef.h>
+#include <TClonesArray.h>
#include "AliAODVertex.h"
-#include "AliVParticle.h"
+#include "AliAODTrack.h"
+#include "AliVTrack.h"
-class AliAODRecoDecay : public AliVParticle {
+class AliAODRecoDecay : public AliVTrack {
public:
Short_t GetCharge() const {return fCharge;}
void SetCharge(Short_t charge=0) {fCharge=charge;}
+ // Match to MC signal:
+ // 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;
+ Int_t MatchToMC(Int_t pdgabs,TClonesArray *mcArray,Int_t *dgLabels) const;
+
// PID
void SetPID(Int_t nprongs,Double_t *pid);
Double_t *GetPID() const { return fPID; }
Int_t GetEventNumber() const { return fEventNumber; }
Int_t GetRunNumber() const { return fRunNumber; }
+ // methods of AliVTrack
+ virtual Int_t GetID() const { return -1; }
+ virtual UChar_t GetITSClusterMap() const;
+ 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;
+
// kinematics & topology
Double_t Px() const;
Double_t Py() const;
Double_t ImpParXY(AliAODVertex *vtx1) const;
// prongs
- //Int_t GetNProngs() const {return GetSecondaryVtx()->GetNDaughters();}
- Int_t GetNProngs() const {return fNProngs;}
+ Int_t GetNProngs() const {return fNProngs;}
+ Int_t GetNDaughters() const {return GetSecondaryVtx()->GetNDaughters();}
+ TObject *GetDaughter(Int_t i) const {return (GetNDaughters()>i ? GetSecondaryVtx()->GetDaughter(i) : 0x0);}
- Short_t ChargeProng(Int_t ip) const;
+ Short_t ChargeProng(Int_t ip) const;
Double_t Getd0Prong(Int_t ip) const {return fd0[ip];}
Double_t Prodd0d0(Int_t ip1=0,Int_t ip2=0) const {return fd0[ip1]*fd0[ip2];}
Double_t PxProng(Int_t ip) const {return fPx[ip];}
{printf("Dummy function; use AliAODRecoDecay::Y(UInt_t pdg) instead"); return (Double_t)-999.;}
Double_t M() const
{printf("Dummy function"); return (Double_t)-999.;}
-
+ Int_t GetLabel() const {return -1;}
protected:
TRef fSecondaryVtx; // decay vertex
//
- ClassDef(AliAODRecoDecay,3) // base class for AOD reconstructed decays
+ ClassDef(AliAODRecoDecay,4) // base class for AOD reconstructed decays
};
return;
}
if(fPID) delete [] fPID;
- fNPID = nprongs;
+ fNPID = nprongs*5;
fPID = new Double32_t[nprongs*5];
for(Int_t i=0;i<nprongs;i++)
for(Int_t j=0;j<5;j++)
#endif
+