13 unsigned int tracksPerTrajectory,
16 tracksPerTrajectory_(tracksPerTrajectory),
17 materialEffects_(materialEffects(
config.getParameter<
std::
string>(
"MaterialEffects"))),
18 propDir_(propagationDirection(
config.getParameter<
std::
string>(
"PropagationDirection"))),
19 useWithoutDet_(
config.getParameter<
bool>(
"UseHitWithoutDet")),
20 useInvalidHits_(
config.getParameter<
bool>(
"UseInvalidHits")),
21 useProjectedHits_(
config.getParameter<
bool>(
"UseProjectedHits")),
22 useBeamSpot_(
config.getParameter<
bool>(
"UseBeamSpot")),
23 includeAPEs_(
config.getParameter<
bool>(
"IncludeAPEs")),
24 allowZeroMaterial_(
config.getParameter<
bool>(
"AllowZeroMaterial")) {
25 edm::LogInfo(
"Alignment") <<
"@SUB=TrajectoryFactoryBase" 27 <<
"' with following settings:" 46 Trajectory::DataContainer::iterator itM = trajectoryMeasurements.begin();
49 while (itM != trajectoryMeasurements.end()) {
50 if ((*itM).updatedState().isValid() &&
useRecHit((*itM).recHit()))
54 if (itM != trajectoryMeasurements.end())
55 result.first = (*itM).updatedState();
58 while (itM != trajectoryMeasurements.end()) {
61 result.second.push_back(aRecHit);
81 Trajectory::DataContainer::const_reverse_iterator itM;
83 reordered.push_back(*itM);
98 const GeomDet* det = hitPtr->det();
114 if (strME ==
"MultipleScattering")
116 if (strME ==
"EnergyLoss")
118 if (strME ==
"Combined")
122 if (strME ==
"BreakPoints")
124 if (strME ==
"BrokenLines")
126 if (strME ==
"BrokenLinesCoarse")
128 if (strME ==
"BrokenLinesFine")
130 if (strME ==
"LocalGBL")
132 if (strME ==
"CurvlinGBL")
135 throw cms::Exception(
"BadConfig") <<
"[TrajectoryFactoryBase::materialEffects] Unknown parameter: " << strME;
139 if (strPD ==
"oppositeToMomentum")
141 if (strPD ==
"alongMomentum")
143 if (strPD ==
"anyDirection")
146 throw cms::Exception(
"BadConfig") <<
"[TrajectoryFactoryBase::propagationDirection] Unknown parameter: " << strPD;
const bool useInvalidHits_
T getParameter(std::string const &) const
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
bool sameSurface(const Surface &s1, const Surface &s2) const
const bool useWithoutDet_
MaterialEffects materialEffects(void) const
DataContainer const & measurements() const
const bool useProjectedHits_
std::vector< TrajectoryMeasurement > DataContainer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
PropagationDirection const & direction() const
const bool allowZeroMaterial_
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
Log< level::Info, false > LogInfo
TrajectoryFactoryBase(const edm::ParameterSet &config, const edm::ConsumesCollector &iC)
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
const PositionType & position() const
const PropagationDirection propDir_
const edm::ParameterSet cfg_
PropagationDirection propagationDirection(void) const
virtual ~TrajectoryFactoryBase(void)
bool isProjected(TrackingRecHit const &hit)