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");
112 store->scaleElements();
134 std::string MsgLoggerCat =
"MEtoEDMConverter_putData";
137 edm::LogInfo (MsgLoggerCat) <<
"\nStoring MEtoEDM dataformat histograms.";
140 std::vector<MonitorElement *>::iterator mmi, mme;
153 unsigned int nProf=0;
154 unsigned int nProf2=0;
155 unsigned int nDouble=0;
156 unsigned int nInt64=0;
157 unsigned int nString=0;
159 for (mmi =
items.begin (), mme =
items.end (); mmi != mme; ++mmi) {
220 <<
"' is neither a ROOT object nor a recognised " 221 <<
"simple object.\n";
227 std::unique_ptr<MEtoEDM<double> > pOutDouble(
new MEtoEDM<double>(nDouble));
228 std::unique_ptr<MEtoEDM<TString> > pOutString(
new MEtoEDM<TString>(nString));
229 std::unique_ptr<MEtoEDM<TH1F> > pOut1(
new MEtoEDM<TH1F>(n1F));
230 std::unique_ptr<MEtoEDM<TH1S> > pOut1s(
new MEtoEDM<TH1S>(n1S));
231 std::unique_ptr<MEtoEDM<TH1D> > pOut1d(
new MEtoEDM<TH1D>(n1D));
232 std::unique_ptr<MEtoEDM<TH2F> > pOut2(
new MEtoEDM<TH2F>(n2F));
233 std::unique_ptr<MEtoEDM<TH2S> > pOut2s(
new MEtoEDM<TH2S>(n2S));
234 std::unique_ptr<MEtoEDM<TH2D> > pOut2d(
new MEtoEDM<TH2D>(n2D));
235 std::unique_ptr<MEtoEDM<TH3F> > pOut3(
new MEtoEDM<TH3F>(n3F));
239 for (mmi =
items.begin (), mme =
items.end (); mmi != mme; ++mmi) {
302 <<
"' is neither a ROOT object nor a recognised " 303 <<
"simple object.\n";
318 sName =
fName +
"Lumi";
320 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)
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
void endRun(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 beginRun(edm::Run const &, const edm::EventSetup &) override
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