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);
79 reordered.reserve(original.size());
81 Trajectory::DataContainer::const_reverse_iterator itM;
82 for (itM = original.rbegin(); itM != original.rend(); ++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_
MaterialEffects materialEffects(void) const
virtual const Trajectory::DataContainer orderedTrajectoryMeasurements(const Trajectory &trajectory) const
AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair
const bool useWithoutDet_
bool useRecHit(const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const
PropagationDirection const & direction() const
DataContainer const & measurements() const
const bool useProjectedHits_
std::vector< TrajectoryMeasurement > DataContainer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
bool sameSurface(const Surface &s1, const Surface &s2) const
const bool allowZeroMaterial_
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
Log< level::Info, false > LogInfo
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
TrajectoryFactoryBase(const edm::ParameterSet &config, const edm::ConsumesCollector &iC)
T getParameter(std::string const &) const
const PropagationDirection propDir_
const edm::ParameterSet cfg_
tuple config
parse the configuration file
PropagationDirection propagationDirection(void) const
virtual ~TrajectoryFactoryBase(void)
const PositionType & position() const
bool isProjected(TrackingRecHit const &hit)