35 _resolutionX2(_resolutionX * _resolutionX),
37 _resolutionY2(_resolutionY * _resolutionY)
40 if (config.
exists(
"resolutionX")) {
41 _resolutionX = config.
getParameter<
double>(
"resolutionX");
44 if (config.
exists(
"resolutionY")) {
45 _resolutionY = config.
getParameter<
double>(
"resolutionY");
51 for (
const std::pair<unsigned int, const PSimHit*>& simHitIdPair : product->getSimHitIdPairs()) {
58 const double boundY = bounds.
length();
62 unsigned int retry = 0;
77 }
while (not bounds.
inside(recHitPosition));
85 _resolutionY < 0.0 ? boundY * boundY * INV12 : _resolutionY2);
88 product->addRecHit(recHit, {simHitIdPair});
T getParameter(std::string const &) const
virtual float length() const =0
TrackingRecHitStripGSPlugin(const std::string &name, const edm::ParameterSet &config, edm::ConsumesCollector &consumesCollector)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
const TrackerGeometry & getTrackerGeometry() const
const Bounds & bounds() const
const Plane & surface() const
The nominal surface of the GeomDet.
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Local3DPoint localPosition() const
const RandomEngineAndDistribution & getRandomEngine() const
std::shared_ptr< TrackingRecHitProduct > TrackingRecHitProductPtr
TrackingRecHitProductPtr process(TrackingRecHitProductPtr product) const override
double gaussShoot(double mean=0.0, double sigma=1.0) const
#define DEFINE_EDM_PLUGIN(factory, type, name)
Point3DBase< float, LocalTag > Local3DPoint