13 #include "classlib/utils/StringList.h"
14 #include "classlib/utils/StringOps.h"
21 std::string MsgLoggerCat =
"MEtoEDMConverter_MEtoEDMConverter";
34 edm::LogInfo(MsgLoggerCat) <<
"\n===============================\n"
35 <<
"Initialized as EDProducer with parameter values:\n"
36 <<
" Name = " <<
fName <<
"\n"
39 <<
" Path = " <<
path <<
"\n"
40 <<
"===============================\n";
47 sName =
fName +
"Run";
61 sName =
fName +
"Lumi";
75 consumesMany<DQMToken, edm::InLumi>();
76 consumesMany<DQMToken, edm::InRun>();
77 usesResource(
"DQMStore");
79 static_assert(
sizeof(int64_t) ==
sizeof(
long long),
"type int64_t is not the same length as long long");
88 return std::shared_ptr<meedm::Void>();
100 return std::shared_ptr<meedm::Void>();
112 std::string MsgLoggerCat =
"MEtoEDMConverter_putData";
115 edm::LogInfo(MsgLoggerCat) <<
"\nStoring MEtoEDM dataformat histograms.";
118 std::vector<MonitorElement*>::iterator mmi, mme;
121 unsigned int n1F = 0;
122 unsigned int n1S = 0;
123 unsigned int n1D = 0;
124 unsigned int n2F = 0;
125 unsigned int n2S = 0;
126 unsigned int n2D = 0;
127 unsigned int n3F = 0;
128 unsigned int nProf = 0;
129 unsigned int nProf2 = 0;
130 unsigned int nDouble = 0;
131 unsigned int nInt64 = 0;
132 unsigned int nString = 0;
134 for (mmi =
items.begin(), mme =
items.end(); mmi != mme; ++mmi) {
139 if (iLumiOnly && !
me->getLumiFlag())
141 if (!iLumiOnly &&
me->getLumiFlag())
144 switch (
me->kind()) {
194 edm::LogError(MsgLoggerCat) <<
"ERROR: The DQM object '" <<
me->getFullname()
195 <<
"' is neither a ROOT object nor a recognised "
196 <<
"simple object.\n";
202 std::unique_ptr<MEtoEDM<double> > pOutDouble(
new MEtoEDM<double>(nDouble));
203 std::unique_ptr<MEtoEDM<TString> > pOutString(
new MEtoEDM<TString>(nString));
204 std::unique_ptr<MEtoEDM<TH1F> > pOut1(
new MEtoEDM<TH1F>(n1F));
205 std::unique_ptr<MEtoEDM<TH1S> > pOut1s(
new MEtoEDM<TH1S>(n1S));
206 std::unique_ptr<MEtoEDM<TH1D> > pOut1d(
new MEtoEDM<TH1D>(n1D));
207 std::unique_ptr<MEtoEDM<TH2F> > pOut2(
new MEtoEDM<TH2F>(n2F));
208 std::unique_ptr<MEtoEDM<TH2S> > pOut2s(
new MEtoEDM<TH2S>(n2S));
209 std::unique_ptr<MEtoEDM<TH2D> > pOut2d(
new MEtoEDM<TH2D>(n2D));
210 std::unique_ptr<MEtoEDM<TH3F> > pOut3(
new MEtoEDM<TH3F>(n3F));
214 for (mmi =
items.begin(), mme =
items.end(); mmi != mme; ++mmi) {
220 assert(iLumiOnly ==
me->getLumiFlag());
223 switch (
me->kind()) {
225 pOutInt->putMEtoEdmObject(
me->getFullname(),
me->getIntValue());
229 pOutDouble->putMEtoEdmObject(
me->getFullname(),
me->getFloatValue());
233 pOutString->putMEtoEdmObject(
me->getFullname(),
me->getStringValue());
237 pOut1->putMEtoEdmObject(
me->getFullname(), *
me->getTH1F());
241 pOut1s->putMEtoEdmObject(
me->getFullname(), *
me->getTH1S());
245 pOut1d->putMEtoEdmObject(
me->getFullname(), *
me->getTH1D());
249 pOut2->putMEtoEdmObject(
me->getFullname(), *
me->getTH2F());
253 pOut2s->putMEtoEdmObject(
me->getFullname(), *
me->getTH2S());
257 pOut2d->putMEtoEdmObject(
me->getFullname(), *
me->getTH2D());
261 pOut3->putMEtoEdmObject(
me->getFullname(), *
me->getTH3F());
265 pOutProf->putMEtoEdmObject(
me->getFullname(), *
me->getTProfile());
269 pOutProf2->putMEtoEdmObject(
me->getFullname(), *
me->getTProfile2D());
273 edm::LogError(MsgLoggerCat) <<
"ERROR: The DQM object '" <<
me->getFullname()
274 <<
"' is neither a ROOT object nor a recognised "
275 <<
"simple object.\n";
284 sName =
fName +
"Lumi";
286 sName =
fName +
"Run";
291 iPutTo.put(
std::move(pOutDouble), sName);
292 iPutTo.put(
std::move(pOutString), sName);