Skip to content

Commit

Permalink
add timing vs lumi plots
Browse files Browse the repository at this point in the history
  • Loading branch information
mtosi committed Jul 12, 2016
1 parent d9bb33a commit 0b32cce
Show file tree
Hide file tree
Showing 5 changed files with 232 additions and 55 deletions.
91 changes: 49 additions & 42 deletions DQM/HLTEvF/plugins/LumiMonitor.cc
Expand Up @@ -10,35 +10,48 @@
// -----------------------------

LumiMonitor::LumiMonitor( const edm::ParameterSet& iConfig ) :
conf_(iConfig)
, doPixelLumi_ ( conf_.getParameter<bool> ("doPixelLumi") )
, useBPixLayer1_ ( conf_.getParameter<bool> ("useBPixLayer1") )
, minNumberOfPixelsPerCluster_ ( conf_.getParameter<int> ("minNumberOfPixelsPerCluster") )
, minPixelClusterCharge_ ( conf_.getParameter<double>("minPixelClusterCharge") )

folderName_ ( iConfig.getParameter<std::string>("FolderName") )
, lumiScalersToken_ ( consumes<LumiScalersCollection>(iConfig.getParameter<edm::InputTag>("scalers") ) )
, lumi_binning_ ( getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lumiPSet")) )
, ls_binning_ ( getHistoLSPSet(iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lsPSet")) )
, doPixelLumi_ ( iConfig.getParameter<bool>("doPixelLumi") )
, pixelClustersToken_ ( doPixelLumi_ ? consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<edm::InputTag>("pixelClusters") ) : edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster>> () )
, useBPixLayer1_ ( doPixelLumi_ ? iConfig.getParameter<bool> ("useBPixLayer1") : false )
, minNumberOfPixelsPerCluster_ ( doPixelLumi_ ? iConfig.getParameter<int> ("minNumberOfPixelsPerCluster") : -1 )
, minPixelClusterCharge_ ( doPixelLumi_ ? iConfig.getParameter<double> ("minPixelClusterCharge") : -1. )
, pixelCluster_binning_ ( doPixelLumi_ ? getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("pixelClusterPSet")) : MEbinning {} )
, pixellumi_binning_ ( doPixelLumi_ ? getHistoPSet (iConfig.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("pixellumiPSet")) : MEbinning {} )
{

folderName_ = conf_.getParameter<std::string>("FolderName");

pixelClustersToken_ = mayConsume<edmNew::DetSetVector<SiPixelCluster> >(conf_.getParameter<edm::InputTag>("pixelClusters"));
lumiscalersToken_ = mayConsume<LumiScalersCollection>(conf_.getParameter<edm::InputTag>("scalers"));

numberOfPixelClustersVsLS_ = NULL;
numberOfPixelClustersVsLumi_ = NULL;
lumiVsLS_ = NULL;
pixelLumiVsLS_ = NULL;
pixelLumiVsLumi_ = NULL;
numberOfPixelClustersVsLS_ = nullptr;
numberOfPixelClustersVsLumi_ = nullptr;
lumiVsLS_ = nullptr;
pixelLumiVsLS_ = nullptr;
pixelLumiVsLumi_ = nullptr;

if(useBPixLayer1_)
lumi_factor_per_bx_ = GetLumi::FREQ_ORBIT * GetLumi::SECONDS_PER_LS / GetLumi::XSEC_PIXEL_CLUSTER ;
else
lumi_factor_per_bx_ = GetLumi::FREQ_ORBIT * GetLumi::SECONDS_PER_LS / GetLumi::rXSEC_PIXEL_CLUSTER ;


}

LumiMonitor::~LumiMonitor() {
MEbinning LumiMonitor::getHistoPSet(edm::ParameterSet pset)
{
return MEbinning{
pset.getParameter<int32_t>("nbins"),
pset.getParameter<double>("xmin"),
pset.getParameter<double>("xmax"),
};
}

MEbinning LumiMonitor::getHistoLSPSet(edm::ParameterSet pset)
{
return MEbinning{
pset.getParameter<int32_t>("nbins"),
0.,
double(pset.getParameter<int32_t>("nbins"))
};
}

void LumiMonitor::bookHistograms(DQMStore::IBooker & ibooker,
Expand All @@ -48,53 +61,47 @@ void LumiMonitor::bookHistograms(DQMStore::IBooker & ibooker,

std::string histname, histtitle;

edm::ParameterSet histoPSet = conf_.getParameter<edm::ParameterSet>("histoPSet");
edm::ParameterSet pixelClusterPSet = histoPSet.getParameter<edm::ParameterSet>("pixelClusterPSet");
edm::ParameterSet lumiPSet = histoPSet.getParameter<edm::ParameterSet>("lumiPSet");
edm::ParameterSet pixellumiPSet = histoPSet.getParameter<edm::ParameterSet>("pixellumiPSet");
edm::ParameterSet lsPSet = histoPSet.getParameter<edm::ParameterSet>("lsPSet");

std::string currentFolder = folderName_ ;
ibooker.setCurrentFolder(currentFolder.c_str());

if ( doPixelLumi_ ) {
histname = "numberOfPixelClustersVsLS"; histtitle = "number of pixel clusters vs LS";
numberOfPixelClustersVsLS_ = ibooker.book1D(histname, histtitle,
lsPSet.getParameter<int32_t>("nbins"), 0., double(lsPSet.getParameter<int32_t>("nbins")));
ls_binning_.nbins, ls_binning_.xmin, ls_binning_.xmax);
// numberOfPixelClustersVsLS_->getTH1()->SetCanExtend(TH1::kAllAxes);
numberOfPixelClustersVsLS_->setAxisTitle("LS",1);
numberOfPixelClustersVsLS_->setAxisTitle("number of pixel clusters",2);

histname = "numberOfPixelClustersVsLumi"; histtitle = "number of pixel clusters vs lumi";
histname = "numberOfPixelClustersVsLumi"; histtitle = "number of pixel clusters vs scal lumi";
numberOfPixelClustersVsLumi_ = ibooker.bookProfile(histname, histtitle,
lumiPSet.getParameter<int32_t>("nbins"), lumiPSet.getParameter<double>("xmin"), lumiPSet.getParameter<double>("xmax"),
pixelClusterPSet.getParameter<double>("xmin"), pixelClusterPSet.getParameter<double>("xmax"));
numberOfPixelClustersVsLumi_->setAxisTitle("(SCAL) inst lumi E30 [Hz cm^{-2}]",1);
lumi_binning_.nbins, lumi_binning_.xmin, lumi_binning_.xmax,
pixelCluster_binning_.xmin,pixelCluster_binning_.xmax);
numberOfPixelClustersVsLumi_->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]",1);
numberOfPixelClustersVsLumi_->setAxisTitle("number of pixel clusters",2);

histname = "pixelLumiVsLS"; histtitle = "pixel-lumi vs LS";
pixelLumiVsLS_ = ibooker.bookProfile(histname, histtitle,
lsPSet.getParameter<int32_t>("nbins"), 0., double(lsPSet.getParameter<int32_t>("nbins")),
pixellumiPSet.getParameter<double>("xmin"), pixellumiPSet.getParameter<double>("xmax"));
ls_binning_.nbins, ls_binning_.xmin, ls_binning_.xmax,
pixellumi_binning_.xmin,pixellumi_binning_.xmax);
// pixelLumiVsLS_->getTH1()->SetCanExtend(TH1::kAllAxes);
pixelLumiVsLS_->setAxisTitle("LS",1);
pixelLumiVsLS_->setAxisTitle("(pixel-lumi) inst lumi E30 [Hz cm^{-2}]",2);
pixelLumiVsLS_->setAxisTitle("pixel-based inst lumi E30 [Hz cm^{-2}]",2);

histname = "pixelLumiVsLumi"; histtitle = "pixel-lumi vs lumi";
histname = "pixelLumiVsLumi"; histtitle = "pixel-lumi vs scal lumi";
pixelLumiVsLumi_ = ibooker.bookProfile(histname, histtitle,
lumiPSet.getParameter<int32_t>("nbins"), lumiPSet.getParameter<double>("xmin"), lumiPSet.getParameter<double>("xmax"),
pixellumiPSet.getParameter<double>("xmin"), pixellumiPSet.getParameter<double>("xmax"));
pixelLumiVsLumi_->setAxisTitle("(SCAL) inst lumi E30 [Hz cm^{-2}]",1);
pixelLumiVsLumi_->setAxisTitle("(pixel-lumi) inst lumi E30 [Hz cm^{-2}]",2);
lumi_binning_.nbins,lumi_binning_.xmin,lumi_binning_.xmax,
pixellumi_binning_.xmin,lumi_binning_.xmax);
pixelLumiVsLumi_->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]",1);
pixelLumiVsLumi_->setAxisTitle("pixel-based inst lumi E30 [Hz cm^{-2}]",2);
}

histname = "lumiVsLS"; histtitle = "lumi vs LS";
histname = "lumiVsLS"; histtitle = "scal lumi vs LS";
lumiVsLS_ = ibooker.bookProfile(histname, histtitle,
lsPSet.getParameter<int32_t>("nbins"), 0., double(lsPSet.getParameter<int32_t>("nbins")),
lumiPSet.getParameter<double>("xmin"), lumiPSet.getParameter<double>("xmax"));
ls_binning_.nbins, ls_binning_.xmin, ls_binning_.xmax,
lumi_binning_.xmin, lumi_binning_.xmax);
// lumiVsLS_->getTH1()->SetCanExtend(TH1::kAllAxes);
lumiVsLS_->setAxisTitle("LS",1);
lumiVsLS_->setAxisTitle("(SCAL) inst lumi E30 [Hz cm^{-2}]",2);
lumiVsLS_->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]",2);

}

Expand All @@ -109,7 +116,7 @@ void LumiMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetu

float scal_lumi = -1.;
edm::Handle<LumiScalersCollection> lumiScalers;
iEvent.getByToken(lumiscalersToken_, lumiScalers);
iEvent.getByToken(lumiScalersToken_, lumiScalers);
if ( lumiScalers.isValid() && lumiScalers->size() ) {
LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
scal_lumi = scalit->instantLumi();
Expand Down
34 changes: 23 additions & 11 deletions DQM/HLTEvF/plugins/LumiMonitor.h
Expand Up @@ -25,6 +25,14 @@
#include "DataFormats/Luminosity/interface/LumiSummary.h"


struct MEbinning {
int nbins;
double xmin;
double xmax;
// MEbinning() {};
// explicit MEbinning(int n, double min, double max) { nbins= n; xmin = min; xmax = max;}
};

//
// class declaration
//
Expand All @@ -33,7 +41,7 @@ class LumiMonitor : public DQMEDAnalyzer
{
public:
LumiMonitor( const edm::ParameterSet& );
~LumiMonitor();
~LumiMonitor() = default;
static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
static void fillHistoPSetDescription(edm::ParameterSetDescription & pset);
static void fillHistoLSPSetDescription(edm::ParameterSetDescription & pset);
Expand All @@ -45,14 +53,24 @@ class LumiMonitor : public DQMEDAnalyzer

private:

void bookHistograms();

edm::ParameterSet conf_;
static MEbinning getHistoPSet (edm::ParameterSet pset);
static MEbinning getHistoLSPSet(edm::ParameterSet pset);

std::string folderName_;

edm::EDGetTokenT<LumiScalersCollection> lumiScalersToken_;
MEbinning lumi_binning_;
MEbinning ls_binning_;

bool doPixelLumi_;
edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > pixelClustersToken_;
edm::EDGetTokenT<LumiScalersCollection> lumiscalersToken_;
bool useBPixLayer1_;
int minNumberOfPixelsPerCluster_;
float minPixelClusterCharge_;
MEbinning pixelCluster_binning_;
MEbinning pixellumi_binning_;


edm::EDGetTokenT<LumiSummary> lumiSummaryToken_;

MonitorElement* numberOfPixelClustersVsLS_;
Expand All @@ -61,14 +79,8 @@ class LumiMonitor : public DQMEDAnalyzer
MonitorElement* pixelLumiVsLS_;
MonitorElement* pixelLumiVsLumi_;

bool doPixelLumi_;
bool useBPixLayer1_;
int minNumberOfPixelsPerCluster_;
float minPixelClusterCharge_;

float lumi_factor_per_bx_;

unsigned long long m_cacheID_;
};

#endif // LUMIMONITOR_H
10 changes: 10 additions & 0 deletions DQM/Integration/python/clients/hlt_dqm_clientPB-live_cfg.py
Expand Up @@ -26,5 +26,15 @@
# FastTimerService client
process.load('HLTrigger.Timer.fastTimerServiceClient_cfi')
process.fastTimerServiceClient.dqmPath = "HLT/TimerService"
# timing VS lumi
process.fastTimerServiceClient.doPlotsVsScalLumi = cms.bool(True)
process.fastTimerServiceClient.doPlotsVsPixelLumi = cms.bool(False)
process.fastTimerServiceClient.scalLumiME = cms.PSet(
folder = cms.string('HLT/LumiMonitoring'),
name = cms.string('lumiVsLS'),
nbins = cms.int32(6500),
xmin = cms.double(0),
xmax = cms.double(13000)
)

process.p = cms.EndPath( process.fastTimerServiceClient + process.dqmEnv + process.dqmSaver )
2 changes: 1 addition & 1 deletion DQM/TrackingMonitor/interface/GetLumi.h
Expand Up @@ -34,7 +34,7 @@ class GetLumi

static constexpr double INELASTIC_XSEC_7TeV = 68.0; // mb
static constexpr double INELASTIC_XSEC_8TeV = 69.3; // mb
static constexpr double INELASTIC_XSEC_13TeV = 71.0; // mb
static constexpr double INELASTIC_XSEC_13TeV = 71.3; // mb from http://inspirehep.net/record/1447965/files/FSQ-15-005-pas.pdf

// from http://cmslxr.fnal.gov/source/DQM/PixelLumi/plugins/PixelLumiDQM.h
// Using all pixel clusters:
Expand Down

0 comments on commit 0b32cce

Please sign in to comment.