82 : m_endOfBx(
false), m_currType(0), m_currEvt(0) {
84 produces<RegionalMuonCandBxCollection>(
"BarrelTFMuons");
85 produces<RegionalMuonCandBxCollection>(
"OverlapTFMuons");
86 produces<RegionalMuonCandBxCollection>(
"ForwardTFMuons");
87 produces<MuonCaloSumBxCollection>(
"TriggerTowerSums");
127 for (
size_t cntr = 0; cntr < bitstr.size(); ++cntr) {
128 char c = bitstr[cntr];
148 std::vector<int> bar{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
149 std::vector<int> ovl_neg{0, 0, 0, 0, 0, 0};
150 std::vector<int> ovl_pos{0, 0, 0, 0, 0, 0};
151 std::vector<int> fwd_neg{0, 0, 0, 0, 0, 0};
152 std::vector<int> fwd_pos{0, 0, 0, 0, 0, 0};
158 if (lineID ==
"BAR" || lineID ==
"OVL-" || lineID ==
"FWD-" || lineID ==
"OVL+" || lineID ==
"FWD+") {
172 int globalPhi =
int(
tmp * 0.560856864654333
f);
173 int globalWedgePhi = (globalPhi + 24) % 576;
174 int globalSectorPhi = (globalPhi - 24);
175 if (globalSectorPhi < 0) {
176 globalSectorPhi += 576;
181 if (lineID ==
"BAR") {
182 int processor = globalWedgePhi / 48 + 1;
183 int localPhi = globalWedgePhi % 48;
185 mu.setHwPhi(localPhi);
186 bar[processor - 1]++;
187 if (bar[processor - 1] > 3)
190 if (lineID ==
"OVL-") {
191 int processor = globalSectorPhi / 96 + 1;
192 int localPhi = globalSectorPhi % 96;
194 mu.setHwPhi(localPhi);
195 ovl_neg[processor - 1]++;
196 if (ovl_neg[processor - 1] > 3)
199 if (lineID ==
"OVL+") {
200 int processor = globalSectorPhi / 96 + 1;
201 int localPhi = globalSectorPhi % 96;
203 mu.setHwPhi(localPhi);
204 ovl_pos[processor - 1]++;
205 if (ovl_pos[processor - 1] > 3)
208 if (lineID ==
"FWD-") {
209 int processor = globalSectorPhi / 96 + 1;
210 int localPhi = globalSectorPhi % 96;
212 mu.setHwPhi(localPhi);
213 fwd_neg[processor - 1]++;
214 if (fwd_neg[processor - 1] > 3)
217 if (lineID ==
"FWD+") {
218 int processor = globalSectorPhi / 96 + 1;
219 int localPhi = globalSectorPhi % 96;
221 mu.setHwPhi(localPhi);
222 fwd_pos[processor - 1]++;
223 if (fwd_pos[processor - 1] > 3)
235 mu.setHwSignValid(
tmp);
242 if (lineID ==
"OVL-")
244 if (lineID ==
"OVL+")
246 if (lineID ==
"FWD-")
248 if (lineID ==
"FWD+")
252 barrelMuons->push_back(0,
mu);
254 overlapMuons->push_back(0,
mu);
256 endcapMuons->push_back(0,
mu);
261 }
else if (lineID ==
"EVT") {
265 if (lineID ==
"CALO") {
266 for (
int i = 0;
i < 28; ++
i) {
268 int iphi = caloCounter;
276 towerSums->push_back(0, tSum);
T getParameter(std::string const &) const
void setEtaBits(int bits)
BXVector< RegionalMuonCand > RegionalMuonCandBxCollection
BXVector< MuonCaloSum > MuonCaloSumBxCollection
const int processor() const
Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) ...
void addDefault(ParameterSetDescription const &psetDescription)
#define DEFINE_FWK_MODULE(type)
void setPhiBits(int bits)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)