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

Class for measurements implementing a space point hit geometry with a very prolate form of the covariance matrix. More...

#include <ProlateSpacepointMeasurement.h>

Inheritance diagram for genfit::ProlateSpacepointMeasurement:
Collaboration diagram for genfit::ProlateSpacepointMeasurement:

Public Member Functions

 ProlateSpacepointMeasurement (int nDim=3)
 
 ProlateSpacepointMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint)
 
virtual ~ProlateSpacepointMeasurement ()
 
virtual AbsMeasurementclone () const
 Deep copy ctor for polymorphic class.
 
virtual SharedPlanePtr constructPlane (const StateOnPlane &state) const
 Contruct the virtual detector plane.
 
const TVector3 & getLargestErrorDirection ()
 
void setLargestErrorDirection (const TVector3 &dir)
 
- Public Member Functions inherited from genfit::SpacepointMeasurement
 SpacepointMeasurement (int nDim=3)
 
 SpacepointMeasurement (const TVectorD &rawHitCoords, const TMatrixDSym &rawHitCov, int detId, int hitId, TrackPoint *trackPoint, bool weightedPlaneContruction=true, bool cutCov=true)
 
virtual ~SpacepointMeasurement ()
 
virtual std::vector< MeasurementOnPlane * > constructMeasurementsOnPlane (const StateOnPlane &state) const
 
virtual const AbsHMatrixconstructHMatrix (const AbsTrackRep *) const
 
- 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

TVector3 largestErrorDirection_
 
- 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

Class for measurements implementing a space point hit geometry with a very prolate form of the covariance matrix.

Author
Johannes Rauch (Technische Universität München, original author)

Measurements from detectors measuring 3D space points with errors in one direction much larger than the errors perpendicular should use this class.

For these hits, a virtual detector plane lying in the POCA and perpendicular to the track yields wrong results. Instead, the plane should contain the direction of the largest error.

The largest error direction can be set. Standard is in z.

Definition at line 46 of file ProlateSpacepointMeasurement.h.

Constructor & Destructor Documentation

◆ ProlateSpacepointMeasurement() [1/2]

genfit::ProlateSpacepointMeasurement::ProlateSpacepointMeasurement ( int  nDim = 3)

◆ ProlateSpacepointMeasurement() [2/2]

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

Definition at line 36 of file ProlateSpacepointMeasurement.cc.

37 : SpacepointMeasurement(rawHitCoords, rawHitCov, detId, hitId, trackPoint), largestErrorDirection_(0,0,1)
38{
39 ;
40}

◆ ~ProlateSpacepointMeasurement()

virtual genfit::ProlateSpacepointMeasurement::~ProlateSpacepointMeasurement ( )
inlinevirtual

Definition at line 52 of file ProlateSpacepointMeasurement.h.

52{;}

Member Function Documentation

◆ clone()

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

Deep copy ctor for polymorphic class.

Reimplemented from genfit::SpacepointMeasurement.

Definition at line 54 of file ProlateSpacepointMeasurement.h.

◆ constructPlane()

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

Contruct the virtual detector plane.

Per default, the plane will be constructed such that it contains the measurement and POCA to the measurement in cartesian space. The plane is perpendicular to the track (at the POCA).

If weightedPlaneContruction_ is set, the POCA will be calculated in a space weighted with the inverse of the 3D covariance. E.g. if the covariance is very oblate, the plane will be almost defined by the covariance shape. If the covariance is very prolate, the behaviour will be very similar to the ProlateSpacepointHit.

Reimplemented from genfit::SpacepointMeasurement.

Definition at line 43 of file ProlateSpacepointMeasurement.cc.

43 {
44
45 // copy state. Neglect covariance.
46 StateOnPlane st(state);
47
48
49 const TVector3 wire1(rawHitCoords_(0), rawHitCoords_(1), rawHitCoords_(2));
50
51 const AbsTrackRep* rep = state.getRep();
52 rep->extrapolateToLine(st, wire1, largestErrorDirection_);
53
54 TVector3 dirInPoca = rep->getMom(st);
55 dirInPoca.SetMag(1.);
56
57 // check if direction is parallel to wire
58 if (fabs(largestErrorDirection_.Angle(dirInPoca)) < 0.01){
59 Exception exc("ProlateSpacepointMeasurement::constructPlane(): Cannot construct detector plane, track direction is parallel to largest error direction", __LINE__,__FILE__);
60 throw exc;
61 }
62
63 // construct orthogonal vector
64 TVector3 U = largestErrorDirection_.Cross(dirInPoca);
65
66 return SharedPlanePtr(new DetPlane(wire1, U, largestErrorDirection_));
67}
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.

◆ getLargestErrorDirection()

const TVector3 & genfit::ProlateSpacepointMeasurement::getLargestErrorDirection ( )
inline

Definition at line 59 of file ProlateSpacepointMeasurement.h.

◆ setLargestErrorDirection()

void genfit::ProlateSpacepointMeasurement::setLargestErrorDirection ( const TVector3 &  dir)
inline

Definition at line 60 of file ProlateSpacepointMeasurement.h.

60{largestErrorDirection_ = dir.Unit();}

Member Data Documentation

◆ largestErrorDirection_

TVector3 genfit::ProlateSpacepointMeasurement::largestErrorDirection_
protected

Definition at line 63 of file ProlateSpacepointMeasurement.h.


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