87 : m_endOfBx(
false), m_currType(0), m_currEvt(0) {
89 produces<RegionalMuonCandBxCollection>(
"BarrelTFMuons");
90 produces<RegionalMuonCandBxCollection>(
"OverlapTFMuons");
91 produces<RegionalMuonCandBxCollection>(
"ForwardTFMuons");
92 produces<MuonCaloSumBxCollection>(
"TriggerTowerSums");
132 for (
size_t cntr = 0; cntr < bitstr.size(); ++cntr) {
133 char c = bitstr[cntr];
153 std::vector<int> bar{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
154 std::vector<int> ovl_neg{0, 0, 0, 0, 0, 0};
155 std::vector<int> ovl_pos{0, 0, 0, 0, 0, 0};
156 std::vector<int> fwd_neg{0, 0, 0, 0, 0, 0};
157 std::vector<int> fwd_pos{0, 0, 0, 0, 0, 0};
163 if (lineID ==
"BAR" || lineID ==
"OVL-" || lineID ==
"FWD-" || lineID ==
"OVL+" || lineID ==
"FWD+") {
177 int globalPhi =
int(
tmp * 0.560856864654333
f);
178 int globalWedgePhi = (globalPhi + 24) % 576;
179 int globalSectorPhi = (globalPhi - 24);
180 if (globalSectorPhi < 0) {
181 globalSectorPhi += 576;
186 if (lineID ==
"BAR") {
187 int processor = globalWedgePhi / 48 + 1;
188 int localPhi = globalWedgePhi % 48;
190 mu.setHwPhi(localPhi);
191 bar[processor - 1]++;
192 if (bar[processor - 1] > 3)
195 if (lineID ==
"OVL-") {
196 int processor = globalSectorPhi / 96 + 1;
197 int localPhi = globalSectorPhi % 96;
199 mu.setHwPhi(localPhi);
200 ovl_neg[processor - 1]++;
201 if (ovl_neg[processor - 1] > 3)
204 if (lineID ==
"OVL+") {
205 int processor = globalSectorPhi / 96 + 1;
206 int localPhi = globalSectorPhi % 96;
208 mu.setHwPhi(localPhi);
209 ovl_pos[processor - 1]++;
210 if (ovl_pos[processor - 1] > 3)
213 if (lineID ==
"FWD-") {
214 int processor = globalSectorPhi / 96 + 1;
215 int localPhi = globalSectorPhi % 96;
217 mu.setHwPhi(localPhi);
218 fwd_neg[processor - 1]++;
219 if (fwd_neg[processor - 1] > 3)
222 if (lineID ==
"FWD+") {
223 int processor = globalSectorPhi / 96 + 1;
224 int localPhi = globalSectorPhi % 96;
226 mu.setHwPhi(localPhi);
227 fwd_pos[processor - 1]++;
228 if (fwd_pos[processor - 1] > 3)
240 mu.setHwSignValid(
tmp);
247 if (lineID ==
"OVL-")
249 if (lineID ==
"OVL+")
251 if (lineID ==
"FWD-")
253 if (lineID ==
"FWD+")
257 barrelMuons->push_back(0,
mu);
259 overlapMuons->push_back(0,
mu);
261 endcapMuons->push_back(0,
mu);
266 }
else if (lineID ==
"EVT") {
270 if (lineID ==
"CALO") {
271 for (
int i = 0;
i < 28; ++
i) {
273 int iphi = caloCounter;
281 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)