CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
MEtoEDMConverter Class Reference
Inheritance diagram for MEtoEDMConverter:
edm::one::EDProducer< edm::RunCache< meedm::Void >, edm::LuminosityBlockCache< meedm::Void >, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
using TagList = std::vector< uint32_t >
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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
 

Public Member Functions

void beginJob () override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, const edm::EventSetup &) override
 
void endRunProduce (edm::Run &, const edm::EventSetup &) override
 
std::shared_ptr< meedm::VoidglobalBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) const override
 
std::shared_ptr< meedm::VoidglobalBeginRun (edm::Run const &, const edm::EventSetup &) const override
 
void globalEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void globalEndRun (edm::Run const &, const edm::EventSetup &) override
 
 MEtoEDMConverter (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
template<class T >
void putData (DQMStore::IGetter &g, T &iPutTo, bool iLumiOnly, uint32_t run, uint32_t lumi)
 
 ~MEtoEDMConverter () override
 
- Public Member Functions inherited from edm::one::EDProducer< edm::RunCache< meedm::Void >, edm::LuminosityBlockCache< meedm::Void >, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::SharedResources >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

std::string fName
 
int frequency
 
std::map< int, int > iCount
 
std::string path
 
int verbosity
 

Additional Inherited Members

- 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 Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Class to take dqm monitor elements and convert into a ROOT dataformat stored in Run tree of edm file

Author
M. Strang SUNY-Buffalo

Definition at line 63 of file MEtoEDMConverter.cc.

Member Typedef Documentation

◆ DQMStore

Definition at line 69 of file MEtoEDMConverter.cc.

◆ MonitorElement

Definition at line 70 of file MEtoEDMConverter.cc.

◆ TagList

using MEtoEDMConverter::TagList = std::vector<uint32_t>

Definition at line 87 of file MEtoEDMConverter.cc.

Constructor & Destructor Documentation

◆ MEtoEDMConverter()

MEtoEDMConverter::MEtoEDMConverter ( const edm::ParameterSet iPSet)
explicit

Definition at line 102 of file MEtoEDMConverter.cc.

References edm::EndLuminosityBlock, edm::EndRun, fName, frequency, edm::ParameterSet::getUntrackedParameter(), path, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

102  : fName(""), verbosity(0), frequency(0) {
103  std::string MsgLoggerCat = "MEtoEDMConverter_MEtoEDMConverter";
104 
105  // get information from parameter set
106  fName = iPSet.getUntrackedParameter<std::string>("Name", "MEtoEDMConverter");
107  verbosity = iPSet.getUntrackedParameter<int>("Verbosity", 0);
108  frequency = iPSet.getUntrackedParameter<int>("Frequency", 50);
109  path = iPSet.getUntrackedParameter<std::string>("MEPathToSave");
110  // use value of first digit to determine default output level (inclusive)
111  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
112  verbosity %= 10;
113 
114  // print out Parameter Set information being used
115  if (verbosity >= 0) {
116  edm::LogInfo(MsgLoggerCat) << "\n===============================\n"
117  << "Initialized as EDProducer with parameter values:\n"
118  << " Name = " << fName << "\n"
119  << " Verbosity = " << verbosity << "\n"
120  << " Frequency = " << frequency << "\n"
121  << " Path = " << path << "\n"
122  << "===============================\n";
123  }
124 
125  std::string sName;
126 
127  // create persistent objects
128 
129  sName = fName + "Run";
130  produces<MEtoEDM<TH1F>, edm::Transition::EndRun>(sName);
131  produces<MEtoEDM<TH1S>, edm::Transition::EndRun>(sName);
132  produces<MEtoEDM<TH1D>, edm::Transition::EndRun>(sName);
133  produces<MEtoEDM<TH1I>, edm::Transition::EndRun>(sName);
134  produces<MEtoEDM<TH2F>, edm::Transition::EndRun>(sName);
135  produces<MEtoEDM<TH2S>, edm::Transition::EndRun>(sName);
136  produces<MEtoEDM<TH2D>, edm::Transition::EndRun>(sName);
137  produces<MEtoEDM<TH2I>, edm::Transition::EndRun>(sName);
138  produces<MEtoEDM<TH3F>, edm::Transition::EndRun>(sName);
139  produces<MEtoEDM<TProfile>, edm::Transition::EndRun>(sName);
140  produces<MEtoEDM<TProfile2D>, edm::Transition::EndRun>(sName);
141  produces<MEtoEDM<double>, edm::Transition::EndRun>(sName);
142  produces<MEtoEDM<long long>, edm::Transition::EndRun>(sName);
143  produces<MEtoEDM<TString>, edm::Transition::EndRun>(sName);
144 
145  sName = fName + "Lumi";
146  produces<MEtoEDM<TH1F>, edm::Transition::EndLuminosityBlock>(sName);
147  produces<MEtoEDM<TH1S>, edm::Transition::EndLuminosityBlock>(sName);
148  produces<MEtoEDM<TH1D>, edm::Transition::EndLuminosityBlock>(sName);
149  produces<MEtoEDM<TH1I>, edm::Transition::EndLuminosityBlock>(sName);
150  produces<MEtoEDM<TH2F>, edm::Transition::EndLuminosityBlock>(sName);
151  produces<MEtoEDM<TH2S>, edm::Transition::EndLuminosityBlock>(sName);
152  produces<MEtoEDM<TH2D>, edm::Transition::EndLuminosityBlock>(sName);
153  produces<MEtoEDM<TH2I>, edm::Transition::EndLuminosityBlock>(sName);
154  produces<MEtoEDM<TH3F>, edm::Transition::EndLuminosityBlock>(sName);
155  produces<MEtoEDM<TProfile>, edm::Transition::EndLuminosityBlock>(sName);
156  produces<MEtoEDM<TProfile2D>, edm::Transition::EndLuminosityBlock>(sName);
157  produces<MEtoEDM<double>, edm::Transition::EndLuminosityBlock>(sName);
158  produces<MEtoEDM<long long>, edm::Transition::EndLuminosityBlock>(sName);
159  produces<MEtoEDM<TString>, edm::Transition::EndLuminosityBlock>(sName);
160 
161  consumesMany<DQMToken, edm::InLumi>();
162  consumesMany<DQMToken, edm::InRun>();
163  usesResource("DQMStore");
164 
165  static_assert(sizeof(int64_t) == sizeof(long long), "type int64_t is not the same length as long long");
166 }
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo

◆ ~MEtoEDMConverter()

MEtoEDMConverter::~MEtoEDMConverter ( )
overridedefault

Member Function Documentation

◆ beginJob()

void MEtoEDMConverter::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 170 of file MEtoEDMConverter.cc.

170 {}

◆ endLuminosityBlockProduce()

void MEtoEDMConverter::endLuminosityBlockProduce ( edm::LuminosityBlock iLumi,
const edm::EventSetup iSetup 
)
override

Definition at line 189 of file MEtoEDMConverter.cc.

References b, g, edm::LuminosityBlockBase::id(), edm::LuminosityBlockID::luminosityBlock(), dqm::implementation::DQMStore::meBookerGetter(), Utilities::operator, putData(), and edm::LuminosityBlockBase::run().

189  {
191  store->meBookerGetter([&](DQMStore::IBooker& b, DQMStore::IGetter& g) {
192  putData(g, iLumi, true, iLumi.run(), iLumi.id().luminosityBlock());
193  });
194 }
LuminosityBlockNumber_t luminosityBlock() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
LuminosityBlockID id() const
double b
Definition: hdecay.h:118
void putData(DQMStore::IGetter &g, T &iPutTo, bool iLumiOnly, uint32_t run, uint32_t lumi)

◆ endRunProduce()

void MEtoEDMConverter::endRunProduce ( edm::Run iRun,
const edm::EventSetup iSetup 
)
override

Definition at line 179 of file MEtoEDMConverter.cc.

References b, g, dqm::implementation::DQMStore::meBookerGetter(), Utilities::operator, putData(), and edm::RunBase::run().

179  {
181  store->meBookerGetter([&](DQMStore::IBooker& b, DQMStore::IGetter& g) { putData(g, iRun, false, iRun.run(), 0); });
182 }
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
RunNumber_t run() const
Definition: RunBase.h:40
double b
Definition: hdecay.h:118
void putData(DQMStore::IGetter &g, T &iPutTo, bool iLumiOnly, uint32_t run, uint32_t lumi)

◆ globalBeginLuminosityBlock()

std::shared_ptr< meedm::Void > MEtoEDMConverter::globalBeginLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
) const
override

Definition at line 184 of file MEtoEDMConverter.cc.

185  {
186  return std::shared_ptr<meedm::Void>();
187 }

◆ globalBeginRun()

std::shared_ptr< meedm::Void > MEtoEDMConverter::globalBeginRun ( edm::Run const &  iRun,
const edm::EventSetup iSetup 
) const
override

Definition at line 172 of file MEtoEDMConverter.cc.

173  {
174  return std::shared_ptr<meedm::Void>();
175 }

◆ globalEndLuminosityBlock()

void MEtoEDMConverter::globalEndLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
inlineoverride

Definition at line 80 of file MEtoEDMConverter.cc.

80 {};

◆ globalEndRun()

void MEtoEDMConverter::globalEndRun ( edm::Run const &  iRun,
const edm::EventSetup iSetup 
)
override

Definition at line 177 of file MEtoEDMConverter.cc.

177 {}

◆ produce()

void MEtoEDMConverter::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDProducerBase.

Definition at line 411 of file MEtoEDMConverter.cc.

411 {}

◆ putData()

template<class T >
void MEtoEDMConverter::putData ( DQMStore::IGetter g,
T iPutTo,
bool  iLumiOnly,
uint32_t  run,
uint32_t  lumi 
)

Definition at line 197 of file MEtoEDMConverter.cc.

References cms::cuda::assert(), fName, dqm::implementation::IGetter::getAllContents(), MonitorElementData::INT, mps_monitormerge::items, hlt_dqm_clientPB-live_cfg::me, eostools::move(), path, MonitorElementData::REAL, writedatasetfile::run, MonitorElementData::STRING, AlCaHLTBitMon_QueryRunRegistry::string, MonitorElementData::TH1D, MonitorElementData::TH1F, MonitorElementData::TH1I, MonitorElementData::TH1S, MonitorElementData::TH2D, MonitorElementData::TH2F, MonitorElementData::TH2I, MonitorElementData::TH2S, MonitorElementData::TH3F, MonitorElementData::TPROFILE, MonitorElementData::TPROFILE2D, and verbosity.

Referenced by endLuminosityBlockProduce(), and endRunProduce().

197  {
198  std::string MsgLoggerCat = "MEtoEDMConverter_putData";
199 
200  if (verbosity > 0)
201  edm::LogInfo(MsgLoggerCat) << "\nStoring MEtoEDM dataformat histograms.";
202 
203  // extract ME information into vectors
204  std::vector<MonitorElement*>::iterator mmi, mme;
205  std::vector<MonitorElement*> items(iGetter.getAllContents(path, run, lumi));
206 
207  unsigned int n1F = 0;
208  unsigned int n1S = 0;
209  unsigned int n1D = 0;
210  unsigned int n1I = 0;
211  unsigned int n2F = 0;
212  unsigned int n2S = 0;
213  unsigned int n2D = 0;
214  unsigned int n2I = 0;
215  unsigned int n3F = 0;
216  unsigned int nProf = 0;
217  unsigned int nProf2 = 0;
218  unsigned int nDouble = 0;
219  unsigned int nInt64 = 0;
220  unsigned int nString = 0;
221 
222  for (mmi = items.begin(), mme = items.end(); mmi != mme; ++mmi) {
223  MonitorElement* me = *mmi;
224 
225  // store only flagged ME at endLumi transition, and Run-based
226  // histo at endRun transition
227  if (iLumiOnly && !me->getLumiFlag())
228  continue;
229  if (!iLumiOnly && me->getLumiFlag())
230  continue;
231 
232  switch (me->kind()) {
234  ++nInt64;
235  break;
236 
238  ++nDouble;
239  break;
240 
242  ++nString;
243  break;
244 
246  ++n1F;
247  break;
248 
250  ++n1S;
251  break;
252 
254  ++n1D;
255  break;
256 
258  ++n1I;
259  break;
260 
262  ++n2F;
263  break;
264 
266  ++n2S;
267  break;
268 
270  ++n2D;
271  break;
272 
274  ++n2I;
275  break;
276 
278  ++n3F;
279  break;
280 
282  ++nProf;
283  break;
284 
286  ++nProf2;
287  break;
288 
289  default:
290  edm::LogError(MsgLoggerCat) << "ERROR: The DQM object '" << me->getFullname()
291  << "' is neither a ROOT object nor a recognised "
292  << "simple object.\n";
293  continue;
294  }
295  }
296 
297  std::unique_ptr<MEtoEDM<long long> > pOutInt(new MEtoEDM<long long>(nInt64));
298  std::unique_ptr<MEtoEDM<double> > pOutDouble(new MEtoEDM<double>(nDouble));
299  std::unique_ptr<MEtoEDM<TString> > pOutString(new MEtoEDM<TString>(nString));
300  std::unique_ptr<MEtoEDM<TH1F> > pOut1(new MEtoEDM<TH1F>(n1F));
301  std::unique_ptr<MEtoEDM<TH1S> > pOut1s(new MEtoEDM<TH1S>(n1S));
302  std::unique_ptr<MEtoEDM<TH1D> > pOut1d(new MEtoEDM<TH1D>(n1D));
303  std::unique_ptr<MEtoEDM<TH1I> > pOut1i(new MEtoEDM<TH1I>(n1I));
304  std::unique_ptr<MEtoEDM<TH2F> > pOut2(new MEtoEDM<TH2F>(n2F));
305  std::unique_ptr<MEtoEDM<TH2S> > pOut2s(new MEtoEDM<TH2S>(n2S));
306  std::unique_ptr<MEtoEDM<TH2D> > pOut2d(new MEtoEDM<TH2D>(n2D));
307  std::unique_ptr<MEtoEDM<TH2I> > pOut2i(new MEtoEDM<TH2I>(n2I));
308  std::unique_ptr<MEtoEDM<TH3F> > pOut3(new MEtoEDM<TH3F>(n3F));
309  std::unique_ptr<MEtoEDM<TProfile> > pOutProf(new MEtoEDM<TProfile>(nProf));
310  std::unique_ptr<MEtoEDM<TProfile2D> > pOutProf2(new MEtoEDM<TProfile2D>(nProf2));
311 
312  for (mmi = items.begin(), mme = items.end(); mmi != mme; ++mmi) {
313  MonitorElement* me = *mmi;
314 
315  // store only flagged ME at endLumi transition, and Run-based
316  // histo at endRun transition
317  // DQMStore should only hand out matching MEs
318  assert(iLumiOnly == me->getLumiFlag());
319 
320  // get monitor elements
321  switch (me->kind()) {
323  pOutInt->putMEtoEdmObject(me->getFullname(), me->getIntValue());
324  break;
325 
327  pOutDouble->putMEtoEdmObject(me->getFullname(), me->getFloatValue());
328  break;
329 
331  pOutString->putMEtoEdmObject(me->getFullname(), me->getStringValue());
332  break;
333 
335  pOut1->putMEtoEdmObject(me->getFullname(), *me->getTH1F());
336  break;
337 
339  pOut1s->putMEtoEdmObject(me->getFullname(), *me->getTH1S());
340  break;
341 
343  pOut1d->putMEtoEdmObject(me->getFullname(), *me->getTH1D());
344  break;
345 
347  pOut1i->putMEtoEdmObject(me->getFullname(), *me->getTH1I());
348  break;
349 
351  pOut2->putMEtoEdmObject(me->getFullname(), *me->getTH2F());
352  break;
353 
355  pOut2s->putMEtoEdmObject(me->getFullname(), *me->getTH2S());
356  break;
357 
359  pOut2d->putMEtoEdmObject(me->getFullname(), *me->getTH2D());
360  break;
361 
363  pOut2i->putMEtoEdmObject(me->getFullname(), *me->getTH2I());
364  break;
365 
367  pOut3->putMEtoEdmObject(me->getFullname(), *me->getTH3F());
368  break;
369 
371  pOutProf->putMEtoEdmObject(me->getFullname(), *me->getTProfile());
372  break;
373 
375  pOutProf2->putMEtoEdmObject(me->getFullname(), *me->getTProfile2D());
376  break;
377 
378  default:
379  edm::LogError(MsgLoggerCat) << "ERROR: The DQM object '" << me->getFullname()
380  << "' is neither a ROOT object nor a recognised "
381  << "simple object.\n";
382  continue;
383  }
384 
385  } // end loop through monitor elements
386 
387  std::string sName;
388 
389  if (iLumiOnly) {
390  sName = fName + "Lumi";
391  } else {
392  sName = fName + "Run";
393  }
394 
395  // produce objects to put in events
396  iPutTo.put(std::move(pOutInt), sName);
397  iPutTo.put(std::move(pOutDouble), sName);
398  iPutTo.put(std::move(pOutString), sName);
399  iPutTo.put(std::move(pOut1), sName);
400  iPutTo.put(std::move(pOut1s), sName);
401  iPutTo.put(std::move(pOut1d), sName);
402  iPutTo.put(std::move(pOut2), sName);
403  iPutTo.put(std::move(pOut2s), sName);
404  iPutTo.put(std::move(pOut2d), sName);
405  iPutTo.put(std::move(pOut2i), sName);
406  iPutTo.put(std::move(pOut3), sName);
407  iPutTo.put(std::move(pOutProf), sName);
408  iPutTo.put(std::move(pOutProf2), sName);
409 }
Log< level::Error, false > LogError
assert(be >=bs)
Log< level::Info, false > LogInfo
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ fName

std::string MEtoEDMConverter::fName
private

Definition at line 90 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter(), and putData().

◆ frequency

int MEtoEDMConverter::frequency
private

Definition at line 92 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter().

◆ iCount

std::map<int, int> MEtoEDMConverter::iCount
private

Definition at line 96 of file MEtoEDMConverter.cc.

◆ path

std::string MEtoEDMConverter::path
private

◆ verbosity

int MEtoEDMConverter::verbosity
private

Definition at line 91 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter(), and putData().