CMS 3D CMS Logo

GEMDigiMatcher.cc
Go to the documentation of this file.
2 
3 using namespace std;
4 
6  const auto& gemDigi = pset.getParameterSet("gemStripDigi");
7  minBXDigi_ = gemDigi.getParameter<int>("minBX");
8  maxBXDigi_ = gemDigi.getParameter<int>("maxBX");
9  matchDeltaStrip_ = gemDigi.getParameter<int>("matchDeltaStrip");
10  verboseDigi_ = gemDigi.getParameter<int>("verbose");
11 
12  const auto& gemPad = pset.getParameterSet("gemPadDigi");
13  minBXPad_ = gemPad.getParameter<int>("minBX");
14  maxBXPad_ = gemPad.getParameter<int>("maxBX");
15  verbosePad_ = gemPad.getParameter<int>("verbose");
16 
17  const auto& gemCluster = pset.getParameterSet("gemPadCluster");
18  minBXCluster_ = gemCluster.getParameter<int>("minBX");
19  maxBXCluster_ = gemCluster.getParameter<int>("maxBX");
20  verboseCluster_ = gemCluster.getParameter<int>("verbose");
21 
22  const auto& gemCoPad = pset.getParameterSet("gemCoPadDigi");
23  minBXCoPad_ = gemCoPad.getParameter<int>("minBX");
24  maxBXCoPad_ = gemCoPad.getParameter<int>("maxBX");
25  verboseCoPad_ = gemCoPad.getParameter<int>("verbose");
26 
27  // make a new simhits matcher
28  muonSimHitMatcher_.reset(new GEMSimHitMatcher(pset, std::move(iC)));
29 
30  gemDigiToken_ = iC.consumes<GEMDigiCollection>(gemDigi.getParameter<edm::InputTag>("inputTag"));
31  gemPadToken_ = iC.consumes<GEMPadDigiCollection>(gemPad.getParameter<edm::InputTag>("inputTag"));
32  gemClusterToken_ = iC.consumes<GEMPadDigiClusterCollection>(gemCluster.getParameter<edm::InputTag>("inputTag"));
33  gemCoPadToken_ = iC.consumes<GEMCoPadDigiCollection>(gemCoPad.getParameter<edm::InputTag>("inputTag"));
34 }
35 
37  muonSimHitMatcher_->init(iEvent, iSetup);
38 
39  iEvent.getByToken(gemDigiToken_, gemDigisH_);
40  iEvent.getByToken(gemPadToken_, gemPadsH_);
41  iEvent.getByToken(gemClusterToken_, gemClustersH_);
42  iEvent.getByToken(gemCoPadToken_, gemCoPadsH_);
43 
44  iSetup.get<MuonGeometryRecord>().get(gem_geom_);
45  if (gem_geom_.isValid()) {
46  gemGeometry_ = &*gem_geom_;
47  } else {
48  std::cout << "+++ Info: GEM geometry is unavailable. +++\n";
49  }
50 }
51 
53 void GEMDigiMatcher::match(const SimTrack& t, const SimVertex& v) {
54  // match simhits first
55  muonSimHitMatcher_->match(t, v);
56 
57  // get the digi collections
58  const GEMDigiCollection& gemDigis = *gemDigisH_.product();
59  const GEMPadDigiCollection& gemPads = *gemPadsH_.product();
60  const GEMPadDigiClusterCollection& gemClusters = *gemClustersH_.product();
61  const GEMCoPadDigiCollection& gemCoPads = *gemCoPadsH_.product();
62 
63  // now match the digis
64  matchDigisToSimTrack(gemDigis);
65  matchPadsToSimTrack(gemPads);
66  matchClustersToSimTrack(gemClusters);
67  matchCoPadsToSimTrack(gemCoPads);
68 }
69 
71  if (verboseDigi_)
72  cout << "Matching simtrack to GEM digis" << endl;
73  const auto& det_ids = muonSimHitMatcher_->detIds();
74  for (const auto& id : det_ids) {
75  GEMDetId p_id(id);
76  const auto& hit_strips = muonSimHitMatcher_->hitStripsInDetId(id, matchDeltaStrip_);
77  if (verboseDigi_) {
78  cout << "hit_strips_fat ";
79  copy(hit_strips.begin(), hit_strips.end(), ostream_iterator<int>(cout, " "));
80  cout << endl;
81  }
82 
83  const auto& digis_in_det = digis.get(GEMDetId(id));
84 
85  for (auto d = digis_in_det.first; d != digis_in_det.second; ++d) {
86  if (verboseDigi_)
87  cout << "GEMDigi " << p_id << " " << *d << endl;
88  // check that the digi is within BX range
89  if (d->bx() < minBXDigi_ || d->bx() > maxBXDigi_)
90  continue;
91  // check that it matches a strip that was hit by SimHits from our track
92  if (hit_strips.find(d->strip()) == hit_strips.end())
93  continue;
94  if (verboseDigi_)
95  cout << "...was matched!" << endl;
96 
97  detid_to_digis_[id].push_back(*d);
98  chamber_to_digis_[p_id.chamberId().rawId()].push_back(*d);
99  superchamber_to_digis_[p_id.superChamberId().rawId()].push_back(*d);
100  }
101  }
102 }
103 
105  const auto& det_ids = muonSimHitMatcher_->detIds();
106  for (const auto& id : det_ids) {
107  GEMDetId p_id(id);
108  GEMDetId superch_id(p_id.region(), p_id.ring(), p_id.station(), 0, p_id.chamber(), 0);
109 
110  const auto& hit_pads = muonSimHitMatcher_->hitPadsInDetId(id);
111  const auto& pads_in_det = pads.get(p_id);
112 
113  if (verbosePad_) {
114  cout << "checkpads " << hit_pads.size() << " " << std::distance(pads_in_det.first, pads_in_det.second)
115  << " hit_pads: ";
116  copy(hit_pads.begin(), hit_pads.end(), ostream_iterator<int>(cout, " "));
117  cout << endl;
118  }
119 
120  for (auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
121  if (verbosePad_)
122  cout << "chp " << *pad << endl;
123  // check that the pad BX is within the range
124  if (pad->bx() < minBXPad_ || pad->bx() > maxBXPad_)
125  continue;
126  if (verbosePad_)
127  cout << "chp1" << endl;
128  // check that it matches a pad that was hit by SimHits from our track
129  if (hit_pads.find(pad->pad()) == hit_pads.end())
130  continue;
131  if (verbosePad_)
132  cout << "chp2" << endl;
133 
134  detid_to_pads_[id].push_back(*pad);
135  chamber_to_pads_[p_id.chamberId().rawId()].push_back(*pad);
136  superchamber_to_pads_[superch_id()].push_back(*pad);
137  }
138  }
139 }
140 
142  const auto& det_ids = muonSimHitMatcher_->detIds();
143  for (auto id : det_ids) {
144  GEMDetId p_id(id);
145  GEMDetId superch_id(p_id.region(), p_id.ring(), p_id.station(), 1, p_id.chamber(), 0);
146 
147  auto hit_pads = muonSimHitMatcher_->hitPadsInDetId(id);
148  auto clusters_in_det = clusters.get(p_id);
149 
150  for (auto cluster = clusters_in_det.first; cluster != clusters_in_det.second; ++cluster) {
151  // check that the cluster BX is within the range
152  if (cluster->bx() < minBXCluster_ || cluster->bx() > maxBXCluster_)
153  continue;
154 
155  // check that at least one pad was hit by the track
156  for (const auto& p : cluster->pads()) {
157  if (hit_pads.find(p) == hit_pads.end()) {
158  detid_to_clusters_[id].push_back(*cluster);
159  chamber_to_clusters_[p_id.chamberId().rawId()].push_back(*cluster);
160  superchamber_to_clusters_[superch_id()].push_back(*cluster);
161  break;
162  }
163  }
164  }
165  }
166 }
167 
169  const auto& det_ids = muonSimHitMatcher_->detIdsCoincidences();
170  for (const auto& id : det_ids) {
171  GEMDetId p_id(id);
172  GEMDetId superch_id(p_id.region(), p_id.ring(), p_id.station(), 0, p_id.chamber(), 0);
173 
174  const auto& hit_co_pads = muonSimHitMatcher_->hitCoPadsInDetId(id);
175  const auto& co_pads_in_det = co_pads.get(superch_id);
176 
177  if (verboseCoPad_) {
178  cout << "matching CoPads in detid " << superch_id << std::endl;
179  cout << "checkcopads from gemhits" << hit_co_pads.size() << " from copad collection "
180  << std::distance(co_pads_in_det.first, co_pads_in_det.second) << " hit_pads: ";
181  copy(hit_co_pads.begin(), hit_co_pads.end(), ostream_iterator<int>(cout, " "));
182  cout << endl;
183  }
184 
185  for (auto pad = co_pads_in_det.first; pad != co_pads_in_det.second; ++pad) {
186  // to match simtrack to GEMCoPad, check the pads within the copad!
187  bool matchL1 = false;
188  GEMDetId gemL1_id(p_id.region(), p_id.ring(), p_id.station(), 1, p_id.chamber(), 0);
189  if (verboseCoPad_)
190  cout << "CoPad: chp " << *pad << endl;
191  for (const auto& p : padsInChamber(gemL1_id.rawId())) {
192  if (p == pad->first()) {
193  matchL1 = true;
194  break;
195  }
196  }
197 
198  bool matchL2 = false;
199  GEMDetId gemL2_id(p_id.region(), p_id.ring(), p_id.station(), 2, p_id.chamber(), 0);
200  for (const auto& p : padsInChamber(gemL2_id.rawId())) {
201  if (p == pad->second()) {
202  matchL2 = true;
203  break;
204  }
205  }
206 
207  if (matchL1 and matchL2) {
208  if (verboseCoPad_)
209  cout << "CoPad: was matched! " << endl;
210  superchamber_to_copads_[superch_id()].push_back(*pad);
211  }
212  }
213  }
214 }
215 
216 std::set<unsigned int> GEMDigiMatcher::detIdsDigi(int gem_type) const {
217  return selectDetIds(detid_to_digis_, gem_type);
218 }
219 
220 std::set<unsigned int> GEMDigiMatcher::detIdsPad(int gem_type) const { return selectDetIds(detid_to_pads_, gem_type); }
221 
222 std::set<unsigned int> GEMDigiMatcher::detIdsCluster(int gem_type) const {
223  return selectDetIds(detid_to_clusters_, gem_type);
224 }
225 
226 std::set<unsigned int> GEMDigiMatcher::chamberIdsDigi(int gem_type) const {
227  return selectDetIds(chamber_to_digis_, gem_type);
228 }
229 
230 std::set<unsigned int> GEMDigiMatcher::chamberIdsPad(int gem_type) const {
231  return selectDetIds(chamber_to_pads_, gem_type);
232 }
233 
234 std::set<unsigned int> GEMDigiMatcher::chamberIdsCluster(int gem_type) const {
235  return selectDetIds(chamber_to_clusters_, gem_type);
236 }
237 
238 std::set<unsigned int> GEMDigiMatcher::superChamberIdsDigi(int gem_type) const {
239  return selectDetIds(superchamber_to_digis_, gem_type);
240 }
241 
242 std::set<unsigned int> GEMDigiMatcher::superChamberIdsPad(int gem_type) const {
243  return selectDetIds(superchamber_to_pads_, gem_type);
244 }
245 
246 std::set<unsigned int> GEMDigiMatcher::superChamberIdsCluster(int gem_type) const {
247  return selectDetIds(superchamber_to_clusters_, gem_type);
248 }
249 
250 std::set<unsigned int> GEMDigiMatcher::superChamberIdsCoPad(int gem_type) const {
251  return selectDetIds(superchamber_to_copads_, gem_type);
252 }
253 
254 const GEMDigiContainer& GEMDigiMatcher::digisInDetId(unsigned int detid) const {
255  if (detid_to_digis_.find(detid) == detid_to_digis_.end())
256  return no_gem_digis_;
257  return detid_to_digis_.at(detid);
258 }
259 
260 const GEMDigiContainer& GEMDigiMatcher::digisInChamber(unsigned int detid) const {
261  if (chamber_to_digis_.find(detid) == chamber_to_digis_.end())
262  return no_gem_digis_;
263  return chamber_to_digis_.at(detid);
264 }
265 
266 const GEMDigiContainer& GEMDigiMatcher::digisInSuperChamber(unsigned int detid) const {
267  if (superchamber_to_digis_.find(detid) == superchamber_to_digis_.end())
268  return no_gem_digis_;
269  return superchamber_to_digis_.at(detid);
270 }
271 
272 const GEMPadDigiContainer& GEMDigiMatcher::padsInDetId(unsigned int detid) const {
273  if (detid_to_pads_.find(detid) == detid_to_pads_.end())
274  return no_gem_pads_;
275  return detid_to_pads_.at(detid);
276 }
277 
278 const GEMPadDigiContainer& GEMDigiMatcher::padsInChamber(unsigned int detid) const {
279  if (chamber_to_pads_.find(detid) == chamber_to_pads_.end())
280  return no_gem_pads_;
281  return chamber_to_pads_.at(detid);
282 }
283 
284 const GEMPadDigiContainer& GEMDigiMatcher::padsInSuperChamber(unsigned int detid) const {
285  if (superchamber_to_pads_.find(detid) == superchamber_to_pads_.end())
286  return no_gem_pads_;
287  return superchamber_to_pads_.at(detid);
288 }
289 
291  if (detid_to_clusters_.find(detid) == detid_to_clusters_.end())
292  return no_gem_clusters_;
293  return detid_to_clusters_.at(detid);
294 }
295 
297  if (chamber_to_clusters_.find(detid) == chamber_to_clusters_.end())
298  return no_gem_clusters_;
299  return chamber_to_clusters_.at(detid);
300 }
301 
303  if (superchamber_to_clusters_.find(detid) == superchamber_to_clusters_.end())
304  return no_gem_clusters_;
305  return superchamber_to_clusters_.at(detid);
306 }
307 
309  if (superchamber_to_copads_.find(detid) == superchamber_to_copads_.end())
310  return no_gem_copads_;
311  return superchamber_to_copads_.at(detid);
312 }
313 
314 int GEMDigiMatcher::nLayersWithDigisInSuperChamber(unsigned int detid) const {
315  set<int> layers;
316  GEMDetId sch_id(detid);
317  for (int iLayer = 1; iLayer <= 2; iLayer++) {
318  GEMDetId ch_id(sch_id.region(), sch_id.ring(), sch_id.station(), iLayer, sch_id.chamber(), 0);
319  // get the digis in this chamber
320  const auto& digis = digisInChamber(ch_id.rawId());
321  // at least one digi in this layer!
322  if (!digis.empty()) {
323  layers.insert(iLayer);
324  }
325  }
326  return layers.size();
327 }
328 
329 int GEMDigiMatcher::nLayersWithPadsInSuperChamber(unsigned int detid) const {
330  set<int> layers;
331  GEMDetId sch_id(detid);
332  for (int iLayer = 1; iLayer <= 2; iLayer++) {
333  GEMDetId ch_id(sch_id.region(), sch_id.ring(), sch_id.station(), iLayer, sch_id.chamber(), 0);
334  // get the pads in this chamber
335  const auto& pads = padsInChamber(ch_id.rawId());
336  // at least one digi in this layer!
337  if (!pads.empty()) {
338  layers.insert(iLayer);
339  }
340  }
341  return layers.size();
342 }
343 
345  int n = 0;
346  const auto& ids = superChamberIdsPad();
347  for (const auto& id : ids) {
348  n += padsInSuperChamber(id).size();
349  }
350  return n;
351 }
352 
354  int n = 0;
355  const auto& ids = superChamberIdsCoPad();
356  for (const auto& id : ids) {
357  n += coPadsInSuperChamber(id).size();
358  }
359  return n;
360 }
361 
362 std::set<int> GEMDigiMatcher::stripNumbersInDetId(unsigned int detid) const {
363  set<int> result;
364  const auto& digis = digisInDetId(detid);
365  for (const auto& d : digis) {
366  result.insert(d.strip());
367  }
368  return result;
369 }
370 
371 std::set<int> GEMDigiMatcher::padNumbersInDetId(unsigned int detid) const {
372  set<int> result;
373  const auto& digis = padsInDetId(detid);
374  for (const auto& d : digis) {
375  result.insert(d.pad());
376  }
377  return result;
378 }
379 
380 std::set<int> GEMDigiMatcher::partitionNumbers() const {
381  std::set<int> result;
382 
383  const auto& detids = detIdsDigi();
384  for (const auto& id : detids) {
385  const GEMDetId& idd(id);
386  result.insert(idd.roll());
387  }
388  return result;
389 }
390 
392  std::set<int> result;
393 
394  const auto& detids = superChamberIdsCoPad();
395  for (const auto& id : detids) {
396  const GEMDetId& idd(id);
397  result.insert(idd.roll());
398  }
399  return result;
400 }
401 
402 GlobalPoint GEMDigiMatcher::getGlobalPointDigi(unsigned int rawId, const GEMDigi& d) const {
403  GEMDetId gem_id(rawId);
404  const LocalPoint& gem_lp = gemGeometry_->etaPartition(gem_id)->centreOfStrip(d.strip());
405  const GlobalPoint& gem_gp = gemGeometry_->idToDet(gem_id)->surface().toGlobal(gem_lp);
406  return gem_gp;
407 }
408 
409 GlobalPoint GEMDigiMatcher::getGlobalPointPad(unsigned int rawId, const GEMPadDigi& tp) const {
410  GEMDetId gem_id(rawId);
411  const LocalPoint& gem_lp = gemGeometry_->etaPartition(gem_id)->centreOfPad(tp.pad());
412  const GlobalPoint& gem_gp = gemGeometry_->idToDet(gem_id)->surface().toGlobal(gem_lp);
413  return gem_gp;
414 }
GEMDigiMatcher::GEMDigiMatcher
GEMDigiMatcher(edm::ParameterSet const &iPS, edm::ConsumesCollector &&iC)
Definition: GEMDigiMatcher.cc:5
GEMDigiMatcher::match
void match(const SimTrack &t, const SimVertex &v)
do the matching
Definition: GEMDigiMatcher.cc:53
SimVertex
Definition: SimVertex.h:5
GEMCoPadDigiCollection
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
GEMDetId::ring
constexpr int ring() const
Definition: GEMDetId.h:170
GEMDigiMatcher::superChamberIdsCoPad
std::set< unsigned int > superChamberIdsCoPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:250
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
GEMPadDigi
Definition: GEMPadDigi.h:15
GEMDigiMatcher.h
GEMDigiMatcher::chamberIdsDigi
std::set< unsigned int > chamberIdsDigi(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:226
GEMDigiMatcher::init
void init(const edm::Event &e, const edm::EventSetup &eventSetup)
Definition: GEMDigiMatcher.cc:36
GEMDigiMatcher::nCoPads
int nCoPads() const
How many coincidence pads in GEM did this simtrack get in total?
Definition: GEMDigiMatcher.cc:353
GEMDetId::region
constexpr int region() const
Definition: GEMDetId.h:165
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
gather_cfg.cout
cout
Definition: gather_cfg.py:144
GEMDigiMatcher::digisInChamber
const GEMDigiContainer & digisInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:260
GEMDigiMatcher::matchDigisToSimTrack
void matchDigisToSimTrack(const GEMDigiCollection &)
Definition: GEMDigiMatcher.cc:70
GEMDigiMatcher::digisInSuperChamber
const GEMDigiContainer & digisInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:266
GEMCoPadDigiContainer
std::vector< GEMCoPadDigi > GEMCoPadDigiContainer
Definition: GEMDigiMatcher.h:26
GEMPadDigiClusterContainer
std::vector< GEMPadDigiCluster > GEMPadDigiClusterContainer
Definition: GEMDigiMatcher.h:25
HLT_2018_cff.distance
distance
Definition: HLT_2018_cff.py:6417
GEMDetId::superChamberId
constexpr GEMDetId superChamberId() const
Definition: GEMDetId.h:196
GEMDigiMatcher::padsInChamber
const GEMPadDigiContainer & padsInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:278
GEMDigiContainer
std::vector< GEMDigi > GEMDigiContainer
Definition: GEMDigiMatcher.h:23
GEMDigiMatcher::partitionNumbers
std::set< int > partitionNumbers() const
Definition: GEMDigiMatcher.cc:380
findQualityFiles.v
v
Definition: findQualityFiles.py:179
GEMDigiMatcher::matchCoPadsToSimTrack
void matchCoPadsToSimTrack(const GEMCoPadDigiCollection &)
Definition: GEMDigiMatcher.cc:168
GEMDigiMatcher::matchPadsToSimTrack
void matchPadsToSimTrack(const GEMPadDigiCollection &)
Definition: GEMDigiMatcher.cc:104
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
GEMPadDigiCollection
GEMDigiMatcher::clustersInChamber
const GEMPadDigiClusterContainer & clustersInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:296
GEMDigiMatcher::digisInDetId
const GEMDigiContainer & digisInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:254
Point3DBase< float, GlobalTag >
GEMPadDigiClusterCollection
GEMPadDigiContainer
std::vector< GEMPadDigi > GEMPadDigiContainer
Definition: GEMDigiMatcher.h:24
OrderedSet.t
t
Definition: OrderedSet.py:90
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
GEMDigiMatcher::padNumbersInDetId
std::set< int > padNumbersInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:371
GEMDigiMatcher::detIdsCluster
std::set< unsigned int > detIdsCluster(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:222
GEMDigiMatcher::partitionNumbersWithCoPads
std::set< int > partitionNumbersWithCoPads() const
Definition: GEMDigiMatcher.cc:391
GEMDigiMatcher::matchClustersToSimTrack
void matchClustersToSimTrack(const GEMPadDigiClusterCollection &)
Definition: GEMDigiMatcher.cc:141
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
GEMDetId::chamber
constexpr int chamber() const
Definition: GEMDetId.h:177
GEMDigiMatcher::superChamberIdsPad
std::set< unsigned int > superChamberIdsPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:242
edm::ParameterSet
Definition: ParameterSet.h:36
GEMSimHitMatcher
Definition: GEMSimHitMatcher.h:14
GEMDetId::roll
constexpr int roll() const
Definition: GEMDetId.h:188
GEMDetId
Definition: GEMDetId.h:17
iEvent
int iEvent
Definition: GenABIO.cc:224
GEMDigiMatcher::chamberIdsCluster
std::set< unsigned int > chamberIdsCluster(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:234
GEMDigiMatcher::nLayersWithDigisInSuperChamber
int nLayersWithDigisInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:314
GEMDigi
Definition: GEMDigi.h:15
GEMDigiMatcher::detIdsPad
std::set< unsigned int > detIdsPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:220
edm::EventSetup
Definition: EventSetup.h:57
get
#define get
GEMDigiMatcher::chamberIdsPad
std::set< unsigned int > chamberIdsPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:230
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
GEMDigiMatcher::coPadsInSuperChamber
const GEMCoPadDigiContainer & coPadsInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:308
GEMDigiMatcher::detIdsDigi
std::set< unsigned int > detIdsDigi(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:216
SimTrack
Definition: SimTrack.h:6
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
GEMDigiMatcher::nLayersWithPadsInSuperChamber
int nLayersWithPadsInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:329
GEMDigiMatcher::clustersInSuperChamber
const GEMPadDigiClusterContainer & clustersInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:302
GEMDigiCollection
GEMDetId::chamberId
constexpr GEMDetId chamberId() const
Definition: GEMDetId.h:193
GEMDigiMatcher::stripNumbersInDetId
std::set< int > stripNumbersInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:362
GEMDigiMatcher::getGlobalPointPad
GlobalPoint getGlobalPointPad(unsigned int rawId, const GEMPadDigi &tp) const
Definition: GEMDigiMatcher.cc:409
GEMDetId::station
constexpr int station() const
Definition: GEMDetId.h:173
ztail.d
d
Definition: ztail.py:151
mps_fire.result
result
Definition: mps_fire.py:303
GEMDigiMatcher::getGlobalPointDigi
GlobalPoint getGlobalPointDigi(unsigned int rawId, const GEMDigi &d) const
Definition: GEMDigiMatcher.cc:402
GEMDigiMatcher::nPads
int nPads() const
How many pads in GEM did this simtrack get in total?
Definition: GEMDigiMatcher.cc:344
GEMDigiMatcher::superChamberIdsDigi
std::set< unsigned int > superChamberIdsDigi(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:238
edm::Event
Definition: Event.h:73
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
edm::InputTag
Definition: InputTag.h:15
GEMDigiMatcher::superChamberIdsCluster
std::set< unsigned int > superChamberIdsCluster(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:246
GEMDigiMatcher::padsInSuperChamber
const GEMPadDigiContainer & padsInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:284
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
GEMDigiMatcher::clustersInDetId
const GEMPadDigiClusterContainer & clustersInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:290
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
GEMDigiMatcher::padsInDetId
const GEMPadDigiContainer & padsInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:272