13 #include "classlib/utils/StringList.h" 14 #include "classlib/utils/StringOps.h" 23 std::string MsgLoggerCat =
"MEtoEDMConverter_MEtoEDMConverter";
39 <<
"\n===============================\n" 40 <<
"Initialized as EDProducer with parameter values:\n" 41 <<
" Name = " <<
fName <<
"\n" 42 <<
" Verbosity = " << verbosity <<
"\n" 43 <<
" Frequency = " << frequency <<
"\n" 44 <<
" Path = " << path <<
"\n" 45 <<
"===============================\n";
52 sName =
fName +
"Run";
66 sName =
fName +
"Lumi";
80 consumesMany<DQMToken, edm::InLumi>();
81 consumesMany<DQMToken, edm::InRun>();
82 usesResource(
"DQMStore");
84 static_assert(
sizeof(int64_t) ==
sizeof(
long long),
"type int64_t is not the same length as long long");
101 std::shared_ptr<meedm::Void>
103 return std::shared_ptr<meedm::Void>();
114 store->scaleElements();
119 std::shared_ptr<meedm::Void>
121 return std::shared_ptr<meedm::Void>();
141 std::string MsgLoggerCat =
"MEtoEDMConverter_putData";
144 edm::LogInfo (MsgLoggerCat) <<
"\nStoring MEtoEDM dataformat histograms.";
147 std::vector<MonitorElement *>::iterator mmi, mme;
160 unsigned int nProf=0;
161 unsigned int nProf2=0;
162 unsigned int nDouble=0;
163 unsigned int nInt64=0;
164 unsigned int nString=0;
166 for (mmi =
items.begin (), mme =
items.end (); mmi != mme; ++mmi) {
227 <<
"' is neither a ROOT object nor a recognised " 228 <<
"simple object.\n";
234 std::unique_ptr<MEtoEDM<double> > pOutDouble(
new MEtoEDM<double>(nDouble));
235 std::unique_ptr<MEtoEDM<TString> > pOutString(
new MEtoEDM<TString>(nString));
236 std::unique_ptr<MEtoEDM<TH1F> > pOut1(
new MEtoEDM<TH1F>(n1F));
237 std::unique_ptr<MEtoEDM<TH1S> > pOut1s(
new MEtoEDM<TH1S>(n1S));
238 std::unique_ptr<MEtoEDM<TH1D> > pOut1d(
new MEtoEDM<TH1D>(n1D));
239 std::unique_ptr<MEtoEDM<TH2F> > pOut2(
new MEtoEDM<TH2F>(n2F));
240 std::unique_ptr<MEtoEDM<TH2S> > pOut2s(
new MEtoEDM<TH2S>(n2S));
241 std::unique_ptr<MEtoEDM<TH2D> > pOut2d(
new MEtoEDM<TH2D>(n2D));
242 std::unique_ptr<MEtoEDM<TH3F> > pOut3(
new MEtoEDM<TH3F>(n3F));
246 for (mmi =
items.begin (), mme =
items.end (); mmi != mme; ++mmi) {
309 <<
"' is neither a ROOT object nor a recognised " 310 <<
"simple object.\n";
325 sName =
fName +
"Lumi";
327 sName =
fName +
"Run";
LuminosityBlockID id() const
TProfile * getTProfile() const
T getUntrackedParameter(std::string const &, T const &) const
int64_t getIntValue() const
std::vector< MonitorElement * > getAllContents(std::string const &path, uint32_t runNumber=0, uint32_t lumi=0)
std::shared_ptr< meedm::Void > globalBeginRun(edm::Run const &, const edm::EventSetup &) const override
TProfile2D * getTProfile2D() const
const std::string & getPathname() const
get pathname of parent folder
double getFloatValue() const
const std::string & getName() const
get name of ME
~MEtoEDMConverter() override
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
void produce(edm::Event &, const edm::EventSetup &) override
std::shared_ptr< meedm::Void > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const override
void globalEndRun(edm::Run const &, const edm::EventSetup &) override
const std::string & getStringValue() const
const std::string getFullname() const
get full name of ME including Pathname
LuminosityBlockNumber_t luminosityBlock() const
DQMNet::TagList getTags() const
bool getLumiFlag() const
true if ME is meant to be stored for each luminosity section
MEtoEDMConverter(const edm::ParameterSet &)
void putData(DQMStore::IGetter &g, T &iPutTo, bool iLumiOnly, uint32_t run, uint32_t lumi)
void removeElement(Args &&...args)
Kind kind() const
Get the type of the monitor element.
void endLuminosityBlockProduce(edm::LuminosityBlock &, const edm::EventSetup &) override