36 : enableDTMeasurement(enableDT),
37 enableCSCMeasurement(enableCSC),
38 enableRPCMeasurement(enableRPC),
39 enableGEMMeasurement(enableGEM),
40 enableME0Measurement(enableME0),
46 theCSCEventCacheID(0),
47 theRPCEventCacheID(0),
48 theGEMEventCacheID(0),
49 theME0EventCacheID(0),
57 static std::atomic<int> procInstance{0};
58 std::ostringstream sDT;
59 sDT <<
"MuonDetLayerMeasurements::checkDTRecHits::" << procInstance;
61 std::ostringstream sRPC;
62 sRPC <<
"MuonDetLayerMeasurements::checkRPCRecHits::" << procInstance;
64 std::ostringstream sCSC;
65 sCSC <<
"MuonDetLayerMeasurements::checkCSCRecHits::" << procInstance;
67 std::ostringstream sGEM;
68 sGEM <<
"MuonDetLayerMeasurements::checkGEMRecHits::" << procInstance;
70 std::ostringstream sME0;
71 sME0 <<
"MuonDetLayerMeasurements::checkME0RecHits::" << procInstance;
89 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(DT): " << chamberId << std::endl;
106 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(CSC): " << chamberId << std::endl;
123 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(RPC): " << chamberId << std::endl;
139 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(GEM): " << chamberId << std::endl;
144 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements")
145 <<
"Number of GEM rechits available = " <<
theGEMRecHits->size() <<
", from chamber: " << chamberId
151 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"Number of GEM rechits = " <<
result.size() << std::endl;
156 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(ME0): identified" << std::endl;
167 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements")
168 <<
"Number of ME0 rechits available = " <<
theME0RecHits->size() <<
", from chamber: " << chamberId
173 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"On ME0 iteration " << std::endl;
176 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"Number of ME0 rechits = " <<
result.size() << std::endl;
180 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"The DetLayer with det " << geoId.
det() <<
" subdet "
181 << geoId.
subdetId() <<
" is not a valid Muon DetLayer. ";
182 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"The DetLayer with det " << geoId.
det() <<
" subdet "
183 << geoId.
subdetId() <<
" is not a valid Muon DetLayer. ";
186 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(ME0): enabled" << std::endl;
190 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"(GEM): enabled" << std::endl;
203 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"Cannot get DT RecHits";
218 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"Cannot get CSC RecHits";
233 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"Cannot get RPC RecHits";
248 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"Cannot get GEM RecHits";
253 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"Checking ME0 RecHits";
264 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"Cannot get ME0 RecHits";
265 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements") <<
"Cannot get ME0 RecHits";
285 std::vector<DetWithState> dss =
layer->compatibleDets(startingState, prop, est);
286 LogDebug(
"RecoMuon") <<
"compatibleDets: " << dss.size() << std::endl;
288 for (std::vector<DetWithState>::const_iterator detWithStateItr = dss.begin(); detWithStateItr != dss.end();
292 result.insert(
result.end(), detMeasurements.begin(), detMeasurements.end());
313 LogDebug(
"Muon|RecoMuon|MuonDetLayerMeasurements")
314 <<
"ME0 Chamber ID in measurements: " << chamberId << std::endl;
322 for (MuonRecHitContainer::const_iterator rechit = muonRecHits.begin(); rechit != muonRecHits.end(); ++rechit) {
324 LogDebug(
"RecoMuon") <<
"Dimension: " << (*rechit)->dimension() <<
" Chi2: " << estimate.second << std::endl;
325 if (estimate.first) {
344 for (MuonRecHitContainer::const_iterator irh = rhs.begin(); irh != rhs.end(); irh++) {
346 if (estimate.first) {
383 std::vector<TrajectoryMeasurementGroup>
result;
386 std::vector<DetGroup> groups(
layer->groupedCompatibleDets(startingState, prop, est));
392 for (std::vector<DetGroup>::const_iterator grp = groups.begin(); grp != groups.end(); ++grp) {
393 std::vector<TrajectoryMeasurement> groupMeasurements;
394 for (DetGroup::const_iterator detAndStateItr = grp->begin(); detAndStateItr != grp->end(); ++detAndStateItr) {
395 std::vector<TrajectoryMeasurement> detMeasurements =
397 groupMeasurements.insert(groupMeasurements.end(), detMeasurements.begin(), detMeasurements.end());
400 if (!groupMeasurements.empty())
414 throw cms::Exception(
"MuonDetLayerMeasurements") <<
"The event has not been set";
420 std::vector<const GeomDet*> gds =
layer->basicComponents();
422 for (std::vector<const GeomDet*>::const_iterator igd = gds.begin(); igd != gds.end(); igd++) {
424 rhs.insert(rhs.end(), detHits.begin(), detHits.end());