45 typedef std::map<GEMDetId, std::vector<std::vector<std::pair<GEMDetId, GEMPadDigiClusters> > > >
125 produces<GEMPadDigiClusterCollection>();
126 consumes<GEMPadDigiCollection>(
pads_);
134 desc.
add<
unsigned int>(
"maxClustersOHGE11", 4);
135 desc.
add<
unsigned int>(
"maxClustersOHGE21", 5);
136 desc.
add<
unsigned int>(
"nOHGE11", 2);
137 desc.
add<
unsigned int>(
"nOHGE21", 4);
138 desc.
add<
unsigned int>(
"maxClusterSize", 8);
140 descriptions.
add(
"simMuonGEMPadDigiClustersDef", desc);
174 proto_clusters.clear();
180 if (
part->id().station() == 0)
185 auto pads = det_pads.get(
part->id());
186 std::vector<uint16_t>
cl;
189 for (
auto d = pads.first;
d != pads.second; ++
d) {
191 cl.push_back((*d).pad());
193 if ((*d).bx() == startBX and
194 (*d).pad() ==
cl.back() + 1
196 cl.push_back((*d).pad());
201 all_pad_clusters.emplace_back(pad_cluster);
205 cl.push_back((*d).pad());
212 if (pads.first != pads.second) {
214 all_pad_clusters.emplace_back(pad_cluster);
216 proto_clusters.emplace(
part->id(), all_pad_clusters);
226 sorted_clusters.clear();
230 const int station = ch->id().station();
231 const bool isGE11 = (
station == 1);
233 const unsigned nPartOH = ch->nEtaPartitions() / nOH;
235 std::vector<std::vector<std::pair<GEMDetId, GEMPadDigiClusters> > > temp_clustersCH;
237 for (
unsigned int iOH = 0; iOH < nOH; iOH++) {
239 std::vector<std::pair<GEMDetId, GEMPadDigiClusters> > temp_clustersOH;
242 for (
unsigned iPart = 1; iPart <= nPartOH; iPart++) {
244 const GEMDetId& partId = ch->etaPartition(iPart + iOH * nPartOH)->id();
245 if (proto_clusters.find(partId) != proto_clusters.end()) {
246 temp_clustersOH.emplace_back(partId, proto_clusters.at(partId));
250 temp_clustersCH.emplace_back(temp_clustersOH);
253 sorted_clusters.emplace(ch->id(), temp_clustersCH);
261 const int station = ch->id().station();
262 const bool isGE11 = (
station == 1);
266 for (
const auto& optohybrid : sorted_clusters.at(ch->id())) {
271 for (
const auto& etapart : optohybrid) {
272 const auto& detid(etapart.first);
273 const auto&
clusters(etapart.second);
278 out_clusters.insertDigi(detid, clus);