Go to the documentation of this file.00001
00017
00018 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtPrescaleFactorsAndMasksTester.h"
00019
00020
00021 #include <iomanip>
00022
00023
00024
00025 #include "FWCore/Framework/interface/EDAnalyzer.h"
00026
00027 #include "FWCore/Framework/interface/Event.h"
00028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00029
00030 #include "FWCore/Framework/interface/EventSetup.h"
00031 #include "FWCore/Framework/interface/ESHandle.h"
00032
00033 #include "CondFormats/L1TObjects/interface/L1GtPrescaleFactors.h"
00034
00035 #include "CondFormats/DataRecord/interface/L1GtPrescaleFactorsAlgoTrigRcd.h"
00036 #include "CondFormats/DataRecord/interface/L1GtPrescaleFactorsTechTrigRcd.h"
00037
00038 #include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h"
00039
00040 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h"
00041 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h"
00042
00043 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskVetoAlgoTrigRcd.h"
00044 #include "CondFormats/DataRecord/interface/L1GtTriggerMaskVetoTechTrigRcd.h"
00045
00046 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00047 #include "FWCore/MessageLogger/interface/MessageDrop.h"
00048
00049
00050
00051
00052 L1GtPrescaleFactorsAndMasksTester::L1GtPrescaleFactorsAndMasksTester(
00053 const edm::ParameterSet& parSet) :
00054 m_testerPrescaleFactors(
00055 parSet.getParameter<bool> ("TesterPrescaleFactors")),
00056 m_testerTriggerMask(parSet.getParameter<bool> ("TesterTriggerMask")),
00057 m_testerTriggerVetoMask(
00058 parSet.getParameter<bool> ("TesterTriggerVetoMask")),
00059 m_retrieveInBeginRun(
00060 parSet.getParameter<bool> ("RetrieveInBeginRun")),
00061 m_retrieveInBeginLuminosityBlock(
00062 parSet.getParameter<bool> ("RetrieveInBeginLuminosityBlock")),
00063 m_retrieveInAnalyze(parSet.getParameter<bool> ("RetrieveInAnalyze")),
00064 m_printInBeginRun(parSet.getParameter<bool> ("PrintInBeginRun")),
00065 m_printInBeginLuminosityBlock(
00066 parSet.getParameter<bool> ("PrintInBeginLuminosityBlock")),
00067 m_printInAnalyze(parSet.getParameter<bool> ("PrintInAnalyze")),
00068 m_printOutput(parSet.getUntrackedParameter<int> ("PrintOutput", 3)) {
00069
00070 }
00071
00072
00073 L1GtPrescaleFactorsAndMasksTester::~L1GtPrescaleFactorsAndMasksTester() {
00074
00075 }
00076
00077
00078 void L1GtPrescaleFactorsAndMasksTester::beginJob() {
00079
00080 }
00081
00082
00083 void L1GtPrescaleFactorsAndMasksTester::beginRun(const edm::Run& iRun,
00084 const edm::EventSetup& evSetup) {
00085
00086 if (m_retrieveInBeginRun) {
00087 retrieveL1EventSetup(evSetup);
00088 }
00089
00090 if (m_printInBeginRun) {
00091 printL1EventSetup(evSetup);
00092 }
00093
00094 }
00095
00096
00097 void L1GtPrescaleFactorsAndMasksTester::beginLuminosityBlock(
00098 const edm::LuminosityBlock& iLumiBlock, const edm::EventSetup& evSetup) {
00099
00100 if (m_retrieveInBeginLuminosityBlock) {
00101 retrieveL1EventSetup(evSetup);
00102 }
00103
00104 if (m_printInBeginLuminosityBlock) {
00105 printL1EventSetup(evSetup);
00106 }
00107
00108 }
00109
00110
00111 void L1GtPrescaleFactorsAndMasksTester::analyze(const edm::Event& iEvent,
00112 const edm::EventSetup& evSetup) {
00113
00114 if (m_retrieveInAnalyze) {
00115 retrieveL1EventSetup(evSetup);
00116 }
00117
00118 if (m_printInAnalyze) {
00119 printL1EventSetup(evSetup);
00120 }
00121
00122 }
00123
00124
00125 void L1GtPrescaleFactorsAndMasksTester::endLuminosityBlock(
00126 const edm::LuminosityBlock& iLumiBlock, const edm::EventSetup& evSetup) {
00127
00128 }
00129
00130
00131 void L1GtPrescaleFactorsAndMasksTester::endRun(const edm::Run& iRun,
00132 const edm::EventSetup& evSetup) {
00133
00134 }
00135
00136
00137 void L1GtPrescaleFactorsAndMasksTester::endJob() {
00138
00139 }
00140
00141 void L1GtPrescaleFactorsAndMasksTester::retrieveL1EventSetup(
00142 const edm::EventSetup& evSetup) {
00143
00144 if (m_testerPrescaleFactors) {
00145
00146
00147
00148 edm::ESHandle<L1GtPrescaleFactors> l1GtPfAlgo;
00149 evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd> ().get(l1GtPfAlgo);
00150 m_l1GtPfAlgo = l1GtPfAlgo.product();
00151
00152 edm::ESHandle<L1GtPrescaleFactors> l1GtPfTech;
00153 evSetup.get<L1GtPrescaleFactorsTechTrigRcd> ().get(l1GtPfTech);
00154 m_l1GtPfTech = l1GtPfTech.product();
00155 }
00156
00157 if (m_testerTriggerMask) {
00158
00159
00160 edm::ESHandle<L1GtTriggerMask> l1GtTmAlgo;
00161 evSetup.get<L1GtTriggerMaskAlgoTrigRcd> ().get(l1GtTmAlgo);
00162 m_l1GtTmAlgo = l1GtTmAlgo.product();
00163
00164 edm::ESHandle<L1GtTriggerMask> l1GtTmTech;
00165 evSetup.get<L1GtTriggerMaskTechTrigRcd> ().get(l1GtTmTech);
00166 m_l1GtTmTech = l1GtTmTech.product();
00167 }
00168
00169 if (m_testerTriggerVetoMask) {
00170 edm::ESHandle<L1GtTriggerMask> l1GtTmVetoAlgo;
00171 evSetup.get<L1GtTriggerMaskVetoAlgoTrigRcd> ().get(l1GtTmVetoAlgo);
00172 m_l1GtTmVetoAlgo = l1GtTmVetoAlgo.product();
00173
00174 edm::ESHandle<L1GtTriggerMask> l1GtTmVetoTech;
00175 evSetup.get<L1GtTriggerMaskVetoTechTrigRcd> ().get(l1GtTmVetoTech);
00176 m_l1GtTmVetoTech = l1GtTmVetoTech.product();
00177 }
00178
00179 }
00180
00181 void L1GtPrescaleFactorsAndMasksTester::printL1EventSetup(
00182 const edm::EventSetup& evSetup) {
00183
00184
00185
00186 std::ostringstream myCout;
00187
00188 if (m_testerPrescaleFactors) {
00189
00190 myCout << "\nL1 GT prescale factors for algorithm triggers"
00191 << std::endl;
00192 m_l1GtPfAlgo->print(myCout);
00193
00194 myCout << "\nL1 GT prescale factors for technical triggers"
00195 << std::endl;
00196 m_l1GtPfTech->print(myCout);
00197 }
00198
00199
00200 if (m_testerTriggerMask) {
00201 myCout << "\nL1 GT trigger masks for algorithm triggers" << std::endl;
00202 m_l1GtTmAlgo->print(myCout);
00203
00204 myCout << "\nL1 GT trigger masks for technical triggers" << std::endl;
00205 m_l1GtTmTech->print(myCout);
00206
00207 }
00208
00209
00210 if (m_testerTriggerVetoMask) {
00211 myCout << "\nL1 GT trigger veto masks for algorithm triggers"
00212 << std::endl;
00213 m_l1GtTmVetoAlgo->print(myCout);
00214
00215 myCout << "\nL1 GT trigger veto masks for technical triggers"
00216 << std::endl;
00217 m_l1GtTmVetoTech->print(myCout);
00218
00219 }
00220
00221 switch (m_printOutput) {
00222 case 0: {
00223
00224 std::cout << myCout.str() << std::endl;
00225
00226 }
00227
00228 break;
00229 case 1: {
00230
00231 LogTrace("L1GtPrescaleFactorsAndMasksTester") << myCout.str()
00232 << std::endl;
00233
00234 }
00235 break;
00236
00237 case 2: {
00238
00239 edm::LogVerbatim("L1GtPrescaleFactorsAndMasksTester")
00240 << myCout.str() << std::endl;
00241
00242 }
00243
00244 break;
00245 case 3: {
00246
00247 edm::LogInfo("L1GtPrescaleFactorsAndMasksTester") << myCout.str();
00248
00249 }
00250
00251 break;
00252 default: {
00253 myCout
00254 << "\n\n L1GtPrescaleFactorsAndMasksTester: Error - no print output = "
00255 << m_printOutput
00256 << " defined! \n Check available values in the cfi file."
00257 << "\n" << std::endl;
00258
00259 }
00260 break;
00261 }
00262
00263 }