11 #include "tmEventSetup/tmEventSetup.hh" 12 #include "tmEventSetup/esTriggerMenu.hh" 13 #include "tmEventSetup/esAlgorithm.hh" 14 #include "tmEventSetup/esCondition.hh" 15 #include "tmEventSetup/esObject.hh" 16 #include "tmEventSetup/esCut.hh" 17 #include "tmEventSetup/esScale.hh" 18 #include "tmGrammar/Algorithm.hh" 47 void endJob()
override;
68 cout <<
"INFO: L1TUtmTriggerMenuDumper module beginJob called.\n";
73 cout <<
"INFO: L1TUtmTriggerMenuDumper module endJob called.\n";
82 const esTriggerMenu* menu =
reinterpret_cast<const esTriggerMenu*
> (hmenu.
product());
84 const std::map<std::string, esAlgorithm>& algoMap = menu->getAlgorithmMap();
85 const std::map<std::string, esCondition>& condMap = menu->getConditionMap();
86 const std::map<std::string, esScale>& scaleMap = menu->getScaleMap();
88 bool hasPrecision =
false;
89 std::map<std::string, unsigned int> precisions;
90 getPrecisions(precisions, scaleMap);
91 for (std::map<std::string, unsigned int>::const_iterator cit = precisions.begin(); cit != precisions.end(); cit++)
93 std::cout << cit->first <<
" = " << cit->second <<
"\n";
100 std::map<std::string, esScale>::iterator it1, it2;
101 const esScale* scale1 = &scaleMap.find(
"EG-ETA")->second;
102 const esScale* scale2 = &scaleMap.find(
"MU-ETA")->second;
104 std::vector<long long> lut_eg_2_mu_eta;
105 getCaloMuonEtaConversionLut(lut_eg_2_mu_eta, scale1, scale2);
108 scale1 = &scaleMap.find(
"EG-PHI")->second;
109 scale2 = &scaleMap.find(
"MU-PHI")->second;
111 std::vector<long long> lut_eg_2_mu_phi;
112 getCaloMuonPhiConversionLut(lut_eg_2_mu_phi, scale1, scale2);
115 scale1 = &scaleMap.find(
"EG-ETA")->second;
116 scale2 = &scaleMap.find(
"MU-ETA")->second;
118 std::vector<double> eg_mu_delta_eta;
119 std::vector<long long> lut_eg_mu_delta_eta;
120 size_t n = getDeltaVector(eg_mu_delta_eta, scale1, scale2);
121 setLut(lut_eg_mu_delta_eta, eg_mu_delta_eta, precisions[
"PRECISION-EG-MU-Delta"]);
123 std::vector<long long> lut_eg_mu_cosh;
124 applyCosh(eg_mu_delta_eta, n);
125 setLut(lut_eg_mu_cosh, eg_mu_delta_eta, precisions[
"PRECISION-EG-MU-Math"]);
128 scale1 = &scaleMap.find(
"EG-PHI")->second;
129 scale2 = &scaleMap.find(
"MU-PHI")->second;
131 std::vector<double> eg_mu_delta_phi;
132 std::vector<long long> lut_eg_mu_delta_phi;
133 n = getDeltaVector(eg_mu_delta_phi, scale1, scale2);
134 setLut(lut_eg_mu_delta_phi, eg_mu_delta_phi, precisions[
"PRECISION-EG-MU-Delta"]);
136 std::vector<long long> lut_eg_mu_cos;
137 applyCos(eg_mu_delta_phi, n);
138 setLut(lut_eg_mu_cos, eg_mu_delta_phi, precisions[
"PRECISION-EG-MU-Math"]);
141 scale1 = &scaleMap.find(
"EG-ET")->second;
142 std::vector<long long> lut_eg_et;
143 getLut(lut_eg_et, scale1, precisions[
"PRECISION-EG-MU-MassPt"]);
146 scale1 = &scaleMap.find(
"MU-ET")->second;
147 std::vector<long long> lut_mu_et;
148 getLut(lut_mu_et, scale1, precisions[
"PRECISION-EG-MU-MassPt"]);
149 for (
size_t ii = 0;
ii < lut_mu_et.size();
ii++)
156 for (std::map<std::string, esAlgorithm>::const_iterator cit = algoMap.begin();
157 cit != algoMap.end(); cit++)
159 const esAlgorithm&
algo = cit->second;
160 std::cout <<
"algo name = " << algo.getName() <<
"\n";
161 std::cout <<
"algo exp. = " << algo.getExpression() <<
"\n";
162 std::cout <<
"algo exp. in cond. = " << algo.getExpressionInCondition() <<
"\n";
164 const std::vector<std::string>& rpn_vec = algo.getRpnVector();
165 for (
size_t ii = 0;
ii < rpn_vec.size();
ii++)
168 if (Algorithm::isGate(token))
continue;
169 const esCondition& condition = condMap.find(token)->second;
170 std::cout <<
" cond type = " << condition.getType() <<
"\n";
172 const std::vector<esCut>&
cuts = condition.getCuts();
173 for (
size_t jj = 0;
jj < cuts.size();
jj++)
175 const esCut&
cut = cuts.at(
jj);
176 std::cout <<
" cut name = " << cut.getName() <<
"\n";
177 std::cout <<
" cut target = " << cut.getObjectType() <<
"\n";
178 std::cout <<
" cut type = " << cut.getCutType() <<
"\n";
179 std::cout <<
" cut min. value index = " << cut.getMinimum().value <<
" " << cut.getMinimum().index <<
"\n";
180 std::cout <<
" cut max. value index = " << cut.getMaximum().value <<
" " << cut.getMaximum().index <<
"\n";
181 std::cout <<
" cut data = " << cut.getData() <<
"\n";
184 const std::vector<esObject>&
objects = condition.getObjects();
185 for (
size_t jj = 0;
jj < objects.size();
jj++)
187 const esObject&
object = objects.at(
jj);
188 std::cout <<
" obj name = " <<
object.getName() <<
"\n";
189 std::cout <<
" obj type = " <<
object.getType() <<
"\n";
190 std::cout <<
" obj op = " <<
object.getComparisonOperator() <<
"\n";
191 std::cout <<
" obj bx = " <<
object.getBxOffset() <<
"\n";
192 if (
object.getType() == esObjectType::EXT)
194 std::cout <<
" ext name = " <<
object.getExternalSignalName() <<
"\n";
195 std::cout <<
" ext ch id = " <<
object.getExternalChannelId() <<
"\n";
198 const std::vector<esCut>& cuts =
object.getCuts();
199 for (
size_t kk = 0;
kk < cuts.size();
kk++)
201 const esCut&
cut = cuts.at(
kk);
202 std::cout <<
" cut name = " << cut.getName() <<
"\n";
203 std::cout <<
" cut target = " << cut.getObjectType() <<
"\n";
204 std::cout <<
" cut type = " << cut.getCutType() <<
"\n";
205 std::cout <<
" cut min. value index = " << cut.getMinimum().value <<
" " << cut.getMinimum().index <<
"\n";
206 std::cout <<
" cut max. value index = " << cut.getMaximum().value <<
" " << cut.getMaximum().index <<
"\n";
207 std::cout <<
" cut data = " << cut.getData() <<
"\n";
virtual example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
#define DEFINE_FWK_MODULE(type)
void addDefault(ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T const * product() const