CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Static Private Member Functions | Private Attributes
NanoAODDQM Class Reference
Inheritance diagram for NanoAODDQM:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

class  Count1D
 
struct  GroupConfig
 
class  Plot
 
class  Plot1D
 
class  Profile1D
 
struct  SelGroupConfig
 

Public Types

typedef nanoaod::FlatTable FlatTable
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 NanoAODDQM (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Static Private Member Functions

static std::unique_ptr< PlotmakePlot (DQMStore::IBooker &booker, const edm::ParameterSet &cfg)
 

Private Attributes

std::map< std::string, GroupConfiggroups_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 36 of file NanoAODDQM.cc.

Member Typedef Documentation

◆ FlatTable

Definition at line 38 of file NanoAODDQM.cc.

Constructor & Destructor Documentation

◆ NanoAODDQM()

NanoAODDQM::NanoAODDQM ( const edm::ParameterSet iConfig)

Definition at line 187 of file NanoAODDQM.cc.

187  {
188  const edm::ParameterSet &vplots = iConfig.getParameter<edm::ParameterSet>("vplots");
189  for (const std::string &name : vplots.getParameterNamesForType<edm::ParameterSet>()) {
190  auto &group = groups_[name];
191  const auto &pset = vplots.getParameter<edm::ParameterSet>(name);
192  group.plotPSets = pset.getParameter<std::vector<edm::ParameterSet>>("plots");
193  group.selGroups.emplace_back(); // no selection (all entries)
194  const auto &cuts = pset.getParameter<edm::ParameterSet>("sels");
195  for (const std::string &cname : cuts.getParameterNamesForType<std::string>()) {
196  group.selGroups.emplace_back(cname, cuts.getParameter<std::string>(cname));
197  }
198  }
199  consumesMany<FlatTable>();
200 }

References L1TMuonDQMOffline_cfi::cuts, edm::ParameterSet::getParameter(), watchdog::group, groups_, Skims_PA_cff::name, muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, and nanoDQM_cff::vplots.

Member Function Documentation

◆ analyze()

void NanoAODDQM::analyze ( const edm::Event iEvent,
const edm::EventSetup  
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 224 of file NanoAODDQM.cc.

224  {
225  std::vector<edm::Handle<FlatTable>> alltables;
226  iEvent.getManyByType(alltables);
227  std::map<std::string, std::pair<const FlatTable *, std::vector<const FlatTable *>>> maintables;
228 
229  for (const auto &htab : alltables) {
230  if (htab->extension())
231  continue;
232  maintables[htab->name()] = std::make_pair(htab.product(), std::vector<const FlatTable *>());
233  }
234  for (const auto &htab : alltables) {
235  if (htab->extension()) {
236  if (maintables.find(htab->name()) == maintables.end())
237  throw cms::Exception("LogicError", "Missing main table for " + htab->name());
238  maintables[htab->name()].second.push_back(htab.product());
239  }
240  }
241 
242  FlatTable merged;
243  for (auto &pair : groups_) {
244  const std::string &name = pair.first;
245  if (maintables.find(name) == maintables.end())
246  continue; // may happen for missing collections
247  auto &tables = maintables[name];
248  const FlatTable *table = tables.first;
249  if (!tables.second.empty()) {
250  merged = *tables.first;
251  for (auto *other : tables.second) {
252  merged.addExtension(*other);
253  }
254  table = &merged;
255  }
256  std::vector<bool> selbits;
257  for (auto &sel : pair.second.selGroups) {
258  sel.fillSel(*table, selbits);
259 
260  for (auto &plot : sel.plots) {
261  plot->fill(*table, selbits);
262  }
263  }
264  }
265 }

References nanoaod::FlatTable::addExtension(), groups_, iEvent, Skims_PA_cff::name, trackingPlots::other, plotFactory::plot, EgammaValidation_Wenu_cff::sel, AlCaHLTBitMon_QueryRunRegistry::string, TableParser::table, and postprocess-scan-build::tables.

◆ bookHistograms()

void NanoAODDQM::bookHistograms ( DQMStore::IBooker booker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 202 of file NanoAODDQM.cc.

202  {
203  booker.setCurrentFolder("Physics/NanoAODDQM");
204 
205  for (auto &pair : groups_) {
206  booker.setCurrentFolder("Physics/NanoAODDQM/" + pair.first);
207  for (auto &sels : pair.second.selGroups) {
208  std::string dir("Physics/NanoAODDQM/" + pair.first);
209  if (!sels.nullCut())
210  dir += "/" + sels.name;
211  booker.setCurrentFolder(dir);
212  auto &plots = sels.plots;
213  plots.clear();
214  plots.reserve(pair.second.plotPSets.size());
215  for (const auto &cfg : pair.second.plotPSets) {
216  auto plot = makePlot(booker, cfg);
217  if (plot)
218  plots.push_back(std::move(plot));
219  }
220  }
221  }
222 }

References looper::cfg, DeadROC_duringRun::dir, groups_, makePlot(), eostools::move(), plotFactory::plot, HLTObjectsMonitor_cfi::plots, nanoDQM_cfi::sels, dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ makePlot()

static std::unique_ptr<Plot> NanoAODDQM::makePlot ( DQMStore::IBooker booker,
const edm::ParameterSet cfg 
)
inlinestaticprivate

Definition at line 144 of file NanoAODDQM.cc.

144  {
145  const std::string &kind = cfg.getParameter<std::string>("kind");
146  if (kind == "none")
147  return nullptr;
148  if (kind == "count1d")
149  return std::make_unique<Count1D>(booker, cfg);
150  if (kind == "hist1d")
151  return std::make_unique<Plot1D>(booker, cfg);
152  if (kind == "prof1d")
153  return std::make_unique<Profile1D>(booker, cfg);
154  throw cms::Exception("Configuration", "Unsupported plot kind '" + kind + "'");
155  }

References looper::cfg, Exception, CalibrationSummaryClient_cfi::kind, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by bookHistograms().

Member Data Documentation

◆ groups_

std::map<std::string, GroupConfig> NanoAODDQM::groups_
private

Definition at line 184 of file NanoAODDQM.cc.

Referenced by analyze(), bookHistograms(), and NanoAODDQM().

nanoDQM_cff.vplots
vplots
Definition: nanoDQM_cff.py:22
postprocess-scan-build.tables
tables
Definition: postprocess-scan-build.py:10
plotFactory.plot
plot
Definition: plotFactory.py:109
trackingPlots.other
other
Definition: trackingPlots.py:1465
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition: ParameterSet.h:36
HLTObjectsMonitor_cfi.plots
plots
Definition: HLTObjectsMonitor_cfi.py:17
iEvent
int iEvent
Definition: GenABIO.cc:224
CalibrationSummaryClient_cfi.kind
kind
Definition: CalibrationSummaryClient_cfi.py:37
NanoAODDQM::FlatTable
nanoaod::FlatTable FlatTable
Definition: NanoAODDQM.cc:38
looper.cfg
cfg
Definition: looper.py:297
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
Exception
Definition: hltDiff.cc:246
NanoAODDQM::makePlot
static std::unique_ptr< Plot > makePlot(DQMStore::IBooker &booker, const edm::ParameterSet &cfg)
Definition: NanoAODDQM.cc:144
NanoAODDQM::groups_
std::map< std::string, GroupConfig > groups_
Definition: NanoAODDQM.cc:184
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
cms::Exception
Definition: Exception.h:70
L1TMuonDQMOffline_cfi.cuts
cuts
Definition: L1TMuonDQMOffline_cfi.py:41
EgammaValidation_Wenu_cff.sel
sel
Definition: EgammaValidation_Wenu_cff.py:33
TableParser.table
table
Definition: TableParser.py:111
nanoDQM_cfi.sels
sels
Definition: nanoDQM_cfi.py:9
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
watchdog.group
group
Definition: watchdog.py:82