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"
37 <<
" Verbosity = " << verbosity <<
"\n"
38 <<
" Frequency = " << frequency <<
"\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) {
144 switch (me->
kind()) {
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) {
223 switch (me->
kind()) {
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);
LuminosityBlockID id() const
virtual TH2D * getTH2D() const
T getUntrackedParameter(std::string const &, T const &) const
virtual TH2F * getTH2F() const
virtual TH1F * getTH1F() const
virtual int64_t getIntValue() const
Kind kind() const
Get the type of the monitor element.
~MEtoEDMConverter() override
Log< level::Error, false > LogError
void endRunProduce(edm::Run &, const edm::EventSetup &) override
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
virtual TH1S * getTH1S() const
virtual std::vector< dqm::harvesting::MonitorElement * > getAllContents(std::string const &path) const
void produce(edm::Event &, const edm::EventSetup &) override
std::shared_ptr< meedm::Void > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const override
std::shared_ptr< meedm::Void > globalBeginRun(edm::Run const &, const edm::EventSetup &) const override
void meBookerGetter(iFunc f)
void globalEndRun(edm::Run const &, const edm::EventSetup &) override
virtual TProfile2D * getTProfile2D() const
virtual TH2S * getTH2S() const
Log< level::Info, false > LogInfo
virtual TProfile * getTProfile() const
virtual TH1D * getTH1D() const
LuminosityBlockNumber_t luminosityBlock() const
bool getLumiFlag() const
true if ME is meant to be stored for each luminosity section
virtual double getFloatValue() const
virtual const std::string & getStringValue() const
std::string getFullname() const
get full name of ME including Pathname
MEtoEDMConverter(const edm::ParameterSet &)
void putData(DQMStore::IGetter &g, T &iPutTo, bool iLumiOnly, uint32_t run, uint32_t lumi)
virtual TH3F * getTH3F() const
void endLuminosityBlockProduce(edm::LuminosityBlock &, const edm::EventSetup &) override