Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

few improvements to tracking DQM #21357

Merged
merged 9 commits into from Nov 30, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion DQM/TrackingMonitor/interface/TrackAnalyzer.h
Expand Up @@ -333,7 +333,7 @@ class TrackAnalyzer
MonitorElement* NumberOfLayersPerTrackVsTheta;
MonitorElement* NumberOfLayersPerTrackVsEta;

MonitorElement* NumberOfLayersVsPhiVsEtaPerTrack[4]= {nullptr,nullptr,nullptr,nullptr};
MonitorElement* NumberOfLayersVsPhiVsEtaPerTrack[5]= {nullptr,nullptr,nullptr,nullptr,nullptr};


MonitorElement* Chi2;
Expand All @@ -354,7 +354,9 @@ class TrackAnalyzer
MonitorElement* DistanceOfClosestApproachToBS;
MonitorElement* AbsDistanceOfClosestApproachToBS;
MonitorElement* DistanceOfClosestApproachToPV;
MonitorElement* DistanceOfClosestApproachToPVZoom;
MonitorElement* DeltaZToPV;
MonitorElement* DeltaZToPVZoom;
MonitorElement* DistanceOfClosestApproachVsTheta;
MonitorElement* DistanceOfClosestApproachVsPhi;
MonitorElement* DistanceOfClosestApproachToBSVsPhi;
Expand Down
27 changes: 22 additions & 5 deletions DQM/TrackingMonitor/src/TrackAnalyzer.cc
Expand Up @@ -127,7 +127,9 @@ void TrackAnalyzer::initHistos()
DistanceOfClosestApproachToBS = nullptr;
AbsDistanceOfClosestApproachToBS = nullptr;
DistanceOfClosestApproachToPV = nullptr;
DistanceOfClosestApproachToPVZoom = nullptr;
DeltaZToPV = nullptr;
DeltaZToPVZoom = nullptr;
DistanceOfClosestApproachVsTheta = nullptr;
DistanceOfClosestApproachVsPhi = nullptr;
DistanceOfClosestApproachToBSVsPhi = nullptr;
Expand Down Expand Up @@ -480,15 +482,15 @@ void TrackAnalyzer::bookHistosForHitProperties(DQMStore::IBooker & ibooker) {
NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);

std::string layerTypeName[4] = {"","Off","3D","Missing"};
std::string layerTypeName[5] = {"","Off","3D","Missing","Pixel"};
for (int i=0; i<4; ++i) {
histname = "NumberOf"+ layerTypeName[i] + "LayersPerTrack_";
NumberOfLayersPerTrack[i] = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKLayBin, TKLayMin, TKLayMax);
NumberOfLayersPerTrack[i]->setAxisTitle("Number of " + layerTypeName[i] + " Layers of each Track", 1);
NumberOfLayersPerTrack[i]->setAxisTitle("Number of Tracks", 2);
}
if ( doLayersVsPhiVsEtaPerTrack_ || doAllPlots_ )
for (int i=0; i<4; ++i) {
for (int i=0; i<5; ++i) {
histname = "NumberOf"+ layerTypeName[i] + "LayersVsPhiVsEtaPerTrack_";
NumberOfLayersVsPhiVsEtaPerTrack[i] = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40., "");
Expand Down Expand Up @@ -823,10 +825,22 @@ void TrackAnalyzer::bookHistosForBeamSpot(DQMStore::IBooker & ibooker) {
DistanceOfClosestApproachToPV->setAxisTitle("Track d_{xy} w.r.t. PV (cm)",1);
DistanceOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);

histname = "DistanceOfClosestApproachToPVZoom_";
DistanceOfClosestApproachToPVZoom = ibooker.book1D(histname+CategoryName,histname+CategoryName,100,-0.08,0.08);
DistanceOfClosestApproachToPVZoom->setAxisTitle("Track d_{xy} w.r.t. PV (cm)",1);
DistanceOfClosestApproachToPVZoom->setAxisTitle("Number of Tracks",2);


histname = "DeltaZToPV_";
DeltaZToPV = ibooker.book1D(histname+CategoryName,histname+CategoryName,Z0Bin,Z0Min,Z0Max);
DeltaZToPV->setAxisTitle("Track d_{z} w.r.t. PV (cm)",1);
DeltaZToPV->setAxisTitle("Number of Tracks",2);

histname = "DeltaZToPVZoom_";
DeltaZToPVZoom = ibooker.book1D(histname+CategoryName,histname+CategoryName,100,-0.15,0.15);
DeltaZToPVZoom->setAxisTitle("Track d_{z} w.r.t. PV (cm)",1);
DeltaZToPVZoom->setAxisTitle("Number of Tracks",2);


histname = "DistanceOfClosestApproachToPVVsPhi_";
DistanceOfClosestApproachToPVVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
Expand Down Expand Up @@ -1081,18 +1095,19 @@ void TrackAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSe
NumberOfMIRecHitsPerTrackVsPt->Fill(pt,nLostIn);
NumberOfMORecHitsPerTrackVsPt->Fill(pt,nLostOut);

int nLayers[4] = { track.hitPattern().trackerLayersWithMeasurement(),
int nLayers[5] = { track.hitPattern().trackerLayersWithMeasurement(),
track.hitPattern().trackerLayersTotallyOffOrBad(),
track.hitPattern().numberOfValidStripLayersWithMonoAndStereo() + track.hitPattern().pixelLayersWithMeasurement(),
track.hitPattern().trackerLayersWithoutMeasurement(reco::HitPattern::TRACK_HITS)
track.hitPattern().trackerLayersWithoutMeasurement(reco::HitPattern::TRACK_HITS),
track.hitPattern().pixelLayersWithMeasurement()
};

// layers
for (int i=0;i<4;++i) NumberOfLayersPerTrack[i]->Fill(nLayers[i]);

// 2D plots
if ( doLayersVsPhiVsEtaPerTrack_ || doAllPlots_ )
for (int i=0;i<4;++i) NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn,phiIn,nLayers[i]);
for (int i=0;i<5;++i) NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn,phiIn,nLayers[i]);

}

Expand Down Expand Up @@ -1209,6 +1224,8 @@ void TrackAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSe
zPointOfClosestApproachToPV->Fill(track.dz(pv.position()));
DistanceOfClosestApproachToPV -> Fill(track.dxy(pv.position()));
DeltaZToPV -> Fill(track.dz (pv.position()));
DistanceOfClosestApproachToPVZoom -> Fill(track.dxy(pv.position()));
DeltaZToPVZoom -> Fill(track.dz (pv.position()));
DistanceOfClosestApproachToPVVsPhi -> Fill(track.phi(), track.dxy(pv.position()));
xPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vx()-pv.position().x()));
yPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vy()-pv.position().y()));
Expand Down
10 changes: 5 additions & 5 deletions DQM/TrackingMonitor/src/TrackBuildingAnalyzer.cc
Expand Up @@ -241,12 +241,12 @@ void TrackBuildingAnalyzer::initHisto(DQMStore::IBooker & ibooker, const edm::Pa
seedStoppingSource->setAxisTitle("Stopping reason",1);
seedStoppingSource->setAxisTitle("Number of seeds",2);

histname = "StoppingSourceVsPhi_"+seedProducer.label() + "_";
histname = "SeedStoppingSourceVsPhi_"+seedProducer.label() + "_";
seedStoppingSourceVsPhi = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
seedStoppingSourceVsPhi->setAxisTitle("seed #phi",1);
seedStoppingSourceVsPhi->setAxisTitle("fraction stopped",2);

histname = "StoppingSourceVsEta_"+seedProducer.label() + "_";
histname = "SeedStoppingSourceVsEta_"+seedProducer.label() + "_";
seedStoppingSourceVsEta = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
seedStoppingSourceVsEta->setAxisTitle("seed #eta",1);
seedStoppingSourceVsEta->setAxisTitle("fraction stopped",2);
Expand All @@ -267,12 +267,12 @@ void TrackBuildingAnalyzer::initHisto(DQMStore::IBooker & ibooker, const edm::Pa
numberOfTrajCandsPerSeedVsEta->setAxisTitle("Number of Trajectory Candidates for each Seed", 2);

histname = "SeedStoppingSourceVsNumberOfTrajCandsPerSeed_"+seedProducer.label() + "_";
seedStoppingSourceVsNumberOfTrajCandsPerSeed = ibooker.book2D(histname+CatagoryName, histname+CatagoryName, candsBin, candsMin, candsMax, stopReasonSize, 0, stopReasonSize);
seedStoppingSourceVsNumberOfTrajCandsPerSeed = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, candsBin, candsMin, candsMax, 2, 0., 2.);
seedStoppingSourceVsNumberOfTrajCandsPerSeed->setAxisTitle("Number of Trajectory Candidates for each Seed", 1);
seedStoppingSourceVsNumberOfTrajCandsPerSeed->setAxisTitle("fraction stopped",2);

for(unsigned int i=0; i<stopReasonSize; ++i) {
seedStoppingSource->setBinLabel(i+1, SeedStopReasonName::SeedStopReasonName[i], 1);
seedStoppingSourceVsNumberOfTrajCandsPerSeed->setBinLabel(i+1, SeedStopReasonName::SeedStopReasonName[i], 2);
}
}

Expand Down Expand Up @@ -496,7 +496,7 @@ void TrackBuildingAnalyzer::analyze
numberOfTrajCandsPerSeedVsPhi->Fill(phi, ncands);
numberOfTrajCandsPerSeedVsEta->Fill(eta, ncands);

seedStoppingSourceVsNumberOfTrajCandsPerSeed->Fill(ncands, stopInfo.stopReasonUC());
seedStoppingSourceVsNumberOfTrajCandsPerSeed->Fill(ncands, stopped);
}
}

Expand Down
2 changes: 1 addition & 1 deletion DQM/TrackingMonitor/src/TrackingMonitor.cc
Expand Up @@ -596,7 +596,7 @@ void TrackingMonitor::bookHistograms(DQMStore::IBooker & ibooker,
double regionMin = conf->getParameter<double>("RegionSizeMin");
double regionMax = conf->getParameter<double>("RegionSizeMax");

histname = "NumberOfTrackingRegions_"+ seedProducer.label() + "_"+ CategoryName;
histname = "TrackingRegionsNumberOf_"+ seedProducer.label() + "_"+ CategoryName;
NumberOfTrackingRegions = ibooker.book1D(histname, histname, regionBin, regionMin, regionMax);
NumberOfTrackingRegions->setAxisTitle("Number of TrackingRegions per Event", 1);
NumberOfTrackingRegions->setAxisTitle("Number of Events", 2);
Expand Down
40 changes: 40 additions & 0 deletions DQM/TrackingMonitorSource/python/TrackCollections2monitor_cff.py
Expand Up @@ -192,6 +192,42 @@
doEffFromHitPatternVsLumi ['highPurityPt1'] = cms.bool(True)
doStopSource ['highPurityPt1'] = cms.bool(True)

###### forward-only monitored track collections
highPurityPt1Eta2p5to3p0 = trackSelector.clone()
highPurityPt1Eta2p5to3p0.cut = cms.string("quality('highPurity') & pt >= 1 & abs(eta) > 2.5")

sequenceName ['highPurityPt1Eta2p5to3p0'] = highPurityPt1Eta2p5to3p0
allTrackProducer['highPurityPt1Eta2p5to3p0'] = 'generalTracks'
mainfolderName ['highPurityPt1Eta2p5to3p0'] = 'Tracking/TrackParameters/highPurityTracks/pt_1_Eta_2p5'
vertexfolderName['highPurityPt1Eta2p5to3p0'] = 'Tracking/PrimaryVertices/highPurityTracks/pt_1_Eta_2p5'
trackPtN ['highPurityPt1Eta2p5to3p0'] = cms.int32(100)
trackPtMin ['highPurityPt1Eta2p5to3p0'] = cms.double(0.)
trackPtMax ['highPurityPt1Eta2p5to3p0'] = cms.double(100.)
doPlotsPCA ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
numCutString ['highPurityPt1Eta2p5to3p0'] = cms.string(" pt >= 1 & abs(eta) > 2.5 & quality('highPurity')") # num := den + quality('highPurity') [it is the same as the main selection, but just to be sure ...]
denCutString ['highPurityPt1Eta2p5to3p0'] = cms.string(" pt >= 1 & abs(eta) > 2.5") # den := kinematics cut
doGoodTracksPlots ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doTrackerSpecific ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doHitPropertiesPlots ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doGeneralPropertiesPlots ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doBeamSpotPlots ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doSeedParameterHistos ['highPurityPt1Eta2p5to3p0'] = cms.bool(False)
doRecHitVsPhiVsEtaPerTrack ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doRecHitVsPtVsEtaPerTrack ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doGoodTrackRecHitVsPhiVsEtaPerTrack ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doLayersVsPhiVsEtaPerTrack ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doGoodTrackLayersVsPhiVsEtaPerTrack ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doPUmonitoring ['highPurityPt1Eta2p5to3p0'] = cms.bool(False)
doPlotsVsBXlumi ['highPurityPt1Eta2p5to3p0'] = cms.bool(False)
doPlotsVsGoodPVtx ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doEffFromHitPatternVsPU ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)
doEffFromHitPatternVsBX ['highPurityPt1Eta2p5to3p0'] = cms.bool(False)
doEffFromHitPatternVsLumi ['highPurityPt1Eta2p5to3p0'] = cms.bool(False)
doStopSource ['highPurityPt1Eta2p5to3p0'] = cms.bool(True)




###### all tracks (no pt cut) associated to the PV
###### association is dz<1mm
from CommonTools.RecoAlgos.TrackWithVertexSelector_cfi import *
Expand Down Expand Up @@ -276,6 +312,10 @@
selectedTracks.extend( ['highPurityPtRange0to1'] )
selectedTracks.extend( ['highPurityPV0p1'] )

# not by default
#selectedTracks.extend( ['highPurityPt1Eta2p5to3p0'] )


#selectedTracks2runSequence=cms.Sequence()
#for tracks in selectedTracks :
# if tracks != 'generalTracks':
Expand Down
7 changes: 7 additions & 0 deletions DQMOffline/RecoB/python/PrimaryVertexMonitor_cff.py
Expand Up @@ -25,3 +25,10 @@
EtaMax = cms.double(2.5),
EtaMin = cms.double(-2.5)
)

# same as above, should be in sync with cut used in Vertex finder...
from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase1Pixel.toModify(pvMonitor, EtaBin=26, EtaMin=-2.5, EtaMax=2.5)
phase2_tracker.toModify(pvMonitor, EtaBin=41, EtaMin=-4.0, EtaMax=4.0)