Go to the documentation of this file.00001 #ifndef L1GtConfigProducers_L1GtTriggerMenuTester_h
00002 #define L1GtConfigProducers_L1GtTriggerMenuTester_h
00003
00020
00021 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtTriggerMenuTester.h"
00022
00023
00024 #include <string>
00025 #include <map>
00026
00027
00028
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
00039 class L1GtStableParameters;
00040 class L1GtPrescaleFactors;
00041 class L1GtTriggerMask;
00042 class L1GtTriggerMenu;
00043
00044
00045 class L1GtTriggerMenuTester: public edm::EDAnalyzer {
00046
00047 public:
00048
00049
00050 explicit L1GtTriggerMenuTester(const edm::ParameterSet&);
00051
00052
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
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