// ESD Cascade Vertex Class
// Implementation of the cascade vertex class
// Origin: Christian Kuhn, IReS, Strasbourg, christian.kuhn@ires.in2p3.fr
+// Modified by: Antonin Maire,IPHC, Antonin.Maire@ires.in2p3.fr
+// and Boris Hippolyte,IPHC, hippolyt@in2p3.fr
//-------------------------------------------------------------------------
-#include <TObject.h>
#include <TPDGCode.h>
#include "AliESDv0.h"
+class AliLog;
class AliExternalTrackParam;
-
class AliESDcascade : public AliESDv0 {
- enum { kOmegaPlusBar = -3334,
- kXiPlusBar = -3312,
- kXiMinus = 3312,
- kOmegaMinus = 3334};
-
public:
AliESDcascade();
- AliESDcascade(const AliESDcascade&);
+ AliESDcascade(const AliESDcascade& cas);
AliESDcascade(const AliESDv0 &v0,
const AliExternalTrackParam &t, Int_t i);
~AliESDcascade();
- AliESDcascade& operator=(const AliESDcascade&);
+ AliESDcascade& operator=(const AliESDcascade& cas);
virtual void Copy(TObject &obj) const;
// Start with AliVParticle functions
virtual Double_t E() const; // default is Xis but can be changed via ChangeMassHypothesis (defined in the .cxx)
virtual Double_t M() const { return GetEffMassXi(); }
virtual Double_t Eta() const { return 0.5*TMath::Log((P()+Pz())/(P()-Pz()+1.e-13)); }
- virtual Double_t Y() const { return 0.5*TMath::Log((E()+Pz())/(E()-Pz()+1.e-13)); }
- virtual Short_t Charge() const { return 0; }
+ virtual Double_t Y() const;
+ virtual Short_t Charge() const { return (GetPdgCodeXi()>0) ? -1 : 1; } // due to PDG sign convention !
virtual Int_t GetLabel() const { return -1; } // temporary
virtual const Double_t *PID() const { return 0; } // return PID object ? (to be discussed!)
- // Then the older functions
+ // Then extend the AliVParticle functions
+ Double_t E(Int_t pdg) const;
+ Double_t Y(Int_t pdg) const;
+
+ // Now the functions for analysis consistency
+ Double_t RapXi() const;
+ Double_t RapOmega() const;
+ Double_t AlphaXi() const;
+ Double_t PtArmXi() const;
+
+ // Eventually the older functions
Double_t ChangeMassHypothesis(Double_t &v0q, Int_t code=kXiMinus);
Int_t GetPdgCodeXi() const {return fPdgCodeXi;}
Double_t GetChi2Xi() const {return fChi2Xi;}
void GetPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const;
void GetXYZcascade(Double_t &x, Double_t &y, Double_t &z) const;
- Double_t GetDcascade(Double_t x0=0.,Double_t y0=0.,Double_t z0=0.) const;
+ Double_t GetDcascade(Double_t x0, Double_t y0, Double_t z0) const;
void GetBPxPyPz(Double_t &px, Double_t &py, Double_t &pz) const {
px=fBachMom[0]; py=fBachMom[1]; pz=fBachMom[2];
Int_t GetIndex() const {return GetBindex();} //for the consistency with V0
void SetDcaXiDaughters(Double_t rDcaXiDaughters=0.);
Double_t GetDcaXiDaughters() const {return fDcaXiDaughters;}
- Double_t GetCascadeCosineOfPointingAngle(Double_t&, Double_t&, Double_t&) const;
+ Double_t GetCascadeCosineOfPointingAngle(Double_t refPointX, Double_t refPointY, Double_t refPointZ) const;
void GetPosCovXi(Double_t cov[6]) const;