Skip to content

Commit

Permalink
Merge pull request #20280 from VinInn/TkDQMtune94
Browse files Browse the repository at this point in the history
Small improvements for Tracking DQM
  • Loading branch information
cmsbuild authored Sep 1, 2017
2 parents 20b60f7 + fc8bd8e commit 91fd772
Show file tree
Hide file tree
Showing 8 changed files with 134 additions and 105 deletions.
9 changes: 5 additions & 4 deletions DQM/TrackingMonitor/interface/TrackingMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,17 @@ class TrackingMonitor : public DQMEDAnalyzer
using QualityMaskCollection = std::vector<unsigned char>;

explicit TrackingMonitor(const edm::ParameterSet&);
~TrackingMonitor();
~TrackingMonitor() override;
virtual void beginJob(void);

virtual void setMaxMinBin(std::vector<double> & ,std::vector<double> & ,std::vector<int> & ,double, double, int, double, double, int);
virtual void setNclus(const edm::Event&, std::vector<int> & );

virtual void beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& eSetup) override;
virtual void analyze(const edm::Event&, const edm::EventSetup&) override;
void beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& eSetup) override;
void analyze(const edm::Event&, const edm::EventSetup&) override;
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
// virtual void beginRun(const edm::Run&, const edm::EventSetup&);
virtual void endRun(const edm::Run&, const edm::EventSetup&) override;
void endRun(const edm::Run&, const edm::EventSetup&) override;

private:
void doProfileX(TH2 * th2, MonitorElement* me);
Expand Down Expand Up @@ -127,6 +127,7 @@ class TrackingMonitor : public DQMEDAnalyzer

// Track Candidates
MonitorElement * NumberOfTrackCandidates;
MonitorElement * FractionCandidatesOverSeeds;

// Cluster Properties
std::vector<MonitorElement*> NumberOfTrkVsClusters;
Expand Down
5 changes: 5 additions & 0 deletions DQM/TrackingMonitor/python/TrackingMonitorSeedNumber_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
TrackMonStep2.TkSeedSizeBin = cms.int32(400)
TrackMonStep2.TkSeedSizeMax = cms.double(100000)
TrackMonStep2.TkSeedSizeMin = cms.double(0)
TrackMonStep2.TCSizeMax = cms.double(199.5)
TrackMonStep2.NClusPxBin = cms.int32(100)
TrackMonStep2.NClusPxMax = cms.double(20000)
TrackMonStep2.ClusterLabels = cms.vstring('Pix')
Expand All @@ -61,6 +62,7 @@
TrackMonStep4.TkSeedSizeBin = cms.int32(400)
TrackMonStep4.TkSeedSizeMax = cms.double(200000)
TrackMonStep4.TkSeedSizeMin = cms.double(0)
TrackMonStep4.TCSizeMax = cms.double(199.5)
TrackMonStep4.NClusStrBin = cms.int32(500)
TrackMonStep4.NClusStrMax = cms.double(100000)
TrackMonStep4.ClusterLabels = cms.vstring('Tot')
Expand All @@ -85,6 +87,7 @@
TrackMonStep6.TkSeedSizeBin = cms.int32(400)
TrackMonStep6.TkSeedSizeMax = cms.double(100000)
TrackMonStep6.TkSeedSizeMin = cms.double(0)
TrackMonStep6.TCSizeMax = cms.double(199.5)
TrackMonStep6.NClusStrBin = cms.int32(500)
TrackMonStep6.NClusStrMax = cms.double(100000)
TrackMonStep6.ClusterLabels = cms.vstring('Strip')
Expand All @@ -97,6 +100,7 @@
TrackMonStep9.TkSeedSizeBin = cms.int32(15)
TrackMonStep9.TkSeedSizeMax = cms.double(14.5)
TrackMonStep9.TkSeedSizeMin = cms.double(-0.5)
TrackMonStep9.TCSizeMax = cms.double(199.5)
TrackMonStep9.NClusStrBin = cms.int32(500)
TrackMonStep9.NClusStrMax = cms.double(100000)
TrackMonStep9.ClusterLabels = cms.vstring('Strip')
Expand All @@ -109,6 +113,7 @@
TrackMonStep10.TkSeedSizeBin = cms.int32(15)
TrackMonStep10.TkSeedSizeMax = cms.double(14.5)
TrackMonStep10.TkSeedSizeMin = cms.double(-0.5)
TrackMonStep10.TCSizeMax = cms.double(199.5)
TrackMonStep10.NClusStrBin = cms.int32(500)
TrackMonStep10.NClusStrMax = cms.double(100000)
TrackMonStep10.ClusterLabels = cms.vstring('Strip')
Expand Down
8 changes: 4 additions & 4 deletions DQM/TrackingMonitor/python/TrackingMonitor_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,13 @@
TkSizeMin = cms.double(-0.5),

# Number of seeds per Event
TkSeedSizeBin = cms.int32(150),
TkSeedSizeMax = cms.double(149.5),
TkSeedSizeBin = cms.int32(200),
TkSeedSizeMax = cms.double(999.5),
TkSeedSizeMin = cms.double(-0.5),

# Number of Track Cadidates per Event
TCSizeBin = cms.int32(150),
TCSizeMax = cms.double(149.5),
TCSizeBin = cms.int32(200),
TCSizeMax = cms.double(999.5),
TCSizeMin = cms.double(-0.5),

# num rec hits
Expand Down
23 changes: 12 additions & 11 deletions DQM/TrackingMonitor/src/TrackAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -649,19 +649,19 @@ void TrackAnalyzer::bookHistosForHitProperties(DQMStore::IBooker & ibooker) {
stoppingSource->setAxisTitle("Number of Tracks",2);

histname = "stoppingSourceVSeta_";
stoppingSourceVSeta = ibooker.book2D(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, StopReasonNameSize, 0., double(StopReasonNameSize));
stoppingSourceVSeta = ibooker.bookProfile(histname+CategoryName, histname+CategoryName,
EtaBin, EtaMin, EtaMax, 2, 0., 2.);
stoppingSourceVSeta->setAxisTitle("track #eta",1);
stoppingSourceVSeta->setAxisTitle("stopping reason",2);
stoppingSourceVSeta->setAxisTitle("stopped fraction",2);

histname = "stoppingSourceVSphi_";
stoppingSourceVSphi = ibooker.book2D(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, StopReasonNameSize, 0., double(StopReasonNameSize));
stoppingSourceVSphi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName,
PhiBin, PhiMin, PhiMax, 2, 0., 2.);
stoppingSourceVSphi->setAxisTitle("track #phi",1);
stoppingSourceVSphi->setAxisTitle("stopping reason",2);
stoppingSourceVSphi->setAxisTitle("stopped fraction",2);

for (size_t ibin=0; ibin<StopReasonNameSize; ibin++) {
stoppingSource->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],1);
stoppingSourceVSeta->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],2);
stoppingSourceVSphi->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],2);
}

}
Expand Down Expand Up @@ -972,7 +972,7 @@ void TrackAnalyzer::setNumberOfGoodVertices(const edm::Event & iEvent) {
edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
iEvent.getByToken(pvToken_, recoPrimaryVerticesHandle);
if (recoPrimaryVerticesHandle.isValid())
if (recoPrimaryVerticesHandle->size() > 0)
if (!recoPrimaryVerticesHandle->empty())
for (auto v : *recoPrimaryVerticesHandle)
if (v.ndof() >= pvNDOF_ && !v.isFake())
++good_vertices_;
Expand All @@ -988,7 +988,7 @@ void TrackAnalyzer::setLumi(const edm::Event & iEvent, const edm::EventSetup& iS

edm::Handle<LumiScalersCollection> lumiScalers;
iEvent.getByToken(lumiscalersToken_, lumiScalers);
if ( lumiScalers.isValid() && lumiScalers->size() ) {
if ( lumiScalers.isValid() && !lumiScalers->empty() ) {
LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
scal_lumi_ = scalit->instantLumi();
} else
Expand Down Expand Up @@ -1129,9 +1129,10 @@ void TrackAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSe
// stopping source
int max = stoppingSource->getNbinsX();
double stop = track.stopReason() > max ? double(max-1) : static_cast<double>(track.stopReason());
double stopped = int(StopReason::NOT_STOPPED)==track.stopReason() ? 0. : 1.;
stoppingSource->Fill(stop);
stoppingSourceVSeta->Fill(track.eta(),stop);
stoppingSourceVSphi->Fill(track.phi(),stop);
stoppingSourceVSeta->Fill(track.eta(),stopped);
stoppingSourceVSphi->Fill(track.phi(),stopped);
}

if ( doLumiAnalysis_ ) {
Expand Down Expand Up @@ -1167,7 +1168,7 @@ void TrackAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSe
if(doDCAPlots_ || doPVPlots_ || doSIPPlots_ || doAllPlots_) {
edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
iEvent.getByToken(pvToken_,recoPrimaryVerticesHandle);
if (recoPrimaryVerticesHandle.isValid() && recoPrimaryVerticesHandle->size() > 0) {
if (recoPrimaryVerticesHandle.isValid() && !recoPrimaryVerticesHandle->empty()) {
const reco::Vertex& pv = (*recoPrimaryVerticesHandle)[0];


Expand Down
53 changes: 26 additions & 27 deletions DQM/TrackingMonitor/src/TrackBuildingAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@
#include <iostream>

TrackBuildingAnalyzer::TrackBuildingAnalyzer(const edm::ParameterSet& iConfig)
: SeedPt(NULL)
, SeedEta(NULL)
, SeedPhi(NULL)
, SeedPhiVsEta(NULL)
, SeedTheta(NULL)
, SeedQ(NULL)
, SeedDxy(NULL)
, SeedDz(NULL)
, NumberOfRecHitsPerSeed(NULL)
, NumberOfRecHitsPerSeedVsPhiProfile(NULL)
, NumberOfRecHitsPerSeedVsEtaProfile(NULL)
, stoppingSource(NULL)
, stoppingSourceVSeta(NULL)
, stoppingSourceVSphi(NULL)
: SeedPt(nullptr)
, SeedEta(nullptr)
, SeedPhi(nullptr)
, SeedPhiVsEta(nullptr)
, SeedTheta(nullptr)
, SeedQ(nullptr)
, SeedDxy(nullptr)
, SeedDz(nullptr)
, NumberOfRecHitsPerSeed(nullptr)
, NumberOfRecHitsPerSeedVsPhiProfile(nullptr)
, NumberOfRecHitsPerSeedVsEtaProfile(nullptr)
, stoppingSource(nullptr)
, stoppingSourceVSeta(nullptr)
, stoppingSourceVSphi(nullptr)
{
}

Expand All @@ -50,7 +50,7 @@ void TrackBuildingAnalyzer::initHisto(DQMStore::IBooker & ibooker, const edm::Pa
// std::cout << "[TrackBuildingAnalyzer::beginRun] AlgoName: " << AlgoName << std::endl;

// use the AlgoName and Quality Name
std::string CatagoryName = AlgoName;
const std::string& CatagoryName = AlgoName;

// get binning from the configuration
int TrackPtBin = iConfig.getParameter<int>( "TrackPtBin");
Expand Down Expand Up @@ -230,31 +230,29 @@ void TrackBuildingAnalyzer::initHisto(DQMStore::IBooker & ibooker, const edm::Pa
stoppingSource->setAxisTitle("Number of Tracks",2);

histname = "StoppingSourceVSeta_"+seedProducer.label() + "_";
stoppingSourceVSeta = ibooker.book2D(histname+CatagoryName,
stoppingSourceVSeta = ibooker.bookProfile(histname+CatagoryName,
histname+CatagoryName,
EtaBin,
EtaMin,
EtaMax,
StopReasonNameSize,
0., double(StopReasonNameSize));
2,
0., 2.);
stoppingSourceVSeta->setAxisTitle("track #eta",1);
stoppingSourceVSeta->setAxisTitle("stopping reason",2);
stoppingSourceVSeta->setAxisTitle("fraction stopped",2);

histname = "StoppingSourceVSphi_"+seedProducer.label() + "_";
stoppingSourceVSphi = ibooker.book2D(histname+CatagoryName,
stoppingSourceVSphi = ibooker.bookProfile(histname+CatagoryName,
histname+CatagoryName,
PhiBin,
PhiMin,
PhiMax,
StopReasonNameSize,
0., double(StopReasonNameSize));
2,
0., 2.);
stoppingSourceVSphi->setAxisTitle("track #phi",1);
stoppingSourceVSphi->setAxisTitle("stopping reason",2);
stoppingSourceVSphi->setAxisTitle("fraction stopped",2);

for (size_t ibin=0; ibin<StopReasonNameSize; ibin++) {
stoppingSource->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],1);
stoppingSourceVSeta->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],2);
stoppingSourceVSphi->setBinLabel(ibin+1,StopReasonName::StopReasonName[ibin],2);
}
}

Expand Down Expand Up @@ -475,9 +473,10 @@ void TrackBuildingAnalyzer::analyze
// stopping source
int max = stoppingSource->getNbinsX();
double stop = candidate.stopReason() > max ? double(max-1) : static_cast<double>(candidate.stopReason());
double stopped = int(StopReason::NOT_STOPPED)==candidate.stopReason() ? 0. : 1.;
stoppingSource ->Fill(stop);
stoppingSourceVSeta ->Fill(eta,stop);
stoppingSourceVSphi ->Fill(phi,stop);
stoppingSourceVSeta ->Fill(eta,stopped);
stoppingSourceVSphi ->Fill(phi,stopped);
}

if (doTCPlots){
Expand Down
89 changes: 52 additions & 37 deletions DQM/TrackingMonitor/src/TrackingMonitor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,48 +42,49 @@
TrackingMonitor::TrackingMonitor(const edm::ParameterSet& iConfig)
: confID_ ( iConfig.id() )
, theTrackBuildingAnalyzer( new TrackBuildingAnalyzer(iConfig) )
, NumberOfTracks(NULL)
, NumberOfMeanRecHitsPerTrack(NULL)
, NumberOfMeanLayersPerTrack(NULL)
, NumberOfTracks(nullptr)
, NumberOfMeanRecHitsPerTrack(nullptr)
, NumberOfMeanLayersPerTrack(nullptr)
// , NumberOfGoodTracks(NULL)
, FractionOfGoodTracks(NULL)
, NumberOfSeeds(NULL)
, NumberOfSeeds_lumiFlag(NULL)
, NumberOfTrackCandidates(NULL)
, FractionOfGoodTracks(nullptr)
, NumberOfSeeds(nullptr)
, NumberOfSeeds_lumiFlag(nullptr)
, NumberOfTrackCandidates(nullptr)
, FractionCandidatesOverSeeds(nullptr)
// , NumberOfGoodTrkVsClus(NULL)
, NumberEventsOfVsLS(NULL)
, NumberOfTracksVsLS(NULL)
, NumberEventsOfVsLS(nullptr)
, NumberOfTracksVsLS(nullptr)
// , NumberOfGoodTracksVsLS(NULL)
, GoodTracksFractionVsLS(NULL)
, GoodTracksFractionVsLS(nullptr)
// , GoodTracksNumberOfRecHitsPerTrackVsLS(NULL)
// ADD by Mia for PU monitoring
// vertex plots to be moved in ad hoc class
, NumberOfGoodPVtxVsLS(NULL)
, NumberOfGoodPVtxWO0VsLS(NULL)
, NumberEventsOfVsBX (NULL)
, NumberOfTracksVsBX(NULL)
, GoodTracksFractionVsBX(NULL)
, NumberOfRecHitsPerTrackVsBX(NULL)
, NumberOfGoodPVtxVsBX(NULL)
, NumberOfGoodPVtxWO0VsBX(NULL)
, NumberOfTracksVsBXlumi(NULL)
, NumberOfTracksVsGoodPVtx(NULL)
, NumberOfTracksVsPUPVtx(NULL)
, NumberEventsOfVsGoodPVtx(NULL)
, GoodTracksFractionVsGoodPVtx(NULL)
, NumberOfRecHitsPerTrackVsGoodPVtx(NULL)
, NumberOfPVtxVsGoodPVtx(NULL)
, NumberOfPixelClustersVsGoodPVtx(NULL)
, NumberOfStripClustersVsGoodPVtx(NULL)
, NumberEventsOfVsLUMI(NULL)
, NumberOfTracksVsLUMI(NULL)
, GoodTracksFractionVsLUMI(NULL)
, NumberOfRecHitsPerTrackVsLUMI(NULL)
, NumberOfGoodPVtxVsLUMI(NULL)
, NumberOfGoodPVtxWO0VsLUMI(NULL)
, NumberOfPixelClustersVsLUMI(NULL)
, NumberOfStripClustersVsLUMI(NULL)
, NumberOfTracks_lumiFlag(NULL)
, NumberOfGoodPVtxVsLS(nullptr)
, NumberOfGoodPVtxWO0VsLS(nullptr)
, NumberEventsOfVsBX (nullptr)
, NumberOfTracksVsBX(nullptr)
, GoodTracksFractionVsBX(nullptr)
, NumberOfRecHitsPerTrackVsBX(nullptr)
, NumberOfGoodPVtxVsBX(nullptr)
, NumberOfGoodPVtxWO0VsBX(nullptr)
, NumberOfTracksVsBXlumi(nullptr)
, NumberOfTracksVsGoodPVtx(nullptr)
, NumberOfTracksVsPUPVtx(nullptr)
, NumberEventsOfVsGoodPVtx(nullptr)
, GoodTracksFractionVsGoodPVtx(nullptr)
, NumberOfRecHitsPerTrackVsGoodPVtx(nullptr)
, NumberOfPVtxVsGoodPVtx(nullptr)
, NumberOfPixelClustersVsGoodPVtx(nullptr)
, NumberOfStripClustersVsGoodPVtx(nullptr)
, NumberEventsOfVsLUMI(nullptr)
, NumberOfTracksVsLUMI(nullptr)
, GoodTracksFractionVsLUMI(nullptr)
, NumberOfRecHitsPerTrackVsLUMI(nullptr)
, NumberOfGoodPVtxVsLUMI(nullptr)
, NumberOfGoodPVtxWO0VsLUMI(nullptr)
, NumberOfPixelClustersVsLUMI(nullptr)
, NumberOfStripClustersVsLUMI(nullptr)
, NumberOfTracks_lumiFlag(nullptr)
// , NumberOfGoodTracks_lumiFlag(NULL)

, builderName ( iConfig.getParameter<std::string>("TTRHBuilder"))
Expand Down Expand Up @@ -613,6 +614,12 @@ void TrackingMonitor::bookHistograms(DQMStore::IBooker & ibooker,
NumberOfTrackCandidates = ibooker.book1D(histname, histname, TCNoBin, TCNoMin, TCNoMax);
NumberOfTrackCandidates->setAxisTitle("Number of Track Candidates per Event", 1);
NumberOfTrackCandidates->setAxisTitle("Number of Event", 2);

histname = "FractionOfCandOverSeeds_"+ tcProducer.label() + "_"+ CategoryName;
FractionCandidatesOverSeeds = ibooker.book1D(histname, histname, 101, 0., 1.01);
FractionCandidatesOverSeeds->setAxisTitle("Number of Track Candidates / Number of Seeds per Event", 1);
FractionCandidatesOverSeeds->setAxisTitle("Number of Event", 2);

}

theTrackBuildingAnalyzer->initHisto(ibooker,*conf);
Expand Down Expand Up @@ -709,7 +716,7 @@ void TrackingMonitor::analyze(const edm::Event& iEvent, const edm::EventSetup& i
float lumi = -1.;
edm::Handle<LumiScalersCollection> lumiScalers;
iEvent.getByToken(lumiscalersToken_, lumiScalers);
if ( lumiScalers.isValid() && lumiScalers->size() ) {
if ( lumiScalers.isValid() && !lumiScalers->empty() ) {
LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
lumi = scalit->instantLumi();
} else
Expand Down Expand Up @@ -855,6 +862,14 @@ void TrackingMonitor::analyze(const edm::Event& iEvent, const edm::EventSetup& i
const reco::BeamSpot& bs = *recoBeamSpotHandle;

NumberOfTrackCandidates->Fill(theTCCollection.size());

// get the seed collection
edm::Handle<edm::View<TrajectorySeed> > seedHandle;
iEvent.getByToken(seedToken_, seedHandle );
const edm::View<TrajectorySeed>& seedCollection = *seedHandle;
if (seedHandle.isValid() && !seedCollection.empty())
FractionCandidatesOverSeeds->Fill(double(theTCCollection.size())/double(seedCollection.size()));

iSetup.get<TransientRecHitRecord>().get(builderName,theTTRHBuilder);
for( TrackCandidateCollection::const_iterator cand = theTCCollection.begin(); cand != theTCCollection.end(); ++cand) {

Expand Down
Loading

0 comments on commit 91fd772

Please sign in to comment.