39 _resolutionX2(_resolutionX*_resolutionX),
41 _resolutionY2(_resolutionY*_resolutionY)
44 if (config.
exists(
"resolutionX"))
46 _resolutionX = config.
getParameter<
double>(
"resolutionX");
49 if (config.
exists(
"resolutionY"))
51 _resolutionY = config.
getParameter<
double>(
"resolutionY");
58 for (
const std::pair<unsigned int,const PSimHit*>& simHitIdPair: product->getSimHitIdPairs())
66 const double boundY = bounds.
length();
70 unsigned int retry = 0;
90 while (not bounds.
inside(recHitPosition));
98 _resolutionY<0.0 ? boundY*boundY*INV12 : _resolutionY2
107 product->addRecHit(recHit,{simHitIdPair});
116 "TrackingRecHitStripGSPlugin"
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.
virtual TrackingRecHitProductPtr process(TrackingRecHitProductPtr product) const
Local3DPoint localPosition() const
const RandomEngineAndDistribution & getRandomEngine() const
std::shared_ptr< TrackingRecHitProduct > TrackingRecHitProductPtr
Point3DBase< float, LocalTag > Local3DPoint
double gaussShoot(double mean=0.0, double sigma=1.0) const
#define DEFINE_EDM_PLUGIN(factory, type, name)