ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HKalMdcHit

class HKalMdcHit: public TObject

_HADES_CLASS_DESCRIPTION


 A hit point is a measurement vector.
 KalMdcHit provides the position vector of the hit with errors and the
 measurement layer of the Mini Drift Chamber where the hit was registered.
 The input for the position vector should already be in the sector coordinate
 system. The class itself won't do the transformation from layer to sector
 coordinates.
 It is recommended to make the hit vector two-dimensional. This will reduce
 the calculation time for the Kalman Filter. Since the hit must be on the
 surface of a measurement layer the third hit coordinate can be calculated.



Function Members (Methods)

public:
HKalMdcHit(Int_t dim)
HKalMdcHit(const HKalMdcHit& hit)
HKalMdcHit(Double_t* hit, Double_t* err, const HKalMdcMeasLayer& layer, Int_t dim, const TVector3& impact, Kalman::kalHitTypes type, Double_t w = 1., Int_t cell = -1)
virtual~HKalMdcHit()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
static Bool_tareCompetitors(const HKalMdcHit& hit1, const HKalMdcHit& hit2)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
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
virtual Int_tgetCell() const
virtual Double_tgetChi2() const
virtual Int_tgetDimension() const
virtual Option_t*TObject::GetDrawOption() const
virtual Double_tgetDriftTime() const
virtual Double_tgetDriftTimeErr() const
static Long_tTObject::GetDtorOnly()
virtual const TMatrixD&getErrMat() const
virtual const TVectorD&getErrVec() const
virtual Int_tgetHitType() const
virtual const TVectorD&getHitVec() const
virtual voidgetHitVec3(TVector3& hit3) const
virtual const char*TObject::GetIconName() const
virtual Float_tgetImpactAngle() const
virtual Int_tgetLayer() const
virtual const HKalMdcMeasLayer&getMeasLayer() const
virtual Int_tgetModule() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Int_tgetSector() const
virtual Float_tgetTime1() const
virtual Float_tgetTime2() const
virtual Float_tgetTimeTof() const
virtual Float_tgetTimeTofCal1() const
virtual Float_tgetTimeWireOffset() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual const HKalPlane&getVirtPlane() const
virtual Double_tgetWeight() const
virtual Double_tgetWeightHist(Int_t iDaf) const
virtual voidgetWirePts(TVector3& wire1, TVector3& wire2) 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_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)
HKalMdcHit&operator=(const HKalMdcHit&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidprint(Option_t* opt = "") const
virtual voidTObject::Print(Option_t* option = "") 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)
virtual voidsetChi2(Double_t chi)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
virtual voidsetDriftTime(Double_t t, Double_t tErr)
static voidTObject::SetDtorOnly(void* obj)
virtual voidsetHitAndErr(const TVector3& newhit, const TVector3& newerr)
virtual voidsetHitAndErr(const TVectorD& newhit, const TVectorD& newerr)
virtual voidsetImpactAngle(Float_t a)
virtual voidsetNdafs(Int_t n)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidsetTime1(Float_t t)
virtual voidsetTime2(Float_t t)
virtual voidsetTimeTof(Float_t t)
virtual voidsetTimeTofCal1(Float_t t)
virtual voidsetTimeWireOffset(Float_t t)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual Bool_tsetVirtPlane(const TVector3& origin, const TVector3& n)
virtual Bool_tsetVirtPlane(const TVector3& origin, const TVector3& u, const TVector3& v)
virtual voidsetWeight(Double_t w)
virtual voidsetWeightHist(Double_t w, Int_t i)
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 voidtransformHit(const TRotation& transMat)
virtual voidtransformLayer(const TRotation& transMat)
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
virtual voidsetHitVec(const TVector3& newhit)
virtual voidsetHitVec(const TVectorD& newhit)

Data Members

private:
Float_tangleImpact angle of reconstructed track with drift cell.
Double_tchi2Distance of the observation to the smoothed track state. (Used for competing hits.)
Int_tdriftCellDrift cell number on measurement layer.
Double_tdriftTimeDrift time. Used if this is a wire hit.
Double_tdriftTimeErrError of drift time. Used if this is a wire hit.
TVectorDerrVec! Error vector.
TMatrixDfErrError matrix.
Int_thitTypeSegment/wire hit.
TVectorDhitVecMeasurement vector.
TVector3hitVec3! 3 dimensional hit vector in sector coordinates.
HKalMdcMeasLayer*measLayer! Measurement layer where hit was detected.
Float_tt1Drift time of first hit in ns.
Float_tt2Drift time of second hit in ns.
Float_ttTofTime of flight correction of time 1.
Float_ttTofCal1Time of flight correction of time 1 from HMdcCal1Sim.
Float_ttWireOffsetTravel time on wire correction of time 1.
HKalPlanevirtLayer
Double_tweightWeight of the measurement compared to its competitors. (Used for competing hits.)
TArrayDweightsHistWeight of the measurement compared to its competitors during each iteration of the DAF. (Used for competing hits.)
TVector3wirePoint1! Wire geometry.
TVector3wirePoint2! Wire geometry.

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HKalMdcHit(Int_t dim)
 Creates an empty hit object.
 dim: dimension of hit vector
HKalMdcHit(Double_t* hit, Double_t* err, const HKalMdcMeasLayer& layer, Int_t dim, const TVector3& impact, Kalman::kalHitTypes type, Double_t w = 1., Int_t cell = -1)
 Creates a measurement hit with arrays as input for the coordinates.
 hit:   Measurements vector (only the first dim coordinates will be used).
 err:   The error vector (only the first dim coordinates will be used)
 layer: The measurement layer were the hit was detected.
 dim:   The dimension of the hit vector.
 impact: 3-dimensional hit vector.
 type:   2D hit or wire hit.
 w:      Weight of this hit (used for competing hits).
 cell:   Drift cell number.
HKalMdcHit(const HKalMdcHit& hit)
 Copy constructor.
~HKalMdcHit()
void setHitVec(const TVectorD& newhit)
 Replace the hit vector with the coordinates stored in the parameter newhit.
 The dimension of the object's hit vector dimension will not be changed.
void setHitVec(const TVector3& newhit)
 Replace the hit vector with the coordinates stored in the parameter newhit.
 The dimension of the object's hit vector dimension will not be changed.
Bool_t areCompetitors(const HKalMdcHit& hit1, const HKalMdcHit& hit2)
 Checks if hit1 and hit2 are competitors, i.e. hits on the same measurement layer.
Int_t Compare(const TObject* obj) const
 Implements the Compare function from TObject parent.
 Returns  1 if this hit's weight is greater than obj's weight.
 Returns -1 if this hit's weight is smaller than obj's weight.
 Return   0 if weights are equal.
void getWirePts(TVector3& wire1, TVector3& wire2) const
 Return the two wire end points for this hit.
void print(Option_t* opt = "") const
 Prints information about the hit object.
 opt: Determines what information about the object will be printed.
 If opt contains:
 "Hit": print hit and error vectors.
 "Lay": print geometry information about the hit's measurement layer.
 "Mat": print material information about the hit's measurement layer.
 If opt is empty all of the above will be printed.
void setHitAndErr(const TVectorD& newhit, const TVectorD& newerr)
 Replace the hit and error vectors with the coordinates stored in the parameters
 newhit and newerr.
 The dimension of the object's hit vector dimension will not be changed.
void setHitAndErr(const TVector3& newhit, const TVector3& newerr)
 Replace the hit and error vectors with the coordinates stored in the parameters
 newhit and newerr.
 The dimension of the object's hit vector dimension will not be changed.
void transformHit(const TRotation& transMat)
 Transforms the hit vector using a rotation matrix.
 The error vector will not be transformed.
void transformLayer(const TRotation& transMat)
 Transforms the hit's measurement layer using a rotation matrix.
void getHitVec3(TVector3& hit3) const
 Returns the position of this hit.
Int_t getCell() const
{ return driftCell; }
Double_t getChi2() const
{ return chi2; }
Int_t getDimension() const
{ return hitVec.GetNrows(); }
Double_t getDriftTime() const
{ return driftTime; }
Double_t getDriftTimeErr() const
{ return driftTimeErr; }
TMatrixD const& getErrMat() const
{ return fErr; }
TVectorD const& getErrVec() const
{ return errVec; }
TVectorD const& getHitVec() const
{ return hitVec; }
Int_t getHitType() const
{ return hitType; }
Float_t getImpactAngle() const
{ return angle; }
Int_t getLayer() const
{ return measLayer->getLayer(); }
Int_t getModule() const
{ return measLayer->getModule(); }
Int_t getSector() const
{ return measLayer->getSector(); }
Float_t getTime1() const
{ return t1; }
Float_t getTime2() const
{ return t2; }
Float_t getTimeTof() const
{ return tTof; }
Float_t getTimeTofCal1() const
{ return tTofCal1; }
Float_t getTimeWireOffset() const
{ return tWireOffset; }
Double_t getWeight() const
{ return weight; }
Double_t getWeightHist(Int_t iDaf) const
{ if(iDaf >= 0 && iDaf < weightsHist.GetSize()) weightsHist[iDaf]; return 0.; }
HKalMdcMeasLayer const& getMeasLayer() const
HKalPlane const& getVirtPlane() const
{ return virtLayer; }
Bool_t IsSortable() const
{ return kTRUE; }
void setChi2(Double_t chi)
{ chi2 = chi; }
void setDriftTime(Double_t t, Double_t tErr)
{ driftTime = t; driftTimeErr = tErr;}
void setImpactAngle(Float_t a)
{ angle = a; }
void setNdafs(Int_t n)
{ weightsHist.Set(n); }
void setTime1(Float_t t)
{ t1 = t; }
void setTime2(Float_t t)
{ t2 = t; }
void setTimeTof(Float_t t)
{ tTof = t; }
void setTimeTofCal1(Float_t t)
{ tTofCal1 = t; }
void setTimeWireOffset(Float_t t)
{ tWireOffset = t; }
Bool_t setVirtPlane(const TVector3& origin, const TVector3& n)
{ return virtLayer.setPlane(origin, n); }
Bool_t setVirtPlane(const TVector3& origin, const TVector3& u, const TVector3& v)
{ return virtLayer.setPlane(origin, u, v); }
void setWeight(Double_t w)
{ weight = w; }
void setWeightHist(Double_t w, Int_t i)
{ if(i >= 0 && i<weightsHist.GetSize()) weightsHist[i] = w; }