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
 
edm::GetterOfProducts< DQMTokenlumigetter_
 
std::string path
 
edm::GetterOfProducts< DQMTokenrungetter_
 
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 65 of file MEtoEDMConverter.cc.

Member Typedef Documentation

◆ DQMStore

Definition at line 71 of file MEtoEDMConverter.cc.

◆ MonitorElement

Definition at line 72 of file MEtoEDMConverter.cc.

◆ TagList

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

Definition at line 89 of file MEtoEDMConverter.cc.

Constructor & Destructor Documentation

◆ MEtoEDMConverter()

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

Definition at line 106 of file MEtoEDMConverter.cc.

References edm::ProducerBase::callWhenNewProductsRegistered(), edm::EndLuminosityBlock, edm::EndRun, fName, frequency, edm::ParameterSet::getUntrackedParameter(), edm::InLumi, edm::InRun, lumigetter_, path, rungetter_, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

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

178 {}

◆ endLuminosityBlockProduce()

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

Definition at line 197 of file MEtoEDMConverter.cc.

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

197  {
199  store->meBookerGetter([&](DQMStore::IBooker& b, DQMStore::IGetter& g) {
200  putData(g, iLumi, true, iLumi.run(), iLumi.id().luminosityBlock());
201  });
202 }
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 187 of file MEtoEDMConverter.cc.

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

187  {
189  store->meBookerGetter([&](DQMStore::IBooker& b, DQMStore::IGetter& g) { putData(g, iRun, false, iRun.run(), 0); });
190 }
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 192 of file MEtoEDMConverter.cc.

193  {
194  return std::shared_ptr<meedm::Void>();
195 }

◆ globalBeginRun()

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

Definition at line 180 of file MEtoEDMConverter.cc.

181  {
182  return std::shared_ptr<meedm::Void>();
183 }

◆ globalEndLuminosityBlock()

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

Definition at line 82 of file MEtoEDMConverter.cc.

82 {};

◆ globalEndRun()

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

Definition at line 185 of file MEtoEDMConverter.cc.

185 {}

◆ produce()

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

Implements edm::one::EDProducerBase.

Definition at line 419 of file MEtoEDMConverter.cc.

419 {}

◆ putData()

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

Definition at line 205 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().

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

Referenced by MEtoEDMConverter(), and putData().

◆ frequency

int MEtoEDMConverter::frequency
private

Definition at line 94 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter().

◆ iCount

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

Definition at line 98 of file MEtoEDMConverter.cc.

◆ lumigetter_

edm::GetterOfProducts<DQMToken> MEtoEDMConverter::lumigetter_
private

Definition at line 99 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter().

◆ path

std::string MEtoEDMConverter::path
private

◆ rungetter_

edm::GetterOfProducts<DQMToken> MEtoEDMConverter::rungetter_
private

Definition at line 100 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter().

◆ verbosity

int MEtoEDMConverter::verbosity
private

Definition at line 93 of file MEtoEDMConverter.cc.

Referenced by MEtoEDMConverter(), and putData().