50 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] build entered";
53 throw cms::Exception(
"MissingGeometry") <<
"[CSCRecHitDBuilder::getLayer] Missing geometry" << std::endl;
69 if (rstripd.second == rstripd.first)
84 if (rwired.second == rwired.first) {
99 rwired = wiredc->get(compId);
108 if (cscStripHit.empty())
117 LogTrace(
"CSCRecHitBuilder") <<
"[CSCRecHitDBuilder] found " << cscStripHit.size() <<
" strip and " 118 << cscWireHit.size() <<
" wire hits in layer " << sDetId;
121 std::vector<CSCRecHit2D> hitsInLayer;
122 unsigned int hits_in_layer = 0;
124 for (
auto const& s_hit : cscStripHit) {
125 for (
auto const& w_hit : cscWireHit) {
129 float yreco = rhitlocal.
y();
130 bool isInFiducial =
false;
132 if ((sDetId.
station() == 1) && (sDetId.
ring() == 1 || sDetId.
ring() == 4) && (fabs(yreco + 30.) < 5.)) {
138 hitsInLayer.push_back(rechit);
144 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] " << hits_in_layer <<
" rechits found in layer " << sDetId;
147 if (hits_in_layer > 0) {
148 oc.put(sDetId, hitsInLayer.begin(), hitsInLayer.end());
154 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)
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.