|
|
Go to the documentation of this file.
56 edm::LogInfo(
"Alignment") <<
"@SUB=DualTrajectoryFactory"
69 edm::LogWarning(
"Alignment") <<
"@SUB=DualTrajectoryFactory::trajectories"
71 <<
": You should probably use the DualBzeroTrajectoryFactory\n"
72 <<
"or fix this code to switch automatically as the ReferenceTrajectoryFactory does.";
75 ConstTrajTrackPairCollection::const_iterator itTracks =
tracks.begin();
77 while (itTracks !=
tracks.end()) {
80 if (
input.refTsos.isValid()) {
105 <<
"@SUB=DualTrajectoryFactory::trajectories"
106 <<
"Inconsistent input:\n"
107 <<
"\tnumber of tracks = " <<
tracks.size() <<
"\tnumber of external predictions = " <<
external.size();
114 edm::LogWarning(
"Alignment") <<
"@SUB=DualTrajectoryFactory::trajectories"
116 <<
": You should probably use the DualBzeroTrajectoryFactory\n"
117 <<
"or fix this code to switch automatically as the ReferenceTrajectoryFactory does.";
120 ConstTrajTrackPairCollection::const_iterator itTracks =
tracks.begin();
121 ExternalPredictionCollection::const_iterator itExternal =
external.begin();
123 while (itTracks !=
tracks.end()) {
126 if (
input.refTsos.isValid()) {
127 if ((*itExternal).isValid()) {
142 ptr->setParameterErrors(externalParamErrors);
169 Trajectory::DataContainer::iterator itM;
171 for (itM = allTrajMeas.begin(); itM != allTrajMeas.end(); itM++) {
173 usedTrajMeas.push_back(*itM);
176 unsigned int iMeas = 0;
177 unsigned int nMeas = usedTrajMeas.size();
178 unsigned int nRefStateMeas = nMeas / 2;
180 for (itM = usedTrajMeas.begin(); itM != usedTrajMeas.end(); itM++, iMeas++) {
183 if (iMeas < nRefStateMeas) {
184 input.bwdRecHits.push_back(aRecHit);
185 }
else if (iMeas > nRefStateMeas) {
186 input.fwdRecHits.push_back(aRecHit);
188 if ((*itM).updatedState().isValid()) {
189 input.refTsos = (*itM).updatedState();
190 input.bwdRecHits.push_back(aRecHit);
191 input.fwdRecHits.push_back(aRecHit);
195 input.bwdRecHits.push_back(aRecHit);
210 const std::pair<TrajectoryStateOnSurface, double> tsosWithPath =
propagator.propagateWithPath(
external, surface);
211 return tsosWithPath.first;
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
DualTrajectoryFactory(const edm::ParameterSet &config)
static const std::string input
DualTrajectoryFactory * clone() const override
const AlgebraicSymMatrix55 & matrix() const
std::vector< TrajectoryMeasurement > DataContainer
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
PropagationDirection propagationDirection(void) const
Global3DPoint GlobalPoint
#define DEFINE_EDM_PLUGIN(factory, type, name)
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the reference trajectories.
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
std::vector< ConstRecHitPointer > ConstRecHitContainer
~DualTrajectoryFactory() override
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
CLHEP::HepSymMatrix AlgebraicSymMatrix
MaterialEffects materialEffects(void) const
const DualTrajectoryInput referenceStateAndRecHits(const ConstTrajTrackPair &track) const
const bool allowZeroMaterial_
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
A factory that produces instances of class ReferenceTrajectory from a given TrajTrackPairCollection.
const TrajectoryStateOnSurface propagateExternal(const TrajectoryStateOnSurface &external, const Surface &surface, const MagneticField *magField) const
const LocalTrajectoryError & localError() const
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection