49 for (std::vector<AbsMeasurement*>::const_iterator m = rawMeasurements.begin(); m != rawMeasurements.end(); ++m) {
50 addRawMeasurement(*m);
67 AbsMeasurement* tp = (*it)->clone();
68 addRawMeasurement(tp);
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);
83 const std::map<const AbsTrackRep*, AbsTrackRep*>& map,
84 const std::vector<const genfit::AbsTrackRep*> * repsToIgnore) :
85 sortingParameter_(rhs.sortingParameter_), track_(rhs.track_), thinScatterer_(nullptr)
89 AbsMeasurement* m = (*it)->clone();
94 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it = rhs.
fitterInfos_.begin(); it != rhs.
fitterInfos_.end(); ++it ) {
95 if (repsToIgnore != nullptr) {
96 if (std::find(repsToIgnore->begin(), repsToIgnore->end(), it->first) != repsToIgnore->end())
100 fi->
setRep(map.at(it->first));
101 fi->setTrackPoint(
this);
114 (*it)->setTrackPoint(
this);
117 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it =
fitterInfos_.begin(); it !=
fitterInfos_.end(); ++it ) {
118 it->second->setTrackPoint(
this);
142 std::map< const AbsTrackRep*, AbsFitterInfo* >::iterator it;
157 std::vector< AbsFitterInfo* > retVal;
162 for (std::map<const AbsTrackRep*, AbsFitterInfo* >::const_iterator it =
fitterInfos_.begin(); it !=
fitterInfos_.end(); ++it ) {
163 retVal.push_back(it->second);
172 rep =
track_->getCardinalRep();
173 std::map<const AbsTrackRep*, AbsFitterInfo*>::const_iterator it =
fitterInfos_.find(rep);
195 assert (fitterInfo !=
nullptr);
208 printOut <<
"RawMeasurement Nr. " << i <<
"\n";
213 for (std::map< const AbsTrackRep*, AbsFitterInfo* >::const_iterator it =
fitterInfos_.begin(); it !=
fitterInfos_.end(); ++it ) {
214 printOut <<
"FitterInfo for TrackRep " << it->first <<
"\n";
228void TrackPoint::Streamer(TBuffer &R__b)
234 if (R__b.IsReading()) {
235 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
if (R__v) { }
237 R__b >> sortingParameter_;
239 std::vector<genfit::AbsMeasurement*,std::allocator<genfit::AbsMeasurement*> > &R__stl = rawMeasurements_;
243 Error(
"rawMeasurements_ streamer",
"Missing the TClass object for genfit::AbsMeasurement!");
248 R__stl.reserve(R__n);
249 for (R__i = 0; R__i < R__n; R__i++) {
252 R__stl.push_back(R__t);
258 for (
size_t i = 0; i < nTrackReps; ++i) {
261 AbsFitterInfo* p = 0;
263 vFitterInfos_[id] = p;
265 thinScatterer_.reset();
271 thinScatterer_.reset(
new ThinScatterer(*scatterer));
273 R__b.CheckByteCount(R__s, R__c, thisClass::IsA());
277 for (
size_t i = 0; i < rawMeasurements_.size(); ++i) {
278 rawMeasurements_[i]->setTrackPoint(
this);
280 for (
auto& trackRepIDWithFitterInfo : vFitterInfos_) {
281 AbsFitterInfo* fitterInfo = trackRepIDWithFitterInfo.second;
283 fitterInfo->setTrackPoint(
this);
286 R__c = R__b.WriteVersion(thisClass::IsA(), kTRUE);
288 R__b << sortingParameter_;
290 std::vector<genfit::AbsMeasurement*,std::allocator<genfit::AbsMeasurement*> > &R__stl = rawMeasurements_;
291 int R__n= int(R__stl.size());
294 std::vector<genfit::AbsMeasurement*,std::allocator<genfit::AbsMeasurement*> >::iterator R__k;
295 for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) {
300 R__b << fitterInfos_.size();
301 for (std::map<const AbsTrackRep*, AbsFitterInfo*>::const_iterator it = fitterInfos_.begin();
302 it != fitterInfos_.end(); ++it)
304 int id = track_->getIdForRep(it->first);
308 if (thinScatterer_) {
310 R__b << thinScatterer_.get();
314 R__b.SetByteCount(R__c, kTRUE);
323 const unsigned int id = trackRepIDWithFitterInfo.first;
This class collects all information needed and produced by a specific AbsFitter and is specific to on...
const AbsTrackRep * getRep() const
virtual AbsFitterInfo * clone() const =0
Deep copy ctor for polymorphic class.
virtual void setRep(const AbsTrackRep *rep)
Contains the measurement and covariance in raw detector coordinates.
Abstract base class for a track representation.
Collects information needed and produced by a AbsKalmanFitter implementations and is specific to one ...
Collection of TrackPoint objects, AbsTrackRep objects and FitStatus objects.
Object containing AbsMeasurement and AbsFitterInfo objects.
bool hasFitterInfo(const AbsTrackRep *rep) const
void deleteRawMeasurements()
TrackPoint & operator=(TrackPoint)
std::unique_ptr< ThinScatterer > thinScatterer_
std::map< const AbsTrackRep *, AbsFitterInfo * > fitterInfos_
std::vector< genfit::AbsFitterInfo * > getFitterInfos() const
Get list of all fitterInfos.
void addRawMeasurement(genfit::AbsMeasurement *rawMeasurement)
Takes ownership and sets this as measurement's trackPoint.
KalmanFitterInfo * getKalmanFitterInfo(const AbsTrackRep *rep=nullptr) const
Helper to avoid casting.
void swap(TrackPoint &other)
void fixupRepsForReading()
std::map< unsigned int, AbsFitterInfo * > vFitterInfos_
Ownership over FitterInfos.
void setFitterInfo(genfit::AbsFitterInfo *fitterInfo)
Takes Ownership.
AbsFitterInfo * getFitterInfo(const AbsTrackRep *rep=nullptr) const
Get fitterInfo for rep. Per default, use cardinal rep.
AbsMeasurement * getRawMeasurement(int i=0) const
Track * track_
Pointer to Track where TrackPoint belongs to.
void Print(const Option_t *="") const
std::vector< AbsMeasurement * > rawMeasurements_
No ownership.
Defines for I/O streams used for error and debug printing.