206 for (reco::TrackCollection::const_iterator recoTrack = glbTracks->begin(); recoTrack != glbTracks->end();
212 cout <<
"[SegmentTrackAnalyzer] # of segments associated to the track: " << (segments).
size() << endl;
220 int hitsFromTrack = 0;
221 int hitsFromSegmDt = 0;
222 int hitsFromSegmCsc = 0;
227 for (MuonTransientTrackingRecHit::MuonRecHitContainer::const_iterator segment = segments.begin();
228 segment != segments.end();
230 DetId id = (*segment)->geographicalId();
237 if ((*seg4D).hasPhi())
239 if ((*seg4D).hasZed())
240 hitsFromSegmDt += (*seg4D).zSegment()->specificRecHits().size();
245 hitsFromSegmCsc += (*segment)->recHits().size();
250 cout <<
"[SegmentTrackAnalyzer] # of segments from DT and CSC: " << segmFromDt <<
", " << segmFromCsc << endl;
251 cout <<
"[SegmentTrackAnalyzer] # of HITS from segments from DT: " << hitsFromSegmDt << endl;
252 cout <<
"[SegmentTrackAnalyzer] # of HITS from segments from CSC " << hitsFromSegmCsc << endl;
257 for (
trackingRecHit_iterator recHit = recoTrack->recHitsBegin(); recHit != recoTrack->recHitsEnd(); ++recHit) {
259 DetId id = (*recHit)->geographicalId();
288 hitsNotUsed->
Fill(hitsFromSegmDt + hitsFromSegmCsc + hitsFromRpc + hitsFromTk - hitsFromTrack);
292 if (hitsFromDt != 0 && hitsFromCsc != 0)
294 if (hitsFromDt != 0 && hitsFromCsc == 0)
296 if (hitsFromDt == 0 && hitsFromCsc != 0)
299 if (hitsFromDt != 0 && hitsFromCsc == 0 && hitsFromRpc == 0)
301 if (hitsFromCsc != 0 && hitsFromDt == 0 && hitsFromRpc == 0)
303 if (hitsFromRpc != 0 && hitsFromDt == 0 && hitsFromCsc == 0)
305 if (hitsFromDt != 0 && hitsFromCsc != 0 && hitsFromRpc == 0)
307 if (hitsFromDt != 0 && hitsFromRpc != 0 && hitsFromCsc == 0)
309 if (hitsFromCsc != 0 && hitsFromRpc != 0 && hitsFromDt == 0)
311 if (hitsFromDt != 0 && hitsFromCsc != 0 && hitsFromRpc != 0)
314 if (hitsFromSegmDt + hitsFromSegmCsc != 0) {
316 double(hitsFromDt + hitsFromCsc) / (hitsFromSegmDt + hitsFromSegmCsc));
318 double(hitsFromDt + hitsFromCsc) / (hitsFromSegmDt + hitsFromSegmCsc));
320 double(hitsFromDt + hitsFromCsc) / (hitsFromSegmDt + hitsFromSegmCsc));
323 if (hitsFromSegmDt != 0) {
329 if (hitsFromSegmCsc != 0) {
MonitorElement * trackHitPercentualVsPt
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static constexpr auto TID
const DTChamberRecSegment2D * phiSegment() const
The superPhi segment: 0 if no phi projection available.
SegmentsTrackAssociator * theSegmentsAssociator
MonitorElement * cscTrackHitPercentualVsPhi
MonitorElement * hitTkrProvenance
MuonTransientTrackingRecHit::MuonRecHitContainer associate(const edm::Event &, const edm::EventSetup &, const reco::Track &)
Get the analysis.
MonitorElement * trackHitPercentualVsPhi
static constexpr auto TOB
std::vector< DTRecHit1D > specificRecHits() const
Access to specific components.
MonitorElement * TrackSegm
MonitorElement * cscTrackHitPercentualVsPt
edm::EDGetTokenT< reco::TrackCollection > theMuTrackCollectionLabel_
static constexpr auto TIB
MonitorElement * dtTrackHitPercentualVsPhi
MonitorElement * hitsNotUsedPercentual
MonitorElement * cscTrackHitPercentualVsEta
MonitorElement * dtTrackHitPercentualVsEta
MonitorElement * hitsNotUsed
MonitorElement * dtTrackHitPercentualVsPt
MonitorElement * trackHitPercentualVsEta
std::vector< MuonRecHitPointer > MuonRecHitContainer
tuple size
Write out results.
static constexpr auto TEC
MonitorElement * hitStaProvenance