19 std::string MsgLoggerCat =
"EDMtoMEConverter_EDMtoMEConverter";
40 <<
"\n===============================\n"
41 <<
"Initialized as EDAnalyzer with parameter values:\n"
42 <<
" Name = " <<
name <<
"\n"
43 <<
" Verbosity = " << verbosity <<
"\n"
44 <<
" Frequency = " << frequency <<
"\n"
45 <<
"===============================\n";
66 assert(
sizeof(int64_t) ==
sizeof(
long long));
78 std::string MsgLoggerCat =
"EDMtoMEConverter_endJob";
81 <<
"Terminating having processed " <<
iCount.size() <<
" runs across "
94 std::string MsgLoggerCat =
"EDMtoMEConverter_beginRun";
96 int nrun = iRun.
run();
103 <<
"Processing run " << nrun <<
" (" <<
iCount.size() <<
" runs total)";
107 <<
"Processing run " << nrun <<
" (" <<
iCount.size() <<
" runs total)";
139 std::string MsgLoggerCat =
"EDMtoMEConverter_getData";
142 edm::LogInfo (MsgLoggerCat) <<
"\nRestoring MonitorElements.";
144 for (
unsigned int ii = 0; ii <
classtypes.size(); ++ii) {
148 iGetFrom.getByType(metoedm);
156 std::vector<MEtoEDM<TH1F>::MEtoEDMObject> metoedmobject =
157 metoedm->getMEtoEdmObject();
159 me1.resize(metoedmobject.size());
161 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
166 std::string pathname = metoedmobject[
i].name;
174 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
176 if (
j != fulldir.size() - 2) dir +=
"/";
181 me1[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
184 list.Add(&metoedmobject[
i].
object);
186 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
187 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
191 &metoedmobject[
i].
object);
193 if (!iEndRun)
me1[
i]->setLumiFlag();
199 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
207 iGetFrom.getByType(metoedm);
215 std::vector<MEtoEDM<TH1S>::MEtoEDMObject> metoedmobject =
216 metoedm->getMEtoEdmObject();
218 me1.resize(metoedmobject.size());
220 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
225 std::string pathname = metoedmobject[
i].name;
233 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
235 if (
j != fulldir.size() - 2) dir +=
"/";
240 me1[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
241 if (
me1[
i] &&
me1[
i]->getTH1S() &&
me1[
i]->getTH1S()->TestBit(TH1::kCanRebin) ==
true) {
243 list.Add(&metoedmobject[
i].
object);
244 if (
me1[
i]->getTH1S()->Merge(&list) == -1)
245 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
246 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
250 &metoedmobject[
i].
object);
252 if (!iEndRun)
me1[
i]->setLumiFlag();
258 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
266 iGetFrom.getByType(metoedm);
274 std::vector<MEtoEDM<TH1D>::MEtoEDMObject> metoedmobject =
275 metoedm->getMEtoEdmObject();
277 me1.resize(metoedmobject.size());
279 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
284 std::string pathname = metoedmobject[
i].name;
292 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
294 if (
j != fulldir.size() - 2) dir +=
"/";
299 me1[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
300 if (
me1[
i] &&
me1[
i]->getTH1D() &&
me1[
i]->getTH1D()->TestBit(TH1::kCanRebin) ==
true) {
302 list.Add(&metoedmobject[
i].
object);
303 if (
me1[
i]->getTH1D()->Merge(&list) == -1)
304 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
305 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
309 &metoedmobject[
i].
object);
311 if (!iEndRun)
me1[
i]->setLumiFlag();
317 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
325 iGetFrom.getByType(metoedm);
333 std::vector<MEtoEDM<TH2F>::MEtoEDMObject> metoedmobject =
334 metoedm->getMEtoEdmObject();
336 me2.resize(metoedmobject.size());
338 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
343 std::string pathname = metoedmobject[
i].name;
351 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
353 if (
j != fulldir.size() - 2) dir +=
"/";
358 me2[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
361 list.Add(&metoedmobject[
i].
object);
363 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
364 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
368 &metoedmobject[
i].
object);
370 if (!iEndRun)
me2[
i]->setLumiFlag();
376 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
384 iGetFrom.getByType(metoedm);
392 std::vector<MEtoEDM<TH2S>::MEtoEDMObject> metoedmobject =
393 metoedm->getMEtoEdmObject();
395 me2.resize(metoedmobject.size());
397 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
402 std::string pathname = metoedmobject[
i].name;
410 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
412 if (
j != fulldir.size() - 2) dir +=
"/";
417 me2[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
418 if (
me2[
i] &&
me2[
i]->getTH2S() &&
me2[
i]->getTH2S()->TestBit(TH1::kCanRebin) ==
true) {
420 list.Add(&metoedmobject[
i].
object);
421 if (
me2[
i]->getTH2S()->Merge(&list) == -1)
422 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
423 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
427 &metoedmobject[
i].
object);
429 if (!iEndRun)
me2[
i]->setLumiFlag();
435 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
443 iGetFrom.getByType(metoedm);
451 std::vector<MEtoEDM<TH2D>::MEtoEDMObject> metoedmobject =
452 metoedm->getMEtoEdmObject();
454 me2.resize(metoedmobject.size());
456 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
461 std::string pathname = metoedmobject[
i].name;
469 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
471 if (
j != fulldir.size() - 2) dir +=
"/";
476 me2[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
477 if (
me2[
i] &&
me2[
i]->getTH2D() &&
me2[
i]->getTH2D()->TestBit(TH1::kCanRebin) ==
true) {
479 list.Add(&metoedmobject[
i].
object);
480 if (
me2[
i]->getTH2D()->Merge(&list) == -1)
481 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
482 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
486 &metoedmobject[
i].
object);
488 if (!iEndRun)
me2[
i]->setLumiFlag();
494 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
502 iGetFrom.getByType(metoedm);
510 std::vector<MEtoEDM<TH3F>::MEtoEDMObject> metoedmobject =
511 metoedm->getMEtoEdmObject();
513 me3.resize(metoedmobject.size());
515 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
520 std::string pathname = metoedmobject[
i].name;
528 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
530 if (
j != fulldir.size() - 2) dir +=
"/";
535 me3[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
538 list.Add(&metoedmobject[
i].
object);
540 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
541 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
545 &metoedmobject[
i].
object);
547 if (!iEndRun)
me3[
i]->setLumiFlag();
553 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
561 iGetFrom.getByType(metoedm);
569 std::vector<MEtoEDM<TProfile>::MEtoEDMObject> metoedmobject =
570 metoedm->getMEtoEdmObject();
572 me4.resize(metoedmobject.size());
574 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
579 std::string pathname = metoedmobject[
i].name;
587 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
589 if (
j != fulldir.size() - 2) dir +=
"/";
592 std::string
name = metoedmobject[
i].object.GetName();
595 me4[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
598 list.Add(&metoedmobject[
i].
object);
600 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
601 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
605 &metoedmobject[
i].
object);
607 if (!iEndRun)
me4[
i]->setLumiFlag();
613 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
621 iGetFrom.getByType(metoedm);
629 std::vector<MEtoEDM<TProfile2D>::MEtoEDMObject> metoedmobject =
630 metoedm->getMEtoEdmObject();
632 me5.resize(metoedmobject.size());
634 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
639 std::string pathname = metoedmobject[
i].name;
647 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
649 if (
j != fulldir.size() - 2) dir +=
"/";
654 me5[
i] =
dbe->
get(dir+
"/"+metoedmobject[
i].
object.GetName());
657 list.Add(&metoedmobject[
i].
object);
659 std::cout <<
"ERROR EDMtoMEConverter::getData(): merge failed for '"
660 << metoedmobject[
i].object.GetName() <<
"'" << std::endl;
664 &metoedmobject[
i].
object);
666 if (!iEndRun)
me5[
i]->setLumiFlag();
672 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
680 iGetFrom.getByType(metoedm);
688 std::vector<MEtoEDM<double>::MEtoEDMObject> metoedmobject =
689 metoedm->getMEtoEdmObject();
691 me6.resize(metoedmobject.size());
693 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
698 std::string pathname = metoedmobject[
i].name;
707 name = *(fulldir.end() - 1);
709 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
711 if (
j != fulldir.size() - 2) dir +=
"/";
718 me6[
i]->Fill(metoedmobject[
i].
object);
719 if (!iEndRun)
me6[
i]->setLumiFlag();
725 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
733 iGetFrom.getByType(metoedm);
741 std::vector<MEtoEDM<long long>::MEtoEDMObject> metoedmobject =
742 metoedm->getMEtoEdmObject();
744 me7.resize(metoedmobject.size());
746 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
751 std::string pathname = metoedmobject[
i].name;
759 name = *(fulldir.end() - 1);
761 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
763 if (
j != fulldir.size() - 2) dir +=
"/";
771 if (name.find(
"processedEvents") != std::string::npos) {
773 ival = me->getIntValue();
778 me7[
i]->Fill(metoedmobject[
i].
object+ival);
779 if (!iEndRun)
me7[
i]->setLumiFlag();
785 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
793 iGetFrom.getByType(metoedm);
801 std::vector<MEtoEDM<int>::MEtoEDMObject> metoedmobject =
802 metoedm->getMEtoEdmObject();
804 me7.resize(metoedmobject.size());
806 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
811 std::string pathname = metoedmobject[
i].name;
819 name = *(fulldir.end() - 1);
821 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
823 if (
j != fulldir.size() - 2) dir +=
"/";
831 if (name.find(
"processedEvents") != std::string::npos) {
833 ival = me->getIntValue();
838 me7[
i]->Fill(metoedmobject[
i].
object+ival);
839 if (!iEndRun)
me7[
i]->setLumiFlag();
845 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
853 iGetFrom.getByType(metoedm);
861 std::vector<MEtoEDM<TString>::MEtoEDMObject> metoedmobject =
862 metoedm->getMEtoEdmObject();
864 me8.resize(metoedmobject.size());
866 for (
unsigned int i = 0;
i < metoedmobject.size(); ++
i) {
871 std::string pathname = metoedmobject[
i].name;
879 name = *(fulldir.end() - 1);
881 for (
unsigned j = 0;
j < fulldir.size() - 1; ++
j) {
883 if (
j != fulldir.size() - 2) dir +=
"/";
889 std::string scont = metoedmobject[
i].object.Data();
891 if (!iEndRun)
me8[
i]->setLumiFlag();
897 for (
unsigned int j = 0;
j < tags.size(); ++
j) {
906 std::vector<std::string> stags;
908 for (
unsigned int i = 0;
i < stags.size(); ++
i) {
909 std::cout <<
"Tags: " << stags[
i] << std::endl;
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< uint32_t > TagList
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * book2S(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2S histogram.
TProfile * getTProfile(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * book3D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ)
Book 3D histogram.
MonitorElement * book2DD(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D double histogram.
EDMtoMEConverter(const edm::ParameterSet &)
std::vector< MonitorElement * > me6
virtual void endRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * book1DD(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1S histogram.
std::vector< std::string > classtypes
MonitorElement * bookFloat(const char *name)
Book float.
void tag(MonitorElement *me, unsigned int myTag)
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
std::vector< MonitorElement * > me8
MonitorElement * bookString(const char *name, const char *value)
Book string.
TH3F * getTH3F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
std::vector< MonitorElement * > me7
std::vector< MonitorElement * > me1
std::vector< MonitorElement * > me4
std::vector< MonitorElement * > me5
TH1F * getTH1F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
TProfile2D * getTProfile2D(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
void getAllTags(std::vector< std::string > &into) const
virtual void respondToOpenInputFile(const edm::FileBlock &)
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
std::vector< MonitorElement * > me2
virtual ~EDMtoMEConverter()
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
MonitorElement * bookInt(const char *name)
Book int.
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
std::vector< MonitorElement * > me3
MonitorElement * book1S(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1S histogram.
void setCurrentFolder(const std::string &fullpath)
std::map< int, int > iCount
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
void getData(T &iGetFrom, bool iEndRun)
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")