ROOT logo
AliRoot » STEER » AOD » AliAODRecoDecay

class AliAODRecoDecay: public AliVTrack


 Base class for AOD reconstructed decay

 Author: A.Dainese, andrea.dainese@lnl.infn.it

Function Members (Methods)

public:
AliAODRecoDecay()
AliAODRecoDecay(const AliAODRecoDecay& source)
AliAODRecoDecay(AliAODVertex* vtx2, Int_t nprongs, Short_t charge, Double_t* d0)
AliAODRecoDecay(AliAODVertex* vtx2, Int_t nprongs, Short_t charge, Double_t* px, Double_t* py, Double_t* pz, Double_t* d0)
virtual~AliAODRecoDecay()
voidTObject::AbstractMethod(const char* method) const
Double_tAlpha() const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Short_tCharge() const
Short_tChargeProng(Int_t ip) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tAliVParticle::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Double_tCosPointingAngle(Double_t* point) const
Double_tCosPointingAngle(AliAODVertex* vtx1) const
Double_tCosPointingAngleXY(Double_t* point) const
Double_tCosPointingAngleXY(AliAODVertex* vtx1) const
Double_tCosThetaStar(Int_t ip, UInt_t pdgvtx, UInt_t pdgprong0, UInt_t pdgprong1) const
Double_tCt(UInt_t pdg, Double_t* point) const
Double_tCt(UInt_t pdg, AliAODVertex* vtx1) const
Double_tDecayLength(Double_t* point) const
Double_tDecayLength(AliAODVertex* vtx1) const
Double_tDecayLength2(Double_t* point) const
Double_tDecayLength2(AliAODVertex* vtx1) const
Double_tDecayLengthError(AliAODVertex* vtx1) const
Double_tDecayLengthError2(AliAODVertex* vtx1) const
Double_tDecayLengthXY(Double_t* point) const
Double_tDecayLengthXY(AliAODVertex* vtx1) const
Double_tDecayLengthXYError(AliAODVertex* vtx1) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Double_tE() const
Double_tE(UInt_t pdg) const
Double_tE2(UInt_t pdg) const
Double_tE2Prong(Int_t ip, UInt_t pdg) const
Double_tEProng(Int_t ip, UInt_t pdg) const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual Double_tEta() const
Double_tEtaProng(Int_t ip) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Double_tAliVTrack::GetAlpha() const
virtual voidAliVTrack::GetBxByBz(Double_t* b) const
virtual Double_tAliVTrack::GetBz() const
Short_tGetCharge() const
virtual const AliExternalTrackParam*AliVTrack::GetConstrainedParam() const
virtual Bool_tGetCovarianceXYZPxPyPz(Double_t* cv) const
Double_tGetd0Prong(Int_t ip) const
TObject*GetDaughter(Int_t i) const
Double_tGetDCA(Int_t i = 0) const
virtual const AliDetectorPID*AliVTrack::GetDetectorPID() const
virtual voidAliVTrack::GetDirection(Double_t*) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual voidAliVTrack::GetDZ(Double_t, Double_t, Double_t, Double_t, Float_t*) const
virtual Int_tAliVTrack::GetEMCALcluster() const
virtual const AliVEvent*AliVTrack::GetEvent() const
Int_tGetEventNumber() const
virtual Int_tAliVParticle::GetFirstDaughter() const
virtual UInt_tAliVParticle::GetFlag() const
virtual Short_tAliVParticle::GetGeneratorIndex() const
virtual Int_tAliVTrack::GetHMPIDcluIdx() const
virtual voidAliVTrack::GetHMPIDmip(Float_t&, Float_t&, Int_t&, Int_t&) const
virtual Double_tAliVTrack::GetHMPIDoccupancy() const
virtual voidAliVTrack::GetHMPIDpid(Double_t*) const
virtual Double_tAliVTrack::GetHMPIDsignal() const
virtual voidAliVTrack::GetHMPIDtrk(Float_t&, Float_t&, Float_t&, Float_t&) const
virtual const char*TObject::GetIconName() const
virtual Int_tGetID() const
virtual voidAliVTrack::GetImpactParameters(Float_t*, Float_t*) const
virtual voidAliVTrack::GetImpactParameters(Float_t&, Float_t&) const
virtual voidAliVTrack::GetImpactParametersTPC(Float_t&, Float_t&) const
virtual voidAliVTrack::GetImpactParametersTPC(Float_t*, Float_t*) const
virtual const AliExternalTrackParam*AliVTrack::GetInnerParam() const
virtual Double_tAliVTrack::GetIntegratedLength() const
virtual voidAliVTrack::GetIntegratedTimes(Double_t*, Int_t nspec = AliPID::kSPECIESC) const
virtual UChar_tGetITSClusterMap() const
virtual Char_tAliVTrack::GetITSclusters(Int_t*) const
virtual voidAliVTrack::GetITSdEdxSamples(Double_t* s) const
virtual Double_tAliVTrack::GetITSsignal() const
virtual Int_tAliVTrack::GetKinkIndex(Int_t) const
virtual Int_tGetLabel() const
virtual Int_tAliVParticle::GetLastDaughter() const
virtual Double_tAliVTrack::GetLinearD(Double_t, Double_t) const
virtual Int_tAliVParticle::GetMother() const
virtual const char*TObject::GetName() const
virtual Int_tAliVTrack::GetNcls(Int_t) const
Int_tGetNDaughters() const
Int_tGetNProngs() const
virtual Int_tAliVTrack::GetNumberOfClusters() const
virtual Int_tAliVTrack::GetNumberOfTRDslices() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Bool_tAliVTrack::GetOuterHmpPxPyPz(Double_t*) const
virtual const AliExternalTrackParam*AliVTrack::GetOuterParam() const
AliAODVertex*GetOwnSecondaryVtx() const
virtual Double_tAliVTrack::GetP() const
virtual const Double_t*AliVTrack::GetParameter() const
virtual Int_tAliVTrack::GetPHOScluster() const
Double_t*GetPID() const
virtual Int_tAliVTrack::GetPIDForTracking() const
voidGetPIDProng(Int_t ip, Double_t* pid) const
virtual Bool_tAliVTrack::GetPxPyPz(Double_t*) const
Double_tGetReducedChi2() const
Int_tGetRunNumber() const
AliAODVertex*GetSecondaryVtx() const
voidGetSecondaryVtx(Double_t* vtx) const
Double_tGetSecVtxX() const
Double_tGetSecVtxY() const
Double_tGetSecVtxZ() const
virtual Double_tAliVTrack::GetSigned1Pt() const
virtual ULong_tGetStatus() const
virtual Double_tAliVTrack::GetTgl() const
virtual const char*TObject::GetTitle() const
virtual Int_tAliVTrack::GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const
virtual const AliTOFHeader*AliVTrack::GetTOFHeader() const
virtual Double_tAliVTrack::GetTOFsignal() const
virtual Double_tAliVTrack::GetTOFsignalDz() const
virtual Double_tAliVTrack::GetTOFsignalTunedOnData() const
virtual Float_tAliVTrack::GetTPCClusterInfo(Int_t, Int_t, Int_t = 0, Int_t = 159, Int_t = 0) const
virtual const TBits*AliVTrack::GetTPCClusterMapPtr() const
virtual Float_tAliVTrack::GetTPCCrossedRows() const
virtual AliTPCdEdxInfo*AliVTrack::GetTPCdEdxInfo() const
virtual const TBits*AliVTrack::GetTPCFitMapPtr() const
virtual const AliExternalTrackParam*AliVTrack::GetTPCInnerParam() const
virtual Double_tAliVTrack::GetTPCmomentum() const
virtual UShort_tAliVTrack::GetTPCNcls() const
virtual UShort_tAliVTrack::GetTPCncls(Int_t = 0, Int_t = 159) const
virtual UShort_tAliVTrack::GetTPCNclsF() const
virtual const TBits*AliVTrack::GetTPCSharedMapPtr() const
virtual Double_tAliVTrack::GetTPCsignal() const
virtual UShort_tAliVTrack::GetTPCsignalN() const
virtual Double_tAliVTrack::GetTPCsignalTunedOnData() const
virtual Double_tAliVTrack::GetTPCTgl() const
virtual Double_tAliVTrack::GetTrackEtaOnEMCal() const
virtual Int_tAliVTrack::GetTrackParam(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamCp(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamIp(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamITSOut(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamOp(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamRefitted(AliExternalTrackParam&) const
virtual Int_tAliVTrack::GetTrackParamTPCInner(AliExternalTrackParam&) const
virtual Double_tAliVTrack::GetTrackPhiOnEMCal() const
virtual Double_tAliVTrack::GetTrackPOnEMCal() const
virtual Double_tAliVTrack::GetTrackPtOnEMCal() const
virtual Double_tAliVTrack::GetTRDchi2() const
virtual UChar_tAliVTrack::GetTRDclusters(Int_t*) const
virtual Double_tAliVTrack::GetTRDmomentum(Int_t, Double_t* = 0x0) const
virtual UChar_tAliVTrack::GetTRDNchamberdEdx() const
virtual UChar_tAliVTrack::GetTRDncls() const
virtual UChar_tAliVTrack::GetTRDNclusterdEdx() const
virtual UChar_tAliVTrack::GetTRDntrackletsPID() const
virtual Double_tAliVTrack::GetTRDsignal() const
virtual Double_tAliVTrack::GetTRDslice(Int_t, Int_t) const
virtual UInt_tTObject::GetUniqueID() const
virtual Double_tAliVTrack::GetX() const
virtual Bool_tGetXYZ(Double_t* p) const
virtual Bool_tAliVTrack::GetXYZAt(Double_t, Double_t, Double_t*) const
virtual Double_tAliVTrack::GetY() const
virtual Double_tAliVTrack::GetZ() const
Bool_tAliVParticle::Global2LocalMomentum(Double_t* p, Short_t charge, Double_t& alpha) const
Bool_tAliVParticle::Global2LocalPosition(Double_t* r, Double_t alpha) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Double_tImpParXY(Double_t* point) const
Double_tImpParXY(AliAODVertex* vtx1) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
Double_tInvMass(Int_t npdg, UInt_t* pdg) const
Double_tInvMass2(Int_t npdg, UInt_t* pdg) const
Double_tInvMass2Prongs(Int_t ip1, Int_t ip2, UInt_t pdg1, UInt_t pdg2) const
virtual TClass*IsA() const
virtual Bool_tAliVTrack::IsEMCAL() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tAliVTrack::IsExtrapolatedToEMCAL() const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tAliVTrack::IsOn(Int_t) const
Bool_tTObject::IsOnHeap() const
virtual Bool_tAliVTrack::IsPHOS() const
virtual Bool_tAliVParticle::IsPrimary() const
virtual Bool_tAliVParticle::IsSortable() const
Bool_tTObject::IsZombie() const
Bool_tAliVParticle::Local2GlobalMomentum(Double_t* p, Double_t alpha) const
Bool_tAliVParticle::Local2GlobalPosition(Double_t* r, Double_t alpha) const
virtual voidTObject::ls(Option_t* option = "") const
virtual Double_tM() const
Int_tMatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t ndgCk = 0, const Int_t* pdgDg = 0) const
voidTObject::MayNotUse(const char* method) const
Double_tNormalizedDecayLength(AliAODVertex* vtx1) const
Double_tNormalizedDecayLength2(AliAODVertex* vtx1) const
Double_tNormalizedDecayLengthXY(AliAODVertex* vtx1) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
virtual Double_tOneOverPt() const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliAODRecoDecay&operator=(const AliAODRecoDecay& source)
virtual Double_tP() const
Double_tP2() const
Double_tP2Prong(Int_t ip) const
virtual voidTObject::Paint(Option_t* option = "")
Bool_tPassInvMassCut(Int_t pdgMom, Int_t npdgDg, UInt_t* pdgDg, Double_t cut) const
virtual Int_tPdgCode() const
virtual Double_tPhi() const
Double_tPhiProng(Int_t ip) const
virtual const Double_t*PID() const
virtual voidTObject::Pop()
Double_tPProng(Int_t ip) const
virtual voidPrint(Option_t* option = "") const
Double_tProdd0d0(Int_t ip1 = 0, Int_t ip2 = 0) const
Double_tProngsRelAngle(Int_t ip1 = 0, Int_t ip2 = 1) const
virtual Bool_tPropagateToDCA(const AliVVertex* vtx, Double_t b, Double_t maxd, Double_t* dz, Double_t* covar)
virtual Double_tPt() const
Double_tPt2() const
Double_tPt2Prong(Int_t ip) const
Double_tPtProng(Int_t ip) const
virtual Double_tPx() const
Double_tPxProng(Int_t ip) const
virtual Bool_tPxPyPz(Double_t* p) const
virtual Double_tPy() const
Double_tPyProng(Int_t ip) const
virtual Double_tPz() const
Double_tPzProng(Int_t ip) const
Double_tQlProng(Int_t ip) const
Double_tQlProngFlightLine(Int_t ip, Double_t* point) const
Double_tQlProngFlightLine(Int_t ip, AliAODVertex* vtx1) const
Double_tQtProng(Int_t ip = 0) const
Double_tQtProngFlightLine(Int_t ip, Double_t* point) const
Double_tQtProngFlightLine(Int_t ip, AliAODVertex* vtx1) const
Double_tRadiusSecVtx() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidAliVTrack::ResetStatus(ULong_t)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCharge(Short_t charge = 0)
voidSetd0Prongs(Int_t nprongs, Double_t* d0)
voidSetDCA(Double_t dca)
voidSetDCAs(Int_t nDCA, Double_t* dca)
virtual voidAliVTrack::SetDetectorPID(const AliDetectorPID*)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliVTrack::SetEMCALcluster(Int_t)
voidSetEventRunNumbers(Int_t en, Int_t rn)
virtual voidAliVParticle::SetFlag(UInt_t)
virtual voidAliVParticle::SetGeneratorIndex(Short_t)
virtual voidAliVTrack::SetID(Short_t)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOwnSecondaryVtx(AliAODVertex* vtx2)
virtual voidAliVTrack::SetPHOScluster(Int_t)
voidSetPID(Int_t nprongs, Double_t* pid)
virtual voidAliVTrack::SetPIDForTracking(Int_t)
voidSetPxPyPzProngs(Int_t nprongs, Double_t* px, Double_t* py, Double_t* pz)
voidSetSecondaryVtx(AliAODVertex* vtx2)
virtual voidAliVTrack::SetStatus(ULong_t)
virtual voidAliVTrack::SetTrackPhiEtaPtOnEMCal(Double_t, Double_t, Double_t = -999)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual Double_tTheta() const
Double_tThetaProng(Int_t ip) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual Double_tXv() const
virtual Bool_tXvYvZv(Double_t* x) const
virtual Double_tY() const
Double_tY(UInt_t pdg) const
Double_tYProng(Int_t ip, UInt_t pdg) const
virtual Double_tYv() const
virtual Double_tZv() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
Int_tMatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t* dgLabels) const
Int_tMatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t* dgLabels, Int_t ndg, Int_t ndgCk = 0, const Int_t* pdgDg = 0) const

Data Members

protected:
Short_tfChargecharge, use this convention for prongs charges:
Double32_t*fDCA[fNDCA] prong-to-prong DCA [cm]
Int_tfEventNumber
Int_tfNDCAnumber of dca's
Int_tfNPIDnumber of PID probabilities
Int_tfNProngsnumber of prongs
AliAODVertex*fOwnSecondaryVtxtemporary solution (to work outside AliAODEvent)
Double32_t*fPID[fNPID] combined pid
Double32_t*fPx[fNProngs] px of tracks at the vertex [GeV/c]
Double32_t*fPy[fNProngs] py of tracks at the vertex [GeV/c]
Double32_t*fPz[fNProngs] pz of tracks at the vertex [GeV/c]
Int_tfRunNumber
TReffSecondaryVtxdecay vertex
Double32_t*fd0[fNProngs] rphi impact params w.r.t. Primary Vtx [cm]

Class Charts

Inheritance Chart:
TObject
AliVParticle
AliVTrack
AliAODRecoDecay
AliAODRecoDecayHF
AliAODRecoDecayHF2Prong
AliAODRecoCascadeHF
AliAODRecoDecayHF3Prong
AliAODRecoDecayHF4Prong
AliAODRecoDecayLF
AliAODRecoDecayLF2Prong
AliAODv0
AliAODcascade

Function documentation

AliAODRecoDecay()
 Default Constructor

AliAODRecoDecay(AliAODVertex* vtx2, Int_t nprongs, Short_t charge, Double_t* px, Double_t* py, Double_t* pz, Double_t* d0)
 Constructor with AliAODVertex for decay vertex

AliAODRecoDecay(AliAODVertex* vtx2, Int_t nprongs, Short_t charge, Double_t* d0)
 Constructor with AliAODVertex for decay vertex and without prongs momenta

AliAODRecoDecay(const AliAODRecoDecay& source)
 Copy constructor

AliAODRecoDecay & operator=(const AliAODRecoDecay& source)
 assignment operator

~AliAODRecoDecay()
 Default Destructor

Double_t Alpha() const
 Armenteros-Podolanski alpha for 2-prong decays

Double_t DecayLength2(Double_t point[3])
 Decay length assuming it is produced at "point" [cm]

Double_t DecayLengthXY(Double_t point[3])
 Decay length in XY assuming it is produced at "point" [cm]

Double_t CosPointingAngle(Double_t point[3])
 Cosine of pointing angle in space assuming it is produced at "point"

Double_t CosPointingAngleXY(Double_t point[3])
 Cosine of pointing angle in transverse plane assuming it is produced
 at "point"

Double_t CosThetaStar(Int_t ip, UInt_t pdgvtx, UInt_t pdgprong0, UInt_t pdgprong1) const
 Only for 2-prong decays:
 Cosine of decay angle (theta*) in the rest frame of the mother particle
 for prong ip (0 or 1) with mass hypotheses pdgvtx for mother particle,
 pdgprong0 for prong 0 and pdgprong1 for prong1

Double_t Ct(UInt_t pdg,Double_t point[3])
 Decay time * c assuming it is produced at "point" [cm]

Double_t E2(UInt_t pdg) const
 Energy

Double_t E2Prong(Int_t ip, UInt_t pdg) const
 Energy of ip-th prong

Bool_t GetCovarianceXYZPxPyPz(Double_t* cv) const
 This function returns the global covariance matrix of the track params

 Cov(x,x) ... :   cv[0]
 Cov(y,x) ... :   cv[1]  cv[2]
 Cov(z,x) ... :   cv[3]  cv[4]  cv[5]
 Cov(px,x)... :   cv[6]  cv[7]  cv[8]  cv[9]
 Cov(py,x)... :   cv[10] cv[11] cv[12] cv[13] cv[14]
 Cov(pz,x)... :   cv[15] cv[16] cv[17] cv[18] cv[19] cv[20]

 For XYZ we take the cov of the vertex, for PxPyPz we take the
 sum of the covs of PxPyPz from the daughters, for the moment
 we set the cov between position and momentum as the sum of
 the same cov from the daughters.

UChar_t GetITSClusterMap() const
 We take the logical AND of the daughters cluster maps
 (only if all daughters have the bit for given layer, we set the bit)

ULong_t GetStatus() const
 Same as for ITSClusterMap

Bool_t PropagateToDCA(const AliVVertex* vtx, Double_t b, Double_t maxd, Double_t* dz, Double_t* covar)
 compute impact parameters to the vertex vtx and their covariance matrix
 b is the Bz, needed to propagate correctly the track to vertex
 return kFALSE is something went wrong
Double_t ImpParXY(Double_t point[3])
 Impact parameter in the bending plane of the particle
 w.r.t. to "point"

Double_t InvMass2(Int_t npdg, UInt_t* pdg) const
 Invariant mass for prongs mass hypotheses in pdg array

Bool_t PassInvMassCut(Int_t pdgMom, Int_t npdgDg, UInt_t* pdgDg, Double_t cut) const
 Apply mass cut

Double_t InvMass2Prongs(Int_t ip1, Int_t ip2, UInt_t pdg1, UInt_t pdg2) const
 2-prong(ip1,ip2) invariant mass for prongs mass hypotheses in pdg1,2

Int_t MatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t ndgCk = 0, const Int_t* pdgDg = 0) const
 Check if this candidate is matched to a MC signal
 If no, return -1
 If yes, return label (>=0) of the AliAODMCParticle

 if ndgCk>0, checks also daughters PDGs

Int_t MatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t* dgLabels, Int_t ndg, Int_t ndgCk = 0, const Int_t* pdgDg = 0) const
 Check if this candidate is matched to a MC signal
 If no, return -1
 If yes, return label (>=0) of the AliAODMCParticle

void Print(Option_t* option = "") const
 Print some information

Double_t ProngsRelAngle(Int_t ip1 = 0, Int_t ip2 = 1) const
 Relative angle between two prongs

Double_t QlProng(Int_t ip) const
 Longitudinal momentum of prong w.r.t. to total momentum

Double_t QtProng(Int_t ip = 0) const
 Transverse momentum of prong w.r.t. to total momentum

Double_t QlProngFlightLine(Int_t ip,Double_t point[3])
 Longitudinal momentum of prong w.r.t. to flight line between "point"
 and fSecondaryVtx

Double_t QtProngFlightLine(Int_t ip,Double_t point[3])
 Transverse momentum of prong w.r.t. to flight line between "point" and
 fSecondaryVtx

Short_t ChargeProng(Int_t ip) const
Double_t RadiusSecVtx() const
void GetSecondaryVtx(Double_t* vtx) const
Double_t Px() const
Double_t Py() const
Double_t Pz() const
Double_t Ct(UInt_t pdg, AliAODVertex* vtx1) const
Double_t CosPointingAngle(AliAODVertex* vtx1) const
Double_t CosPointingAngleXY(AliAODVertex* vtx1) const
Double_t ImpParXY(AliAODVertex* vtx1) const
Double_t Pt2Prong(Int_t ip) const
Double_t P2Prong(Int_t ip) const
Double_t QlProngFlightLine(Int_t ip, AliAODVertex* vtx1) const
Double_t QtProngFlightLine(Int_t ip, AliAODVertex* vtx1) const
void Setd0Prongs(Int_t nprongs, Double_t* d0)
void SetPxPyPzProngs(Int_t nprongs, Double_t* px, Double_t* py, Double_t* pz)
void SetDCAs(Int_t nDCA, Double_t* dca)
void SetDCA(Double_t dca)
void SetPID(Int_t nprongs, Double_t* pid)
void GetPIDProng(Int_t ip, Double_t* pid) const
Double_t GetSecVtxX() const
 decay vertex
{return GetSecondaryVtx()->GetX();}
Double_t GetSecVtxY() const
{return GetSecondaryVtx()->GetY();}
Double_t GetSecVtxZ() const
{return GetSecondaryVtx()->GetZ();}
void SetSecondaryVtx(AliAODVertex* vtx2)
AliAODVertex* GetSecondaryVtx() const
{ return (((AliAODVertex*)fSecondaryVtx.GetObject()) ? (AliAODVertex*)fSecondaryVtx.GetObject() : GetOwnSecondaryVtx()); }
void SetOwnSecondaryVtx(AliAODVertex* vtx2)
AliAODVertex* GetOwnSecondaryVtx() const
Double_t GetReducedChi2() const
Short_t Charge() const
{return fCharge;}
Short_t GetCharge() const
{return fCharge;}
void SetCharge(Short_t charge = 0)
{fCharge=charge;}
Int_t MatchToMC(Int_t pdgabs, TClonesArray* mcArray, Int_t ndgCk = 0, const Int_t* pdgDg = 0) const
 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
 if ndgCk>0, checks also daughters PDGs
Double_t * GetPID() const
{ return fPID; }
const Double_t * PID() const
{ return fPID; }
Double_t GetDCA(Int_t i = 0) const
{return fDCA[i];}
void SetEventRunNumbers(Int_t en, Int_t rn)
event and run number
{ fEventNumber=en; fRunNumber=rn; return; }
Int_t GetEventNumber() const
{ return fEventNumber; }
Int_t GetRunNumber() const
{ return fRunNumber; }
Int_t GetID() const
 methods of AliVTrack
{ return -1; }
Bool_t GetXYZ(Double_t* p) const
{ return XvYvZv(p); }
Double_t P2() const
{return Px()*Px()+Py()*Py()+Pz()*Pz();}
Double_t Pt2() const
{return Px()*Px()+Py()*Py();}
Double_t P() const
{return TMath::Sqrt(P2());}
Double_t Pt() const
{return TMath::Sqrt(Pt2());}
Double_t OneOverPt() const
{return (Pt() ? 1./Pt() : 0.);}
Bool_t PxPyPz(Double_t* p) const
{ p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
Double_t Phi() const
{return TMath::Pi()+TMath::ATan2(-Py(),-Px());}
Double_t Theta() const
{return 0.5*TMath::Pi()-TMath::ATan(Pz()/(Pt()+1.e-13));}
Double_t Eta() const
{return 0.5*TMath::Log((P()+Pz())/(P()-Pz()+1.e-13));}
Double_t Xv() const
{ return GetSecVtxX(); }
Double_t Yv() const
{ return GetSecVtxY(); }
Double_t Zv() const
{ return GetSecVtxZ(); }
Bool_t XvYvZv(Double_t* x) const
{ x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }
Double_t E(UInt_t pdg) const
{return TMath::Sqrt(E2(pdg));}
Double_t Y(UInt_t pdg) const
{Double_t e=E(pdg); return 0.5*TMath::Log((e+Pz())/(e-Pz()+1.e-13));}
Double_t DecayLength2(Double_t point[3])
Double_t DecayLength(Double_t point[3])
{return TMath::Sqrt(DecayLength2(point));}
Double_t DecayLength(AliAODVertex* vtx1) const
{return TMath::Sqrt(DecayLength2(vtx1));}
Double_t DecayLengthError2(AliAODVertex* vtx1) const
Double_t DecayLengthError(AliAODVertex* vtx1) const
{return TMath::Sqrt(DecayLengthError2(vtx1));}
Double_t NormalizedDecayLength2(AliAODVertex* vtx1) const
{return DecayLength2(vtx1)/DecayLengthError2(vtx1);}
Double_t NormalizedDecayLength(AliAODVertex* vtx1) const
{return TMath::Sqrt(NormalizedDecayLength2(vtx1));}
Double_t DecayLengthXY(Double_t point[3])
Double_t DecayLengthXYError(AliAODVertex* vtx1) const
Double_t NormalizedDecayLengthXY(AliAODVertex* vtx1) const
{return DecayLengthXY(vtx1)/DecayLengthXYError(vtx1);}
Double_t InvMass(Int_t npdg, UInt_t* pdg) const
{return TMath::Sqrt(InvMass2(npdg,pdg));}
Int_t GetNProngs() const
 prongs
{return fNProngs;}
Int_t GetNDaughters() const
TObject * GetDaughter(Int_t i) const
{return (GetNDaughters()>i ? GetSecondaryVtx()->GetDaughter(i) : 0x0);}
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];}
Double_t PyProng(Int_t ip) const
{return fPy[ip];}
Double_t PzProng(Int_t ip) const
{return fPz[ip];}
Double_t PtProng(Int_t ip) const
{return TMath::Sqrt(Pt2Prong(ip));}
Double_t PProng(Int_t ip) const
{return TMath::Sqrt(P2Prong(ip));}
Double_t PhiProng(Int_t ip) const
{return TMath::ATan2(PyProng(ip),PxProng(ip));}
Double_t ThetaProng(Int_t ip) const
{return 0.5*TMath::Pi()-TMath::ATan(PzProng(ip)/(PtProng(ip)+1.e-13));}
Double_t EtaProng(Int_t ip) const
{return -TMath::Log(TMath::Tan(0.5*ThetaProng(ip)));}
Double_t EProng(Int_t ip, UInt_t pdg) const
{return TMath::Sqrt(E2Prong(ip,pdg));}
Double_t YProng(Int_t ip, UInt_t pdg) const
{return 0.5*TMath::Log((EProng(ip,pdg)+PzProng(ip))/(EProng(ip,pdg)-PzProng(ip)+1.e-13));}
Double_t E() const
void    PrintIndices() const {GetSecondaryVtx()->PrintIndices();}
 dummy functions for inheritance from AliVParticle
{printf("Dummy function; use AliAODRecoDecay::E(UInt_t pdg) instead"); return (Double_t)-999.;}
Double_t Y() const
{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;}
Int_t PdgCode() const
{return 0;}