CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/EventFilter/Processor/src/TriggerReportHelpers.h

Go to the documentation of this file.
00001 #ifndef TriggerReportHelpers_H
00002 #define TriggerReportHelpers_H
00003 
00004 #include "xdata/String.h"
00005 #include "xdata/UnsignedInteger32.h"
00006 #include "xdata/Table.h"
00007 
00008 #include "EventFilter/Utilities/interface/MsgBuf.h"
00009 #include "EventFilter/Utilities/interface/TriggerReportDef.h"
00010 
00011 #include <vector>
00012 #include <string>
00013 
00014 namespace edm{
00015   class ModuleDescription;
00016 }
00017 
00018 namespace evf{
00019 
00020 
00021   namespace fuep{
00022     class TriggerReportHelpers{
00023     public:
00024       TriggerReportHelpers() 
00025         : eventsProcessed_(0)
00026         , eventsAccepted_(0)
00027         , tableFormatted_(false)
00028         , lumiSectionIndex_(0)
00029         , prescaleIndex_(0)
00030         , cache_(sizeof(TriggerReportStatic),MSQS_MESSAGE_TYPE_TRR)
00031         , adjustLsIndex_(false)
00032         {}
00033       void resetFormat(){tableFormatted_ = false;}
00034       void printReportTable();
00035       void printTriggerReport(edm::TriggerReport &);
00036       void triggerReportUpdate(edm::TriggerReport &, unsigned int, unsigned int, bool = true);
00037       void packedTriggerReportToTable();
00038       void formatReportTable(edm::TriggerReport &
00039                              , std::vector<edm::ModuleDescription const*>&
00040                              , std::string &pathIndexTable
00041                              , bool noNukeLegenda);
00042       void fillPathIndexTable(std::string &);
00043       xdata::Table &getTable(){return triggerReportAsTable_;} 
00044       xdata::Table &getTableWithNames(){return triggerReportAsTableWithNames_;} 
00045       xdata::UnsignedInteger32 &getProcThisLumi(){return eventsProcessed_;}
00046       xdata::UnsignedInteger32 &getAccThisLumi(){return eventsAccepted_;}
00047       bool checkLumiSection(unsigned int ls) {return (ls == lumiSectionIndex_);}
00048       void packTriggerReport(edm::TriggerReport &, ShmOutputModuleRegistry *,bool);
00049       void sumAndPackTriggerReport(MsgBuf &);
00050       void resetPackedTriggerReport();
00051       void adjustLsIndexForRestart(){adjustLsIndex_ = true; if(lumiSectionIndex_>1) lumiSectionIndex_--;}
00052       void resetTriggerReport();
00053       evf::MsgBuf & getPackedTriggerReport(){return cache_;}
00054       TriggerReportStatic *getPackedTriggerReportAsStruct(){return (TriggerReportStatic *)cache_->mtext;}
00055       xdata::String *getPathLegenda(){return &pathLegenda_;}
00056       void resetLumiSectionReferenceIndex(){lumiSectionIndex_=0;}
00057       void withdrawLumiSectionIncrement(){if(lumiSectionIndex_>0) lumiSectionIndex_--;}
00058       unsigned int getLumiSectionReferenceIndex(){return lumiSectionIndex_;}
00059       std::string findLabelOfModuleTypeInEndPath(edm::TriggerReport &, 
00060                                                  std::vector<edm::ModuleDescription const*>&,
00061                                                  unsigned int, 
00062                                                  std::string);
00063       unsigned int getl1pre(unsigned int ind){return pl1pre_[ind];}
00064       unsigned int getps(unsigned int ind){return pps_[ind];}
00065       unsigned int getaccept(unsigned int ind){return paccept_[ind];}
00066       unsigned int getfailed(unsigned int ind){return pfailed_[ind];}
00067       unsigned int getexcept(unsigned int ind){return pexcept_[ind];}
00068     private:
00069       // scalers table
00070       xdata::UnsignedInteger32 eventsProcessed_;
00071       xdata::UnsignedInteger32 eventsAccepted_;
00072       xdata::Table triggerReportAsTable_;
00073       xdata::Table triggerReportAsTableWithNames_;
00074       xdata::String pathLegenda_;
00075       bool         tableFormatted_;
00076       std::vector<int> l1pos_;
00077       std::vector<int> pspos_;
00078       std::vector<std::string> outname_;
00079       static const std::string columns[5];
00080       std::vector<std::string>            paths_;
00081       std::vector<xdata::UnsignedInteger32> l1pre_;
00082       std::vector<xdata::UnsignedInteger32> ps_;
00083       std::vector<xdata::UnsignedInteger32> accept_;
00084       std::vector<xdata::UnsignedInteger32> except_;
00085       std::vector<xdata::UnsignedInteger32> failed_;
00086       std::vector<unsigned int> pl1pre_;
00087       std::vector<unsigned int> pps_;
00088       std::vector<unsigned int> paccept_;
00089       std::vector<unsigned int> pexcept_;
00090       std::vector<unsigned int> pfailed_;
00091       std::map<std::string, xdata::UnsignedInteger32> pathIndexMap_;
00092       unsigned int lumiSectionIndex_;
00093       unsigned int prescaleIndex_;
00094       edm::TriggerReport trp_;
00095       MsgBuf  cache_;
00096       bool adjustLsIndex_;
00097     };
00098   }
00099 }
00100 
00101 
00102 
00103 #endif