A++ » INC » HepTrackHelix

class HepTrackHelix: public TObject


 A basic track helix class

 The track helices are parametrised w.r.t. the point of closest
 approach to a Reference Point within the global atlas reference
 frame. So, the distance d0 for instance is
 d0=sqrt((PCA_x - Ref_x)^2 + (PCA_y - Ref_y)^2).
 The Reference Point the Tracks are expressed at is stored
 in the datamember fRef (usually fRef=(0,0,0)). This Point
 is allways the Reference Point where the helix-parametrisation w.r.t
 the Point of Closest Approach is expressed at. Possible other
 parametrisation sets like {D0_Vtx, Z0_Vtx, ...} from VtxTrackHelix class
 can be expressed to another Reference Point. See therefor the
 HepVtxTrackHelix.cxx description.

Function Members (Methods)

public:
virtual~HepTrackHelix()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
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_tCompare(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_tGetChi2() const
const Float_t*GetCovMatrix() const
voidGetCovMatrixPtEtaPhi(TMatrixD& CovMatPtEtaPhi) const
Float_tGetD0() const
Float_tGetD0Sig() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tGetId() const
virtual const HepMagneticField*GetMagneticField() const
virtual const char*TObject::GetName() const
Int_tGetNDoF() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TVector3&GetP() const
Float_tGetPhi0() const
Float_tGetPmag() const
Float_tGetPt() const
Float_tGetPz() const
Float_tGetQovP() const
const TVector3&GetRef() const
Float_tGetTheta0() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tGetZ0() const
Float_tGetZ0Sig() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
HepTrackHelix()
HepTrackHelix(const HepTrackHelix&)
HepTrackHelix(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
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tIsNegative() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tIsPositive() const
virtual Bool_tIsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
static voidMomentumToTrkParameters(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)
HepTrackHelix&operator=(const HepTrackHelix&)
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 voidPrint(Option_t* option = "") const
static voidPrintFooter()
static voidPrintHeader()
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)
voidSetCovMatrix(Float_t* CovMat)
voidSetD0sig(Float_t d0sig)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetP(Float_t P)
voidSetP(Float_t Px, Float_t Py, Float_t Pz)
voidSetParameters(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)
voidSetPtEtaPhi(Float_t Pt, Float_t Eta, Float_t Phi)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetZ0sig(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 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
voidPrintCovMatrix() const
voidPrintHelixParameters() 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_tfChi2Chi2 of the track fit
Float_tfCovMat[15]Covariance matrix, contains covariance-elements of
Float_tfD0D_0, distance of closest approach perpendicular to
Float_tfD0sigsignificance of D_0
Int_tfIdId number (for convenience only)
Int_tfNDoFNo. of degrees of freedom of track fit
TVector3fPMomentum at point of closest approach, pca (GeV)
Float_tfPhi0Azimuth of the helix' tangent at the
Float_tfQovPQ/P, charge over momentum (e/GeV)
TVector3fRefReference point (default is (0,0,0))
Float_tfTheta0Polar angle of the track at the point of closest
Float_tfZ0Z_0, distance of closest approach
Float_tfZ0sigsignificance of Z_0

Class Charts

Inheritance Chart:
TObject
HepTrackHelix
AtlMuonSegment
HepVtxTrackHelix
AtlIDTrack

Function documentation

HepTrackHelix()
 Default constructor

HepTrackHelix(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)
 Normal constructor

 Note that the track momentum has to be given in addition via
 the member function SetP() after the ctor was called. This is
 because C++ cannot call abstract functions from inside the
 ctor, neither directly or indirectly.

~HepTrackHelix()
 Default destructor

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

void Print(Option_t* option = "") const
 Print object content

 Options available:
   "covmat" - Print content of covariance matrix
   "nohead" - No header containing the variable names is
              displayed. Useful when printing a whole table
              for a list of particles

void PrintHeader()
 Print information header

void PrintFooter()
 Print footer

void PrintHelixParameters() const
 Print helix parameters

void PrintCovMatrix() const
 Print covariance matrix

void PrintVtxType() const
 Print vtx type (there is none)

void PrintClone() const
 Print Id of clone track (there is none)

Int_t Compare(const TObject* obj) const
 Comparison with another track by means of momentum (used for
 sorting)

void SetP(Float_t P)
 Set track momentum
 The momentum vector stored is measured in the global
 reference frame

void 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)
 Convert given momentum into helix parameters

 d_vec = pca_vec - ref_vec
 sign(d) = sign((p_vec x Bz_vec) . d_vec)
 sign(d) cf ATL-SOFT-PUB-2006-004

void GetCovMatrixPtEtaPhi(TMatrixD& CovMatPtEtaPhi) const
 Get the covariance matrix of this track in Pt, eta, phi
 coordinates

 For the coordinate transformation of (Pt,eta,phi) = T*(QovP,Theta,phi) with the initial
 covariance matrix C, the transformed cov. matrix will be computed by
 Cov_new = T*C*T_transposed

void SetD0sig(Float_t d0sig)
void SetZ0sig(Float_t z0sig)
HepTrackHelix()
const HepMagneticField* GetMagneticField() const
{ return 0; }
void SetP(Float_t P)
Float_t GetPhi0() const
{ return fPhi0; }
Float_t GetQovP() const
{ return fQovP; }
Float_t GetD0() const
{ return fD0; }
Float_t GetTheta0() const
{ return fTheta0; }
Float_t GetZ0() const
{ return fZ0; }
Float_t GetPt() const
{ return fP.Perp(); }
Float_t GetPmag() const
{ return fP.Mag(); }
Float_t GetPz() const
{ return fP.Z(); }
const TVector3& GetRef() const
{ return fRef; }
const TVector3& GetP() const
{ return fP; }
Float_t GetD0Sig() const
{ return fD0sig; }
Float_t GetZ0Sig() const
{ return fZ0sig; }
Float_t Phi0() const
Float_t QovP() const
Float_t D0() const
Float_t Z0() const
Float_t Pt() const
 Transverse momentum
Float_t Pmag() const
 Momentum magnitude
Float_t Pz() const
 Momentum z component
const TVector3& P() const
 Momentum 3-vector
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
Int_t GetId() const
{ return fId; }
Int_t GetNDoF() const
{ return fNDoF; }
Float_t GetChi2() const
{ return fChi2; }
Int_t NDoF() const
{ return fNDoF; }
Float_t Chi2() const
{ return fChi2; }
Float_t Chi2ovNDoF()
{return Chi2()/NDoF();}
Bool_t IsPositive() const
 Track is positively charged ?
Bool_t IsNegative() const
 Track is negatively charged ?
Bool_t IsSortable() const
{ return kTRUE; }
void SetPtEtaPhi(Float_t Pt, Float_t Eta, Float_t Phi)
 Set momentum 3-vector (in global frame)
const Float_t* GetCovMatrix() const
const Float_t* CovMatrix() const
 Covariance matrix in helix parameter expression
void SetCovMatrix(Float_t* CovMat)
void 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)