seed trackparameters, number of tracks found:m_track.size(), list of spacepoints
99{
100 const EventContext& ctx = Gaudi::Hive::currentContext();
103 std::vector<const Trk::PrepRawData*> prdsInSp;
104 for (const Trk::SpacePoint* s: Sp) {
105 const std::pair<const Trk::PrepRawData*, const Trk::PrepRawData*>& prds =
s->clusterList();
106 if (prds.first) prdsInSp.push_back(prds.first);
107 if (prds.second && prds.first != prds.second) prdsInSp.push_back(prds.second);
108 }
109 Trk::PerigeeSurface persurf;
111 std::unique_ptr<Trk::TrackParameters> prevpar(
Tp->uniqueClone());
112 if (per) {
113 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
115 const Trk::TrackStateOnSurface* pertsos = new Trk::TrackStateOnSurface(nullptr, std::move(per), nullptr, typePattern);
116 auto traj = std::make_unique<Trk::TrackStates>();
117 traj->push_back(pertsos);
118 for (const Trk::PrepRawData* prd: prdsInSp) {
119 const Trk::Surface& surf = prd->detectorElement()->surface(prd->identify());
121 if (thispar) {
122 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
124 std::unique_ptr<Trk::RIO_OnTrack> rot(
m_rotcreator->correct(*prd, *thispar, ctx));
125 if (rot) {
126 const Trk::TrackStateOnSurface* tsos = new Trk::TrackStateOnSurface(std::move(rot), thispar->uniqueClone(), nullptr, typePattern);
127 traj->push_back(tsos);
128 prevpar = std::move(thispar);
129 }
130 }
131 }
132
133 if (mtrk>0) {
135 } else {
137 }
138 Trk::Track*
t =
new Trk::Track(
data.trackInfo(), std::move(traj),
nullptr);
139 if (t)
data.seedSegmentsCollection()->push_back(t);
140 }
141}
@ xKalman
tracks produced by xKalman
@ Unknown
Track fitter not defined.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.