26 const math::XYZPoint regOrigin(origin().
x(), origin().y(), origin().z());
28 assert(mask.size() == tracks.size());
30 for (
auto const&
track : tracks) {
61 const DetLayer* detLayer = layer.detLayer();
62 LogDebug(
"CosmicTrackingRegion") <<
"Looking at hits on subdet/layer " << layer.name();
68 LogDebug(
"CosmicTrackingRegion") <<
"The initial region characteristics are:"
70 <<
" Origin = " << origin() <<
"\n"
71 <<
" Direction = " << direction() <<
"\n"
72 <<
" Eta = " << origin().eta() <<
"\n"
73 <<
" Phi = " << origin().phi();
76 float phi = dir.
phi();
82 LogDebug(
"CosmicTrackingRegion") <<
"The state used to find measurement with the measurement tracker is:\n" << tsos;
95 LogDebug(
"CosmicTrackingRegion") <<
"The initial state propagates to the layer surface: \n"
101 LogDebug(
"CosmicTrackingRegion") <<
"The initial state does not propagate to the layer surface.";
106 vector<DetWithState> compatDets = detLayer->
compatibleDets(tsos, prop, est);
107 LogDebug(
"CosmicTrackingRegion") <<
"Compatible dets = " << compatDets.size();
113 LayerMeasurements lm(theMeasurementTracker_->measurementTracker(), *theMeasurementTracker_);
114 vector<TrajectoryMeasurement> meas = lm.
measurements(*detLayer, tsos, prop, est);
115 LogDebug(
"CosmicTrackingRegion") <<
"Number of Trajectory measurements = " << meas.size()
116 <<
" but the last one is always an invalid hit, by construction.";
123 for (
auto const& im : meas) {
124 if (!im.recHit()->isValid())
128 cache.emplace_back(ptrHit);
129 result.emplace_back(ptrHit);
std::vector< TrajectoryMeasurement > measurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
std::vector< Track > TrackCollection
collection of Tracks
GlobalPoint globalPosition() const
auto const & tracks
cannot be loose
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
constexpr std::array< uint8_t, layerIndexSize > layer
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
static PlanePointer build(Args &&...args)
FreeTrajectoryState const * freeState(bool withErrors=true) const
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
void checkTracks(reco::TrackCollection const &tracks, std::vector< bool > &mask) const override
SeedingLayerSetsHits::Hits Hits
XYZPointD XYZPoint
point in space with cartesian internal representation
void hits_(const T &layer, TrackingRegion::Hits &result) const
bool isUndef(TrackingRecHit const &hit)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
TrackingRegion::Hits hits(const SeedingLayerSetsHits::SeedingLayer &layer) const override
get hits from layer compatible with region constraints
tuple AnalyticalPropagator