ROOT logo
Podd » SRC » THaTrack

class THaTrack: public TObject


 A generic track.

Function Members (Methods)

THaTrack(const THaTrack&)
THaTrack(Double_t x, Double_t y, Double_t theta, Double_t phi, THaTrackingDetector* creator = 0, THaTrackID* id = 0, THaPIDinfo* pid = 0)
voidTObject::AbstractMethod(const char* method) const
Int_tAddCluster(THaCluster* c)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tCompare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) 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 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
Double_tGetBeta() const
Double_tGetBetaChi2() const
Double_tGetChi2() const
THaCluster*GetCluster(Int_t i)
THaTrackingDetector*GetCreator() const
Double_tGetdBeta() const
Double_tGetDedx() const
Double_tGetDp() const
Double_tGetDPhi() const
virtual Option_t*TObject::GetDrawOption() const
Double_tGetDTheta() const
Double_tGetdTime() const
static Long_tTObject::GetDtorOnly()
Double_tGetDX() const
Double_tGetDY() const
Double_tGetEnergy() const
UInt_tGetFlag() const
Double_tGetFPTime() const
Int_tGetGoodPlane3() const
Int_tGetGoodPlane4() const
virtual const char*TObject::GetIconName() const
THaTrackID*GetID() const
Int_tGetIndex() const
Double_tGetLabPx() const
Double_tGetLabPy() const
Double_tGetLabPz() const
virtual const char*TObject::GetName() const
Int_tGetNclusters() const
Int_tGetNDoF() const
Int_tGetNPMT() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetP() const
Double_tGetPathLen() const
Double_tGetPhi() const
THaPIDinfo*GetPIDinfo() const
Double_tGetRPhi() const
Double_tGetRTheta() const
Double_tGetRX() const
Double_tGetRY() const
Double_tGetTheta() const
Double_tGetTime() const
virtual const char*TObject::GetTitle() const
Double_tGetTPhi() const
Int_tGetTrkNum() const
Double_tGetTTheta() const
Double_tGetTX() const
Double_tGetTY() const
UInt_tGetType() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetVertexX() const
Double_tGetVertexY() const
Double_tGetVertexZ() const
Double_tGetX() const
Double_tGetX(Double_t z) const
Double_tGetY() const
Double_tGetY(Double_t z) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
boolHasDet() const
boolHasFP() const
virtual ULong_tTObject::Hash() const
boolHasRot() const
boolHasTarget() const
boolHasVertex() 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_tIsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) 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)
THaTrack&operator=(const THaTrack&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") 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 = "")
voidSet(Double_t x, Double_t y, Double_t theta, Double_t phi)
voidSetBeta(Double_t beta)
voidSetBetaChi2(Double_t betachi2)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetChi2(Double_t chi2, Int_t ndof)
voidSetCreator(THaTrackingDetector* d)
voidSetD(Double_t x, Double_t y, Double_t theta, Double_t phi)
voidSetdBeta(Double_t db)
voidSetDedx(Double_t dedx)
voidSetDp(Double_t dp)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
voidSetdTime(Double_t dt)
static voidTObject::SetDtorOnly(void* obj)
voidSetEnergy(Double_t energy)
voidSetFlag(UInt_t flag)
voidSetFPTime(Double_t fptime)
voidSetGoodPlane3(Int_t gdplane3)
voidSetGoodPlane4(Int_t gdplane4)
voidSetID(THaTrackID* id)
voidSetIndex(Int_t idx)
voidSetMomentum(Double_t p)
voidSetNPMT(Int_t npmt)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPathLen(Double_t pathl)
voidSetPIDinfo(THaPIDinfo* pid)
voidSetPvect(const TVector3& pvect)
voidSetR(Double_t x, Double_t y, Double_t theta, Double_t phi)
voidSetTarget(Double_t x, Double_t y, Double_t theta, Double_t phi)
voidSetTime(Double_t time)
voidSetTrkNum(Int_t n)
voidSetType(UInt_t flag)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetVertex(const TVector3& vert)
voidSetVertex(Double_t x, Double_t y, Double_t z)
voidSetVertexError(const TVector3& err)
voidSetVertexError(Double_t x, Double_t y, Double_t z)
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 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 voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const

Data Members

enum { kHasDet
enum TObject::EStatusBits { kCanDelete
enum TObject::[unnamed] { kIsOnHeap
Double_tfBetabeta of track
Double_tfBetaChi2(reduced) Chisq of fit on Beta
Double_tfChi2goodness of track fit
THaCluster*fClusters[4]! Clusters of this track
THaTrackingDetector*fCreator! Detector creating this track
Double_tfDPhiTangent of DCS Phi
Double_tfDThetaTangent of DCS Theta
Double_tfDXx position in DCS
Double_tfDYy position in DCS
Double_tfDedxdEdX from hodoscopes
Double_tfDpdp/p_center -- fractional change in momentum
Double_tfEnergyEnergy from calorimeter
Double_tfFPTimeFocal Plane time (same as fTime?)
UInt_tfFlagGeneral status flag (for use by tracking det.)
Int_tfGoodPlane3Track hit a plane 3 paddle
Int_tfGoodPlane4Track hit a plane 4 paddle
THaTrackID*fID! Track identifier
Int_tfIndexTrack index (-1 = none, 0 = first, etc.)
Int_tfNDoFnumber of hits on the track contributing to chi2
Int_tfNPMTNumber of PMTs hit in track
Int_tfNclusters! Number of clusters
Double_tfPTrack momentum (GeV)
THaPIDinfo*fPIDinfo! Particle ID information for this track
Double_tfPathlpathlength from target (z=0) (meters)
Double_tfPhiTangent of TRANSPORT Phi (y')
TVector3fPvectMomentum vector at target in lab system (GeV)
Double_tfRPhiTangent of TRANSPORT Phi (y')
Double_tfRThetaTangent of TRANSPORT Theta (x')
Double_tfRXx position in focal plane (m)
Double_tfRYy position in focal plane (m)
Double_tfTPhiTangent of TRANSPORT Phi (in-plane angle) at target
Double_tfTThetaTangent of TRANSPORT Theta (out-of-plane angle) at target
Double_tfTXx position at target (m)
Double_tfTYy position at target (m)
Double_tfThetaTangent of TRANSPORT Theta (x')
Double_tfTimetime of track at focal plane (s)
Int_tfTrkNumTrack number (0 = unassigned)
UInt_tfTypeFlag indicating which vectors reconstructed
TVector3fVertexVertex location in lab (m) valid if fHasVertex
TVector3fVertexErrorUncertainties in fVertex coordinates.
Double_tfXx position in TRANSPORT plane (m)
Double_tfYy position in TRANSPORT plane (m)
Double_tfdBetauncertainty in fBeta
Double_tfdTimeuncertainty in fTime
static const Double_tkBig

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

 Destructor. Delete the track ID associated with this track.
void Clear(Option_t* opt = "")
 If *opt == 'F' then reset all track quantities, else just
 delete memory managed by this track.
 (We need this behavior so we can Clear("C") the track TClonesArray
 without the overhead of clearing everything.)
Int_t AddCluster(THaCluster* c)
 Add a cluster to the internal list of pointers.
 (Clusters are memory-managed by tracking detectors, not by tracks.)
void Print(Option_t* opt = "") const
 Print track parameters
Int_t Compare(const TObject* obj) const
 compare two tracks by chi2/ndof
 for track array sorting
void SetD(Double_t x, Double_t y, Double_t theta, Double_t phi)
 set the coordinates in the rotated focal-plane frame
void SetR(Double_t x, Double_t y, Double_t theta, Double_t phi)
 set the coordinates in the rotated focal-plane frame
void SetTarget(Double_t x, Double_t y, Double_t theta, Double_t phi)
 set the coordinates in the target frame
 Default constructor
{ memset(fClusters,0,kMAXCL*sizeof(THaCluster*)); }
THaTrack(Double_t x, Double_t y, Double_t theta, Double_t phi, THaTrackingDetector* creator = 0, THaTrackID* id = 0, THaPIDinfo* pid = 0)
 Constructor with fp coordinates
 FIXME: this really should be setting detector coordinates
THaTrackingDetector* GetCreator() const
{ return fCreator; }
Int_t GetNclusters() const
{ return fNclusters; }
Int_t GetIndex() const
{ return fIndex; }
THaCluster* GetCluster(Int_t i)
{ return fClusters[i]; }
UInt_t GetFlag() const
{ return fFlag; }
UInt_t GetType() const
{ return fType; }
THaTrackID* GetID() const
{ return fID; }
Int_t GetTrkNum() const
{ return fTrkNum; }
Double_t GetP() const
{ return fP; }
Double_t GetPhi() const
{ return fPhi; }
THaPIDinfo* GetPIDinfo() const
{ return fPIDinfo; }
Double_t GetTheta() const
{ return fTheta; }
Double_t GetX() const
{ return fX; }
Double_t GetY() const
{ return fY; }
Double_t GetX(Double_t z) const
{ return fX + z*fTheta; }
Double_t GetY(Double_t z) const
{ return fY + z*fPhi; }
Double_t GetChi2() const
{ return fChi2; }
Int_t GetNDoF() const
{ return fNDoF; }
Double_t GetDX() const
{ return fDX; }
Double_t GetDY() const
{ return fDY; }
Double_t GetDTheta() const
{ return fDTheta; }
Double_t GetDPhi() const
{ return fDPhi; }
Double_t GetRX() const
{ return fRX; }
Double_t GetRY() const
{ return fRY; }
Double_t GetRTheta() const
{ return fRTheta; }
Double_t GetRPhi() const
{ return fRPhi; }
Double_t GetTX() const
{ return fTX; }
Double_t GetTY() const
{ return fTY; }
Double_t GetTTheta() const
{ return fTTheta; }
Double_t GetTPhi() const
{ return fTPhi; }
Double_t GetDp() const
{ return fDp; }
Double_t GetLabPx() const
{ return fPvect.X(); }
Double_t GetLabPy() const
{ return fPvect.Y(); }
Double_t GetLabPz() const
{ return fPvect.Z(); }
Double_t GetVertexX() const
{ return fVertex.X(); }
Double_t GetVertexY() const
{ return fVertex.Y(); }
Double_t GetVertexZ() const
{ return fVertex.Z(); }
Double_t GetPathLen() const
{ return fPathl; }
TVector3& GetPvect()
{ return fPvect; }
TVector3& GetVertex()
{ return fVertex; }
TVector3& GetVertexError()
{ return fVertexError; }
Double_t GetTime() const
{ return fTime; }
Double_t GetdTime() const
{ return fdTime; }
Double_t GetBeta() const
{ return fBeta; }
Double_t GetdBeta() const
{ return fdBeta; }
Double_t GetDedx() const
{ return fDedx; }
Double_t GetEnergy() const
{ return fEnergy; }
Int_t GetNPMT() const
{ return fNPMT; }
Double_t GetBetaChi2() const
{ return fBetaChi2; }
Double_t GetFPTime() const
{ return fFPTime; }
Int_t GetGoodPlane3() const
{ return fGoodPlane3; }
Int_t GetGoodPlane4() const
{ return fGoodPlane4; }
bool HasDet() const
{ return (fType&kHasDet); }
bool HasFP() const
{ return (fType&kHasFP); }
bool HasRot() const
{ return (fType&kHasRot); }
bool HasTarget() const
{ return (fType&kHasTarget); }
bool HasVertex() const
{ return (fType&kHasVertex); }
void Set(Double_t x, Double_t y, Double_t theta, Double_t phi)
{ fX = x; fY = y; fTheta = theta; fPhi = phi; fType |= kHasFP; }
void SetPathLen(Double_t pathl)
{ fPathl = pathl; /* meters */ }
void SetTime(Double_t time)
{ fTime = time; /* seconds */ }
void SetdTime(Double_t dt)
{ fdTime = dt; /* seconds */ }
void SetBeta(Double_t beta)
{ fBeta = beta; }
void SetdBeta(Double_t db)
{ fdBeta = db; }
void SetDedx(Double_t dedx)
{ fDedx = dedx; }
void SetEnergy(Double_t energy)
{ fEnergy = energy; }
void SetNPMT(Int_t npmt)
{ fNPMT = npmt; }
void SetBetaChi2(Double_t betachi2)
{ fBetaChi2 = betachi2; }
void SetFPTime(Double_t fptime)
{ fFPTime = fptime; }
void SetGoodPlane3(Int_t gdplane3)
{ fGoodPlane3 = gdplane3; }
void SetGoodPlane4(Int_t gdplane4)
{ fGoodPlane4 = gdplane4; }
void SetChi2(Double_t chi2, Int_t ndof)
{ fChi2=chi2; fNDoF=ndof; }
void SetID(THaTrackID* id)
{ fID = id; }
void SetFlag(UInt_t flag)
{ fFlag = flag; }
void SetType(UInt_t flag)
{ fType = flag; }
void SetMomentum(Double_t p)
{ fP = p; }
void SetDp(Double_t dp)
{ fDp = dp; }
void SetTrkNum(Int_t n)
{ fTrkNum = n; }
void SetCreator(THaTrackingDetector* d)
{ fCreator = d; }
void SetIndex(Int_t idx)
{ fIndex = idx; }
void SetPIDinfo(THaPIDinfo* pid)
{ fPIDinfo = pid; }
void SetPvect(const TVector3& pvect)
{ fPvect = pvect; }
void SetVertex(const TVector3& vert)
{ fVertex = vert; fType |= kHasVertex; }
void SetVertex(Double_t x, Double_t y, Double_t z)
{ fVertex.SetXYZ( x, y, z ); fType |= kHasVertex; }
void SetVertexError(const TVector3& err)
{ fVertexError = err; }
void SetVertexError(Double_t x, Double_t y, Double_t z)
{ fVertexError.SetXYZ( x, y, z ); }
Bool_t IsSortable() const
{ return kTRUE; }