CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
LumiMonitor Class Reference
Inheritance diagram for LumiMonitor:
DQMGlobalEDAnalyzer< Histograms > edm::global::EDAnalyzer< edm::RunCache< Histograms >, Args... > edm::global::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 LumiMonitor (const edm::ParameterSet &)
 
 ~LumiMonitor () override=default
 
- Public Member Functions inherited from edm::global::EDAnalyzer< edm::RunCache< Histograms >, Args... >
 EDAnalyzer ()=default
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void fillHistoLSPSetDescription (edm::ParameterSetDescription &pset)
 
static void fillHistoPSetDescription (edm::ParameterSetDescription &pset)
 
- Static Public Member Functions inherited from edm::global::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, Histograms const &) const override
 

Static Private Member Functions

static MEbinning getHistoLSPSet (const edm::ParameterSet &pset)
 
static MEbinning getHistoPSet (const edm::ParameterSet &pset)
 

Private Attributes

bool doPixelLumi_
 
std::string folderName_
 
MEbinning ls_binning_
 
MEbinning lumi_binning_
 
float lumi_factor_per_bx_
 
edm::EDGetTokenT< LumiScalersCollectionlumiScalersToken_
 
edm::EDGetTokenT< LumiSummarylumiSummaryToken_
 
int minNumberOfPixelsPerCluster_
 
float minPixelClusterCharge_
 
MEbinning pixelCluster_binning_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
 
MEbinning pixellumi_binning_
 
MEbinning pu_binning_
 
bool useBPixLayer1_
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzer< Histograms >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 46 of file LumiMonitor.cc.

Constructor & Destructor Documentation

LumiMonitor::LumiMonitor ( const edm::ParameterSet config)

Definition at line 85 of file LumiMonitor.cc.

References doPixelLumi_, GetLumi::FREQ_ORBIT, getHistoPSet(), edm::ParameterSet::getParameter(), lumi_factor_per_bx_, pixellumi_binning_, GetLumi::rXSEC_PIXEL_CLUSTER, GetLumi::SECONDS_PER_LS, useBPixLayer1_, and GetLumi::XSEC_PIXEL_CLUSTER.

86  : folderName_(config.getParameter<std::string>("FolderName")),
87  lumiScalersToken_(consumes<LumiScalersCollection>(config.getParameter<edm::InputTag>("scalers"))),
89  config.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lumiPSet"))),
93  config.getParameter<edm::ParameterSet>("histoPSet").getParameter<edm::ParameterSet>("lsPSet"))),
94  doPixelLumi_(config.getParameter<bool>("doPixelLumi")),
96  config.getParameter<edm::InputTag>("pixelClusters"))
98  useBPixLayer1_(doPixelLumi_ ? config.getParameter<bool>("useBPixLayer1") : false),
99  minNumberOfPixelsPerCluster_(doPixelLumi_ ? config.getParameter<int>("minNumberOfPixelsPerCluster") : -1),
100  minPixelClusterCharge_(doPixelLumi_ ? config.getParameter<double>("minPixelClusterCharge") : -1.),
102  .getParameter<edm::ParameterSet>("pixelClusterPSet"))
103  : MEbinning{}),
105  .getParameter<edm::ParameterSet>("pixellumiPSet"))
106  : MEbinning{}) {
107  if (useBPixLayer1_) {
109  } else {
111  }
112 }
T getParameter(std::string const &) const
bool useBPixLayer1_
Definition: LumiMonitor.cc:70
static MEbinning getHistoPSet(const edm::ParameterSet &pset)
Definition: LumiMonitor.cc:114
MEbinning pu_binning_
Definition: LumiMonitor.cc:65
float minPixelClusterCharge_
Definition: LumiMonitor.cc:72
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: LumiMonitor.cc:69
static double XSEC_PIXEL_CLUSTER
Definition: GetLumi.h:36
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string folderName_
Definition: LumiMonitor.cc:61
edm::EDGetTokenT< LumiScalersCollection > lumiScalersToken_
Definition: LumiMonitor.cc:63
MEbinning pixellumi_binning_
Definition: LumiMonitor.cc:74
static MEbinning getHistoLSPSet(const edm::ParameterSet &pset)
Definition: LumiMonitor.cc:122
static double rXSEC_PIXEL_CLUSTER
Definition: GetLumi.h:40
bool doPixelLumi_
Definition: LumiMonitor.cc:68
MEbinning pixelCluster_binning_
Definition: LumiMonitor.cc:73
float lumi_factor_per_bx_
Definition: LumiMonitor.cc:78
int minNumberOfPixelsPerCluster_
Definition: LumiMonitor.cc:71
MEbinning lumi_binning_
Definition: LumiMonitor.cc:64
static double FREQ_ORBIT
Definition: GetLumi.h:26
MEbinning ls_binning_
Definition: LumiMonitor.cc:66
static double SECONDS_PER_LS
Definition: GetLumi.h:27
LumiMonitor::~LumiMonitor ( )
overridedefault

Member Function Documentation

void LumiMonitor::bookHistograms ( DQMStore::IBooker booker,
edm::Run const &  run,
edm::EventSetup const &  setup,
Histograms histograms 
) const
overrideprivatevirtual

Implements DQMGlobalEDAnalyzer< Histograms >.

Definition at line 126 of file LumiMonitor.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), doPixelLumi_, folderName_, ls_binning_, lumi_binning_, hlt_dqm_clientPB-live_cfg::me, pixelCluster_binning_, pixellumi_binning_, pu_binning_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

129  {
130  booker.setCurrentFolder(folderName_);
131 
132  if (doPixelLumi_) {
133  auto me = booker.book1D("numberOfPixelClustersVsLS",
134  "number of pixel clusters vs LS",
135  ls_binning_.nbins,
136  ls_binning_.xmin,
137  ls_binning_.xmax);
138  me->setAxisTitle("LS", 1);
139  me->setAxisTitle("number of pixel clusters", 2);
140  histograms.numberOfPixelClustersVsLS = me;
141 
142  me = booker.bookProfile("numberOfPixelClustersVsLumi",
143  "number of pixel clusters vs scal lumi",
144  lumi_binning_.nbins,
145  lumi_binning_.xmin,
146  lumi_binning_.xmax,
148  pixelCluster_binning_.xmax);
149  me->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]", 1);
150  me->setAxisTitle("number of pixel clusters", 2);
151  histograms.numberOfPixelClustersVsLumi = me;
152 
153  me = booker.bookProfile("pixelLumiVsLS",
154  "pixel-lumi vs LS",
155  ls_binning_.nbins,
156  ls_binning_.xmin,
157  ls_binning_.xmax,
158  pixellumi_binning_.xmin,
159  pixellumi_binning_.xmax);
160  me->setAxisTitle("LS", 1);
161  me->setAxisTitle("pixel-based inst lumi E30 [Hz cm^{-2}]", 2);
162  histograms.pixelLumiVsLS = me;
163 
164  me = booker.bookProfile("pixelLumiVsLumi",
165  "pixel-lumi vs scal lumi",
166  lumi_binning_.nbins,
167  lumi_binning_.xmin,
168  lumi_binning_.xmax,
169  pixellumi_binning_.xmin,
170  lumi_binning_.xmax);
171  me->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]", 1);
172  me->setAxisTitle("pixel-based inst lumi E30 [Hz cm^{-2}]", 2);
173  histograms.pixelLumiVsLumi = me;
174  }
175 
176  auto me = booker.bookProfile("lumiVsLS",
177  "scal lumi vs LS",
178  ls_binning_.nbins,
179  ls_binning_.xmin,
180  ls_binning_.xmax,
181  lumi_binning_.xmin,
182  lumi_binning_.xmax);
183  me->setAxisTitle("LS", 1);
184  me->setAxisTitle("scal inst lumi E30 [Hz cm^{-2}]", 2);
185  histograms.lumiVsLS = me;
186 
187  me = booker.bookProfile("puVsLS",
188  "scal PU vs LS",
189  ls_binning_.nbins,
190  ls_binning_.xmin,
191  ls_binning_.xmax,
192  pu_binning_.xmin,
193  pu_binning_.xmax);
194  me->setAxisTitle("LS", 1);
195  me->setAxisTitle("scal PU", 2);
196  histograms.puVsLS = me;
197 }
MEbinning pu_binning_
Definition: LumiMonitor.cc:65
std::string folderName_
Definition: LumiMonitor.cc:61
MEbinning pixellumi_binning_
Definition: LumiMonitor.cc:74
bool doPixelLumi_
Definition: LumiMonitor.cc:68
MEbinning pixelCluster_binning_
Definition: LumiMonitor.cc:73
MEbinning lumi_binning_
Definition: LumiMonitor.cc:64
MEbinning ls_binning_
Definition: LumiMonitor.cc:66
void LumiMonitor::dqmAnalyze ( edm::Event const &  event,
edm::EventSetup const &  setup,
Histograms const &  histograms 
) const
overrideprivate

Definition at line 199 of file LumiMonitor.cc.

References GetLumi::CM2_TO_NANOBARN, doPixelLumi_, edm::HandleBase::isValid(), eostools::ls(), lumi_factor_per_bx_, V0Monitor_cfi::lumiScalers, lumiScalersToken_, minNumberOfPixelsPerCluster_, minPixelClusterCharge_, PixelSubdetector::PixelBarrel, LumiMonitor_cff::pixelClusters, pixelClustersToken_, singleTopDQM_cfi::setup, and DetId::subdetId().

201  {
202  int ls = event.id().luminosityBlock();
203 
204  float scal_lumi = -1.;
205  float scal_pu = -1.;
207  event.getByToken(lumiScalersToken_, lumiScalers);
208  if (lumiScalers.isValid() and not lumiScalers->empty()) {
209  auto scalit = lumiScalers->begin();
210  scal_lumi = scalit->instantLumi();
211  scal_pu = scalit->pileup();
212  } else {
213  scal_lumi = -1.;
214  scal_pu = -1.;
215  }
216  histograms.lumiVsLS->Fill(ls, scal_lumi);
217  histograms.puVsLS->Fill(ls, scal_pu);
218 
219  if (doPixelLumi_) {
220  size_t pixel_clusters = 0;
221  float pixel_lumi = -1.;
223  event.getByToken(pixelClustersToken_, pixelClusters);
224  if (pixelClusters.isValid()) {
225  auto const& tTopo = edm::get<TrackerTopology, TrackerTopologyRcd>(setup);
226 
227  // Count the number of clusters with at least a minimum
228  // number of pixels per cluster and at least a minimum charge.
229  size_t tot = 0;
230  for (auto pixCluDet = pixelClusters->begin(); pixCluDet != pixelClusters->end(); ++pixCluDet) {
231  DetId detid = pixCluDet->detId();
232  size_t subdetid = detid.subdetId();
233  if (subdetid == (int)PixelSubdetector::PixelBarrel) {
234  if (tTopo.layer(detid) == 1) {
235  continue;
236  }
237  }
238 
239  for (auto pixClu = pixCluDet->begin(); pixClu != pixCluDet->end(); ++pixClu) {
240  ++tot;
241  if ((pixClu->size() >= minNumberOfPixelsPerCluster_) and (pixClu->charge() >= minPixelClusterCharge_)) {
242  ++pixel_clusters;
243  }
244  }
245  }
246  pixel_lumi = lumi_factor_per_bx_ * pixel_clusters / GetLumi::CM2_TO_NANOBARN; // ?!?!
247  } else {
248  pixel_lumi = -1.;
249  }
250 
251  histograms.numberOfPixelClustersVsLS->Fill(ls, pixel_clusters);
252  histograms.numberOfPixelClustersVsLumi->Fill(scal_lumi, pixel_clusters);
253  histograms.pixelLumiVsLS->Fill(ls, pixel_lumi);
254  histograms.pixelLumiVsLumi->Fill(scal_lumi, pixel_lumi);
255  }
256 }
float minPixelClusterCharge_
Definition: LumiMonitor.cc:72
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: LumiMonitor.cc:69
edm::EDGetTokenT< LumiScalersCollection > lumiScalersToken_
Definition: LumiMonitor.cc:63
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static double CM2_TO_NANOBARN
Definition: GetLumi.h:42
bool isValid() const
Definition: HandleBase.h:70
Definition: DetId.h:17
def ls(path, rec=False)
Definition: eostools.py:349
bool doPixelLumi_
Definition: LumiMonitor.cc:68
float lumi_factor_per_bx_
Definition: LumiMonitor.cc:78
int minNumberOfPixelsPerCluster_
Definition: LumiMonitor.cc:71
void LumiMonitor::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 266 of file LumiMonitor.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), DEFINE_FWK_MODULE, fillHistoLSPSetDescription(), fillHistoPSetDescription(), LumiMonitor_cff::histoPSet, HLT_2018_cff::InputTag, LumiMonitor_cff::lsPSet, LumiMonitor_cff::lumiPSet, LumiMonitor_cff::pixelClusterPSet, LumiMonitor_cff::pixellumiPSet, LumiMonitor_cff::puPSet, and AlCaHLTBitMon_QueryRunRegistry::string.

266  {
268  desc.add<edm::InputTag>("pixelClusters", edm::InputTag("hltSiPixelClusters"));
269  desc.add<edm::InputTag>("scalers", edm::InputTag("hltScalersRawToDigi"));
270  desc.add<std::string>("FolderName", "HLT/LumiMonitoring");
271  desc.add<bool>("doPixelLumi", false);
272  desc.add<bool>("useBPixLayer1", false);
273  desc.add<int>("minNumberOfPixelsPerCluster", 2); // from DQM/PixelLumi/python/PixelLumiDQM_cfi.py
274  desc.add<double>("minPixelClusterCharge", 15000.);
275 
278  LumiMonitor::fillHistoPSetDescription(pixelClusterPSet);
279  histoPSet.add("pixelClusterPSet", pixelClusterPSet);
280 
282  fillHistoPSetDescription(lumiPSet);
283  histoPSet.add<edm::ParameterSetDescription>("lumiPSet", lumiPSet);
284 
286  fillHistoPSetDescription(puPSet);
287  histoPSet.add<edm::ParameterSetDescription>("puPSet", puPSet);
288 
290  fillHistoPSetDescription(pixellumiPSet);
291  histoPSet.add<edm::ParameterSetDescription>("pixellumiPSet", pixellumiPSet);
292 
295  histoPSet.add<edm::ParameterSetDescription>("lsPSet", lsPSet);
296 
297  desc.add<edm::ParameterSetDescription>("histoPSet", histoPSet);
298 
299  descriptions.add("lumiMonitor", desc);
300 }
static void fillHistoLSPSetDescription(edm::ParameterSetDescription &pset)
Definition: LumiMonitor.cc:264
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillHistoPSetDescription(edm::ParameterSetDescription &pset)
Definition: LumiMonitor.cc:258
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void LumiMonitor::fillHistoLSPSetDescription ( edm::ParameterSetDescription pset)
static

Definition at line 264 of file LumiMonitor.cc.

References edm::ParameterSetDescription::add().

Referenced by fillDescriptions().

264 { pset.add<int>("nbins", 2500); }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void LumiMonitor::fillHistoPSetDescription ( edm::ParameterSetDescription pset)
static

Definition at line 258 of file LumiMonitor.cc.

References edm::ParameterSetDescription::add().

Referenced by fillDescriptions().

258  {
259  pset.add<int>("nbins");
260  pset.add<double>("xmin");
261  pset.add<double>("xmax");
262 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
MEbinning LumiMonitor::getHistoLSPSet ( const edm::ParameterSet pset)
staticprivate

Definition at line 122 of file LumiMonitor.cc.

References edm::ParameterSet::getParameter().

122  {
123  return MEbinning{pset.getParameter<int32_t>("nbins"), -0.5, pset.getParameter<int32_t>("nbins") - 0.5};
124 }
T getParameter(std::string const &) const
MEbinning LumiMonitor::getHistoPSet ( const edm::ParameterSet pset)
staticprivate

Definition at line 114 of file LumiMonitor.cc.

References edm::ParameterSet::getParameter().

Referenced by LumiMonitor().

114  {
115  return MEbinning{
116  pset.getParameter<int32_t>("nbins"),
117  pset.getParameter<double>("xmin"),
118  pset.getParameter<double>("xmax"),
119  };
120 }
T getParameter(std::string const &) const

Member Data Documentation

bool LumiMonitor::doPixelLumi_
private

Definition at line 68 of file LumiMonitor.cc.

Referenced by bookHistograms(), dqmAnalyze(), and LumiMonitor().

std::string LumiMonitor::folderName_
private

Definition at line 61 of file LumiMonitor.cc.

Referenced by bookHistograms().

MEbinning LumiMonitor::ls_binning_
private

Definition at line 66 of file LumiMonitor.cc.

Referenced by bookHistograms().

MEbinning LumiMonitor::lumi_binning_
private

Definition at line 64 of file LumiMonitor.cc.

Referenced by bookHistograms().

float LumiMonitor::lumi_factor_per_bx_
private

Definition at line 78 of file LumiMonitor.cc.

Referenced by dqmAnalyze(), and LumiMonitor().

edm::EDGetTokenT<LumiScalersCollection> LumiMonitor::lumiScalersToken_
private

Definition at line 63 of file LumiMonitor.cc.

Referenced by dqmAnalyze().

edm::EDGetTokenT<LumiSummary> LumiMonitor::lumiSummaryToken_
private

Definition at line 76 of file LumiMonitor.cc.

int LumiMonitor::minNumberOfPixelsPerCluster_
private

Definition at line 71 of file LumiMonitor.cc.

Referenced by dqmAnalyze().

float LumiMonitor::minPixelClusterCharge_
private

Definition at line 72 of file LumiMonitor.cc.

Referenced by dqmAnalyze().

MEbinning LumiMonitor::pixelCluster_binning_
private

Definition at line 73 of file LumiMonitor.cc.

Referenced by bookHistograms().

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > LumiMonitor::pixelClustersToken_
private

Definition at line 69 of file LumiMonitor.cc.

Referenced by dqmAnalyze().

MEbinning LumiMonitor::pixellumi_binning_
private

Definition at line 74 of file LumiMonitor.cc.

Referenced by bookHistograms(), and LumiMonitor().

MEbinning LumiMonitor::pu_binning_
private

Definition at line 65 of file LumiMonitor.cc.

Referenced by bookHistograms().

bool LumiMonitor::useBPixLayer1_
private

Definition at line 70 of file LumiMonitor.cc.

Referenced by LumiMonitor().