51 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] build entered";
54 throw cms::Exception(
"MissingGeometry") <<
"[CSCRecHitDBuilder::getLayer] Missing geometry" << std::endl;
70 if (rstripd.second == rstripd.first)
85 if (rwired.second == rwired.first) {
100 rwired = wiredc->get(compId);
109 if (cscStripHit.empty())
118 LogTrace(
"CSCRecHitBuilder") <<
"[CSCRecHitDBuilder] found " << cscStripHit.size() <<
" strip and " 119 << cscWireHit.size() <<
" wire hits in layer " << sDetId;
122 std::vector<CSCRecHit2D> hitsInLayer;
123 unsigned int hits_in_layer = 0;
125 for (
auto const& s_hit : cscStripHit) {
126 for (
auto const& w_hit : cscWireHit) {
130 float yreco = rhitlocal.
y();
131 bool isInFiducial =
false;
133 if ((sDetId.
station() == 1) && (sDetId.
ring() == 1 || sDetId.
ring() == 4) && (fabs(yreco + 30.) < 5.)) {
139 hitsInLayer.push_back(rechit);
145 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] " << hits_in_layer <<
" rechits found in layer " << sDetId;
148 if (hits_in_layer > 0) {
149 oc.put(sDetId, hitsInLayer.begin(), hitsInLayer.end());
155 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] " << oc.size() <<
" 2d rechits created in this event.";
T getParameter(std::string const &) const
const CSCGeometry * geom_
void setConditions(CSCRecoConditions *reco)
std::vector< CSCStripHit > runStrip(const CSCDetId &id, const CSCLayer *layer, const CSCStripDigiCollection::Range &rstripd)
void setConditions(const CSCRecoConditions *reco)
Pass pointer to conditions data onwards.
const CSCLayer * getLayer(const CSCDetId &detId)
constexpr std::array< uint8_t, layerIndexSize > layer
void build(const CSCStripDigiCollection *stripds, const CSCWireDigiCollection *wireds, CSCRecHit2DCollection &oc)
void setConditions(const CSCRecoConditions *reco)
void fillBadChannelWords(const CSCDetId &id)
fill bad strip & bad wiregroup bitsets from conditions data
CSCHitFromWireOnly * hitsFromWireOnly_
CSCRecoConditions * recoConditions_
bool isHitInFiducial(const CSCLayer *layer, const CSCRecHit2D &rh)
Test if rechit is in fiducial volume.
CSCHitFromStripOnly * hitsFromStripOnly_
LocalPoint localPosition() const override
std::vector< CSCWireHit > runWire(const CSCDetId &id, const CSCLayer *layer, const CSCWireDigiCollection::Range &rwired)
std::pair< const_iterator, const_iterator > Range
CSCRecHitDBuilder(const edm::ParameterSet &ps)
CSCRecHit2D hitFromStripAndWire(const CSCDetId &id, const CSCLayer *layer, const CSCWireHit &wHit, const CSCStripHit &sHit)
Make 2D hits when have both wire and strip hit available in same layer.
void setConditions(const CSCRecoConditions *reco)
CSCMake2DRecHit * make2DHits_
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.