SND@LHC Software
Loading...
Searching...
No Matches
TrackPoint.h
Go to the documentation of this file.
1/* Copyright 2008-2010, Technische Universitaet Muenchen,
2 Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3
4 This file is part of GENFIT.
5
6 GENFIT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 GENFIT is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18*/
23#ifndef genfit_TrackPoint_h
24#define genfit_TrackPoint_h
25
26#include "AbsMeasurement.h"
27#include "AbsFitterInfo.h"
28#include "ThinScatterer.h"
29
30#include <TObject.h>
31
32#include <map>
33#include <vector>
34#include <memory>
35
36#ifndef __CINT__
37#include <boost/scoped_ptr.hpp>
38#endif
39
40
41namespace genfit {
42
43class Track;
44class KalmanFitterInfo;
45
50class TrackPoint : public TObject {
51
52 public:
53
54 TrackPoint();
55 TrackPoint(Track* track);
56
63 TrackPoint(const std::vector< genfit::AbsMeasurement* >& rawMeasurements, Track* track);
64
71 TrackPoint(genfit::AbsMeasurement* rawMeasurement, Track* track);
72
73 TrackPoint(const TrackPoint&); // copy constructor
74 TrackPoint& operator=(TrackPoint); // assignment operator
75 void swap(TrackPoint& other);
76
82 const std::map<const genfit::AbsTrackRep*, genfit::AbsTrackRep*>& map,
83 const std::vector<const genfit::AbsTrackRep*> * repsToIgnore = NULL);
84
85 virtual ~TrackPoint();
86
87
88 double getSortingParameter() const {return sortingParameter_;}
89
90 Track* getTrack() const {return track_;}
91 void setTrack(Track* track) {track_ = track;}
92
93 const std::vector< genfit::AbsMeasurement* >& getRawMeasurements() const {return rawMeasurements_;}
94 AbsMeasurement* getRawMeasurement(int i = 0) const;
95 unsigned int getNumRawMeasurements() const {return rawMeasurements_.size();}
96 bool hasRawMeasurements() const {return (rawMeasurements_.size() != 0);}
98 std::vector< genfit::AbsFitterInfo* > getFitterInfos() const;
100 AbsFitterInfo* getFitterInfo(const AbsTrackRep* rep = NULL) const;
102 KalmanFitterInfo* getKalmanFitterInfo(const AbsTrackRep* rep = NULL) const;
103 bool hasFitterInfo(const AbsTrackRep* rep) const {
104 return (fitterInfos_.find(rep) != fitterInfos_.end());
105 }
106
108 bool hasThinScatterer() {return thinScatterer_.get() != NULL;}
109
110
111 void setSortingParameter(double sortingParameter) {sortingParameter_ = sortingParameter;}
113 void addRawMeasurement(genfit::AbsMeasurement* rawMeasurement) {assert(rawMeasurement!=NULL); rawMeasurement->setTrackPoint(this); rawMeasurements_.push_back(rawMeasurement);}
116 void setFitterInfo(genfit::AbsFitterInfo* fitterInfo);
117 void deleteFitterInfo(const AbsTrackRep* rep) {delete fitterInfos_[rep]; fitterInfos_.erase(rep);}
118
119 void setScatterer(ThinScatterer* scatterer) {thinScatterer_.reset(scatterer);}
120
121 void Print(const Option_t* = "") const;
122
130 void fixupRepsForReading();
131
132 private:
134
137
139 std::vector<AbsMeasurement*> rawMeasurements_; // Ownership
140
141 std::map< const AbsTrackRep*, AbsFitterInfo* > fitterInfos_;
142
149 std::vector< AbsFitterInfo* > vFitterInfos_;
150
151#ifndef __CINT__
152 boost::scoped_ptr<ThinScatterer> thinScatterer_; // Ownership
153#else
155#endif
156
157 public:
158
159 ClassDef(TrackPoint,1)
160
161};
162
163} /* End of namespace genfit */
166#endif // genfit_TrackPoint_h
This class collects all information needed and produced by a specific AbsFitter and is specific to on...
Contains the measurement and covariance in raw detector coordinates.
void setTrackPoint(TrackPoint *tp)
Abstract base class for a track representation.
Definition AbsTrackRep.h:66
Collects information needed and produced by a AbsKalmanFitter implementations and is specific to one ...
Thin or thick scatterer.
Object containing AbsMeasurement and AbsFitterInfo objects.
Definition TrackPoint.h:50
bool hasFitterInfo(const AbsTrackRep *rep) const
Definition TrackPoint.h:103
KalmanFitterInfo * getKalmanFitterInfo(const AbsTrackRep *rep=NULL) const
Helper to avoid casting.
void deleteFitterInfo(const AbsTrackRep *rep)
Definition TrackPoint.h:117
std::vector< AbsFitterInfo * > vFitterInfos_
Ownership over FitterInfos.
Definition TrackPoint.h:149
virtual ~TrackPoint()
void deleteRawMeasurements()
TrackPoint & operator=(TrackPoint)
AbsFitterInfo * getFitterInfo(const AbsTrackRep *rep=NULL) const
Get fitterInfo for rep. Per default, use cardinal rep.
void setScatterer(ThinScatterer *scatterer)
Definition TrackPoint.h:119
std::map< const AbsTrackRep *, AbsFitterInfo * > fitterInfos_
Definition TrackPoint.h:141
bool hasRawMeasurements() const
Definition TrackPoint.h:96
const std::vector< genfit::AbsMeasurement * > & getRawMeasurements() const
Definition TrackPoint.h:93
std::vector< genfit::AbsFitterInfo * > getFitterInfos() const
Get list of all fitterInfos.
TrackPoint(const TrackPoint &rhs, const std::map< const genfit::AbsTrackRep *, genfit::AbsTrackRep * > &map, const std::vector< const genfit::AbsTrackRep * > *repsToIgnore=NULL)
void addRawMeasurement(genfit::AbsMeasurement *rawMeasurement)
Takes ownership and sets this as measurement's trackPoint.
Definition TrackPoint.h:113
void swap(TrackPoint &other)
void setTrack(Track *track)
Definition TrackPoint.h:91
void setSortingParameter(double sortingParameter)
Definition TrackPoint.h:111
Track * getTrack() const
Definition TrackPoint.h:90
void setFitterInfo(genfit::AbsFitterInfo *fitterInfo)
Takes Ownership.
unsigned int getNumRawMeasurements() const
Definition TrackPoint.h:95
AbsMeasurement * getRawMeasurement(int i=0) const
Track * track_
Pointer to Track where TrackPoint belongs to.
Definition TrackPoint.h:136
double getSortingParameter() const
Definition TrackPoint.h:88
void Print(const Option_t *="") const
ThinScatterer * getMaterialInfo()
Definition TrackPoint.h:107
std::vector< AbsMeasurement * > rawMeasurements_
No ownership.
Definition TrackPoint.h:139
boost::scoped_ptr< ThinScatterer > thinScatterer_
Definition TrackPoint.h:152
Collection of TrackPoint objects, AbsTrackRep objects and FitStatus objects.
Definition Track.h:71
Matrix inversion tools.
Definition AbsBField.h:29