53 theMass(config.getParameter<double>(
"ParticleMass")),
57 edm::LogInfo(
"Alignment") <<
"@SUB=ReferenceTrajectoryFactory" 59 <<
"\nusing Bzero if |B| = 0: " 90 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin();
92 while ( itTracks != tracks.end() )
97 if ( input.first.isValid() )
125 if ( tracks.size() != external.size() )
127 edm::LogInfo(
"ReferenceTrajectories") <<
"@SUB=ReferenceTrajectoryFactory::trajectories" 128 <<
"Inconsistent input:\n" 129 <<
"\tnumber of tracks = " << tracks.size()
130 <<
"\tnumber of external predictions = " << external.size();
140 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin();
141 ExternalPredictionCollection::const_iterator itExternal = external.begin();
143 while ( itTracks != tracks.end() )
147 if ( input.first.isValid() )
149 if ( (*itExternal).isValid() &&
sameSurface( (*itExternal).surface(), input.first.surface() ) )
161 AlgebraicSymMatrix externalParamErrors( asHepMatrix<5>( (*itExternal).localError().matrix() ) );
162 refTraj->setParameterErrors( externalParamErrors );
163 trajectories.push_back( refTraj );
189 edm::LogInfo(
"Alignment") <<
"@SUB=ReferenceTrajectoryFactory::bzeroFactory" 190 <<
"Using BzeroReferenceTrajectoryFactory for some (all?) events.";
T getParameter(std::string const &) const
~ReferenceTrajectoryFactory() override
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the reference trajectories.
MaterialEffects materialEffects(void) const
ReferenceTrajectoryFactory * clone() const override
bool theUseBzeroIfFieldOff
def setup(process, global_tag, zero_tesla=False)
static std::string const input
bool sameSurface(const Surface &s1, const Surface &s2) const
void addParameter(std::string const &name, T const &value)
const bool allowZeroMaterial_
BzeroReferenceTrajectoryFactory
BzeroReferenceTrajectoryFactory.
const edm::ParameterSet & configuration() const
void eraseSimpleParameter(std::string const &name)
void copyForModify(ParameterSet const &other)
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const =0
const TrajectoryFactoryBase * bzeroFactory() const
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
const TrajectoryFactoryBase * theBzeroFactory
ReferenceTrajectoryFactory(const edm::ParameterSet &config)
PropagationDirection propagationDirection(void) const
CLHEP::HepSymMatrix AlgebraicSymMatrix
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
T const * product() const