89 m_endOfBx(
false), m_currType(0), m_currEvt(0)
92 produces<RegionalMuonCandBxCollection>(
"BarrelTFMuons");
93 produces<RegionalMuonCandBxCollection>(
"OverlapTFMuons");
94 produces<RegionalMuonCandBxCollection>(
"ForwardTFMuons");
95 produces<MuonCaloSumBxCollection>(
"TriggerTowerSums");
146 for (
size_t cntr = 0; cntr < bitstr.size(); ++cntr) {
147 char c = bitstr[cntr];
171 std::vector<int> bar{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
172 std::vector<int> ovl_neg{0, 0, 0, 0, 0, 0};
173 std::vector<int> ovl_pos{0, 0, 0, 0, 0, 0};
174 std::vector<int> fwd_neg{0, 0, 0, 0, 0, 0};
175 std::vector<int> fwd_pos{0, 0, 0, 0, 0, 0};
182 if (lineID ==
"BAR" || lineID ==
"OVL-" || lineID ==
"FWD-" || lineID ==
"OVL+" || lineID ==
"FWD+") {
196 int globalPhi =
int(tmp*0.560856864654333
f);
197 int globalWedgePhi = (globalPhi+24)%576;
198 int globalSectorPhi = (globalPhi-24);
199 if (globalSectorPhi < 0) {
200 globalSectorPhi += 576;
206 if (lineID ==
"BAR") {
207 int processor = globalWedgePhi / 48 + 1;
208 int localPhi = globalWedgePhi%48;
212 if (bar[processor-1] > 3) skip =
true;
214 if (lineID ==
"OVL-") {
215 int processor = globalSectorPhi / 96 + 1;
216 int localPhi = globalSectorPhi%96;
219 ovl_neg[processor-1]++;
220 if (ovl_neg[processor-1] > 3) skip =
true;
222 if (lineID ==
"OVL+") {
223 int processor = globalSectorPhi / 96 + 1;
224 int localPhi = globalSectorPhi%96;
227 ovl_pos[processor-1]++;
228 if (ovl_pos[processor-1] > 3) skip =
true;
230 if (lineID ==
"FWD-") {
231 int processor = globalSectorPhi / 96 + 1;
232 int localPhi = globalSectorPhi%96;
235 fwd_neg[processor-1]++;
236 if (fwd_neg[processor-1] > 3) skip =
true;
238 if (lineID ==
"FWD+") {
239 int processor = globalSectorPhi / 96 + 1;
240 int localPhi = globalSectorPhi%96;
243 fwd_pos[processor-1]++;
244 if (fwd_pos[processor-1] > 3) skip =
true;
248 tmp =
int(tmp*0.9090909090f);
268 if (
m_currType == 0 && !skip) barrelMuons->push_back(0, mu);
275 }
else if (lineID ==
"EVT") {
279 if (lineID ==
"CALO") {
280 for (
int i = 0;
i < 28; ++
i) {
282 int iphi = caloCounter;
290 towerSums->push_back(0, tSum);
T getParameter(std::string const &) const
void setHwPhi(int bits)
Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void setEtaBits(int bits)
BXVector< RegionalMuonCand > RegionalMuonCandBxCollection
#define DEFINE_FWK_MODULE(type)
BXVector< MuonCaloSum > MuonCaloSumBxCollection
void addDefault(ParameterSetDescription const &psetDescription)
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void setPhiBits(int bits)
void setHwQual(int bits)
Set compressed quality code as transmitted by hardware (4 bits)
void setHwPt(int bits)
Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)
void setHwEta(int bits)
Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits)
const int processor() const
Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) ...
et
define resolution functions of each parameter
std::vector< std::vector< double > > tmp
void setHwSignValid(int bits)
Set whether charge measurement is valid (0 for high pT muons)
void setHwSign(int bits)
Set charge sign bit (charge = (-1)^(sign))