SND@LHC Software
Loading...
Searching...
No Matches
genfit::PlanarMeasurement Class Reference

Measurement class implementing a planar hit geometry (1 or 2D). More...

#include <PlanarMeasurement.h>

Inheritance diagram for genfit::PlanarMeasurement:
Collaboration diagram for genfit::PlanarMeasurement:

Public Member Functions

 PlanarMeasurement (int nDim=1)
 
 PlanarMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint)
 
virtual ~PlanarMeasurement ()
 
virtual AbsMeasurementclone () const
 Deep copy ctor for polymorphic class.
 
int getPlaneId () const
 
virtual SharedPlanePtr constructPlane (const StateOnPlane &state) const
 
virtual std::vector< MeasurementOnPlane * > constructMeasurementsOnPlane (const StateOnPlane &state) const
 
virtual const AbsHMatrixconstructHMatrix (const AbsTrackRep *) const
 
virtual void setPlane (const SharedPlanePtr &physicalPlane, int planeId=-1)
 
void setStripV (bool v=true)
 Use if the coordinate for 1D hits measured in V direction.
 
- Public Member Functions inherited from genfit::AbsMeasurement
 AbsMeasurement ()
 
 AbsMeasurement (int nDims)
 
 AbsMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint)
 
virtual ~AbsMeasurement ()
 
TrackPointgetTrackPoint () const
 
void setTrackPoint (TrackPoint *tp)
 
const TVectorD & getRawHitCoords () const
 
const TMatrixDSym & getRawHitCov () const
 
int getDetId () const
 
int getHitId () const
 
unsigned int getDim () const
 
void setDetId (int detId)
 
void setHitId (int hitId)
 
virtual void Print (const Option_t *="") const
 

Protected Attributes

SharedPlanePtr physicalPlane_
 
int planeId_
 This is persistent, but '!' makes ROOT shut up.
 
bool stripV_
 
- Protected Attributes inherited from genfit::AbsMeasurement
TVectorD rawHitCoords_
 
TMatrixDSym rawHitCov_
 
int detId_
 
int hitId_
 
TrackPointtrackPoint_
 Pointer to TrackPoint where the measurement belongs to.
 

Additional Inherited Members

- Protected Member Functions inherited from genfit::AbsMeasurement
 AbsMeasurement (const AbsMeasurement &)
 protect from calling copy c'tor from outside the class. Use clone() if you want a copy!
 

Detailed Description

Measurement class implementing a planar hit geometry (1 or 2D).

Author
Christian Höppner (Technische Universität München, original author)
Sebastian Neubert (Technische Universität München, original author)
Johannes Rauch (Technische Universität München, original author)

The main feature of this type of hit is, that the detector plane is defined by the detector hardware.

Definition at line 44 of file PlanarMeasurement.h.

Constructor & Destructor Documentation

◆ PlanarMeasurement() [1/2]

genfit::PlanarMeasurement::PlanarMeasurement ( int  nDim = 1)

Definition at line 34 of file PlanarMeasurement.cc.

35 : AbsMeasurement(nDim), physicalPlane_(), planeId_(-1), stripV_(false)
36{
37 assert(nDim >= 1);
38}
int planeId_
This is persistent, but '!' makes ROOT shut up.

◆ PlanarMeasurement() [2/2]

genfit::PlanarMeasurement::PlanarMeasurement ( const TVectorD &  rawHitCoords,
const TMatrixDSym &  rawHitCov,
int  detId,
int  hitId,
TrackPoint trackPoint 
)

Definition at line 40 of file PlanarMeasurement.cc.

41 : AbsMeasurement(rawHitCoords, rawHitCov, detId, hitId, trackPoint), physicalPlane_(), planeId_(-1), stripV_(false)
42{
43 assert(rawHitCoords_.GetNrows() >= 1);
44}

◆ ~PlanarMeasurement()

virtual genfit::PlanarMeasurement::~PlanarMeasurement ( )
inlinevirtual

Definition at line 50 of file PlanarMeasurement.h.

50{;}

Member Function Documentation

◆ clone()

virtual AbsMeasurement * genfit::PlanarMeasurement::clone ( ) const
inlinevirtual

Deep copy ctor for polymorphic class.

Implements genfit::AbsMeasurement.

Definition at line 52 of file PlanarMeasurement.h.

52{return new PlanarMeasurement(*this);}

◆ constructHMatrix()

const AbsHMatrix * genfit::PlanarMeasurement::constructHMatrix ( const AbsTrackRep ) const
virtual

Returns a new AbsHMatrix object. Caller must take ownership.

Implements genfit::AbsMeasurement.

Definition at line 68 of file PlanarMeasurement.cc.

68 {
69
70 if (dynamic_cast<const RKTrackRep*>(rep) == NULL) {
71 Exception exc("SpacepointMeasurement default implementation can only handle state vectors of type RKTrackRep!", __LINE__,__FILE__);
72 throw exc;
73 }
74
75 switch(rawHitCoords_.GetNrows()) {
76 case 1:
77 if (stripV_)
78 return new HMatrixV();
79 return new HMatrixU();
80
81 case 2:
82 return new HMatrixUV();
83
84 default:
85 Exception exc("PlanarMeasurement default implementation can only handle 1D (strip) or 2D (pixel) measurements!", __LINE__,__FILE__);
86 throw exc;
87 }
88
89}

◆ constructMeasurementsOnPlane()

std::vector< MeasurementOnPlane * > genfit::PlanarMeasurement::constructMeasurementsOnPlane ( const StateOnPlane state) const
virtual

Construct MeasurementOnPlane on plane of the state and wrt the states TrackRep. The state will usually be the prediction or reference state, and has to be defined AT the measurement. The AbsMeasurement will be projected onto the plane. It's possible to make corrections to the coordinates here (e.g. by using the state coordinates). Usually the vector will contain only one element. But in the case of e.g. a WireMeasurement, it will be 2 (left and right).

Implements genfit::AbsMeasurement.

Definition at line 56 of file PlanarMeasurement.cc.

56 {
57
58 MeasurementOnPlane* mop = new MeasurementOnPlane(rawHitCoords_,
60 state.getPlane(), state.getRep(), constructHMatrix(state.getRep()));
61
62 std::vector<MeasurementOnPlane*> retVal;
63 retVal.push_back(mop);
64 return retVal;
65}
virtual const AbsHMatrix * constructHMatrix(const AbsTrackRep *) const

◆ constructPlane()

SharedPlanePtr genfit::PlanarMeasurement::constructPlane ( const StateOnPlane state) const
virtual

Construct (virtual) detector plane (use state's AbsTrackRep). It's possible to make corrections to the plane here. The state should be defined somewhere near the measurement. For virtual planes, the state will be extrapolated to the POCA to point (SpacepointMeasurement) or line (WireMeasurement), and from this info the plane will be constructed.

Implements genfit::AbsMeasurement.

Definition at line 47 of file PlanarMeasurement.cc.

47 {
48 if (!physicalPlane_) {
49 Exception exc("PlanarMeasurement::constructPlane(): No plane has been set!", __LINE__,__FILE__);
50 throw exc;
51 }
52 return physicalPlane_;
53}

◆ getPlaneId()

int genfit::PlanarMeasurement::getPlaneId ( ) const
inline

Definition at line 54 of file PlanarMeasurement.h.

54{return planeId_;}

◆ setPlane()

virtual void genfit::PlanarMeasurement::setPlane ( const SharedPlanePtr physicalPlane,
int  planeId = -1 
)
inlinevirtual

Definition at line 62 of file PlanarMeasurement.h.

62{physicalPlane_ = physicalPlane; planeId_ = planeId;}

◆ setStripV()

void genfit::PlanarMeasurement::setStripV ( bool  v = true)
inline

Use if the coordinate for 1D hits measured in V direction.

Per default for 1D planar hits, the coordinate is measured in U direction. With this function you can set it to be measured in V direction. This affects the outcoe of constructHMatrix().

Definition at line 70 of file PlanarMeasurement.h.

Member Data Documentation

◆ physicalPlane_

SharedPlanePtr genfit::PlanarMeasurement::physicalPlane_
protected

Definition at line 73 of file PlanarMeasurement.h.

◆ planeId_

int genfit::PlanarMeasurement::planeId_
protected

This is persistent, but '!' makes ROOT shut up.

Definition at line 74 of file PlanarMeasurement.h.

◆ stripV_

bool genfit::PlanarMeasurement::stripV_
protected

Definition at line 75 of file PlanarMeasurement.h.


The documentation for this class was generated from the following files: