|
|
Go to the documentation of this file.
28 std::unique_ptr<TrajectoryFilter>
filter,
29 std::unique_ptr<TrajectoryFilter> inOutFilter)
30 : theSeedAs5DHit(conf.getParameter<
bool>(
"seedAs5DHit")),
32 theInOutFilter(
std::
move(inOutFilter)),
33 theUpdatorName(conf.getParameter<
std::
string>(
"updator")),
34 thePropagatorAlongName(conf.getParameter<
std::
string>(
"propagatorAlong")),
35 thePropagatorOppositeName(conf.getParameter<
std::
string>(
"propagatorOpposite")),
36 theEstimatorName(conf.getParameter<
std::
string>(
"estimator")),
37 theRecHitBuilderName(conf.getParameter<
std::
string>(
"TTRHBuilder")) {
38 if (conf.
exists(
"clustersToSkip"))
40 <<
"ERROR: " <<
typeid(*this).name() <<
" has a clustersToSkip parameter set";
59 TSOS invalidState(gdet->surface());
61 result.emplace(invalidState, outerState,
recHit, 0, hitLayer);
65 for (
auto ihit =
seed.recHits().begin(); ihit !=
seed.recHits().end(); ihit++) {
72 if (ihit ==
seed.recHits().end() - 1) {
74 if (&gdet->surface() != &hitGeomDet->
surface()) {
76 <<
"CkfTrajectoryBuilder error: the seed state is not on the surface of the detector of the last seed hit";
81 result.emplace(invalidState, outerState,
recHit, 0, hitLayer);
92 result.emplace(invalidState, innerUpdated,
recHit, 0, hitLayer);
114 LogTrace(
"BaseCkfTrajectoryBuilder_InfiniteLoop")
115 <<
"Cropping Track After 400 Measurements:\n"
118 <<
" Found hits: " << traj.
foundHits() <<
", lost hits: " << traj.
lostHits() <<
"\n\n";
154 LogDebug(
"CkfPattern") << inOut <<
"=inOut option. pushing a Trajectory with: " << traj.
foundHits() <<
" found hits. "
171 LogDebug(
"CkfPattern") << inOut <<
"=inOut option. pushing a TempTrajectory with: " << traj.
foundHits()
172 <<
" found hits. " << traj.
lostHits()
183 while (!traj.empty() && !traj.lastMeasurement().recHitR().isValid())
185 LogDebug(
"CkfPattern") << inOut <<
"=inOut option. pushing a TempTrajectory with: " << traj.foundHits()
186 <<
" found hits. " << traj.lostHits();
198 const Surface* surface = &
g->surface();
218 std::cerr <<
"ERROR SetEvent called on " <<
typeid(*this).name()
219 << (
theMeasurementTracker ?
" with valid " :
"witout any ") <<
"MeasurementTrackerEvent" << std::endl;
223 std::cerr <<
"ERROR unSet called on " <<
typeid(*this).name()
224 << (
theMeasurementTracker ?
" with valid " :
"witout any ") <<
"MeasurementTrackerEvent" << std::endl;
void addToResult(std::shared_ptr< const TrajectorySeed > const &seed, TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
const TrackerGeomDet * idToDet(DetId) const override
T const * product() const
PropagationDirection direction() const
const Propagator * thePropagatorAlong
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
std::unique_ptr< TrajectoryFilter > theFilter
void setEvent(const edm::Event &event) const override
std::vector< Trajectory > TrajectoryContainer
const Chi2MeasurementEstimatorBase * theEstimator
StateAndLayers findStateAndLayers(const TrajectorySeed &seed, const TempTrajectory &traj) const
const TrackerGeometry * geomTracker() const
~BaseCkfTrajectoryBuilder() override
TrajectoryStateOnSurface const & updatedState() const
virtual const MagneticField * magneticField() const =0
std::shared_ptr< TrackingRecHit const > RecHitPointer
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
void setData(const MeasurementTrackerEvent *data)
const TransientTrackingRecHitBuilder * theTTRHBuilder
std::unique_ptr< TrajectoryFilter > theInOutFilter
const Plane & surface() const
The nominal surface of the GeomDet.
BaseCkfTrajectoryBuilder(const edm::ParameterSet &conf, std::unique_ptr< TrajectoryFilter > filter, std::unique_ptr< TrajectoryFilter > inOutFilter=nullptr)
bool toBeContinued(TempTrajectory &traj, bool inOut=false) const
unsigned int detId() const
TrajectoryStateOnSurface const & predictedState() const
std::vector< const DetLayer * > nextLayers(const DetLayer &detLayer, Args &&... args) const
FreeTrajectoryState const * freeState(bool withErrors=true) const
static std::unique_ptr< TrajectoryFilter > createTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
const TrajectoryStateUpdator * theUpdator
void setSharedSeed(const std::shared_ptr< const TrajectorySeed > &seed)
const TrajectoryMeasurement & lastMeasurement() const
const DetLayer * detLayer(const DetId &id) const
obsolete method. Use idToLayer() instead.
const DataContainer & measurements() const
const Propagator * backwardPropagator(const TrajectorySeed &seed) const
const std::string thePropagatorAlongName
const MeasurementTrackerEvent * theMeasurementTracker
void moveToResult(TempTrajectory &&traj, TempTrajectoryContainer &result, bool inOut=false) const
const std::string theUpdatorName
std::pair< TSOS, std::vector< const DetLayer * > > StateAndLayers
std::vector< TempTrajectory > TempTrajectoryContainer
bool exists(std::string const ¶meterName) const
checks if a parameter exists
static std::string dumpCandidate(const Candidate &candidate, bool showErrors=false)
const std::string theRecHitBuilderName
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
void seedMeasurements(const TrajectorySeed &seed, TempTrajectory &result, bool as5D) const
const Propagator * thePropagatorOpposite
Trajectory toTrajectory() const
Convert to a standard Trajectory.
const GeometricSearchTracker * geometricSearchTracker() const
virtual void setEvent_(const edm::Event &iEvent, const edm::EventSetup &iSetup)=0
TrajectoryMeasurement const & lastMeasurement() const
const NavigationSchool * theNavigationSchool
const Propagator * forwardPropagator(const TrajectorySeed &seed) const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Log< level::Error, false > LogError
DataContainer const & measurements() const
ConstRecHitPointer const & recHit() const
void unset() const override
const std::string thePropagatorOppositeName
const DetLayer * lastLayer() const
Redundant method, returns the layer of lastMeasurement() .
char data[epos_bytes_allocation]
const std::string theEstimatorName
TempTrajectory createStartingTrajectory(const TrajectorySeed &seed) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
bool empty() const
True if trajectory has no measurements.
bool empty() const
True if trajectory has no measurements.