87 produces<SiStripApproximateClusterCollection>();
92 auto result = std::make_unique<SiStripApproximateClusterCollection>();
96 auto const&
bs = beamSpotHandle.isValid() ? *beamSpotHandle :
reco::BeamSpot();
97 if (not beamSpotHandle.isValid()) {
99 <<
"didn't find a valid beamspot with label \"" <<
beamSpot_.
encode() <<
"\" -> using (0,0,0)";
107 auto ff =
result->beginDet(detClusters.id());
109 unsigned int detId = detClusters.id();
113 double barycenter_ypos = 0.5 * stripLength;
118 for (
const auto& cluster : detClusters) {
121 barycenter_ypos - (0.5
f * stripLength),
130 bool usable = theFilter->getSizes(
detId, cluster, lp, ldir, hitStrips, hitPredPos);
132 bool isTrivial = (
std::abs(hitPredPos) < 2.f && hitStrips <= 2);
134 if (!usable || isTrivial) {
139 float mipnorm = mip /
std::abs(ldir.
z());
142 cluster.firstStrip(),
161 desc.add<
unsigned int>(
"maxSaturatedStrips", 3);
162 desc.add<
std::string>(
"clusterShapeHitFilterLabel",
"ClusterShapeHitFilter");
164 descriptions.
add(
"SiStripClusters2ApproxClusters",
desc);
constexpr int32_t ceil(float num)
T getParameter(std::string const &) const
Point3DBase< Scalar, LocalTag > LocalPoint
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::string fullPath() const
static constexpr double subclusterWindow_
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
SiStripClusters2ApproxClusters(const edm::ParameterSet &conf)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
edm::ESHandle< SiStripNoises > theNoise_
edm::InputTag inputClusters
Log< level::Error, false > LogError
edm::ESGetToken< ClusterShapeHitFilter, CkfComponentsRecord > csfToken_
virtual float thickness() const =0
static constexpr double subclusterCutSN_
static constexpr double seedCutSN_
Abs< T >::type abs(const T &t)
static constexpr double subclusterCutMIPs_
edm::FileInPath fileInPath_
#define DEFINE_FWK_MODULE(type)
SiStripDetInfo read(std::string filePath)
void produce(edm::Event &, const edm::EventSetup &) override
static constexpr double seedCutMIPs_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
const Plane & surface() const
The nominal surface of the GeomDet.
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
Constants and enumerated types for FED/FEC systems.
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::ESGetToken< SiStripNoises, SiStripNoisesRcd > stripNoiseToken_
static const uint16_t STRIPS_PER_APV
static constexpr float MeVperADCStrip
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
static constexpr char const *const kDefaultFile
virtual float width() const =0
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken
const Bounds & bounds() const