90 : m_src(iConfig.getParameter<
edm::
InputTag>(
"src")) {
91 produces<std::vector<Trajectory>>();
92 produces<TrajTrackAssociationCollection>();
121 auto trajectoryCollection = std::make_unique<std::vector<Trajectory>>();
134 std::vector<TrajectoryMeasurement::ConstRecHitPointer> transHits;
135 std::vector<TrajectoryStateOnSurface> TSOSes;
137 for (
auto const&
hit :
track->recHits()) {
154 transHits.push_back(hitPtr);
160 assert(clonedHits.
size() == transHits.size());
161 assert(transHits.size() == TSOSes.size());
164 if (!clonedHits.
empty()) {
171 std::vector<TrajectoryMeasurement::ConstRecHitPointer>::const_iterator transHitPtr = transHits.begin();
172 std::vector<TrajectoryStateOnSurface>::const_iterator
TSOS = TSOSes.begin();
173 for (; clonedHit != clonedHits.
end(); ++clonedHit, ++transHitPtr, ++
TSOS) {
177 trajectoryCollection->push_back(trajectory);
181 reference_map[trajCounter] = trackCounter;
186 unsigned int numTrajectories = trajectoryCollection->size();
192 auto trajTrackMap = std::make_unique<TrajTrackAssociationCollection>();
194 for (trajCounter = 0; trajCounter < numTrajectories; trajCounter++) {
197 trajTrackMap->insert(
edm::Ref<std::vector<Trajectory>>(ohTrajs, trajCounter),