|
|
Go to the documentation of this file.
52 theMass(
config.getParameter<double>(
"ParticleMass")),
53 theUseBzeroIfFieldOff(
config.getParameter<
bool>(
"UseBzeroIfFieldOff")),
54 theBzeroFactory(nullptr) {
55 edm::LogInfo(
"Alignment") <<
"@SUB=ReferenceTrajectoryFactory"
62 theMass(
other.theMass),
63 theUseBzeroIfFieldOff(
other.theUseBzeroIfFieldOff),
64 theBzeroFactory(nullptr)
79 ConstTrajTrackPairCollection::const_iterator itTracks =
tracks.begin();
81 while (itTracks !=
tracks.end()) {
85 if (
input.first.isValid()) {
91 config.hitsAreReverse =
false;
111 <<
"@SUB=ReferenceTrajectoryFactory::trajectories"
112 <<
"Inconsistent input:\n"
113 <<
"\tnumber of tracks = " <<
tracks.size() <<
"\tnumber of external predictions = " <<
external.size();
123 ConstTrajTrackPairCollection::const_iterator itTracks =
tracks.begin();
124 ExternalPredictionCollection::const_iterator itExternal =
external.begin();
126 while (itTracks !=
tracks.end()) {
129 if (
input.first.isValid()) {
130 if ((*itExternal).isValid() &&
sameSurface((*itExternal).surface(),
input.first.surface())) {
136 config.hitsAreReverse =
false;
140 AlgebraicSymMatrix externalParamErrors(asHepMatrix<5>((*itExternal).localError().matrix()));
141 refTraj->setParameterErrors(externalParamErrors);
148 config.hitsAreReverse =
false;
164 edm::LogInfo(
"Alignment") <<
"@SUB=ReferenceTrajectoryFactory::bzeroFactory"
165 <<
"Using BzeroReferenceTrajectoryFactory for some (all?) events.";
169 pset.copyForModify(myPset);
171 pset.eraseSimpleParameter(
"TrajectoryFactoryName");
172 pset.addParameter(
"TrajectoryFactoryName",
std::string(
"BzeroReferenceTrajectoryFactory"));
173 pset.addParameter(
"MomentumEstimate", myPset.
getParameter<
double>(
"MomentumEstimateFieldOff"));
ReferenceTrajectoryFactory * clone() const override
static const std::string input
BzeroReferenceTrajectoryFactory
BzeroReferenceTrajectoryFactory.
bool theUseBzeroIfFieldOff
const edm::ParameterSet & configuration() const
bool sameSurface(const Surface &s1, const Surface &s2) const
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
ReferenceTrajectoryFactory(const edm::ParameterSet &config)
PropagationDirection propagationDirection(void) const
#define DEFINE_EDM_PLUGIN(factory, type, name)
const TrajectoryFactoryBase * bzeroFactory() const
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the reference trajectories.
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
CLHEP::HepSymMatrix AlgebraicSymMatrix
MaterialEffects materialEffects(void) const
const bool allowZeroMaterial_
T getParameter(std::string const &) const
virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const =0
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
const TrajectoryFactoryBase * theBzeroFactory
~ReferenceTrajectoryFactory() override
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection