CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
DQMDcsInfoClient Class Reference

#include <DQMDcsInfoClient.h>

Inheritance diagram for DQMDcsInfoClient:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 DQMDcsInfoClient (const edm::ParameterSet &ps)
 
 ~DQMDcsInfoClient () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) 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)
 

Protected Member Functions

void beginRun (const edm::Run &r, const edm::EventSetup &c) override
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, const edm::LuminosityBlock &l, const edm::EventSetup &c) override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- 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)
 

Private Attributes

std::vector< int > DCS
 
std::string dcsinfofolder_
 
MonitorElementmeProcessedLS_
 
edm::ParameterSet parameters_
 
std::set< unsigned int > processedLS_
 
MonitorElementreportSummary_
 
MonitorElementreportSummaryMap_
 
std::string subsystemname_
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 25 of file DQMDcsInfoClient.h.

Constructor & Destructor Documentation

DQMDcsInfoClient::DQMDcsInfoClient ( const edm::ParameterSet ps)
DQMDcsInfoClient::~DQMDcsInfoClient ( )
overridedefault

Referenced by DQMDcsInfoClient().

Member Function Documentation

void DQMDcsInfoClient::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotected

Definition at line 25 of file DQMDcsInfoClient.cc.

References DCS, and processedLS_.

25  {
26  DCS.clear();
27  DCS.resize(10); // start with 10 LS, resize later
28  processedLS_.clear();
29 }
std::set< unsigned int > processedLS_
std::vector< int > DCS
void DQMDcsInfoClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 61 of file DQMDcsInfoClient.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookFloat(), dqm::dqmstoreimpl::DQMStore::IBooker::bookString(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), DCS, dqm::impl::MonitorElement::Fill(), dqm::dqmstoreimpl::DQMStore::IGetter::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), edm::getProcessParameterSetContainingModule(), mps_fire::i, dqmiolumiharvest::j, eostools::ls(), meProcessedLS_, edm::one::EDProducerBase::moduleDescription(), processedLS_, reportSummary_, reportSummaryMap_, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinContent(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, subsystemname_, and testProducerWithPsetDescEmpty_cfi::x1.

61  {
62  // Fetch GlobalTag information and fill the string/ME.
63  ibooker.cd();
64  ibooker.setCurrentFolder(subsystemname_ + "/CMSSWInfo/");
65  const edm::ParameterSet& globalTagPSet =
67 
68  ibooker.bookString("globalTag_Harvesting", globalTagPSet.getParameter<std::string>("globaltag"));
69 
70  ibooker.cd();
71  ibooker.setCurrentFolder(subsystemname_ + "/EventInfo/");
72 
73  unsigned int nlsmax = DCS.size();
74  reportSummary_ = ibooker.bookFloat("reportSummary");
75  reportSummary_->Fill(1.);
76 
77  reportSummaryMap_ = igetter.get(subsystemname_ + "/EventInfo/reportSummaryMap");
78  assert(!reportSummaryMap_); // this would be a configuration problem
79 
80  reportSummaryMap_ = ibooker.book2D("reportSummaryMap", "HV and GT vs Lumi", nlsmax, 0., nlsmax, 25, 0., 25.);
81  if (processedLS_.empty())
82  return;
83  unsigned int lastProcessedLS = *(--processedLS_.end());
85  ibooker.book1D("ProcessedLS", "Processed Lumisections", lastProcessedLS + 1, 0., lastProcessedLS + 1);
86  reportSummaryMap_->setBinLabel(1, "CSC+", 2);
87  reportSummaryMap_->setBinLabel(2, "CSC-", 2);
88  reportSummaryMap_->setBinLabel(3, "DT0", 2);
89  reportSummaryMap_->setBinLabel(4, "DT+", 2);
90  reportSummaryMap_->setBinLabel(5, "DT-", 2);
91  reportSummaryMap_->setBinLabel(6, "EB+", 2);
92  reportSummaryMap_->setBinLabel(7, "EB-", 2);
93  reportSummaryMap_->setBinLabel(8, "EE+", 2);
94  reportSummaryMap_->setBinLabel(9, "EE-", 2);
95  reportSummaryMap_->setBinLabel(10, "ES+", 2);
96  reportSummaryMap_->setBinLabel(11, "ES-", 2);
97  reportSummaryMap_->setBinLabel(12, "HBHEa", 2);
98  reportSummaryMap_->setBinLabel(13, "HBHEb", 2);
99  reportSummaryMap_->setBinLabel(14, "HBHEc", 2);
100  reportSummaryMap_->setBinLabel(15, "HF", 2);
101  reportSummaryMap_->setBinLabel(16, "HO", 2);
102  reportSummaryMap_->setBinLabel(17, "BPIX", 2);
103  reportSummaryMap_->setBinLabel(18, "FPIX", 2);
104  reportSummaryMap_->setBinLabel(19, "RPC", 2);
105  reportSummaryMap_->setBinLabel(20, "TIBTID", 2);
106  reportSummaryMap_->setBinLabel(21, "TOB", 2);
107  reportSummaryMap_->setBinLabel(22, "TECp", 2);
108  reportSummaryMap_->setBinLabel(23, "TECm", 2);
109  reportSummaryMap_->setBinLabel(24, "CASTOR", 2);
110  reportSummaryMap_->setBinLabel(25, "PhysDecl", 2);
111  reportSummaryMap_->setAxisTitle("Luminosity Section");
112 
113  // fill
114  for (unsigned int i = 0; i < DCS.size(); i++) {
115  for (int j = 0; j < 25; j++) {
116  if (DCS[i] & (0x1 << j))
117  reportSummaryMap_->setBinContent(i, j + 1, 1.);
118  else
119  reportSummaryMap_->setBinContent(i, j + 1, 0.);
120  }
121  }
122 
123  unsigned int lastAccessed = 0;
124 
125  for (auto ls : processedLS_) {
126  while (lastAccessed < ls) {
127  // std::cout << "Filling " << lastAccessed << " with -1" << std::endl;
128  meProcessedLS_->Fill(lastAccessed, -1.);
129  lastAccessed++;
130  }
131  // std::cout << "Filling " << *it << " with 1" << std::endl;
133  lastAccessed = ls + 1;
134  }
135 }
T getParameter(std::string const &) const
std::set< unsigned int > processedLS_
std::string subsystemname_
MonitorElement * meProcessedLS_
ModuleDescription const & moduleDescription() const
ParameterSet const & getProcessParameterSetContainingModule(ModuleDescription const &moduleDescription)
void Fill(long long x)
MonitorElement * reportSummary_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
def ls(path, rec=False)
Definition: eostools.py:349
std::vector< int > DCS
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
ParameterSet const & getParameterSet(std::string const &) const
MonitorElement * reportSummaryMap_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void DQMDcsInfoClient::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
const edm::LuminosityBlock l,
const edm::EventSetup c 
)
overrideprotected

Definition at line 31 of file DQMDcsInfoClient.cc.

References DCS, dcsinfofolder_, dqm::dqmstoreimpl::DQMStore::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), mps_fire::i, edm::LuminosityBlockBase::id(), edm::LuminosityBlockID::luminosityBlock(), processedLS_, dqm::impl::MonitorElement::Reset(), and subsystemname_.

34  {
35  unsigned int nlumi = l.id().luminosityBlock();
36  processedLS_.insert(nlumi);
37  // cout << " in lumi section " << nlumi << endl;
38 
39  if (nlumi + 1 > DCS.size())
40  DCS.resize(nlumi + 1);
41  // cout << "DCS size: " << DCS.size() << endl;
42 
43  MonitorElement* DCSbyLS_ = igetter.get(subsystemname_ + "/" + dcsinfofolder_ + "/DCSbyLS");
44 
45  if (DCSbyLS_) {
46  if (TH1F* h1 = DCSbyLS_->getTH1F()) {
47  int word = 0;
48  for (int i = 0; i < 25; i++) {
49  if (h1->GetBinContent(i + 1) != 0)
50  word |= (0x0 << i); // set to 0 because HV was off (!)
51  else
52  word |= (0x1 << i); // set to 1 because HV was on (!)
53  }
54  DCS[nlumi] = word;
55  }
56  DCSbyLS_->Reset();
57  }
58  return;
59 }
LuminosityBlockID id() const
std::string dcsinfofolder_
std::set< unsigned int > processedLS_
std::string subsystemname_
virtual TH1F * getTH1F() const
virtual void Reset()
reset ME (ie. contents, errors, etc)
uint64_t word
std::vector< int > DCS
LuminosityBlockNumber_t luminosityBlock() const

Member Data Documentation

std::vector<int> DQMDcsInfoClient::DCS
private

Definition at line 43 of file DQMDcsInfoClient.h.

Referenced by beginRun(), dqmEndJob(), and dqmEndLuminosityBlock().

std::string DQMDcsInfoClient::dcsinfofolder_
private

Definition at line 41 of file DQMDcsInfoClient.h.

Referenced by DQMDcsInfoClient(), and dqmEndLuminosityBlock().

MonitorElement* DQMDcsInfoClient::meProcessedLS_
private

Definition at line 50 of file DQMDcsInfoClient.h.

Referenced by dqmEndJob().

edm::ParameterSet DQMDcsInfoClient::parameters_
private
std::set<unsigned int> DQMDcsInfoClient::processedLS_
private

Definition at line 44 of file DQMDcsInfoClient.h.

Referenced by beginRun(), dqmEndJob(), and dqmEndLuminosityBlock().

MonitorElement* DQMDcsInfoClient::reportSummary_
private

Definition at line 48 of file DQMDcsInfoClient.h.

Referenced by dqmEndJob().

MonitorElement* DQMDcsInfoClient::reportSummaryMap_
private

Definition at line 49 of file DQMDcsInfoClient.h.

Referenced by dqmEndJob().

std::string DQMDcsInfoClient::subsystemname_
private

Definition at line 40 of file DQMDcsInfoClient.h.

Referenced by DQMDcsInfoClient(), dqmEndJob(), and dqmEndLuminosityBlock().