A concrete implementation of TrackingRegion. Apart of vertex constraint from TrackingRegion in this implementation the region of interest is further constrainted in phi and eta around the direction of the region
Definition at line 23 of file CosmicTrackingRegion.h.
constructor (symmetric eta and phi margins).
dir - the direction around which region is constructed
the initial direction of the momentum of the particle should be in the range
phi of dir +- deltaPhi
eta of dir +- deltaEta
vertexPos - the position of the vertex (origin) of the of the region.
It is a centre of cylinder constraind with rVertex, zVertex. The track of the particle should cross the cylinder
WARNING: in the current implementaion the vertexPos is supposed to be placed on the beam line, i.e. to be of the form (0,0,float)
ptMin - minimal pt of interest
rVertex - radius of the cylinder around beam line where the tracks of interest should point to.
zVertex - half height of the cylinder around the beam line where the tracks of interest should point to.
deltaEta - allowed deviation of the initial direction of particle in eta in respect to direction of the region
deltaPhi - allowed deviation of the initial direction of particle in phi in respect to direction of the region
Definition at line 51 of file CosmicTrackingRegion.h.
const MagneticField * theMagneticField_
PixelRecoRange< float > Range
float ptMin() const
minimal pt of interest
const MeasurementTrackerEvent * theMeasurementTracker_
TrackingRegion TrackingRegionBase
Definition at line 56 of file CosmicTrackingRegion.cc.
References alongMomentum, AnalyticalPropagator_cfi::AnalyticalPropagator, cms::cuda::assert(), Plane::build(), utilities::cache(), GeometricSearchDet::compatibleDets(), funct::cos(), DeadROC_duringRun::dir, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalPosition(), trackerHitRTTI::isUndef(), TrajectoryStateOnSurface::isValid(), LogDebug, LayerMeasurements::measurements(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), makeMuonMisalignmentScenario::rot, funct::sin(), and GeometricSearchDet::surface().
62 LogDebug(
"CosmicTrackingRegion") <<
"Looking at hits on subdet/layer " <<
layer.name();
68 LogDebug(
"CosmicTrackingRegion") <<
"The initial region characteristics are:"
70 <<
" Origin = " <<
origin() <<
"\n"
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();
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.
GlobalPoint const & origin() const
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
GlobalPoint globalPosition() const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
constexpr std::array< uint8_t, layerIndexSize > layer
GlobalVector const & direction() const
the direction around which region is constructed
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
const MagneticField * theMagneticField_
static PlanePointer build(Args &&...args)
Cos< T >::type cos(const T &t)
bool isUndef(TrackingRecHit const &hit)
const MeasurementTrackerEvent * theMeasurementTracker_
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
tuple AnalyticalPropagator