22 class ConvertHitTraits {
24 ConvertHitTraits(
float minCharge) : minGoodStripCharge_(minCharge) {}
26 static constexpr
bool applyCCC() {
return true; }
30 bool passCCC(
float charge)
const {
return charge > minGoodStripCharge_; }
36 const float minGoodStripCharge_;
63 stripStereoRecHitToken_{consumes<SiStripRecHit2DCollection>(iConfig.getParameter<
edm::InputTag>(
"stereoHits"))},
64 ttrhBuilderToken_{esConsumes<TransientTrackingRecHitBuilder, TransientRecHitRecord>(
66 ttopoToken_{esConsumes<TrackerTopology, TrackerTopologyRcd>()},
67 mkFitGeomToken_{esConsumes<MkFitGeometry, TrackerRecoGeometryRecord>()},
68 wrapperPutToken_{produces<MkFitHitWrapper>()},
69 clusterIndexPutToken_{produces<MkFitClusterIndexToHit>()},
70 clusterChargePutToken_{produces<std::vector<float>>()},
71 convertTraits_{static_cast<float>(
82 descCCC.
add<
double>(
"value");
83 desc.add(
"minGoodStripCharge", descCCC);
85 descriptions.
add(
"mkFitSiStripHitConverterDefault",
desc);
95 std::vector<float> clusterCharge;
105 if (not stripRphiHits.empty()) {
106 stripClusterID =
convert(stripRphiHits);
108 if (not stripStereoHits.empty()) {
109 auto stripStereoClusterID =
convert(stripStereoHits);
110 if (stripRphiHits.empty()) {
111 stripClusterID = stripStereoClusterID;
112 }
else if (stripClusterID != stripStereoClusterID) {
113 throw cms::Exception(
"LogicError") <<
"Encountered different cluster ProductIDs for strip RPhi hits ("
114 << stripClusterID <<
") and stereo (" << stripStereoClusterID <<
")";