70 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin();
72 while (itTracks != tracks.end()) {
82 trajectories.push_back(ptr);
98 if (tracks.size() != external.size()) {
100 <<
"@SUB=DualBzeroTrajectoryFactory::trajectories" 101 <<
"Inconsistent input:\n" 102 <<
"\tnumber of tracks = " << tracks.size() <<
"\tnumber of external predictions = " << external.size();
109 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin();
110 ExternalPredictionCollection::const_iterator itExternal = external.begin();
112 while (itTracks != tracks.end()) {
116 if ((*itExternal).isValid()) {
131 ptr->setParameterErrors(externalParamErrors.sub(2, 5));
132 trajectories.push_back(ptr);
141 trajectories.push_back(ptr);
159 Trajectory::DataContainer::iterator itM;
161 for (itM = allTrajMeas.begin(); itM != allTrajMeas.end(); itM++) {
163 usedTrajMeas.push_back(*itM);
166 unsigned int iMeas = 0;
167 unsigned int nMeas = usedTrajMeas.size();
168 unsigned int nRefStateMeas = nMeas / 2;
170 for (itM = usedTrajMeas.begin(); itM != usedTrajMeas.end(); itM++, iMeas++) {
173 if (iMeas < nRefStateMeas) {
175 }
else if (iMeas > nRefStateMeas) {
178 if ((*itM).updatedState().isValid()) {
179 input.
refTsos = (*itM).updatedState();
200 const std::pair<TrajectoryStateOnSurface, double> tsosWithPath = propagator.
propagateWithPath(external, surface);
201 return tsosWithPath.first;
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override
propagation to plane with path length
T getParameter(std::string const &) const
const TrajectoryStateOnSurface propagateExternal(const TrajectoryStateOnSurface &external, const Surface &surface, const MagneticField *magField) const
MaterialEffects materialEffects(void) const
const DualBzeroTrajectoryInput referenceStateAndRecHits(const ConstTrajTrackPair &track) const
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the reference trajectories.
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
double theMomentumEstimate
~DualBzeroTrajectoryFactory() override
static std::string const input
const SurfaceType & surface() const
std::vector< TrajectoryMeasurement > DataContainer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const bool allowZeroMaterial_
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
std::vector< ConstRecHitPointer > ConstRecHitContainer
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
DualBzeroTrajectoryFactory * clone() const override
PropagationDirection propagationDirection(void) const
CLHEP::HepSymMatrix AlgebraicSymMatrix
A factory that produces instances of class ReferenceTrajectory from a given TrajTrackPairCollection.
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
#define DEFINE_EDM_PLUGIN(factory, type, name)
T const * product() const
DualBzeroTrajectoryFactory(const edm::ParameterSet &config)
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection