Skip to content

Commit

Permalink
Merge pull request cms-sw#33463 from sroychow/tkdqmfoldedmap
Browse files Browse the repository at this point in the history
TkDQM: backport of PR 33430
  • Loading branch information
cmsbuild committed Apr 20, 2021
2 parents 8f5c5fe + 4ef45d4 commit 187d6be
Show file tree
Hide file tree
Showing 13 changed files with 265 additions and 86 deletions.
4 changes: 0 additions & 4 deletions DQM/TrackingMonitor/interface/TrackAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,6 @@ namespace tadqm {
MonitorElement* TrackEtaPhi = nullptr;
MonitorElement* TrackEtaPhiInverted = nullptr;
MonitorElement* TrackEtaPhiInvertedoutofphase = nullptr;
MonitorElement* TkEtaPhi_Ratio_byFoldingmap = nullptr;
MonitorElement* TkEtaPhi_Ratio_byFoldingmap_op = nullptr;
MonitorElement* TkEtaPhi_RelativeDifference_byFoldingmap = nullptr;
MonitorElement* TkEtaPhi_RelativeDifference_byFoldingmap_op = nullptr;
MonitorElement* TrackEtaPhiInner = nullptr;
MonitorElement* TrackEtaPhiOuter = nullptr;

Expand Down
4 changes: 0 additions & 4 deletions DQM/TrackingMonitor/interface/TrackEfficiencyClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,7 @@ DQM class to compute the tracking efficiency

#include "DQMServices/Core/interface/DQMStore.h"

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
//#include <map>

class TrackEfficiencyClient : public DQMEDHarvester {
public:
Expand Down
55 changes: 55 additions & 0 deletions DQM/TrackingMonitor/interface/TrackFoldedOccupancyClient.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#ifndef TrackingMonitor_TrackFoldedOccupancyClient_h
#define TrackingMonitor_TrackFoldedOccupancyClient_h
// -*- C++ -*-
//
// Package: TrackingMonitor
// Class : TrackFoldedOccupancyClient
//
//DQM class to plot occupancy in eta phi

#include <string>

#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/LuminosityBlock.h"
#include "FWCore/Framework/interface/Run.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "DQMServices/Core/interface/DQMStore.h"

class TrackFoldedOccupancyClient : public DQMEDHarvester {
public:
/// Constructor
TrackFoldedOccupancyClient(const edm::ParameterSet& ps);

/// Destructor
~TrackFoldedOccupancyClient() override;

protected:
/// BeginJob
void beginJob(void) override;

/// BeginRun
void beginRun(edm::Run const& run, edm::EventSetup const& eSetup) override;

/// EndJob
void dqmEndJob(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_) override;

private:
/// book MEs
void bookMEs(DQMStore::IBooker& ibooker_);

edm::ParameterSet conf_;
std::string algoName_;
std::string quality_;
std::string state_;
std::string histTag_;
std::string TopFolder_;

MonitorElement* TkEtaPhi_RelativeDifference_byFoldingmap = nullptr;
MonitorElement* TkEtaPhi_RelativeDifference_byFoldingmap_op = nullptr;
MonitorElement* TkEtaPhi_Ratio_byFoldingmap = nullptr;
MonitorElement* TkEtaPhi_Ratio_byFoldingmap_op = nullptr;
};
#endif
1 change: 0 additions & 1 deletion DQM/TrackingMonitor/interface/TrackingMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ class TrackingMonitor : public DQMEDAnalyzer {

void analyze(const edm::Event&, const edm::EventSetup&) override;
void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
// virtual void dqmBeginRun(const edm::Run&, const edm::EventSetup&);

private:
void doProfileX(TH2* th2, MonitorElement* me);
Expand Down
43 changes: 43 additions & 0 deletions DQM/TrackingMonitor/python/TrackFoldedOccupancyClient_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester

TrackerMapFoldedClient = DQMEDHarvester("TrackFoldedOccupancyClient",
FolderName = cms.string('Tracking/TrackParameters'),
AlgoName = cms.string('GenTk'),
TrackQuality = cms.string('generalTracks'),
MeasurementState = cms.string('ImpactPoint'),
PhiMax = cms.double(3.141592654),
PhiMin = cms.double(-3.141592654),
EtaMax = cms.double(2.5),
EtaMin = cms.double(-2.5),
Eta2DBin = cms.int32(26),
Phi2DBin = cms.int32(32),
)

from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
phase1Pixel.toModify(TrackerMapFoldedClient, EtaMin=-3., EtaMax=3.)
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toModify(TrackerMapFoldedClient, EtaMin=-4.5, EtaMax=4.5)

TrackerMapFoldedClient_highpurity_dzPV0p1=TrackerMapFoldedClient.clone(
TrackQuality=cms.string('highPurityTracks/dzPV0p1')
)

TrackerMapFoldedClient_highpurity_pt0to1=TrackerMapFoldedClient.clone(
TrackQuality=cms.string('highPurityTracks/pt_0to1')
)

TrackerMapFoldedClient_highpurity_pt1=TrackerMapFoldedClient.clone(
TrackQuality=cms.string('highPurityTracks/pt_1')
)

foldedMapClientSeq=cms.Sequence(TrackerMapFoldedClient*TrackerMapFoldedClient_highpurity_dzPV0p1*TrackerMapFoldedClient_highpurity_pt0to1*TrackerMapFoldedClient_highpurity_pt1)

#run3
TrackerMapFoldedClient_hiConformalPixelTracks=TrackerMapFoldedClient.clone(
TrackQuality = cms.string('hiConformalPixelTracks')
)

folded_with_conformalpixtkclient= cms.Sequence(TrackerMapFoldedClient_hiConformalPixelTracks+foldedMapClientSeq.copy())
from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
pp_on_AA.toReplaceWith(foldedMapClientSeq, folded_with_conformalpixtkclient)
5 changes: 2 additions & 3 deletions DQM/TrackingMonitor/src/GetLumi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
* \author: Mia Tosi,40 3-B32,+41227671609
*/

#include <iostream>
#include "DQM/TrackingMonitor/interface/GetLumi.h"

#include "FWCore/Framework/interface/LuminosityBlock.h"
Expand Down Expand Up @@ -63,9 +62,9 @@ double GetLumi::getRawValue(edm::LuminosityBlock const& lumiBlock, edm::EventSet
if (lumiSummary_->isValid()) {
lumi = lumiSummary_->avgInsDelLumi();
intDelLumi = lumiSummary_->intgDelLumi();
std::cout << "Luminosity in this Lumi Section " << lumi << " --> " << intDelLumi << std::endl;
edm::LogInfo("GetLumi") << "Luminosity in this Lumi Section " << lumi << " --> " << intDelLumi << std::endl;
} else {
std::cout << "No valid data found!" << std::endl;
edm::LogWarning("GetLumi") << "No valid data found!" << std::endl;
}

return lumi;
Expand Down
58 changes: 2 additions & 56 deletions DQM/TrackingMonitor/src/TrackAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1746,30 +1746,6 @@ void TrackAnalyzer::bookHistosForState(std::string sname, DQMStore::IBooker& ibo
tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #eta", 1);
tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_Ratio_byFoldingmap_" + histTag;
tkmes.TkEtaPhi_Ratio_byFoldingmap =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
tkmes.TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #eta", 1);
tkmes.TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_Ratio_byFoldingmap_op_" + histTag;
tkmes.TkEtaPhi_Ratio_byFoldingmap_op =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
tkmes.TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #eta", 1);
tkmes.TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_RelativeDifference_byFoldingmap_" + histTag;
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap->setAxisTitle("Track #eta", 1);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_RelativeDifference_byFoldingmap_op_" + histTag;
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap_op =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap_op->setAxisTitle("Track #eta", 1);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap_op->setAxisTitle("Track #phi", 2);

histname = "TrackQoverP_" + histTag;
tkmes.TrackQoverP = ibooker.book1D(histname, histname, 10 * TrackQBin, TrackQMin, TrackQMax);
tkmes.TrackQoverP->setAxisTitle("Track QoverP", 1);
Expand Down Expand Up @@ -2026,38 +2002,8 @@ void TrackAnalyzer::fillHistosForState(const edm::EventSetup& iSetup, const reco

if (Folder == "Tr") {
tkmes.TrackEtaPhiInverted->Fill(eta, -1 * phi);
tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, 3.141592654 + -1 * phi);
tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, -1 * phi - 3.141592654);
tkmes.TkEtaPhi_Ratio_byFoldingmap->divide(tkmes.TrackEtaPhi, tkmes.TrackEtaPhiInverted, 1., 1., "");
tkmes.TkEtaPhi_Ratio_byFoldingmap_op->divide(tkmes.TrackEtaPhi, tkmes.TrackEtaPhiInvertedoutofphase, 1., 1., "");

int nx = tkmes.TrackEtaPhi->getNbinsX();
int ny = tkmes.TrackEtaPhi->getNbinsY();

//NOTE: for full reproducibility when using threads, this loop needs to be
// a critical section
for (int ii = 1; ii <= nx; ii++) {
for (int jj = 1; jj <= ny; jj++) {
double Sum1 = tkmes.TrackEtaPhi->getBinContent(ii, jj) + tkmes.TrackEtaPhiInverted->getBinContent(ii, jj);
double Sum2 =
tkmes.TrackEtaPhi->getBinContent(ii, jj) + tkmes.TrackEtaPhiInvertedoutofphase->getBinContent(ii, jj);

double Sub1 = tkmes.TrackEtaPhi->getBinContent(ii, jj) - tkmes.TrackEtaPhiInverted->getBinContent(ii, jj);
double Sub2 =
tkmes.TrackEtaPhi->getBinContent(ii, jj) - tkmes.TrackEtaPhiInvertedoutofphase->getBinContent(ii, jj);

if (Sum1 == 0 || Sum2 == 0) {
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap->setBinContent(ii, jj, 1);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap_op->setBinContent(ii, jj, 1);
} else {
double ratio1 = Sub1 / Sum1;
double ratio2 = Sub2 / Sum2;
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap->setBinContent(ii, jj, ratio1);
tkmes.TkEtaPhi_RelativeDifference_byFoldingmap_op->setBinContent(ii, jj, ratio2);
}
}
}

tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, M_PI - phi);
tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, -(phi + M_PI));
//pT histograms to create efficiency vs pT plot, only for the most inefficient region.

if (eta < 0. && phi < -1.6) {
Expand Down
2 changes: 0 additions & 2 deletions DQM/TrackingMonitor/src/TrackBuildingAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@
#include <string>
#include "TMath.h"

#include <iostream>

TrackBuildingAnalyzer::TrackBuildingAnalyzer(const edm::ParameterSet& iConfig)
: doAllPlots(iConfig.getParameter<bool>("doAllPlots")),
doAllSeedPlots(iConfig.getParameter<bool>("doSeedParameterHistos")),
Expand Down
12 changes: 0 additions & 12 deletions DQM/TrackingMonitor/src/TrackEfficiencyClient.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,9 @@
*/

#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "FWCore/Framework/interface/LuminosityBlock.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/ParameterSet/interface/FileInPath.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "DQM/TrackingMonitor/interface/TrackEfficiencyClient.h"
#include "DQMServices/Core/interface/DQMStore.h"

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <string>
#include <sstream>
#include <cmath>

//-----------------------------------------------------------------------------------
TrackEfficiencyClient::TrackEfficiencyClient(edm::ParameterSet const& iConfig)
Expand Down
122 changes: 122 additions & 0 deletions DQM/TrackingMonitor/src/TrackFoldedOccupancyClient.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/ParameterSet/interface/FileInPath.h"
#include "DQM/TrackingMonitor/interface/TrackFoldedOccupancyClient.h"
//-----------------------------------------------------------------------------------
TrackFoldedOccupancyClient::TrackFoldedOccupancyClient(edm::ParameterSet const& iConfig)
//-----------------------------------------------------------------------------------
{
edm::LogInfo("TrackFoldedOccupancyClient") << "TrackFoldedOccupancyClient::Deleting TrackFoldedOccupancyClient ";
TopFolder_ = iConfig.getParameter<std::string>("FolderName");
quality_ = iConfig.getParameter<std::string>("TrackQuality");
algoName_ = iConfig.getParameter<std::string>("AlgoName");
state_ = iConfig.getParameter<std::string>("MeasurementState");
histTag_ = (state_ == "default") ? algoName_ : state_ + "_" + algoName_;
conf_ = iConfig;
}

//-----------------------------------------------------------------------------------
TrackFoldedOccupancyClient::~TrackFoldedOccupancyClient()
//-----------------------------------------------------------------------------------
{
edm::LogInfo("TrackFoldedOccupancyClient") << "TrackFoldedOccupancyClient::Deleting TrackFoldedOccupancyClient ";
}

//-----------------------------------------------------------------------------------
void TrackFoldedOccupancyClient::beginJob(void)
//-----------------------------------------------------------------------------------
{
edm::LogInfo("TrackFoldedOccupancyClient") << "TrackFoldedOccupancyClient::beginJob done";
}

//-----------------------------------------------------------------------------------
void TrackFoldedOccupancyClient::beginRun(edm::Run const& run, edm::EventSetup const& eSetup)
//-----------------------------------------------------------------------------------
{
edm::LogInfo("TrackFoldedOccupancyClient") << "TrackFoldedOccupancyClient:: Begining of Run";
}

//-----------------------------------------------------------------------------------
void TrackFoldedOccupancyClient::bookMEs(DQMStore::IBooker& ibooker)
//-----------------------------------------------------------------------------------
{
ibooker.setCurrentFolder(TopFolder_ + "/" + quality_ + "/GeneralProperties/");
int Phi2DBin = conf_.getParameter<int>("Phi2DBin");
int Eta2DBin = conf_.getParameter<int>("Eta2DBin");
double EtaMin = conf_.getParameter<double>("EtaMin");
double EtaMax = conf_.getParameter<double>("EtaMax");
double PhiMin = conf_.getParameter<double>("PhiMin");
double PhiMax = conf_.getParameter<double>("PhiMax");

// use the AlgoName and Quality Name
std::string histname = "TkEtaPhi_RelativeDifference_byFoldingmap_" + histTag_;
TkEtaPhi_RelativeDifference_byFoldingmap =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
TkEtaPhi_RelativeDifference_byFoldingmap->setAxisTitle("Track #eta", 1);
TkEtaPhi_RelativeDifference_byFoldingmap->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_RelativeDifference_byFoldingmap_op_" + histTag_;
TkEtaPhi_RelativeDifference_byFoldingmap_op =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
TkEtaPhi_RelativeDifference_byFoldingmap_op->setAxisTitle("Track #eta", 1);
TkEtaPhi_RelativeDifference_byFoldingmap_op->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_Ratio_byFoldingmap_" + histTag_;
TkEtaPhi_Ratio_byFoldingmap = ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #eta", 1);
TkEtaPhi_Ratio_byFoldingmap->setAxisTitle("Track #phi", 2);

histname = "TkEtaPhi_Ratio_byFoldingmap_op_" + histTag_;
TkEtaPhi_Ratio_byFoldingmap_op =
ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #eta", 1);
TkEtaPhi_Ratio_byFoldingmap_op->setAxisTitle("Track #phi", 2);
}

//-----------------------------------------------------------------------------------
void TrackFoldedOccupancyClient::dqmEndJob(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter)
//-----------------------------------------------------------------------------------
{
edm::LogInfo("TrackFoldedOccupancyClient") << "TrackFoldedOccupancyClient::endLuminosityBlock";

bookMEs(ibooker);
std::string inFolder = TopFolder_ + "/" + quality_ + "/GeneralProperties/";

std::string hname;
hname = "TrackEtaPhi_";
MonitorElement* TrackEtaPhi = igetter.get(inFolder + hname + histTag_);

hname = "TrackEtaPhiInverted_";
MonitorElement* TrackEtaPhiInverted = igetter.get(inFolder + hname + histTag_);

hname = "TrackEtaPhiInvertedoutofphase_";
MonitorElement* TrackEtaPhiInvertedoutofphase = igetter.get(inFolder + hname + histTag_);

TkEtaPhi_Ratio_byFoldingmap->divide(TrackEtaPhi, TrackEtaPhiInverted, 1., 1., "");
TkEtaPhi_Ratio_byFoldingmap_op->divide(TrackEtaPhi, TrackEtaPhiInvertedoutofphase, 1., 1., "");

int nx = TrackEtaPhi->getNbinsX();
int ny = TrackEtaPhi->getNbinsY();

for (int ii = 1; ii <= nx; ii++) {
for (int jj = 1; jj <= ny; jj++) {
double Sum1 = TrackEtaPhi->getBinContent(ii, jj) + TrackEtaPhiInverted->getBinContent(ii, jj);
double Sum2 = TrackEtaPhi->getBinContent(ii, jj) + TrackEtaPhiInvertedoutofphase->getBinContent(ii, jj);

double Sub1 = TrackEtaPhi->getBinContent(ii, jj) - TrackEtaPhiInverted->getBinContent(ii, jj);
double Sub2 = TrackEtaPhi->getBinContent(ii, jj) - TrackEtaPhiInvertedoutofphase->getBinContent(ii, jj);

if (Sum1 == 0 || Sum2 == 0) {
TkEtaPhi_RelativeDifference_byFoldingmap->setBinContent(ii, jj, 1);
TkEtaPhi_RelativeDifference_byFoldingmap_op->setBinContent(ii, jj, 1);
} else {
double ratio1 = Sub1 / Sum1;
double ratio2 = Sub2 / Sum2;
TkEtaPhi_RelativeDifference_byFoldingmap->setBinContent(ii, jj, ratio1);
TkEtaPhi_RelativeDifference_byFoldingmap_op->setBinContent(ii, jj, ratio2);
}
}
}
}

DEFINE_FWK_MODULE(TrackFoldedOccupancyClient);
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,20 @@
TrackEffClient.FolderName = 'Tracking/TrackParameters/TrackEfficiency'
TrackEffClient.AlgoName = 'CKFTk'

from DQM.TrackingMonitor.TrackFoldedOccupancyClient_cfi import TrackerMapFoldedClient

TrackerMapFoldedClient_CKFTk=TrackerMapFoldedClient.clone(
AlgoName = cms.string('CKFTk'),
MeasurementState = cms.string('default'),
TrackQuality = cms.string('')
)

TrackerMapFoldedClient_CosmicTk=TrackerMapFoldedClient.clone(
AlgoName = cms.string('CosmicTk'),
MeasurementState = cms.string('default'),
TrackQuality = cms.string('')
)

# Sequence
TrackingCosmicDQMClient = cms.Sequence(trackingQTester*trackingOfflineAnalyser*TrackEffClient)
TrackingCosmicDQMClient = cms.Sequence(trackingQTester*trackingOfflineAnalyser*TrackEffClient*TrackerMapFoldedClient_CKFTk*TrackerMapFoldedClient_CosmicTk)

0 comments on commit 187d6be

Please sign in to comment.