ROOT logo
AliRoot » STEER » ESD » AliESDv0

class AliESDv0: public AliVParticle

               Implementation of the ESD V0 vertex class
            This class is part of the Event Data Summary
            set of classes and contains information about
            V0 kind vertexes generated by a neutral particle
     Origin: Iouri Belikov, IReS, Strasbourg, Jouri.Belikov@cern.ch
     Modified by: Marian Ivanov,  CERN, Marian.Ivanov@cern.ch
            and  Boris Hippolyte,IPHC, hippolyt@in2p3.fr

Function Members (Methods)

public:
AliESDv0()
AliESDv0(const AliESDv0& v0)
AliESDv0(const AliExternalTrackParam& t1, Int_t i1, const AliExternalTrackParam& t2, Int_t i2)
virtual~AliESDv0()
voidTObject::AbstractMethod(const char* method) const
Double_tAlphaV0() const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Double_tChangeMassHypothesis(Int_t code = kK0Short)
virtual Short_tCharge() 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 voidCopy(TObject& obj) 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(Int_t pdg) const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual Double_tEta() 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
const Double_t*GetAnglep() const
const Double_t*GetCausalityP() const
Float_tGetChi2After() const
Float_tGetChi2Before() const
Double_tGetChi2V0() const
const Int_t*GetClusters(Int_t i) const
Float_tGetD(Double_t x0, Double_t y0) const
Float_tGetD(Double_t x0, Double_t y0, Double_t z0) const
Double_tGetDcaV0Daughters() const
Double_tGetDistSigma() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetEffectiveSigmaAP0()
Double_tGetEffectiveSigmaD0()
Double_tGetEffMass() const
Double_tGetEffMass(UInt_t p1, UInt_t p2) const
virtual Int_tAliVParticle::GetFirstDaughter() const
virtual UInt_tAliVParticle::GetFlag() const
virtual Short_tAliVParticle::GetGeneratorIndex() const
virtual const char*TObject::GetIconName() const
Int_tGetIndex(Int_t i) const
Double_tGetKFInfo(UInt_t p1, UInt_t p2, Int_t type) const
Double_tGetKFInfoScale(UInt_t p1, UInt_t p2, Int_t type, Double_t d1pt, Double_t s1pt) const
virtual Int_tGetLabel() const
virtual Int_tAliVParticle::GetLastDaughter() const
Double_tGetLikelihoodAP(Int_t mode0, Int_t mode1)
Double_tGetLikelihoodC(Int_t mode0, Int_t mode1) const
Double_tGetLikelihoodD(Int_t mode0, Int_t mode1)
Double_tGetMinimaxSigmaAP0()
Double_tGetMinimaxSigmaD0()
virtual Int_tAliVParticle::GetMother() const
Float_tGetNAfter() const
virtual const char*TObject::GetName() const
Short_tGetNBefore() const
Int_tGetNindex() const
const Double_t*GetNormDCAPrimP() const
voidGetNPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Bool_tGetOnFlyStatus() const
virtual Option_t*TObject::GetOption() const
static const AliESDV0Params&GetParameterization()
const AliExternalTrackParam*GetParamN() const
const AliExternalTrackParam*GetParamP() const
Int_tGetPdgCode() const
Int_tGetPindex() const
voidGetPosCov(Double_t* cov) const
voidGetPPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
voidGetPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
Double_tGetRr() const
Double_tGetSigmaAP0()
Double_tGetSigmaD0()
Double_tGetSigmaY()
Double_tGetSigmaZ()
ULong_tGetStatus() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetV0CosineOfPointingAngle() const
Float_tGetV0CosineOfPointingAngle(Double_t refPointX, Double_t refPointY, Double_t refPointZ) const
voidGetXYZ(Double_t& x, Double_t& y, Double_t& z) 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
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)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() 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
voidTObject::MayNotUse(const char* method) 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)
AliESDv0&operator=(const AliESDv0& v0)
virtual Double_tP() const
virtual voidTObject::Paint(Option_t* option = "")
virtual Int_tPdgCode() const
virtual Double_tPhi() const
virtual const Double_t*PID() const
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Double_tPt() const
Double_tPtArmV0() const
virtual Double_tPx() const
virtual Bool_tPxPyPz(Double_t* p) const
virtual Double_tPy() const
virtual Double_tPz() const
Double_tRapK0Short() const
Double_tRapLambda() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
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)
voidSetCausality(Float_t pb0, Float_t pb1, Float_t pa0, Float_t pa1)
voidSetChi2After(Float_t ca)
voidSetChi2Before(Float_t cb)
voidSetClusters(const Int_t* clp, const Int_t* clm)
voidSetDcaV0Daughters(Double_t rDcaV0Daughters = 0.)
voidSetDistSigma(Double_t ds)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliVParticle::SetFlag(UInt_t)
virtual voidAliVParticle::SetGeneratorIndex(Short_t)
virtual voidSetID(Short_t)
voidSetIndex(Int_t i, Int_t ind)
voidSetNAfter(Short_t na)
voidSetNBefore(Short_t nb)
voidSetNormDCAPrim(Float_t nd0, Float_t nd1)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOnFlyStatus(Bool_t status)
voidSetParamN(const AliExternalTrackParam& paramN)
voidSetParamP(const AliExternalTrackParam& paramP)
voidSetStatus(Int_t status)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetV0CosineOfPointingAngle(Double_t cpa)
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
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(Int_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()

Data Members

protected:
Double32_tfAngle[3][-2*pi,2*pi,16]three angles CKBrev
Double32_tfCausality[4][0,1,8] causality information - see comments in SetCausality CKBrev
Double32_tfChi2Afterchi2 of the tracks after V0 CKBrev
Double32_tfChi2Beforechi2 of the tracks before V0 CKBrev
Double32_tfChi2V0V0's chi2 value
Int_tfClusters[2][6]! its clusters CKBrev
Double32_tfDcaV0Daughtersdca between V0's daughters
Double32_tfDistSigmasigma of distance CKBrev
Double32_tfEffMassreconstructed V0's effective mass
Short_tfNAfternumber of possible points after V0 CKBrev
Short_tfNBeforenumber of possible points before V0 CKBrev
Int_tfNidxindex of the negative daughter
Double32_tfNmom[3]momentum of the negative daughter (global)
Double32_tfNormDCAPrim[2]normalize distance to the primary vertex CKBrev
Bool_tfOnFlyStatusif kTRUE, then this V0 is recontructed
AliExternalTrackParamfParamNexternal parameters of negative particle
AliExternalTrackParamfParamPexternal parameters of positive particle
Int_tfPdgCodereconstructed V0's type (PDG code)
Int_tfPidxindex of the positive daughter
Double32_tfPmom[3]momentum of the positive daughter (global)
Double32_tfPointAngle[-1,1,32] cosine of the pointing angle
Double32_tfPointAngleFi[-1,1,16]point angle fi CKBrev
Double32_tfPointAngleTh[-1,1,16]point angle theta CKBrev
Double32_tfPos[3]V0's position (global)
Double32_tfPosCov[6]covariance matrix of the vertex position
Double32_tfRrrec position of the vertex CKBrev
Short_tfStatusstatus CKBrev
static const AliESDV0ParamsfgkParams! resolution and likelihood parameterization

Class Charts

Inheritance Chart:
TObject
AliVParticle
AliESDv0
AliESDcascade
AliV0

Function documentation

AliESDv0()
 Default constructor  (K0s)

AliESDv0(const AliESDv0& v0)
 The copy constructor

AliESDv0(const AliExternalTrackParam& t1, Int_t i1, const AliExternalTrackParam& t2, Int_t i2)
 Main constructor  (K0s)

AliESDv0& operator=(const AliESDv0& v0)
 The assignment operator

void Copy(TObject& obj) const
~AliESDv0()
 Empty destructor

Double_t E() const
 This gives the energy assuming the ChangeMassHypothesis was called

Double_t Y() const
 This gives the energy assuming the ChangeMassHypothesis was called

Double_t E(Int_t pdg) const
 This gives the energy with the particle hypothesis as argument

Double_t Y(Int_t pdg) const
 This gives the rapidity with the particle hypothesis as argument

Double_t RapK0Short() const
 This gives the pseudorapidity assuming a K0s particle

Double_t RapLambda() const
 This gives the pseudorapidity assuming a (Anti) Lambda particle

Double_t AlphaV0() const
 This gives the Armenteros-Podolanski alpha

Double_t PtArmV0() const
 This gives the Armenteros-Podolanski ptarm

Double_t ChangeMassHypothesis(Int_t code = kK0Short)
 This function changes the mass hypothesis for this V0
 and returns the "kinematical quality" of this hypothesis

void GetPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
 This function returns V0's momentum (global)

void GetXYZ(Double_t& x, Double_t& y, Double_t& z) const
 This function returns V0's position (global)

Float_t GetD(Double_t x0, Double_t y0) const
 This function returns V0's impact parameter calculated in 2D in XY plane

Float_t GetD(Double_t x0, Double_t y0, Double_t z0) const
 This function returns V0's impact parameter calculated in 3D

Float_t GetV0CosineOfPointingAngle(Double_t refPointX, Double_t refPointY, Double_t refPointZ) const
 calculates the pointing angle of the V0 wrt a reference point
void GetPosCov(Double_t* cov) const
Double_t GetSigmaY()
 return sigmay in y  at vertex position  using covariance matrix

Double_t GetSigmaZ()
 return sigmay in y  at vertex position  using covariance matrix

Double_t GetSigmaD0()
 Sigma parameterization using covariance matrix

 sigma of distance between two tracks in vertex position
 sigma of DCA is proportianal to sigmaD0
 factor 2 difference is explained by the fact that the DCA is calculated at the position
 where the tracks as closest together ( not exact position of the vertex)

Double_t GetSigmaAP0()
Sigma parameterization using covariance matrices

Double_t GetEffectiveSigmaD0()
 minimax - effective Sigma parameterization
 p12 effective curvature and v0 radius postion used as parameters

Double_t GetEffectiveSigmaAP0()
 effective Sigma parameterization of point angle resolution

Double_t GetMinimaxSigmaAP0()
 calculate mini-max effective sigma of point angle resolution

compv0->fTree->SetAlias("SigmaAP2","max(min((SigmaAP0+SigmaAPE0)*0.5,1.5*SigmaAPE0),0.5*SigmaAPE0+0.003)");
Double_t GetMinimaxSigmaD0()
 calculate mini-max sigma of dca resolution

compv0->fTree->SetAlias("SigmaD2","max(min((SigmaD0+SigmaDE0)*0.5,1.5*SigmaDE0),0.5*SigmaDE0)");
Double_t GetLikelihoodAP(Int_t mode0, Int_t mode1)
 get likelihood for point angle

Double_t GetLikelihoodD(Int_t mode0, Int_t mode1)
 get likelihood for DCA

Double_t GetLikelihoodC(Int_t mode0, Int_t mode1) const
 get likelihood for Causality
 !!!  Causality variables defined in AliITStrackerMI !!!
      when more information was available

void SetCausality(Float_t pb0, Float_t pb1, Float_t pa0, Float_t pa1)
 set probabilities

void SetClusters(const Int_t* clp, const Int_t* clm)
 Set its clusters indexes

Double_t GetEffMass(UInt_t p1, UInt_t p2) const
 calculate effective mass

Double_t GetKFInfo(UInt_t p1, UInt_t p2, Int_t type) const
 type:
   0 - return mass
   1 - return err mass
   2 - return chi2

Double_t GetKFInfoScale(UInt_t p1, UInt_t p2, Int_t type, Double_t d1pt, Double_t s1pt) const
 type
   0 - return mass
   1 - return err mass
   2 - return chi2
   d1pt - 1/pt shift
   s1pt - scaling of 1/pt
 Important function to benchmark the pt resolution, and to find out systematic distortion

void GetNPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
void GetPPxPyPz(Double_t& px, Double_t& py, Double_t& pz) const
void SetDcaV0Daughters(Double_t rDcaV0Daughters = 0.)
void SetIndex(Int_t i, Int_t ind)
Double_t Px() const
 Start with AliVParticle functions
{ return fNmom[0]+fPmom[0]; }
Double_t Py() const
{ return fNmom[1]+fPmom[1]; }
Double_t Pz() const
{ return fNmom[2]+fPmom[2]; }
Double_t Pt() const
{ return TMath::Sqrt(Px()*Px()+Py()*Py()); }
Double_t P() const
Bool_t PxPyPz(Double_t* p) const
{ p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
Double_t Xv() const
{ return fPos[0]; }
Double_t Yv() const
{ return fPos[1]; }
Double_t Zv() const
{ return fPos[2]; }
Bool_t XvYvZv(Double_t* x) const
{ x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }
Double_t OneOverPt() const
{ return (Pt() != 0.) ? 1./Pt() : -999.; }
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 M() const
{ return GetEffMass(); }
Double_t Eta() const
{ return 0.5*TMath::Log((P()+Pz())/(P()-Pz()+1.e-13)); }
Short_t Charge() const
{ return 0; }
Int_t GetLabel() const
{ return -1; }
const Double_t * PID() const
{ return 0; }
Int_t GetPdgCode() const
{return fPdgCode;}
Double_t GetEffMass(UInt_t p1, UInt_t p2) const
Double_t GetChi2V0() const
{return fChi2V0;}
Int_t GetNindex() const
{return fNidx;}
Int_t GetPindex() const
{return fPidx;}
Double_t GetDcaV0Daughters() const
{return fDcaV0Daughters;}
Float_t GetV0CosineOfPointingAngle(Double_t refPointX, Double_t refPointY, Double_t refPointZ) const
void SetV0CosineOfPointingAngle(Double_t cpa)
void SetOnFlyStatus(Bool_t status)
{fOnFlyStatus=status;}
Bool_t GetOnFlyStatus() const
{return fOnFlyStatus;}
const AliExternalTrackParam * GetParamP() const
{return &fParamP;}
const AliExternalTrackParam * GetParamN() const
{return &fParamN;}
const AliESDV0Params & GetParameterization()

{return fgkParams;}
void SetParamP(const AliExternalTrackParam& paramP)
{fParamP = paramP;}
void SetParamN(const AliExternalTrackParam& paramN)
{fParamN = paramN;}
void SetStatus(Int_t status)
{fStatus=status;}
ULong_t GetStatus() const
{return ULong_t(fStatus);}
Int_t GetIndex(Int_t i) const
{return (i==0) ? fNidx : fPidx;}
const Double_t * GetAnglep() const
{return fAngle;}
Double_t GetRr() const
{return fRr;}
Double_t GetDistSigma() const
{return fDistSigma;}
void SetDistSigma(Double_t ds)
Float_t GetChi2Before() const
{return fChi2Before;}
void SetChi2Before(Float_t cb)
Float_t GetChi2After() const
{return fChi2After;}
void SetChi2After(Float_t ca)
Float_t GetNAfter() const
{return fNAfter;}
void SetNAfter(Short_t na)
{fNAfter=na;}
Short_t GetNBefore() const
{return fNBefore;}
void SetNBefore(Short_t nb)
{fNBefore=nb;}
const Double_t * GetCausalityP() const
{return fCausality;}
const Int_t * GetClusters(Int_t i) const
{return fClusters[i];}
void SetNormDCAPrim(Float_t nd0, Float_t nd1)
{fNormDCAPrim[0] = nd0; fNormDCAPrim[1]=nd1;}
const Double_t * GetNormDCAPrimP() const
 Dummy
{return fNormDCAPrim;}
Int_t PdgCode() const
{return 0;}
void SetID(Short_t )
virtual Bool_t   GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
{;}