CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TriggerReportHelpers.cc
Go to the documentation of this file.
4 
5 #include "TriggerReportHelpers.h"
8 #include "xdata/TableIterator.h"
9 
10 #include <iostream>
11 #include <sstream>
12 #include <algorithm>
13 #include <map>
14 
15 #include "boost/tokenizer.hpp"
16 
17 namespace evf{
18  namespace fuep{
19 const std::string TriggerReportHelpers::columns[5] = {"l1Pass","psPass","pAccept","pExcept","pReject"};
20 void TriggerReportHelpers::triggerReportUpdate(edm::TriggerReport &tr, unsigned int ls, unsigned int ps, bool lumiComplete)
21 {
22  if(adjustLsIndex_)
23  {
25  adjustLsIndex_ = false;
26  }
27  else
29  if(lumiSectionIndex_ != ls)
30  std::cout << getpid() << " WARNING: ls index mismatch " << ls << " should be " << lumiSectionIndex_ << std::endl;
31  prescaleIndex_ = ps;
32 }
33 
35 {
36 
38 
41  for(int i=0; i<trs->trigPathsInMenu; i++) {
43  triggerReportAsTable_.setValueAt(i,columns[0],l1pre_[i]);
44  triggerReportAsTableWithNames_.setValueAt(i,columns[0],l1pre_[i]);
45  pps_[i] += (ps_[i] = trs->trigPathSummaries[i].timesPassedPs);
46  triggerReportAsTable_.setValueAt(i,columns[1],ps_[i]);
47  triggerReportAsTableWithNames_.setValueAt(i,columns[1],ps_[i]);
49  triggerReportAsTable_.setValueAt(i,columns[2], accept_[i]);
50  triggerReportAsTableWithNames_.setValueAt(i,columns[2], accept_[i]);
52  triggerReportAsTable_.setValueAt(i,columns[3], except_[i]);
53  triggerReportAsTableWithNames_.setValueAt(i,columns[3], except_[i]);
55  triggerReportAsTable_.setValueAt(i,columns[4], failed_[i]);
56  triggerReportAsTableWithNames_.setValueAt(i,columns[4], failed_[i]);
57  }
58  for(int i=0; i<trs->endPathsInMenu; i++) {
59  int j = i+trs->trigPathsInMenu;
61  triggerReportAsTable_.setValueAt(j,columns[0],l1pre_[j]);
62  triggerReportAsTableWithNames_.setValueAt(j,columns[0],l1pre_[j]);
63  pps_[j] += (ps_[j] = trs->endPathSummaries[i].timesPassedPs);
64  triggerReportAsTable_.setValueAt(j,columns[1],ps_[j]);
65  triggerReportAsTableWithNames_.setValueAt(j,columns[1],ps_[j]);
67  triggerReportAsTable_.setValueAt(j,columns[2], accept_[j]);
68  triggerReportAsTableWithNames_.setValueAt(j,columns[2], accept_[j]);
70  triggerReportAsTable_.setValueAt(j,columns[3], except_[j]);
71  triggerReportAsTableWithNames_.setValueAt(j,columns[3], except_[j]);
73  triggerReportAsTable_.setValueAt(j,columns[4], failed_[j]);
74  triggerReportAsTableWithNames_.setValueAt(j,columns[4], failed_[j]);
75  }
76 }
77 
78 void TriggerReportHelpers::fillPathIndexTable(std::string &pathstring)
79 {
80  unsigned int i = 0;
81  if(pathstring == ""){
82  for(; i<paths_.size(); i++) {
83  xdata::Table::iterator it = triggerReportAsTableWithNames_.append();
84  it->setField("pathIndex", pathIndexMap_[paths_[i]]=i);
85  }
86  }
87  else{
88  boost::char_separator<char> sep(",");
89  boost::tokenizer<boost::char_separator<char> > tokens(pathstring, sep);
90  for (boost::tokenizer<boost::char_separator<char> >::iterator tok_iter = tokens.begin();
91  tok_iter != tokens.end(); ++tok_iter){
92  unsigned int index = 0;
93  std::string name;
94  std::string::size_type pos = tok_iter->find("=");
95  if(pos!=std::string::npos){
96  name=tok_iter->substr(0,pos);
97  index = atoi(tok_iter->substr(pos+1).c_str());
99  }
100  }
101  for(; i<paths_.size(); i++) {
102  if(pathIndexMap_.find(paths_[i])==pathIndexMap_.end())
103  pathIndexMap_[paths_[i]] = i;
104  xdata::Table::iterator it = triggerReportAsTableWithNames_.append();
105  it->setField("pathIndex",pathIndexMap_[paths_[i]]);
106  }
107  }
108 }
109 
111  std::vector<edm::ModuleDescription const*>& descs,
112  std::string &pathIndexTable,
113  bool noNukeLegenda)
114 {
115 
116  if(tableFormatted_) return;
117  std::ostringstream ost;
118  trp_ = tr;
119  lumiSectionIndex_ = 0;
122 
123  tableFormatted_ = true;
124  paths_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size());
125  //adjust number of trigger- and end-paths in static structure
126  trp->trigPathsInMenu = tr.trigPathSummaries.size();
127  trp->endPathsInMenu = tr.endPathSummaries.size();
128  trp->datasetsInMenu = 0;//known in beginRun
130 
131  l1pos_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),-1);
132  pspos_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),-1);
133  outname_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size());
134  l1pre_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
135  ps_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
136  accept_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
137  except_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
138  failed_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
139  pl1pre_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
140  pps_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
141  paccept_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
142  pexcept_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
143  pfailed_.resize(tr.trigPathSummaries.size()+tr.endPathSummaries.size(),0);
144  triggerReportAsTable_.clear();
146  triggerReportAsTable_.addColumn(columns[0],"unsigned int 32");
147  triggerReportAsTable_.addColumn(columns[1],"unsigned int 32");
148  triggerReportAsTable_.addColumn(columns[2],"unsigned int 32");
149  triggerReportAsTable_.addColumn(columns[3],"unsigned int 32");
150  triggerReportAsTable_.addColumn(columns[4],"unsigned int 32");
152  triggerReportAsTableWithNames_.addColumn("pathIndex","unsigned int 32");
153 
154  unsigned int i=0;
155  for(; i<tr.trigPathSummaries.size(); i++) {
156  triggerReportAsTable_.append();
157  paths_[i] = tr.trigPathSummaries[i].name;
158 
159  ost << i << "=" << paths_[i] << ", ";
160 
161  // reset the l1 and ps positions to pick up modifications of the menu
162  // that result in paths being displaced up and down
163  l1pos_[i] = -1;
164  pspos_[i] = -1;
165 
166  for(unsigned int j=0;j<tr.trigPathSummaries[i].moduleInPathSummaries.size();j++) {
167  std::string label = tr.trigPathSummaries[i].moduleInPathSummaries[j].moduleLabel;
168  for(unsigned int k = 0; k < descs.size(); k++)
169  {
170  if(descs[k]->moduleLabel() == label)
171  {
172  if(descs[k]->moduleName() == "HLTLevel1GTSeed") l1pos_[i] = j;
173  if(descs[k]->moduleName() == "HLTPrescaler") pspos_[i] = j;
174  }
175  }
176 
177  }
178 
179  }
180  for(; i<tr.endPathSummaries.size()+tr.trigPathSummaries.size(); i++) {
181  triggerReportAsTable_.append();
182  paths_[i] = tr.endPathSummaries[i-tr.trigPathSummaries.size()].name;
183  ost << i << "=" << paths_[i] << ", ";
184  // reset the l1 and ps positions to pick up modifications of the menu
185  // that result in paths being displaced up and down
186  l1pos_[i] = -1;
187  pspos_[i] = -1;
188  outname_[i] = "";
189 
190  for(unsigned int j=0;
191  j<tr.endPathSummaries[i-tr.trigPathSummaries.size()].moduleInPathSummaries.size();
192  j++) {
193  std::string label = tr.endPathSummaries[i-tr.trigPathSummaries.size()].moduleInPathSummaries[j].moduleLabel;
194  for(unsigned int k = 0; k < descs.size(); k++)
195  {
196  if(descs[k]->moduleLabel() == label)
197  {
198  if(descs[k]->moduleName() == "TriggerResultsFilter") pspos_[i] = j;
199  // if(descs[k]->moduleName() == "HLTPrescaler") l1pos_[i] = j;
200  if(descs[k]->moduleName() == "ShmStreamConsumer")
201  outname_[i] = descs[k]->moduleLabel();
202  }
203  }
204 
205  }
206  }
207  fillPathIndexTable(pathIndexTable);
208  if(noNukeLegenda) pathLegenda_ = ost.str().c_str();
209 
210 }
211 
213 {
214  std::cout << "report table for LS #" << lumiSectionIndex_ << std::endl;
216  std::cout << std::endl;
217 }
219 {
220  std::ostringstream oss;
221 
222  oss<<"================================="<<"\n";
223  oss<<"== BEGINNING OF TRIGGER REPORT =="<<"\n";
224  oss<<"================================="<<"\n";
225  oss<<"tr.eventSummary.totalEvents= "<<tr.eventSummary.totalEvents<<"\n"
226  <<"tr.eventSummary.totalEventsPassed= "<<tr.eventSummary.totalEventsPassed<<"\n"
227  <<"tr.eventSummary.totalEventsFailed= "<<tr.eventSummary.totalEventsFailed<<"\n";
228 
229  oss<<"TriggerReport::trigPathSummaries"<<"\n";
230  for(unsigned int i=0; i<tr.trigPathSummaries.size(); i++) {
231  oss<<"tr.trigPathSummaries["<<i<<"].bitPosition = "
232  <<tr.trigPathSummaries[i].bitPosition <<"\n"
233  <<"tr.trigPathSummaries["<<i<<"].timesRun = "
234  <<tr.trigPathSummaries[i].timesRun <<"\n"
235  <<"tr.trigPathSummaries["<<i<<"].timesPassed = "
236  <<tr.trigPathSummaries[i].timesPassed <<"\n"
237  <<"tr.trigPathSummaries["<<i<<"].timesFailed = "
238  <<tr.trigPathSummaries[i].timesFailed <<"\n"
239  <<"tr.trigPathSummaries["<<i<<"].timesExcept = "
240  <<tr.trigPathSummaries[i].timesExcept <<"\n"
241  <<"tr.trigPathSummaries["<<i<<"].name = "
242  <<tr.trigPathSummaries[i].name <<"\n";
243 
244  //TriggerReport::trigPathSummaries::moduleInPathSummaries
245  for(unsigned int j=0;j<tr.trigPathSummaries[i].moduleInPathSummaries.size();j++) {
246  oss<<"tr.trigPathSummaries["<<i
247  <<"].moduleInPathSummaries["<<j<<"].timesVisited = "
248  <<tr.trigPathSummaries[i].moduleInPathSummaries[j].timesVisited<<"\n"
249  <<"tr.trigPathSummaries["<<i
250  <<"].moduleInPathSummaries["<<j<<"].timesPassed = "
251  <<tr.trigPathSummaries[i].moduleInPathSummaries[j].timesPassed<<"\n"
252  <<"tr.trigPathSummaries["<<i
253  <<"].moduleInPathSummaries["<<j<<"].timesFailed = "
254  <<tr.trigPathSummaries[i].moduleInPathSummaries[j].timesFailed<<"\n"
255  <<"tr.trigPathSummaries["<<i
256  <<"].moduleInPathSummaries["<<j<<"].timesExcept = "
257  <<tr.trigPathSummaries[i].moduleInPathSummaries[j].timesExcept<<"\n"
258  <<"tr.trigPathSummaries["<<i
259  <<"].moduleInPathSummaries["<<j<<"].moduleLabel = "
260  <<tr.trigPathSummaries[i].moduleInPathSummaries[j].moduleLabel<<"\n";
261  }
262  }
263 
264  //TriggerReport::endPathSummaries
265  for(unsigned int i=0;i<tr.endPathSummaries.size();i++) {
266  oss<<"tr.endPathSummaries["<<i<<"].bitPosition = "
267  <<tr.endPathSummaries[i].bitPosition <<"\n"
268  <<"tr.endPathSummaries["<<i<<"].timesRun = "
269  <<tr.endPathSummaries[i].timesRun <<"\n"
270  <<"tr.endPathSummaries["<<i<<"].timesPassed = "
271  <<tr.endPathSummaries[i].timesPassed <<"\n"
272  <<"tr.endPathSummaries["<<i<<"].timesFailed = "
273  <<tr.endPathSummaries[i].timesFailed <<"\n"
274  <<"tr.endPathSummaries["<<i<<"].timesExcept = "
275  <<tr.endPathSummaries[i].timesExcept <<"\n"
276  <<"tr.endPathSummaries["<<i<<"].name = "
277  <<tr.endPathSummaries[i].name <<"\n";
278 
279  //TriggerReport::endPathSummaries::moduleInPathSummaries
280  for(unsigned int j=0;j<tr.endPathSummaries[i].moduleInPathSummaries.size();j++) {
281  oss<<"tr.endPathSummaries["<<i
282  <<"].moduleInPathSummaries["<<j<<"].timesVisited = "
283  <<tr.endPathSummaries[i].moduleInPathSummaries[j].timesVisited <<"\n"
284  <<"tr.endPathSummaries["<<i
285  <<"].moduleInPathSummaries["<<j<<"].timesPassed = "
286  <<tr.endPathSummaries[i].moduleInPathSummaries[j].timesPassed <<"\n"
287  <<"tr.endPathSummaries["<<i
288  <<"].moduleInPathSummaries["<<j<<"].timesFailed = "
289  <<tr.endPathSummaries[i].moduleInPathSummaries[j].timesFailed <<"\n"
290  <<"tr.endPathSummaries["<<i
291  <<"].moduleInPathSummaries["<<j<<"].timesExcept = "
292  <<tr.endPathSummaries[i].moduleInPathSummaries[j].timesExcept <<"\n"
293  <<"tr.endPathSummaries["<<i
294  <<"].moduleInPathSummaries["<<j<<"].moduleLabel = "
295  <<tr.endPathSummaries[i].moduleInPathSummaries[j].moduleLabel <<"\n";
296  }
297  }
298 
299  //TriggerReport::workerSummaries
300  for(unsigned int i=0; i<tr.workerSummaries.size(); i++) {
301  oss<<"tr.workerSummaries["<<i<<"].timesVisited = "
302  <<tr.workerSummaries[i].timesVisited<<"\n"
303  <<"tr.workerSummaries["<<i<<"].timesRun = "
304  <<tr.workerSummaries[i].timesRun<<"\n"
305  <<"tr.workerSummaries["<<i<<"].timesPassed = "
306  <<tr.workerSummaries[i].timesPassed <<"\n"
307  <<"tr.workerSummaries["<<i<<"].timesFailed = "
308  <<tr.workerSummaries[i].timesFailed <<"\n"
309  <<"tr.workerSummaries["<<i<<"].timesExcept = "
310  <<tr.workerSummaries[i].timesExcept <<"\n"
311  <<"tr.workerSummaries["<<i<<"].moduleLabel = "
312  <<tr.workerSummaries[i].moduleLabel <<"\n";
313  }
314 
315  oss<<"==========================="<<"\n";
316  oss<<"== END OF TRIGGER REPORT =="<<"\n";
317  oss<<"==========================="<<"\n";
318  std::cout << oss.str() << std::endl;
319  // LOG4CPLUS_DEBUG(getApplicationLogger(),oss.str());
320 }
321 
323  ShmOutputModuleRegistry *sor, bool countDatasets)
324 {
328  //copy the event summary
329  trp->eventSummary.totalEvents =
335 
336  //get total paths in the menu
339  //traverse the trigger report to get a copy of relevant parts in the static structure
340  // loop on paths
341 
342  for(int i = 0; i < trp->trigPathsInMenu; i++)
343  {
344 
345  trp->trigPathSummaries[i].timesRun =
346  tr.trigPathSummaries[i].timesRun - trp_.trigPathSummaries[i].timesRun;
348  tr.trigPathSummaries[i].timesPassed - trp_.trigPathSummaries[i].timesPassed;
349  if(l1pos_[i]>=0) {
351  tr.trigPathSummaries[i].moduleInPathSummaries[l1pos_[i]].timesPassed -
352  trp_.trigPathSummaries[i].moduleInPathSummaries[l1pos_[i]].timesPassed;
353  }
354  else {
356  tr.trigPathSummaries[i].timesRun - trp_.trigPathSummaries[i].timesRun;
357  }
358  if(pspos_[i]>=0) {
360  tr.trigPathSummaries[i].moduleInPathSummaries[pspos_[i]].timesPassed -
361  trp_.trigPathSummaries[i].moduleInPathSummaries[pspos_[i]].timesPassed;
362  }
363  else if(l1pos_[i]>=0) {
365  tr.trigPathSummaries[i].moduleInPathSummaries[l1pos_[i]].timesPassed -
366  trp_.trigPathSummaries[i].moduleInPathSummaries[l1pos_[i]].timesPassed;
367  }
368  else {
370  tr.trigPathSummaries[i].timesRun - trp_.trigPathSummaries[i].timesRun;
371  }
373  tr.trigPathSummaries[i].timesFailed-trp_.trigPathSummaries[i].timesFailed;
375  tr.trigPathSummaries[i].timesExcept - trp_.trigPathSummaries[i].timesExcept;
376  }
377  for(int i = 0; i < trp->endPathsInMenu; i++)
378  {
379  unsigned int j = i + trp->trigPathsInMenu;
380  evf::OutputModule *o = sor->get(outname_[j]);
381  if(!o) {
382  // sor->dumpRegistry();
383  continue;
384  }
385  trp->endPathSummaries[i].timesRun =
386  tr.endPathSummaries[i].timesRun - trp_.endPathSummaries[i].timesRun;
388  o->getCounts() - trp_.endPathSummaries[i].timesPassed;
390  (tr.endPathSummaries[i].timesRun - o->getCounts())
391  - trp_.endPathSummaries[i].timesFailed;
393  tr.endPathSummaries[i].timesExcept - trp_.endPathSummaries[i].timesExcept;
394 
395 
396  if(l1pos_[j]>=0) {
398  tr.endPathSummaries[i].moduleInPathSummaries[l1pos_[j]].timesPassed -
399  trp_.endPathSummaries[i].moduleInPathSummaries[l1pos_[j]].timesPassed;
400  }
401  else {
403  }
404  if(pspos_[j]>=0) {
406  tr.endPathSummaries[i].moduleInPathSummaries[pspos_[j]].timesPassed -
407  trp_.endPathSummaries[i].moduleInPathSummaries[pspos_[j]].timesPassed;
408  }
409  else if(l1pos_[j]>=0) {
411  tr.endPathSummaries[i].moduleInPathSummaries[l1pos_[j]].timesPassed -
412  trp_.endPathSummaries[i].moduleInPathSummaries[l1pos_[j]].timesPassed;
413  }
414  else {
416  }
417  }
418  //dataset statistics
419  unsigned int datasetIndex = 0;
420  if (sor && countDatasets) {
421  std::vector<edm::FUShmOutputModule *> & shmOutputsWithDatasets_ = sor->getShmOutputModulesWithDatasets();
422  for (unsigned int i=0;i<shmOutputsWithDatasets_.size();i++)
423  {
424  std::vector<unsigned int> & outputCounters = shmOutputsWithDatasets_[i]->getDatasetCounts();
425  for (unsigned int j=0;j<outputCounters.size();j++)
426  {
427  if (j>=max_datasets) continue;
428  trp->datasetSummaries[datasetIndex].timesPassed=outputCounters[j];
429  datasetIndex++;
430  }
431  shmOutputsWithDatasets_[i]->clearDatasetCounts();
432  }
433  }
434  trp->datasetsInMenu=datasetIndex;
435 
436  trp_ = tr;
437  for(int i = 0; i < trp->endPathsInMenu; i++)
438  {
440  if(!o) {
441  // sor->dumpRegistry();
442  continue;
443  }
444  trp_.endPathSummaries[i].timesPassed = o->getCounts();
445  trp_.endPathSummaries[i].timesFailed = tr.endPathSummaries[i].timesRun - o->getCounts();
446  }
447 
448 }
449 
450 
452 {
453 
455  TriggerReportStatic *trp = (TriggerReportStatic *)buf->mtext;
456 
457  // add check for LS consistency
458  if(trp->lumiSection != lumiSectionIndex_){
459  std::cout << "WARNING: lumisection index mismatch from subprocess " << trp->lumiSection
460  << " should be " << lumiSectionIndex_ << " will be skipped" << std::endl;
461  return;
462  }
463  //get total paths in the menu
464  if(trs->trigPathsInMenu != trp->trigPathsInMenu)
465  {
466  std::ostringstream ost;
467  ost << "trig path summary inconsistency "
468  << trs->trigPathsInMenu << " vs. " << trp->trigPathsInMenu;
469  std::cout << ost.str() << std::endl;
470  XCEPT_RAISE(evf::Exception,ost.str());
471  }
472  if(trs->endPathsInMenu != trp->endPathsInMenu)
473  {
474  std::ostringstream ost;
475  ost << "trig endpath summary inconsistency "
476  << trs->endPathsInMenu << " vs. " << trp->endPathsInMenu;
477  std::cout << ost.str() << std::endl;
478  XCEPT_RAISE(evf::Exception,ost.str());
479  }
480  //init dataset sizes if 0
481  if (!trs->datasetsInMenu) trs->datasetsInMenu = trp->datasetsInMenu;
482  if(trs->datasetsInMenu != trp->datasetsInMenu)
483  {
484  std::ostringstream ost;
485  ost << "output module dataset summary inconsistency "
486  << trs->datasetsInMenu << " vs. " << trp->datasetsInMenu;
487  std::cout << ost.str() << std::endl;
488  XCEPT_RAISE(evf::Exception,ost.str());
489  }
491 
492 }
493 
495 {
496 
498 
499  funcs::reset(trp);
500 
502 }
503 
505 {
506 
507  //copy the event summary
511 
512  for(unsigned int i = 0; i < trp_.trigPathSummaries.size(); i++)
513  {
514  // reset individual path summaries
515  trp_.trigPathSummaries[i].timesRun = 0;
516  trp_.trigPathSummaries[i].timesPassed = 0;
517  trp_.trigPathSummaries[i].timesFailed = 0;
518  trp_.trigPathSummaries[i].timesExcept = 0;
519 
520  //loop over modules in path
521  for(unsigned int j = 0; j<trp_.trigPathSummaries[i].moduleInPathSummaries.size(); j++)
522  {
523  //reset module summaries
524  trp_.trigPathSummaries[i].moduleInPathSummaries[j].timesVisited = 0;
525  trp_.trigPathSummaries[i].moduleInPathSummaries[j].timesPassed = 0;
526  trp_.trigPathSummaries[i].moduleInPathSummaries[j].timesFailed = 0;
527  trp_.trigPathSummaries[i].moduleInPathSummaries[j].timesExcept = 0;
528  }
529  }
530  for(unsigned int i = 0; i < trp_.endPathSummaries.size(); i++)
531  {
532  trp_.endPathSummaries[i].timesRun = 0;
533  trp_.endPathSummaries[i].timesPassed = 0;
534  trp_.endPathSummaries[i].timesFailed = 0;
535  trp_.endPathSummaries[i].timesExcept = 0;
536  for(unsigned int j = 0; j<trp_.endPathSummaries[i].moduleInPathSummaries.size(); j++)
537  {
538  trp_.endPathSummaries[i].moduleInPathSummaries[j].timesVisited = 0;
539  trp_.endPathSummaries[i].moduleInPathSummaries[j].timesPassed = 0;
540  trp_.endPathSummaries[i].moduleInPathSummaries[j].timesFailed = 0;
541  trp_.endPathSummaries[i].moduleInPathSummaries[j].timesExcept = 0;
542  }
543  }
544 
545 }
547  std::vector<edm::ModuleDescription const*>& descs,
548  unsigned int ind,
549  std::string type)
550 {
551  std::string retval;
552  for(unsigned int j=0;
553  j<tr.endPathSummaries[ind].moduleInPathSummaries.size();
554  j++) {
555 
556  std::string label = tr.endPathSummaries[ind].moduleInPathSummaries[j].moduleLabel;
557  for(unsigned int k = 0; k < descs.size(); k++)
558  {
559  if(descs[k]->moduleLabel() == label)
560  {
561  if(descs[k]->moduleName() == type) {retval = label; break;}
562  }
563  }
564  }
565  return retval;
566 }
567 
568 }//end namespace fuep
569 }//end namespace evf
type
Definition: HCALResponse.h:22
std::vector< PathSummary > endPathSummaries
Definition: TriggerReport.h:65
int i
Definition: DBlmapReader.cc:9
std::vector< xdata::UnsignedInteger32 > accept_
TriggerReportStatic * getPackedTriggerReportAsStruct()
static const std::string columns[5]
std::string findLabelOfModuleTypeInEndPath(edm::TriggerReport &, std::vector< edm::ModuleDescription const * > &, unsigned int, std::string)
std::map< std::string, xdata::UnsignedInteger32 > pathIndexMap_
boost::tokenizer< boost::char_separator< char > > tokenizer
PathSummaryStatic trigPathSummaries[max_paths]
std::vector< edm::FUShmOutputModule * > & getShmOutputModulesWithDatasets()
xdata::UnsignedInteger32 eventsProcessed_
#define min(a, b)
Definition: mlp_lapack.h:161
std::vector< unsigned int > pfailed_
void addToReport(TriggerReportStatic *trs, TriggerReportStatic *trp, unsigned int lumisection)
std::vector< WorkerSummary > workerSummaries
Definition: TriggerReport.h:66
std::vector< std::string > outname_
uint16_t size_type
static const size_t max_datasets
std::vector< unsigned int > pl1pre_
std::vector< xdata::UnsignedInteger32 > l1pre_
void printTriggerReport(edm::TriggerReport &)
std::vector< PathSummary > trigPathSummaries
Definition: TriggerReport.h:64
EventSummary eventSummary
Definition: TriggerReport.h:63
xdata::UnsignedInteger32 eventsAccepted_
std::vector< xdata::UnsignedInteger32 > ps_
DatasetSummaryStatic datasetSummaries[max_datasets]
void reset(TriggerReportStatic *)
int j
Definition: DBlmapReader.cc:9
PathSummaryStatic endPathSummaries[max_endpaths]
int k[5][pyjets_maxn]
std::vector< unsigned int > pexcept_
void formatReportTable(edm::TriggerReport &, std::vector< edm::ModuleDescription const * > &, std::string &pathIndexTable, bool noNukeLegenda)
OutputModule * get(std::string &name)
void packTriggerReport(edm::TriggerReport &, ShmOutputModuleRegistry *, bool)
static const size_t max_paths
std::vector< unsigned int > paccept_
virtual unsigned int getCounts()=0
tuple cout
Definition: gather_cfg.py:121
edm::EventSummary eventSummary
std::vector< unsigned int > pps_
static const size_t max_endpaths
std::vector< xdata::UnsignedInteger32 > failed_
std::vector< std::string > paths_
void triggerReportUpdate(edm::TriggerReport &, unsigned int, unsigned int, bool=true)
std::vector< xdata::UnsignedInteger32 > except_