FairRoot/PandaRoot
Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
PndSttRecoHit2 Class Reference

#include <PndSttRecoHit2.h>

Inheritance diagram for PndSttRecoHit2:
genfit::WireMeasurement genfit::AbsMeasurement

Public Member Functions

 PndSttRecoHit2 ()
 
 PndSttRecoHit2 (PndSttHit *currenthit)
 
 PndSttRecoHit2 (PndSttHit *currenthit, const genfit::TrackCandHit *hit, TClonesArray *tubeArr)
 
virtual ~PndSttRecoHit2 ()
 
virtual genfit::AbsMeasurementclone ()
 
virtual AbsMeasurementclone () const
 Deep copy ctor for polymorphic class. More...
 
virtual SharedPlanePtr constructPlane (const StateOnPlane &state) const
 
virtual std::vector
< MeasurementOnPlane * > 
constructMeasurementsOnPlane (const StateOnPlane &state) const
 
virtual const AbsHMatrix * constructHMatrix (const AbsTrackRep *) const
 
void setMaxDistance (double d)
 
void setLeftRightResolution (int lr)
 
virtual bool isLeftRightMeasurement () const
 If the AbsMeasurement is a wire hit, the left/right resolution will be used. More...
 
virtual int getLeftRightResolution () const
 
double getMaxDistance ()
 
TrackPoint * getTrackPoint () const
 
void setTrackPoint (TrackPoint *tp)
 
const TVectorD & getRawHitCoords () const
 
TVectorD & getRawHitCoords ()
 
const TMatrixDSym & getRawHitCov () const
 
TMatrixDSym & getRawHitCov ()
 
int getDetId () const
 
int getHitId () const
 
unsigned int getDim () const
 
void setRawHitCoords (const TVectorD &coords)
 
void setRawHitCov (const TMatrixDSym &cov)
 
void setDetId (int detId)
 
void setHitId (int hitId)
 
virtual void Print (const Option_t *="") const
 

Protected Attributes

double maxDistance_
 
signed char leftRight_
 
TVectorD rawHitCoords_
 
TMatrixDSym rawHitCov_
 
int detId_
 
int hitId_
 
TrackPoint * trackPoint_
 Pointer to TrackPoint where the measurement belongs to. More...
 

Static Protected Attributes

static const int NparHitRep = 7
 

Detailed Description

Definition at line 20 of file PndSttRecoHit2.h.

Constructor & Destructor Documentation

PndSttRecoHit2::PndSttRecoHit2 ( )

Definition at line 43 of file PndSttRecoHit2.cxx.

Referenced by clone().

45 {
46 
47 }
Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the co...
static const int NparHitRep
PndSttRecoHit2::PndSttRecoHit2 ( PndSttHit currenthit)

Definition at line 50 of file PndSttRecoHit2.cxx.

References PndSttTube::GetHalfLength(), PndSttHit::GetIsochrone(), PndSttHit::GetIsochroneError(), PndSttTube::GetPosition(), PndSttMapCreator::GetTubeFromTubeID(), PndSttHit::GetTubeID(), PndSttTube::GetWireDirection(), i, NparHitRep, genfit::AbsMeasurement::rawHitCoords_, genfit::AbsMeasurement::rawHitCov_, rtdb, and genfit::WireMeasurement::setMaxDistance().

51 
52  FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb();
53  PndGeoSttPar *sttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");
54  Int_t tubeID = currenthit->GetTubeID();
55  PndSttMapCreator *mapper = new PndSttMapCreator(sttParameters);
56  PndSttTube *tube = (PndSttTube*) mapper->GetTubeFromTubeID(tubeID);
57 
58  // wire1(3), wire2(3), rdrift
59  TVector3 wiredirection = tube->GetWireDirection();
60  TVector3 wiredirection2 = tube->GetHalfLength() * wiredirection;
61  TVector3 cenposition = tube->GetPosition();
62  TVector3 wire1, wire2;
63  wire1 = cenposition - wiredirection2;
64  wire2 = cenposition + wiredirection2;
65  // cout << "Wiredirection, wire1, wire2 " << endl;
66  // wiredirection.Print();
67  // wire1.Print();
68  // wire2.Print();
69  rawHitCoords_[0] = wire1.X();
70  rawHitCoords_[1] = wire1.Y();
71  rawHitCoords_[2] = wire1.Z();
72  rawHitCoords_[3] = wire2.X();
73  rawHitCoords_[4] = wire2.Y();
74  rawHitCoords_[5] = wire2.Z();
75  rawHitCoords_[6] = currenthit->GetIsochrone();
76 
77  // errors on drift radius
78  for(int i = 0; i < NparHitRep; i++) for(int j = 0; j < NparHitRep; j++) rawHitCov_[i][j] = 0.;
79  // rawHitCov_[6][6] = 0.0100 * 0.0100;
80  rawHitCov_[6][6] = pow(currenthit->GetIsochroneError(), 2);
81 
82  // cut on distance
83  setMaxDistance(0.5);
84 }
Int_t i
Definition: run_full.C:25
Double_t GetHalfLength()
Definition: PndSttTube.cxx:99
PndSttTube * GetTubeFromTubeID(Int_t tubeid)
Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the co...
Double_t GetIsochrone() const
Definition: PndSttHit.h:62
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
Int_t GetTubeID() const
Definition: PndSttHit.h:75
Double_t GetIsochroneError() const
Definition: PndSttHit.h:63
void setMaxDistance(double d)
static const int NparHitRep
TVector3 GetWireDirection()
Definition: PndSttTube.cxx:107
PndSttRecoHit2::PndSttRecoHit2 ( PndSttHit currenthit,
const genfit::TrackCandHit hit,
TClonesArray *  tubeArr 
)

Definition at line 87 of file PndSttRecoHit2.cxx.

References genfit::TrackCandHit::getDetId(), PndSttTube::GetHalfLength(), genfit::TrackCandHit::getHitId(), PndSttHit::GetIsochrone(), PndSttHit::GetIsochroneError(), PndSttTube::GetPosition(), PndSttTubeMap::GetTube(), PndSttHit::GetTubeID(), PndSttTube::GetWireDirection(), i, PndSttTubeMap::Instance(), NparHitRep, genfit::AbsMeasurement::rawHitCoords_, genfit::AbsMeasurement::rawHitCov_, genfit::AbsMeasurement::setDetId(), genfit::AbsMeasurement::setHitId(), and genfit::WireMeasurement::setMaxDistance().

88 
89  setDetId(hit->getDetId());
90  setHitId(hit->getHitId());
91 
92  Int_t tubeID = currenthit->GetTubeID();
93  PndSttTube* tube = nullptr;
94  if (tubeArray != nullptr){
95  tube = (PndSttTube *) tubeArray->At(tubeID);
96  } else {
97  tube = PndSttTubeMap::Instance()->GetTube(tubeID);
98  }
99 
100  // wire1(3), wire2(3), rdrift
101  TVector3 wiredirection = tube->GetWireDirection();
102  TVector3 wiredirection2 = tube->GetHalfLength() * wiredirection;
103  TVector3 cenposition = tube->GetPosition();
104  TVector3 wire1, wire2;
105  wire1 = cenposition - wiredirection2;
106  wire2 = cenposition + wiredirection2;
107  // cout << "Wiredirection, wire1, wire2 " << endl;
108  // wiredirection.Print();
109  // wire1.Print();
110  // wire2.Print();
111  rawHitCoords_[0] = wire1.X();
112  rawHitCoords_[1] = wire1.Y();
113  rawHitCoords_[2] = wire1.Z();
114  rawHitCoords_[3] = wire2.X();
115  rawHitCoords_[4] = wire2.Y();
116  rawHitCoords_[5] = wire2.Z();
117  rawHitCoords_[6] = currenthit->GetIsochrone();
118 
119  // errors on drift radius
120  for(int i = 0; i < NparHitRep; i++) for(int j = 0; j < NparHitRep; j++) rawHitCov_[i][j] = 0.;
121  // rawHitCov_[6][6] = 0.0100 * 0.0100;
122  rawHitCov_[6][6] = pow(currenthit->GetIsochroneError(), 2);
123 
124  // cut on distance
125  setMaxDistance(0.5);
126 }
int getDetId() const
Definition: TrackCandHit.h:48
Int_t i
Definition: run_full.C:25
Double_t GetHalfLength()
Definition: PndSttTube.cxx:99
int getHitId() const
Definition: TrackCandHit.h:49
PndSttTube * GetTube(int tubeId)
Definition: PndSttTubeMap.h:22
void setDetId(int detId)
static PndSttTubeMap * Instance()
Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the co...
Double_t GetIsochrone() const
Definition: PndSttHit.h:62
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
Int_t GetTubeID() const
Definition: PndSttHit.h:75
Double_t GetIsochroneError() const
Definition: PndSttHit.h:63
void setMaxDistance(double d)
void setHitId(int hitId)
static const int NparHitRep
TVector3 GetWireDirection()
Definition: PndSttTube.cxx:107
virtual PndSttRecoHit2::~PndSttRecoHit2 ( )
virtual

Member Function Documentation

virtual genfit::AbsMeasurement* PndSttRecoHit2::clone ( )
inlinevirtual

Definition at line 30 of file PndSttRecoHit2.h.

References PndSttRecoHit2().

30 {return new PndSttRecoHit2(*this);};
virtual AbsMeasurement* genfit::WireMeasurement::clone ( ) const
inlinevirtualinherited

Deep copy ctor for polymorphic class.

Implements genfit::AbsMeasurement.

Reimplemented in genfit::WirePointMeasurement.

Definition at line 60 of file WireMeasurement.h.

References genfit::WireMeasurement::WireMeasurement().

60 {return new WireMeasurement(*this);}
WireMeasurement(int nDim=7)
virtual const AbsHMatrix* genfit::WireMeasurement::constructHMatrix ( const AbsTrackRep ) const
virtualinherited

Returns a new AbsHMatrix object. Caller must take ownership.

Implements genfit::AbsMeasurement.

Reimplemented in genfit::WirePointMeasurement.

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

Hits with a small drift distance get a higher weight, whereas hits with big drift distances become weighted down. When these initial weights are used by the DAF, the smoothed track will be closer to the real trajectory than if both sides are weighted with 0.5 regardless of the drift distance. This helps a lot when resolving l/r ambiguities with the DAF. The idea is that for the first iteration of the DAF, the wire positions are taken. For small drift radii, the wire position does not bend the fit away from the trajectory, whereas the wire position for hits with large drift radii is further away from the trajectory and will therefore bias the fit if not weighted down.

Implements genfit::AbsMeasurement.

Reimplemented in genfit::WirePointMeasurement.

virtual SharedPlanePtr genfit::WireMeasurement::constructPlane ( const StateOnPlane state) const
virtualinherited

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.

Reimplemented in genfit::WirePointMeasurement.

int genfit::AbsMeasurement::getDetId ( ) const
inlineinherited

Definition at line 62 of file AbsMeasurement.h.

References genfit::AbsMeasurement::detId_.

62 {return detId_;}
unsigned int genfit::AbsMeasurement::getDim ( ) const
inlineinherited

Definition at line 69 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCoords_.

69 {return rawHitCoords_.GetNrows();}
int genfit::AbsMeasurement::getHitId ( ) const
inlineinherited

Definition at line 63 of file AbsMeasurement.h.

References genfit::AbsMeasurement::hitId_.

63 {return hitId_;}
virtual int genfit::WireMeasurement::getLeftRightResolution ( ) const
inlinevirtualinherited

Reimplemented from genfit::AbsMeasurement.

Definition at line 91 of file WireMeasurement.h.

References genfit::WireMeasurement::leftRight_.

91 {return leftRight_;}
double genfit::WireMeasurement::getMaxDistance ( )
inlineinherited

Definition at line 93 of file WireMeasurement.h.

References genfit::WireMeasurement::maxDistance_.

93 {return maxDistance_;}
const TVectorD& genfit::AbsMeasurement::getRawHitCoords ( ) const
inlineinherited

Definition at line 58 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCoords_.

58 {return rawHitCoords_;}
TVectorD& genfit::AbsMeasurement::getRawHitCoords ( )
inlineinherited

Definition at line 60 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCoords_.

60 {return rawHitCoords_;}
const TMatrixDSym& genfit::AbsMeasurement::getRawHitCov ( ) const
inlineinherited

Definition at line 59 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCov_.

59 {return rawHitCov_;}
TMatrixDSym& genfit::AbsMeasurement::getRawHitCov ( )
inlineinherited

Definition at line 61 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCov_.

61 {return rawHitCov_;}
TrackPoint* genfit::AbsMeasurement::getTrackPoint ( ) const
inlineinherited

Definition at line 55 of file AbsMeasurement.h.

References genfit::AbsMeasurement::trackPoint_.

55 {return trackPoint_;}
TrackPoint * trackPoint_
Pointer to TrackPoint where the measurement belongs to.
virtual bool genfit::WireMeasurement::isLeftRightMeasurement ( ) const
inlinevirtualinherited

If the AbsMeasurement is a wire hit, the left/right resolution will be used.

Reimplemented from genfit::AbsMeasurement.

Definition at line 90 of file WireMeasurement.h.

90 {return true;}
virtual void genfit::AbsMeasurement::Print ( const Option_t *  = "") const
virtualinherited
void genfit::AbsMeasurement::setDetId ( int  detId)
inlineinherited
void genfit::AbsMeasurement::setHitId ( int  hitId)
inlineinherited
void genfit::WireMeasurement::setLeftRightResolution ( int  lr)
inherited

select how to resolve the left/right ambiguity: -1: negative (left) side on vector (track direction) x (wire direction) 0: auto select (take side with smallest distance to track) 1: positive (right) side on vector (track direction) x (wire direction)

void genfit::WireMeasurement::setMaxDistance ( double  d)
inlineinherited

Set maximum drift distance. This is used to calculate the start weights of the two measurementsOnPlane.

Definition at line 81 of file WireMeasurement.h.

References d, and genfit::WireMeasurement::maxDistance_.

Referenced by PndFtsRecoHit2::PndFtsRecoHit2(), and PndSttRecoHit2().

81 {maxDistance_ = d;}
TObjArray * d
void genfit::AbsMeasurement::setRawHitCoords ( const TVectorD &  coords)
inlineinherited

Definition at line 71 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCoords_.

71 {rawHitCoords_ = coords;}
void genfit::AbsMeasurement::setRawHitCov ( const TMatrixDSym &  cov)
inlineinherited

Definition at line 72 of file AbsMeasurement.h.

References genfit::AbsMeasurement::rawHitCov_.

72 {rawHitCov_ = cov;}
void genfit::AbsMeasurement::setTrackPoint ( TrackPoint tp)
inlineinherited

Definition at line 56 of file AbsMeasurement.h.

References genfit::AbsMeasurement::trackPoint_.

Referenced by genfit::TrackPoint::addRawMeasurement().

56 {trackPoint_ = tp;}
TrackPoint * trackPoint_
Pointer to TrackPoint where the measurement belongs to.

Member Data Documentation

int genfit::AbsMeasurement::detId_
protectedinherited
int genfit::AbsMeasurement::hitId_
protectedinherited
signed char genfit::WireMeasurement::leftRight_
protectedinherited

Definition at line 98 of file WireMeasurement.h.

Referenced by genfit::WireMeasurement::getLeftRightResolution().

double genfit::WireMeasurement::maxDistance_
protectedinherited
const int PndSttRecoHit2::NparHitRep = 7
staticprotected

Definition at line 38 of file PndSttRecoHit2.h.

Referenced by PndSttRecoHit2().

TVectorD genfit::AbsMeasurement::rawHitCoords_
protectedinherited
TMatrixDSym genfit::AbsMeasurement::rawHitCov_
protectedinherited
TrackPoint* genfit::AbsMeasurement::trackPoint_
protectedinherited

Pointer to TrackPoint where the measurement belongs to.

Definition at line 119 of file AbsMeasurement.h.

Referenced by genfit::AbsMeasurement::getTrackPoint(), and genfit::AbsMeasurement::setTrackPoint().


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