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

Object containing AbsMeasurement and AbsFitterInfo objects. More...

#include <TrackPoint.h>

Inheritance diagram for genfit::TrackPoint:
Collaboration diagram for genfit::TrackPoint:

Public Member Functions

 TrackPoint ()
 
 TrackPoint (Track *track)
 
 TrackPoint (const std::vector< genfit::AbsMeasurement * > &rawMeasurements, Track *track)
 Contructor taking list of measurements.
 
 TrackPoint (genfit::AbsMeasurement *rawMeasurement, Track *track)
 Contructor taking one measurement.
 
 TrackPoint (const TrackPoint &)
 
TrackPointoperator= (TrackPoint)
 
void swap (TrackPoint &other)
 
 TrackPoint (const TrackPoint &rhs, const std::map< const genfit::AbsTrackRep *, genfit::AbsTrackRep * > &map, const std::vector< const genfit::AbsTrackRep * > *repsToIgnore=NULL)
 
virtual ~TrackPoint ()
 
double getSortingParameter () const
 
TrackgetTrack () const
 
void setTrack (Track *track)
 
const std::vector< genfit::AbsMeasurement * > & getRawMeasurements () const
 
AbsMeasurementgetRawMeasurement (int i=0) const
 
unsigned int getNumRawMeasurements () const
 
bool hasRawMeasurements () const
 
std::vector< genfit::AbsFitterInfo * > getFitterInfos () const
 Get list of all fitterInfos.
 
AbsFitterInfogetFitterInfo (const AbsTrackRep *rep=NULL) const
 Get fitterInfo for rep. Per default, use cardinal rep.
 
KalmanFitterInfogetKalmanFitterInfo (const AbsTrackRep *rep=NULL) const
 Helper to avoid casting.
 
bool hasFitterInfo (const AbsTrackRep *rep) const
 
ThinScatterergetMaterialInfo ()
 
bool hasThinScatterer ()
 
void setSortingParameter (double sortingParameter)
 
void addRawMeasurement (genfit::AbsMeasurement *rawMeasurement)
 Takes ownership and sets this as measurement's trackPoint.
 
void deleteRawMeasurements ()
 
void setFitterInfo (genfit::AbsFitterInfo *fitterInfo)
 Takes Ownership.
 
void deleteFitterInfo (const AbsTrackRep *rep)
 
void setScatterer (ThinScatterer *scatterer)
 
void Print (const Option_t *="") const
 
void fixupRepsForReading ()
 

Private Attributes

double sortingParameter_
 
Tracktrack_
 Pointer to Track where TrackPoint belongs to.
 
std::vector< AbsMeasurement * > rawMeasurements_
 No ownership.
 
std::map< const AbsTrackRep *, AbsFitterInfo * > fitterInfos_
 
std::vector< AbsFitterInfo * > vFitterInfos_
 Ownership over FitterInfos.
 
boost::scoped_ptr< ThinScattererthinScatterer_
 

Detailed Description

Object containing AbsMeasurement and AbsFitterInfo objects.

Definition at line 50 of file TrackPoint.h.

Constructor & Destructor Documentation

◆ TrackPoint() [1/6]

genfit::TrackPoint::TrackPoint ( )

Definition at line 32 of file TrackPoint.cc.

32 :
34{
35 ;
36}
Track * track_
Pointer to Track where TrackPoint belongs to.
Definition TrackPoint.h:136
boost::scoped_ptr< ThinScatterer > thinScatterer_
Definition TrackPoint.h:152

◆ TrackPoint() [2/6]

genfit::TrackPoint::TrackPoint ( Track track)

Definition at line 38 of file TrackPoint.cc.

38 :
40{
41 ;
42}

◆ TrackPoint() [3/6]

genfit::TrackPoint::TrackPoint ( const std::vector< genfit::AbsMeasurement * > &  rawMeasurements,
Track track 
)

Contructor taking list of measurements.

AbsMeasurement::setTrackPoint() of each measurement will be called. TrackPoint takes ownership over rawMeasurements.

Definition at line 44 of file TrackPoint.cc.

44 :
46{
47 rawMeasurements_.reserve(rawMeasurements.size());
48
49 for (std::vector<AbsMeasurement*>::const_iterator m = rawMeasurements.begin(); m != rawMeasurements.end(); ++m) {
51 }
52}
Double_t m
void addRawMeasurement(genfit::AbsMeasurement *rawMeasurement)
Takes ownership and sets this as measurement's trackPoint.
Definition TrackPoint.h:113
std::vector< AbsMeasurement * > rawMeasurements_
No ownership.
Definition TrackPoint.h:139

◆ TrackPoint() [4/6]

genfit::TrackPoint::TrackPoint ( genfit::AbsMeasurement rawMeasurement,
Track track 
)

Contructor taking one measurement.

AbsMeasurement::setTrackPoint() of the measurement will be called. TrackPoint takes ownership over the rawMeasurement.

Definition at line 54 of file TrackPoint.cc.

54 :
56{
57 addRawMeasurement(rawMeasurement);
58}

◆ TrackPoint() [5/6]

genfit::TrackPoint::TrackPoint ( const TrackPoint rhs)

Definition at line 61 of file TrackPoint.cc.

61 :
62 TObject(rhs),
63 sortingParameter_(rhs.sortingParameter_), track_(rhs.track_), thinScatterer_(NULL)
64{
65 // clone rawMeasurements
66 for (std::vector<AbsMeasurement*>::const_iterator it = rhs.rawMeasurements_.begin(); it != rhs.rawMeasurements_.end(); ++it) {
67 AbsMeasurement* tp = (*it)->clone();
69 }
70
71 // copy fitterInfos
72 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it = rhs.fitterInfos_.begin(); it != rhs.fitterInfos_.end(); ++it ) {
73 AbsFitterInfo* fi = it->second->clone();
74 fi->setTrackPoint(this);
75 setFitterInfo(fi);
76 }
77
78 if (rhs.thinScatterer_ != NULL)
79 thinScatterer_.reset(new ThinScatterer(*(rhs.thinScatterer_)));
80}
void setFitterInfo(genfit::AbsFitterInfo *fitterInfo)
Takes Ownership.

◆ TrackPoint() [6/6]

genfit::TrackPoint::TrackPoint ( const TrackPoint rhs,
const std::map< const genfit::AbsTrackRep *, genfit::AbsTrackRep * > &  map,
const std::vector< const genfit::AbsTrackRep * > *  repsToIgnore = NULL 
)

custom copy constructor where all TrackRep pointers are exchanged according to the map. FitterInfos with a rep in repsToIgnore will NOT be copied.

◆ ~TrackPoint()

genfit::TrackPoint::~TrackPoint ( )
virtual

Definition at line 134 of file TrackPoint.cc.

134 {
135 // FIXME: We definitely need some smart containers or smart pointers that
136 // take care of this, but so far we haven't found a convincing
137 // option (2013-07-05).
138
139 for (size_t i = 0; i < rawMeasurements_.size(); ++i)
140 delete rawMeasurements_[i];
141
142 std::map< const AbsTrackRep*, AbsFitterInfo* >::iterator it;
143 for (it = fitterInfos_.begin(); it != fitterInfos_.end(); ++it)
144 delete it->second;
145}
std::map< const AbsTrackRep *, AbsFitterInfo * > fitterInfos_
Definition TrackPoint.h:141
int i
Definition ShipAna.py:86

Member Function Documentation

◆ addRawMeasurement()

void genfit::TrackPoint::addRawMeasurement ( genfit::AbsMeasurement rawMeasurement)
inline

Takes ownership and sets this as measurement's trackPoint.

Definition at line 113 of file TrackPoint.h.

113{assert(rawMeasurement!=NULL); rawMeasurement->setTrackPoint(this); rawMeasurements_.push_back(rawMeasurement);}
void setTrackPoint(TrackPoint *tp)

◆ deleteFitterInfo()

void genfit::TrackPoint::deleteFitterInfo ( const AbsTrackRep rep)
inline

Definition at line 117 of file TrackPoint.h.

117{delete fitterInfos_[rep]; fitterInfos_.erase(rep);}

◆ deleteRawMeasurements()

void genfit::TrackPoint::deleteRawMeasurements ( )

Definition at line 186 of file TrackPoint.cc.

186 {
187 for (size_t i = 0; i < rawMeasurements_.size(); ++i)
188 delete rawMeasurements_[i];
189
190 rawMeasurements_.clear();
191}

◆ fixupRepsForReading()

void genfit::TrackPoint::fixupRepsForReading ( )

This function is used when reading the TrackPoint and is called by the owner in order to build fitterInfos_ from vFitterInfos_. This requires that the track_ be set. It also empties vFitterInfos_ which has served its purpose after this function is called.

Definition at line 320 of file TrackPoint.cc.

321{
322 for (size_t i = 0; i < vFitterInfos_.size(); ++i) {
323 // The vector is filled such that i corresponds to the id of the TrackRep.
324
325 // May not have FitterInfos for all reps.
326 if (!vFitterInfos_[i])
327 continue;
330 }
331 vFitterInfos_.clear();
332}
std::vector< AbsFitterInfo * > vFitterInfos_
Ownership over FitterInfos.
Definition TrackPoint.h:149
AbsTrackRep * getTrackRep(int id) const
Definition Track.h:127

◆ getFitterInfo()

AbsFitterInfo * genfit::TrackPoint::getFitterInfo ( const AbsTrackRep rep = NULL) const

Get fitterInfo for rep. Per default, use cardinal rep.

Definition at line 170 of file TrackPoint.cc.

170 {
171 if (!rep)
172 rep = track_->getCardinalRep();
173 std::map<const AbsTrackRep*, AbsFitterInfo*>::const_iterator it = fitterInfos_.find(rep);
174 if (it == fitterInfos_.end())
175 return NULL;
176 return fitterInfos_.at(rep);
177}
AbsTrackRep * getCardinalRep() const
Get cardinal track representation.
Definition Track.h:140

◆ getFitterInfos()

std::vector< AbsFitterInfo * > genfit::TrackPoint::getFitterInfos ( ) const

Get list of all fitterInfos.

Definition at line 156 of file TrackPoint.cc.

156 {
157 std::vector< AbsFitterInfo* > retVal;
158
159 if (fitterInfos_.empty())
160 return retVal;
161
162 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it = fitterInfos_.begin(); it != fitterInfos_.end(); ++it ) {
163 retVal.push_back(it->second);
164 }
165
166 return retVal;
167}

◆ getKalmanFitterInfo()

KalmanFitterInfo * genfit::TrackPoint::getKalmanFitterInfo ( const AbsTrackRep rep = NULL) const

Helper to avoid casting.

Definition at line 180 of file TrackPoint.cc.

180 {
181 return dynamic_cast<KalmanFitterInfo*>(getFitterInfo(rep));
182}
AbsFitterInfo * getFitterInfo(const AbsTrackRep *rep=NULL) const
Get fitterInfo for rep. Per default, use cardinal rep.

◆ getMaterialInfo()

ThinScatterer * genfit::TrackPoint::getMaterialInfo ( )
inline

Definition at line 107 of file TrackPoint.h.

107{return thinScatterer_.get();}

◆ getNumRawMeasurements()

unsigned int genfit::TrackPoint::getNumRawMeasurements ( ) const
inline

Definition at line 95 of file TrackPoint.h.

95{return rawMeasurements_.size();}

◆ getRawMeasurement()

AbsMeasurement * genfit::TrackPoint::getRawMeasurement ( int  i = 0) const

Definition at line 148 of file TrackPoint.cc.

148 {
149 if (i < 0)
150 i += rawMeasurements_.size();
151
152 return rawMeasurements_.at(i);
153}

◆ getRawMeasurements()

const std::vector< genfit::AbsMeasurement * > & genfit::TrackPoint::getRawMeasurements ( ) const
inline

Definition at line 93 of file TrackPoint.h.

93{return rawMeasurements_;}

◆ getSortingParameter()

double genfit::TrackPoint::getSortingParameter ( ) const
inline

Definition at line 88 of file TrackPoint.h.

88{return sortingParameter_;}

◆ getTrack()

Track * genfit::TrackPoint::getTrack ( ) const
inline

Definition at line 90 of file TrackPoint.h.

90{return track_;}

◆ hasFitterInfo()

bool genfit::TrackPoint::hasFitterInfo ( const AbsTrackRep rep) const
inline

Definition at line 103 of file TrackPoint.h.

103 {
104 return (fitterInfos_.find(rep) != fitterInfos_.end());
105 }

◆ hasRawMeasurements()

bool genfit::TrackPoint::hasRawMeasurements ( ) const
inline

Definition at line 96 of file TrackPoint.h.

96{return (rawMeasurements_.size() != 0);}

◆ hasThinScatterer()

bool genfit::TrackPoint::hasThinScatterer ( )
inline

Definition at line 108 of file TrackPoint.h.

108{return thinScatterer_.get() != NULL;}

◆ operator=()

TrackPoint & genfit::TrackPoint::operator= ( TrackPoint  rhs)

Definition at line 110 of file TrackPoint.cc.

110 {
111 swap(rhs);
112
113 for (std::vector<AbsMeasurement*>::const_iterator it = rawMeasurements_.begin(); it!=rawMeasurements_.end(); ++it) {
114 (*it)->setTrackPoint(this);
115 }
116
117 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it = fitterInfos_.begin(); it != fitterInfos_.end(); ++it ) {
118 it->second->setTrackPoint(this);
119 }
120
121 return *this;
122}
void swap(TrackPoint &other)

◆ Print()

void genfit::TrackPoint::Print ( const Option_t *  = "") const

Definition at line 203 of file TrackPoint.cc.

203 {
204 std::cout << "genfit::TrackPoint, belonging to Track " << track_ << "; sorting parameter = " << sortingParameter_ << "\n";
205 std::cout << "contains " << rawMeasurements_.size() << " rawMeasurements and " << getFitterInfos().size() << " fitterInfos for " << fitterInfos_.size() << " TrackReps.\n";
206
207 for (unsigned int i=0; i<rawMeasurements_.size(); ++i) {
208 std::cout << "RawMeasurement Nr. " << i << "\n";
209 rawMeasurements_[i]->Print();
210 std::cout << "............\n";
211 }
212
213 for (std::map< const AbsTrackRep*, AbsFitterInfo* >::const_iterator it = fitterInfos_.begin(); it != fitterInfos_.end(); ++it ) {
214 std::cout << "FitterInfo for TrackRep " << it->first << "\n";
215 it->second->Print();
216 std::cout << "............\n";
217 }
218
219 if (thinScatterer_)
220 thinScatterer_->Print();
221
222}
std::vector< genfit::AbsFitterInfo * > getFitterInfos() const
Get list of all fitterInfos.

◆ setFitterInfo()

void genfit::TrackPoint::setFitterInfo ( genfit::AbsFitterInfo fitterInfo)

Takes Ownership.

Definition at line 194 of file TrackPoint.cc.

194 {
195 assert (fitterInfo != NULL);
196 if (hasFitterInfo(fitterInfo->getRep()))
197 delete fitterInfos_[fitterInfo->getRep()];
198
199 fitterInfos_[fitterInfo->getRep()] = fitterInfo;
200}
const AbsTrackRep * getRep() const
bool hasFitterInfo(const AbsTrackRep *rep) const
Definition TrackPoint.h:103

◆ setScatterer()

void genfit::TrackPoint::setScatterer ( ThinScatterer scatterer)
inline

Definition at line 119 of file TrackPoint.h.

119{thinScatterer_.reset(scatterer);}

◆ setSortingParameter()

void genfit::TrackPoint::setSortingParameter ( double  sortingParameter)
inline

Definition at line 111 of file TrackPoint.h.

111{sortingParameter_ = sortingParameter;}

◆ setTrack()

void genfit::TrackPoint::setTrack ( Track track)
inline

◆ swap()

void genfit::TrackPoint::swap ( TrackPoint other)

Definition at line 125 of file TrackPoint.cc.

125 {
126 std::swap(this->sortingParameter_, other.sortingParameter_);
127 std::swap(this->track_, other.track_);
128 std::swap(this->rawMeasurements_, other.rawMeasurements_);
129 std::swap(this->fitterInfos_, other.fitterInfos_);
130 this->thinScatterer_.swap(other.thinScatterer_);
131}

Member Data Documentation

◆ fitterInfos_

std::map< const AbsTrackRep*, AbsFitterInfo* > genfit::TrackPoint::fitterInfos_
private

Definition at line 141 of file TrackPoint.h.

◆ rawMeasurements_

std::vector<AbsMeasurement*> genfit::TrackPoint::rawMeasurements_
private

No ownership.

Can be more than one, e.g. multiple measurements in the same Si detector, left and right measurements of a wire detector etc.

Definition at line 139 of file TrackPoint.h.

◆ sortingParameter_

double genfit::TrackPoint::sortingParameter_
private

Definition at line 133 of file TrackPoint.h.

◆ thinScatterer_

boost::scoped_ptr<ThinScatterer> genfit::TrackPoint::thinScatterer_
private

Definition at line 152 of file TrackPoint.h.

◆ track_

Track* genfit::TrackPoint::track_
private

Pointer to Track where TrackPoint belongs to.

Definition at line 136 of file TrackPoint.h.

◆ vFitterInfos_

std::vector< AbsFitterInfo* > genfit::TrackPoint::vFitterInfos_
private

Ownership over FitterInfos.

The following vector is read while streaming. After reading the TrackPoint, the Track's streamer will call fixupRepsForReading, and this vector will be translated into the map fitterInfos. The vector is indexed by the ids of the corresponding TrackReps.

Definition at line 149 of file TrackPoint.h.


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