19 template <
class T>
T sqr(
T t) {
return t*
t;}
23 using namespace ctfseeding;
32 hits_(ev, es, *layer, tmp);
33 result.reserve(tmp.size());
34 for (
auto h : tmp) result.emplace_back(*
h);
43 hits_(ev, es, layer, result);
59 const DetLayer * detLayer = layer.detLayer();
60 LogDebug(
"CosmicTrackingRegion") <<
"Looking at hits on subdet/layer " << layer.name();
71 LogDebug(
"CosmicTrackingRegion") <<
"The initial region characteristics are:" <<
"\n"
72 <<
" Origin = " << origin() <<
"\n"
73 <<
" Direction = " << direction() <<
"\n"
74 <<
" Eta = " << origin().eta() <<
"\n"
75 <<
" Phi = " << origin().phi();
87 <<
"The state used to find measurement with the measurement tracker is:\n" << tsos;
101 LogDebug(
"CosmicTrackingRegion") <<
"The initial state propagates to the layer surface: \n" << stateOnLayer
108 LogDebug(
"CosmicTrackingRegion") <<
"The initial state does not propagate to the layer surface.";
113 vector<DetWithState> compatDets = detLayer->
compatibleDets(tsos, prop, est);
114 LogDebug(
"CosmicTrackingRegion") <<
"Compatible dets = " << compatDets.size();
121 LayerMeasurements lm(theMeasurementTracker_->measurementTracker(), *theMeasurementTracker_);
122 vector<TrajectoryMeasurement> meas = lm.
measurements(*detLayer, tsos, prop, est);
123 LogDebug(
"CosmicTrackingRegion") <<
"Number of Trajectory measurements = " << meas.size()
124 <<
" but the last one is always an invalid hit, by construction.";
131 for (
auto const & im : meas) {
132 if(!im.recHit()->isValid())
continue;
135 cache.emplace_back(ptrHit);
136 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
ctfseeding::SeedingLayer::Hits ctfHits
GlobalPoint globalPosition() const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
FreeTrajectoryState const * freeState(bool withErrors=true) const
Cos< T >::type cos(const T &t)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
virtual TrackingRegion::ctfHits hits(const edm::Event &ev, const edm::EventSetup &es, const ctfseeding::SeedingLayer *layer) const
void hits_(const edm::Event &ev, const edm::EventSetup &es, const T &layer, TrackingRegion::Hits &result) const
SeedingLayerSetsHits::Hits Hits
T const * product() const
Geom::Phi< T > phi() const
std::vector< std::vector< double > > tmp
Square< F >::type sqr(const F &f)
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
bool isUndef(TrackingRecHit const &hit)
tuple AnalyticalPropagator