CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/L1TriggerConfig/L1GtConfigProducers/interface/L1GtTriggerMenuTester.h

Go to the documentation of this file.
00001 #ifndef L1GtConfigProducers_L1GtTriggerMenuTester_h
00002 #define L1GtConfigProducers_L1GtTriggerMenuTester_h
00003 
00020 // this class header
00021 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtTriggerMenuTester.h"
00022 
00023 // system include files
00024 #include <string>
00025 #include <map>
00026 
00027 // user include files
00028 //   base class
00029 #include "FWCore/Framework/interface/EDAnalyzer.h"
00030 
00031 #include "FWCore/Framework/interface/Event.h"
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033 
00034 #include "CondFormats/L1TObjects/interface/L1GtAlgorithm.h"
00035 
00036 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
00037 
00038 // forward declarations
00039 class L1GtStableParameters;
00040 class L1GtPrescaleFactors;
00041 class L1GtTriggerMask;
00042 class L1GtTriggerMenu;
00043 
00044 // class declaration
00045 class L1GtTriggerMenuTester: public edm::EDAnalyzer {
00046 
00047 public:
00048 
00049     // constructor
00050     explicit L1GtTriggerMenuTester(const edm::ParameterSet&);
00051 
00052     // destructor
00053     virtual ~L1GtTriggerMenuTester();
00054 
00055 private:
00056 
00058     void beginJob();
00059 
00061     void beginRun(const edm::Run&, const edm::EventSetup&);
00062 
00064     void beginLuminosityBlock(const edm::LuminosityBlock&,
00065             const edm::EventSetup&);
00066 
00068     void analyze(const edm::Event&, const edm::EventSetup&);
00069 
00071     void
00072     endLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&);
00073 
00075     void endRun(const edm::Run&, const edm::EventSetup&);
00076 
00078     void endJob();
00079 
00080 private:
00081 
00083     void retrieveL1EventSetup(const edm::EventSetup&);
00084 
00086     void associateL1SeedsHltPath(const edm::Run&, const edm::EventSetup&);
00087 
00089     void printTriggerGroup(const std::string& trigGroupName,
00090             const std::map<std::string, const L1GtAlgorithm*>& trigGroup,
00091             const bool compactPrint, const bool printPfsRates);
00092 
00094     void printWiki();
00095 
00096 private:
00097 
00099     typedef std::map<std::string, const L1GtAlgorithm*>::const_iterator
00100             CItAlgoP;
00101 
00102 private:
00103 
00105 
00108     bool m_overwriteHtmlFile;
00109 
00111     std::string m_htmlFile;
00112 
00114     bool m_useHltMenu;
00115 
00117     std::string m_hltProcessName;
00118 
00121     bool m_noThrowIncompatibleMenu;
00122 
00124     bool m_printPfsRates;
00125 
00127     int m_indexPfSet;
00128 
00129 private:
00130 
00132 
00134     const L1GtStableParameters* m_l1GtStablePar;
00135 
00137     unsigned int m_numberAlgorithmTriggers;
00138 
00140     unsigned int m_numberTechnicalTriggers;
00141 
00143     const L1GtPrescaleFactors* m_l1GtPfAlgo;
00144 
00145     const L1GtPrescaleFactors* m_l1GtPfTech;
00146 
00147     const std::vector<std::vector<int> >* m_prescaleFactorsAlgoTrig;
00148     const std::vector<std::vector<int> >* m_prescaleFactorsTechTrig;
00149 
00151     const L1GtTriggerMask* m_l1GtTmAlgo;
00152     const L1GtTriggerMask* m_l1GtTmTech;
00153 
00154     const L1GtTriggerMask* m_l1GtTmVetoAlgo;
00155     const L1GtTriggerMask* m_l1GtTmVetoTech;
00156 
00157     const std::vector<unsigned int>* m_triggerMaskAlgoTrig;
00158     const std::vector<unsigned int>* m_triggerMaskTechTrig;
00159 
00160     const std::vector<unsigned int>* m_triggerMaskVetoAlgoTrig;
00161     const std::vector<unsigned int>* m_triggerMaskVetoTechTrig;
00162 
00163     // trigger menu
00164     const L1GtTriggerMenu* m_l1GtMenu;
00165 
00166     const AlgorithmMap* m_algorithmMap;
00167     const AlgorithmMap* m_algorithmAliasMap;
00168     const AlgorithmMap* m_technicalTriggerMap;
00169 
00170 private:
00171 
00173     HLTConfigProvider m_hltConfig;
00174 
00176     std::string m_hltTableName;
00177 
00179     std::vector<std::vector<std::string> > m_hltPathsForL1AlgorithmTrigger;
00180 
00182     std::vector<std::vector<std::string> > m_hltPathsForL1TechnicalTrigger;
00183 
00185     std::vector<std::string> m_algoTriggerSeedNotInL1Menu;
00186     std::vector<std::string> m_techTriggerSeedNotInL1Menu;
00187 
00188 };
00189 
00190 #endif /*L1GtConfigProducers_L1GtTriggerMenuTester_h*/