52 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] build entered";
54 if ( !
geom_ )
throw cms::Exception(
"MissingGeometry") <<
"[CSCRecHitDBuilder::getLayer] Missing geometry" << std::endl;
65 std::vector<CSCRecHit2D> hitsInLayer;
68 int hits_in_layer = 0;
78 if ( rstripd.second == rstripd.first )
continue;
83 if ( layer_idx == 0 ) {
93 if ( rwired.second == rwired.first ) {
105 int layer = sDetId.
layer();
106 CSCDetId idw( endcap, 1, 1, chamber, layer );
108 rwired = wiredc->get( compId );
117 if (cscStripHit.empty())
continue;
131 LogTrace(
"CSCRecHitBuilder")<<
"[CSCRecHitDBuilder] found " << cscStripHit.size() <<
" strip and " 132 << cscWireHit.size() <<
" wire hits in layer " << sDetId;
134 for (
auto const & s_hit : cscStripHit) {
135 for (
auto const & w_hit : cscWireHit) {
139 if ( isInFiducial ) {
140 hitsInLayer.push_back( rechit );
149 LogTrace(
"CSCRecHitDBuilder") <<
"[CSCRecHitDBuilder] " << hits_in_layer <<
" rechits found in layer " << sDetId;
153 if (hits_in_layer > 0) {
154 oc.put( sDetId, hitsInLayer.begin(), hitsInLayer.end() );
162 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_
std::vector< CSCWireHit > runWire(const CSCDetId &id, const CSCLayer *layer, const CSCWireDigiCollection::Range &rwired)
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.
std::pair< const_iterator, const_iterator > Range