11 #include "tmEventSetup/tmEventSetup.hh" 19 #include "tmGrammar/Algorithm.hh" 47 void endJob()
override;
70 const std::map<std::string, L1TUtmAlgorithm>& algoMap = hmenu->
getAlgorithmMap();
71 const std::map<std::string, L1TUtmCondition>& condMap = hmenu->
getConditionMap();
73 const std::map<std::string, tmeventsetup::esScale> scaleMap(std::begin(hmenu->
getScaleMap()),
76 bool hasPrecision =
false;
77 std::map<std::string, unsigned int> precisions;
78 getPrecisions(precisions, scaleMap);
79 for (std::map<std::string, unsigned int>::const_iterator cit = precisions.begin(); cit != precisions.end(); cit++) {
80 std::cout << cit->first <<
" = " << cit->second <<
"\n";
85 std::map<std::string, tmeventsetup::esScale>::iterator it1, it2;
86 const tmeventsetup::esScale* scale1 = &scaleMap.find(
"EG-ETA")->second;
87 const tmeventsetup::esScale* scale2 = &scaleMap.find(
"MU-ETA")->second;
89 std::vector<long long> lut_eg_2_mu_eta;
90 getCaloMuonEtaConversionLut(lut_eg_2_mu_eta, scale1, scale2);
92 scale1 = &scaleMap.find(
"EG-PHI")->second;
93 scale2 = &scaleMap.find(
"MU-PHI")->second;
95 std::vector<long long> lut_eg_2_mu_phi;
96 getCaloMuonPhiConversionLut(lut_eg_2_mu_phi, scale1, scale2);
98 scale1 = &scaleMap.find(
"EG-ETA")->second;
99 scale2 = &scaleMap.find(
"MU-ETA")->second;
101 std::vector<double> eg_mu_delta_eta;
102 std::vector<long long> lut_eg_mu_delta_eta;
103 size_t n = getDeltaVector(eg_mu_delta_eta, scale1, scale2);
104 setLut(lut_eg_mu_delta_eta, eg_mu_delta_eta, precisions[
"PRECISION-EG-MU-Delta"]);
106 std::vector<long long> lut_eg_mu_cosh;
107 applyCosh(eg_mu_delta_eta,
n);
108 setLut(lut_eg_mu_cosh, eg_mu_delta_eta, precisions[
"PRECISION-EG-MU-Math"]);
110 scale1 = &scaleMap.find(
"EG-PHI")->second;
111 scale2 = &scaleMap.find(
"MU-PHI")->second;
113 std::vector<double> eg_mu_delta_phi;
114 std::vector<long long> lut_eg_mu_delta_phi;
115 n = getDeltaVector(eg_mu_delta_phi, scale1, scale2);
116 setLut(lut_eg_mu_delta_phi, eg_mu_delta_phi, precisions[
"PRECISION-EG-MU-Delta"]);
118 std::vector<long long> lut_eg_mu_cos;
119 applyCos(eg_mu_delta_phi,
n);
120 setLut(lut_eg_mu_cos, eg_mu_delta_phi, precisions[
"PRECISION-EG-MU-Math"]);
122 scale1 = &scaleMap.find(
"EG-ET")->second;
123 std::vector<long long> lut_eg_et;
124 getLut(lut_eg_et, scale1, precisions[
"PRECISION-EG-MU-MassPt"]);
126 scale1 = &scaleMap.find(
"MU-ET")->second;
127 std::vector<long long> lut_mu_et;
128 getLut(lut_mu_et, scale1, precisions[
"PRECISION-EG-MU-MassPt"]);
129 for (
size_t ii = 0;
ii < lut_mu_et.size();
ii++) {
134 for (std::map<std::string, L1TUtmAlgorithm>::const_iterator cit = algoMap.begin(); cit != algoMap.end(); cit++) {
138 std::cout <<
"algo exp. in cond. = " <<
algo.getExpressionInCondition() <<
"\n";
140 const std::vector<std::string>& rpn_vec =
algo.getRpnVector();
141 for (
size_t ii = 0;
ii < rpn_vec.size();
ii++) {
143 if (Algorithm::isGate(
token))
148 const std::vector<L1TUtmCut>&
cuts = condition.
getCuts();
152 std::cout <<
" cut target = " <<
cut.getObjectType() <<
"\n";
153 std::cout <<
" cut type = " <<
cut.getCutType() <<
"\n";
154 std::cout <<
" cut min. value index = " <<
cut.getMinimum().value <<
" " <<
cut.getMinimum().index <<
"\n";
155 std::cout <<
" cut max. value index = " <<
cut.getMaximum().value <<
" " <<
cut.getMaximum().index <<
"\n";
162 std::cout <<
" obj name = " <<
object.getName() <<
"\n";
163 std::cout <<
" obj type = " <<
object.getType() <<
"\n";
164 std::cout <<
" obj op = " <<
object.getComparisonOperator() <<
"\n";
165 std::cout <<
" obj bx = " <<
object.getBxOffset() <<
"\n";
166 if (
object.getType() == esObjectType::EXT) {
167 std::cout <<
" ext name = " <<
object.getExternalSignalName() <<
"\n";
168 std::cout <<
" ext ch id = " <<
object.getExternalChannelId() <<
"\n";
171 const std::vector<L1TUtmCut>&
cuts =
object.getCuts();
175 std::cout <<
" cut target = " <<
cut.getObjectType() <<
"\n";
176 std::cout <<
" cut type = " <<
cut.getCutType() <<
"\n";
177 std::cout <<
" cut min. value index = " <<
cut.getMinimum().value <<
" " <<
cut.getMinimum().index
179 std::cout <<
" cut max. value index = " <<
cut.getMaximum().value <<
" " <<
cut.getMaximum().index
const int getType() const
const std::vector< L1TUtmObject > & getObjects() const
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
void addDefault(ParameterSetDescription const &psetDescription)
#define DEFINE_FWK_MODULE(type)
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const std::vector< L1TUtmCut > & getCuts() const