A++ » INC » HepVtxTrackHelix

class HepVtxTrackHelix: public HepTrackHelix


 Vertex fitted particle track

 A HepVtxTrackHelix-object contains two sets of helix-parametrisation.
 The inherited one {D0, Z0, ...} and one w.r.t the vertex the Track is
 linked to {D0_Vtx, Z0_Vtx, ...}, whereby the coordinates of the Reference
 Point are given by the coordinates of the Vertex.

 !!! Note: Although a track can point to multiple vertices, here   !!!
 !!! only the relation and track parameters of the vertex with the !!!
 !!! lowest chi2/ndof are stored.                                  !!!

 (The lost connection to the vertices might be restored however by
 walking the relationships from the vertices in direction of the
 tracks.)

  Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
  Update: $Id: HepVtxTrackHelix.cxx,v 1.10 2010/07/05 11:48:36 kind Exp $
  Copyright: 2008 (C) Oliver Maria Kind

Function Members (Methods)

public:
virtual~HepVtxTrackHelix()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Int_tCharge() const
virtual Float_tChi2() const
virtual Float_tChi2ovNDoF()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* option = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tHepTrackHelix::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual Float_tCosTheta() const
virtual const Float_t*CovMatrix() const
virtual Float_tD0() 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 voidTObject::Error(const char* method, const char* msgfmt) const
virtual Float_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
Float_tHepTrackHelix::GetChi2() const
Float_tGetChi2_Vtx() const
const Float_t*HepTrackHelix::GetCovMatrix() const
const Float_t*GetCovMatrix_Vtx() const
voidHepTrackHelix::GetCovMatrixPtEtaPhi(TMatrixD& CovMatPtEtaPhi) const
Float_tHepTrackHelix::GetD0() const
Float_tGetD0_Vtx() const
Float_tHepTrackHelix::GetD0Sig() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tHepTrackHelix::GetId() const
virtual const HepMagneticField*HepTrackHelix::GetMagneticField() const
virtual const char*TObject::GetName() const
Int_tHepTrackHelix::GetNDoF() const
Float_tGetNDoF_Vtx() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TVector3&HepTrackHelix::GetP() const
Float_tHepTrackHelix::GetPhi0() const
Float_tGetPhi0_Vtx() const
Float_tHepTrackHelix::GetPmag() const
Float_tHepTrackHelix::GetPt() const
Float_tHepTrackHelix::GetPz() const
Float_tHepTrackHelix::GetQovP() const
Float_tGetQovP_Vtx() const
const TVector3&HepTrackHelix::GetRef() const
const TVector3&GetRef_Vtx() const
Float_tHepTrackHelix::GetTheta0() const
Float_tGetTheta0_Vtx() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
HepVertex*GetVertex() const
Float_tHepTrackHelix::GetZ0() const
Float_tGetZ0_Vtx() const
Float_tHepTrackHelix::GetZ0Sig() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
HepVtxTrackHelix()
HepVtxTrackHelix(const HepVtxTrackHelix&)
HepVtxTrackHelix(Int_t Id, Float_t Chi2, Int_t NDoF, Float_t Xref, Float_t Yref, Float_t Zref, Float_t Phi0, Float_t QovP, Float_t D0, Float_t Z0, Float_t Theta0, const Float_t[15] CovMat = 0)
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
HepVtxTrackHelix*IsClonedFrom() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsInvalidVtxTrack() const
virtual Bool_tIsNegative() const
Bool_tTObject::IsOnHeap() const
Bool_tIsPileUpVtxTrack() const
virtual Bool_tIsPositive() const
Bool_tIsPrimaryVtxTrack() const
Bool_tIsSecondaryVtxTrack() const
virtual Bool_tHepTrackHelix::IsSortable() const
Bool_tIsVtxTrack() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
static voidHepTrackHelix::MomentumToTrkParameters(Float_t Px, Float_t Py, Float_t Pz, Float_t Charge, Float_t PCAx, Float_t PCAy, Float_t PCAz, Float_t Xref, Float_t Yref, Float_t Zref, Float_t& Phi0, Float_t& QoverP, Float_t& D0, Float_t& Z0, Float_t& Theta0)
virtual Int_tNDoF() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
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)
HepVtxTrackHelix&operator=(const HepVtxTrackHelix&)
virtual const TVector3&P() const
virtual voidTObject::Paint(Option_t* option = "")
virtual Float_tPhi() const
virtual Float_tPhi0() const
virtual Float_tPmag() const
virtual voidTObject::Pop()
virtual voidHepTrackHelix::Print(Option_t* option = "") const
static voidHepTrackHelix::PrintFooter()
static voidHepTrackHelix::PrintHeader()
HepVertex*ProducedAt() const
virtual Float_tPt() const
virtual Float_tPz() const
virtual Float_tQovP() 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(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidHepTrackHelix::SetCovMatrix(Float_t* CovMat)
voidSetCovMatrix_Vtx(Float_t* CovMat_Vtx)
voidHepTrackHelix::SetD0sig(Float_t d0sig)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetIsClonedFrom(HepVtxTrackHelix* trk)
static voidTObject::SetObjectStat(Bool_t stat)
voidHepTrackHelix::SetP(Float_t P)
voidHepTrackHelix::SetP(Float_t Px, Float_t Py, Float_t Pz)
voidHepTrackHelix::SetParameters(Int_t Id, Float_t Chi2, Int_t NDoF, Float_t Xref, Float_t Yref, Float_t Zref, Float_t Phi0, Float_t QovP, Float_t D0, Float_t Z0, Float_t Theta0, Float_t[15] CovMat)
voidHepTrackHelix::SetPtEtaPhi(Float_t Pt, Float_t Eta, Float_t Phi)
voidSetPtEtaPhiVtx(Float_t Pt_Vtx, Float_t Eta_Vtx, Float_t Phi_Vtx)
voidSetPVtx(Float_t Px_Vtx, Float_t Py_Vtx, Float_t Pz_Vtx)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetVertex(HepVertex* vtx)
voidSetVtxParameters(Float_t Chi2_Vtx, Int_t NDoF_Vtx, Float_t Phi0_Vtx, Float_t QovP_Vtx, Float_t D0_Vtx, Float_t Z0_Vtx, Float_t Theta0_Vtx, Float_t[15] CovMat_Vtx)
voidHepTrackHelix::SetZ0sig(Float_t z0sig)
virtual voidShowMembers(TMemberInspector& insp) const
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 Float_tTheta() const
virtual Float_tTheta0() 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 Float_tZ0() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
virtual voidPrintClone() const
voidHepTrackHelix::PrintCovMatrix() const
voidHepTrackHelix::PrintHelixParameters() const
virtual voidPrintVtxType() const

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
Float_tHepTrackHelix::fChi2Chi2 of the track fit
Float_tfChi2_VtxChi2 of the track after vertex refit
Float_tHepTrackHelix::fCovMat[15]Covariance matrix, contains covariance-elements of
Float_tfCovMat_Vtx[15]Covariance matrix, contains covariance-elements of Helix Parameters
Float_tHepTrackHelix::fD0D_0, distance of closest approach perpendicular to
Float_tfD0_VtxDistance of closest approach (cm) w.r.t. the reference
Float_tHepTrackHelix::fD0sigsignificance of D_0
Int_tHepTrackHelix::fIdId number (for convenience only)
TRef*fIsClonedFromSometimes a track points to multiple
Int_tHepTrackHelix::fNDoFNo. of degrees of freedom of track fit
Int_tfNDoF_VtxNo. of degrees of freedom of track after vertex refit
TVector3HepTrackHelix::fPMomentum at point of closest approach, pca (GeV)
TVector3fP_VtxMomentum at vertex
Float_tHepTrackHelix::fPhi0Azimuth of the helix' tangent at the
Float_tfPhi0_VtxAzimuth (rad) of the helix' tangent at the
Float_tHepTrackHelix::fQovPQ/P, charge over momentum (e/GeV)
Float_tfQovP_VtxCharge over momentum magnitude at vertex (e/GeV)
TVector3HepTrackHelix::fRefReference point (default is (0,0,0))
Float_tHepTrackHelix::fTheta0Polar angle of the track at the point of closest
Float_tfTheta0_VtxPolar angle (rad) of the track at the point of closest
TRef*fVertexLink to vertex
Float_tHepTrackHelix::fZ0Z_0, distance of closest approach
Float_tfZ0_VtxZ coordinate of closest approach (cm) w.r.t. the reference.
Float_tHepTrackHelix::fZ0sigsignificance of Z_0

Class Charts

Inheritance Chart:
TObject
HepTrackHelix
HepVtxTrackHelix
AtlIDTrack

Function documentation

HepVtxTrackHelix()
 Default constructor

HepVtxTrackHelix(Int_t Id, Float_t Chi2, Int_t NDoF, Float_t Xref, Float_t Yref, Float_t Zref, Float_t Phi0, Float_t QovP, Float_t D0, Float_t Z0, Float_t Theta0, const Float_t[15] CovMat = 0)
~HepVtxTrackHelix()
 Default destructor

void Clear(Option_t* option = "")
 Clear this object

Bool_t IsPositive() const
 Positively charged ?
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Bool_t IsNegative() const
 Negatively charged ?
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Bool_t IsVtxTrack() const
Bool_t IsPrimaryVtxTrack() const
Bool_t IsSecondaryVtxTrack() const
Bool_t IsPileUpVtxTrack() const
Int_t Charge() const
 Get particle's charge (in units of e)

Float_t Pt() const
 Transverse momentum
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t Pmag() const
 Momentum magnitude
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t Pz() const
 Momentum Z component
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

const TVector3& P() const
Float_t QovP() const
 Q/P
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t D0() const
 D0
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t Z0() const
 Z0
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t Phi0() const
 Phi0
 Either for the vertex fitted helix parameters (default)
 or the non-vertex fitted ones (if exist).

Float_t Theta0() const
 Theta0
 Either for the vertex fitted helix parameters
 or the non-vertex fitted ones (if exist).

const Float_t* CovMatrix() const
 Covariance Matrix in helix parameter expression
 either for the vertex fitted or the
 non vertex fitted ones.
Float_t Chi2() const
 Chi2
 Either for the vertex fitted tracks
 or the non-vertex fitted ones.

Int_t NDoF() const
 NDoF
 Either for the vertex fitted helix parameters
 or the non-vertex fitted ones.

void PrintVtxType() const
 Print type of assigned vertex

void PrintClone() const
 Print Id of clone track (if any)

void SetVtxParameters(Float_t Chi2_Vtx, Int_t NDoF_Vtx, Float_t Phi0_Vtx, Float_t QovP_Vtx, Float_t D0_Vtx, Float_t Z0_Vtx, Float_t Theta0_Vtx, Float_t[15] CovMat_Vtx)
 Set helix parameters w.r.t. the vertex as reference point

HepVtxTrackHelix()
 vertices. In this case the track is cloned and given new vtx fit
 paramaters. This link stores the pointer to the track from which the
 clone had being made of. In case the track is not a clone (most of the
 time) the link is the zero pointer
Float_t Chi2ovNDoF()
{return Chi2()/NDoF();}
const TVector3& GetRef_Vtx() const
{return this->GetVertex()->GetPos(); }
Float_t GetQovP_Vtx() const
{ return fQovP_Vtx; }
Float_t GetD0_Vtx() const
{ return fD0_Vtx; }
Float_t GetZ0_Vtx() const
{ return fZ0_Vtx; }
Float_t GetPhi0_Vtx() const
{ return fPhi0_Vtx; }
Float_t GetTheta0_Vtx() const
{ return fTheta0_Vtx; }
const Float_t* GetCovMatrix_Vtx() const
{ return fCovMat_Vtx; }
Float_t GetChi2_Vtx() const
{ return fChi2_Vtx; }
Float_t GetNDoF_Vtx() const
{ return fNDoF_Vtx; }
HepVertex* GetVertex() const
{ return (HepVertex*)fVertex->GetObject(); }
HepVtxTrackHelix* IsClonedFrom() const
Bool_t IsInvalidVtxTrack() const
{ return ProducedAt()->IsInvalid(); }
HepVertex* ProducedAt() const
{ return GetVertex(); }
void SetVertex(HepVertex* vtx)
{ *fVertex = (TObject*)vtx; }
void SetIsClonedFrom(HepVtxTrackHelix* trk)
{ *fIsClonedFrom = (TObject*)trk; }
void SetCovMatrix_Vtx(Float_t* CovMat_Vtx)
void SetPVtx(Float_t Px_Vtx, Float_t Py_Vtx, Float_t Pz_Vtx)
 Set momentum 3-vector from vtx-fit (in global frame)
 will be filled while running the a++converter !!!
void SetPtEtaPhiVtx(Float_t Pt_Vtx, Float_t Eta_Vtx, Float_t Phi_Vtx)
 Set momentum 3-vector from vtx-fit (in global frame)
 will be filled while running the a++converter !!!
Float_t Theta() const
 Polar angle of momentum vector
Float_t CosTheta() const
 Cosine of the momentum polar angle
Float_t Eta() const
 Pseudo-rapidity of the momentum vector
Float_t Phi() const
 Momentum vector azimuth