CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
GEMDigiMatcher Class Reference

#include <GEMDigiMatcher.h>

Public Member Functions

const std::map< unsigned int, GEMPadDigiContainerallPads () const
 
std::set< unsigned int > chamberIdsCluster (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > chamberIdsDigi (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > chamberIdsPad (int gem_type=MuonHitHelper::GEM_ALL) const
 
const GEMPadDigiClusterContainerclustersInChamber (unsigned int) const
 
const GEMPadDigiClusterContainerclustersInDetId (unsigned int) const
 
const GEMPadDigiClusterContainerclustersInSuperChamber (unsigned int) const
 
const GEMCoPadDigiContainercoPadsInSuperChamber (unsigned int) const
 
std::set< unsigned int > detIdsCluster (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > detIdsDigi (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > detIdsPad (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > detIdsSimLink (int gem_type=MuonHitHelper::GEM_ALL) const
 
const GEMDigiContainerdigisInChamber (unsigned int) const
 
const GEMDigiContainerdigisInDetId (unsigned int) const
 
const GEMDigiContainerdigisInSuperChamber (unsigned int) const
 
int extrapolateHsfromGEMPad (unsigned int, int) const
 
int extrapolateHsfromGEMStrip (unsigned int, int) const
 
 GEMDigiMatcher (edm::ParameterSet const &iPS, edm::ConsumesCollector &&iC)
 
GlobalPoint getGlobalPointDigi (unsigned int rawId, const GEMDigi &d) const
 
GlobalPoint getGlobalPointPad (unsigned int rawId, const GEMPadDigi &tp) const
 
void init (const edm::Event &e, const edm::EventSetup &eventSetup)
 
void match (const SimTrack &t, const SimVertex &v)
 do the matching More...
 
std::shared_ptr< GEMSimHitMatchermuonSimHitMatcher ()
 
int nCoPads () const
 How many coincidence pads in GEM did this simtrack get in total? More...
 
int nLayersWithClustersInSuperChamber (unsigned int) const
 
int nLayersWithDigisInSuperChamber (unsigned int) const
 
int nLayersWithPadsInSuperChamber (unsigned int) const
 
int nPads () const
 How many pads in GEM did this simtrack get in total? More...
 
std::set< int > padNumbersInDetId (unsigned int) const
 
const GEMPadDigiContainerpadsInChamber (unsigned int) const
 
const GEMPadDigiContainerpadsInDetId (unsigned int) const
 
const GEMPadDigiContainerpadsInSuperChamber (unsigned int) const
 
std::set< int > partitionNumbers () const
 
std::set< int > partitionNumbersWithCoPads () const
 
const GEMDigiSimLinkContainersimLinksInDetId (unsigned int) const
 
std::set< int > stripNumbersInDetId (unsigned int) const
 
std::set< unsigned int > superChamberIdsCluster (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > superChamberIdsCoPad (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > superChamberIdsDigi (int gem_type=MuonHitHelper::GEM_ALL) const
 
std::set< unsigned int > superChamberIdsPad (int gem_type=MuonHitHelper::GEM_ALL) const
 
 ~GEMDigiMatcher ()
 

Private Member Functions

void clear ()
 
void matchClustersToSimTrack (const GEMPadDigiClusterCollection &)
 
void matchCoPadsToSimTrack (const GEMCoPadDigiCollection &)
 
void matchDigisSLToSimTrack (const edm::DetSetVector< GEMDigiSimLink > &)
 
void matchDigisToSimTrack (const GEMDigiCollection &)
 
void matchPadsToSimTrack (const GEMPadDigiCollection &)
 
template<class T >
std::set< unsigned int > selectDetIds (const T &, int) const
 

Private Attributes

std::map< unsigned int, GEMPadDigiClusterContainerchamber_to_clusters_
 
std::map< unsigned int, GEMDigiContainerchamber_to_digis_
 
std::map< unsigned int, GEMPadDigiContainerchamber_to_pads_
 
std::map< unsigned int, GEMPadDigiClusterContainerdetid_to_clusters_
 
std::map< unsigned int, GEMDigiContainerdetid_to_digis_
 
std::map< unsigned int, GEMPadDigiContainerdetid_to_pads_
 
std::map< unsigned int, GEMDigiSimLinkContainerdetid_to_simLinks_
 
bool discardEleHits_
 
edm::Handle< GEMPadDigiClusterCollectiongemClustersH_
 
edm::EDGetTokenT< GEMPadDigiClusterCollectiongemClusterToken_
 
edm::Handle< GEMCoPadDigiCollectiongemCoPadsH_
 
edm::EDGetTokenT< GEMCoPadDigiCollectiongemCoPadToken_
 
edm::Handle< GEMDigiCollectiongemDigisH_
 
edm::Handle< edm::DetSetVector< GEMDigiSimLink > > gemDigisSLH_
 
edm::EDGetTokenT< GEMDigiCollectiongemDigiToken_
 
const GEMGeometrygemGeometry_
 
edm::Handle< GEMPadDigiCollectiongemPadsH_
 
edm::EDGetTokenT< GEMPadDigiCollectiongemPadToken_
 
edm::EDGetTokenT< edm::DetSetVector< GEMDigiSimLink > > gemSimLinkToken_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomToken_
 
int matchDeltaStrip_
 
bool matchToSimLink_
 
int maxBXCluster_
 
int maxBXCoPad_
 
int maxBXDigi_
 
int maxBXPad_
 
int minBXCluster_
 
int minBXCoPad_
 
int minBXDigi_
 
int minBXPad_
 
std::shared_ptr< GEMSimHitMatchermuonSimHitMatcher_
 
GEMPadDigiClusterContainer no_gem_clusters_
 
GEMCoPadDigiContainer no_gem_copads_
 
GEMDigiContainer no_gem_digis_
 
GEMPadDigiContainer no_gem_pads_
 
GEMDigiSimLinkContainer no_gem_simLinks_
 
bool simMuOnly_
 
std::map< unsigned int, GEMPadDigiClusterContainersuperchamber_to_clusters_
 
std::map< unsigned int, GEMCoPadDigiContainersuperchamber_to_copads_
 
std::map< unsigned int, GEMDigiContainersuperchamber_to_digis_
 
std::map< unsigned int, GEMPadDigiContainersuperchamber_to_pads_
 
bool verboseCluster_
 
bool verboseCoPad_
 
bool verboseDigi_
 
bool verbosePad_
 
bool verboseSimLink_
 

Detailed Description

Definition at line 31 of file GEMDigiMatcher.h.

Constructor & Destructor Documentation

◆ GEMDigiMatcher()

GEMDigiMatcher::GEMDigiMatcher ( edm::ParameterSet const &  iPS,
edm::ConsumesCollector &&  iC 
)

Definition at line 5 of file GEMDigiMatcher.cc.

5  {
6  const auto& gemSimLink = pset.getParameterSet("gemSimLink");
7  simMuOnly_ = gemSimLink.getParameter<bool>("simMuOnly");
8  discardEleHits_ = gemSimLink.getParameter<bool>("discardEleHits");
9  verboseSimLink_ = gemSimLink.getParameter<int>("verbose");
10 
11  const auto& gemDigi = pset.getParameterSet("gemStripDigi");
12  minBXDigi_ = gemDigi.getParameter<int>("minBX");
13  maxBXDigi_ = gemDigi.getParameter<int>("maxBX");
14  matchDeltaStrip_ = gemDigi.getParameter<int>("matchDeltaStrip");
15  verboseDigi_ = gemDigi.getParameter<int>("verbose");
16  matchToSimLink_ = gemDigi.getParameter<bool>("matchToSimLink");
17 
18  const auto& gemPad = pset.getParameterSet("gemPadDigi");
19  minBXPad_ = gemPad.getParameter<int>("minBX");
20  maxBXPad_ = gemPad.getParameter<int>("maxBX");
21  verbosePad_ = gemPad.getParameter<int>("verbose");
22 
23  const auto& gemCluster = pset.getParameterSet("gemPadCluster");
24  minBXCluster_ = gemCluster.getParameter<int>("minBX");
25  maxBXCluster_ = gemCluster.getParameter<int>("maxBX");
26  verboseCluster_ = gemCluster.getParameter<int>("verbose");
27 
28  const auto& gemCoPad = pset.getParameterSet("gemCoPadDigi");
29  minBXCoPad_ = gemCoPad.getParameter<int>("minBX");
30  maxBXCoPad_ = gemCoPad.getParameter<int>("maxBX");
31  verboseCoPad_ = gemCoPad.getParameter<int>("verbose");
32 
33  // make a new simhits matcher
35 
36  if (matchToSimLink_)
39  gemDigiToken_ = iC.consumes<GEMDigiCollection>(gemDigi.getParameter<edm::InputTag>("inputTag"));
40  gemPadToken_ = iC.consumes<GEMPadDigiCollection>(gemPad.getParameter<edm::InputTag>("inputTag"));
41  gemClusterToken_ = iC.consumes<GEMPadDigiClusterCollection>(gemCluster.getParameter<edm::InputTag>("inputTag"));
42  gemCoPadToken_ = iC.consumes<GEMCoPadDigiCollection>(gemCoPad.getParameter<edm::InputTag>("inputTag"));
43 
45 }

References muonGEMDigiPSet::gemSimLink, eostools::move(), and muonDTDigis_cfi::pset.

◆ ~GEMDigiMatcher()

GEMDigiMatcher::~GEMDigiMatcher ( )
inline

Definition at line 37 of file GEMDigiMatcher.h.

37 {}

Member Function Documentation

◆ allPads()

const std::map<unsigned int, GEMPadDigiContainer> GEMDigiMatcher::allPads ( ) const
inline

Definition at line 83 of file GEMDigiMatcher.h.

83 { return detid_to_pads_; }

References detid_to_pads_.

◆ chamberIdsCluster()

std::set< unsigned int > GEMDigiMatcher::chamberIdsCluster ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 318 of file GEMDigiMatcher.cc.

318  {
319  return selectDetIds(chamber_to_clusters_, gem_type);
320 }

◆ chamberIdsDigi()

std::set< unsigned int > GEMDigiMatcher::chamberIdsDigi ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 310 of file GEMDigiMatcher.cc.

310  {
311  return selectDetIds(chamber_to_digis_, gem_type);
312 }

◆ chamberIdsPad()

std::set< unsigned int > GEMDigiMatcher::chamberIdsPad ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 314 of file GEMDigiMatcher.cc.

314  {
315  return selectDetIds(chamber_to_pads_, gem_type);
316 }

◆ clear()

void GEMDigiMatcher::clear ( void  )
private

Definition at line 515 of file GEMDigiMatcher.cc.

515  {
516  detid_to_simLinks_.clear();
517 
518  detid_to_digis_.clear();
519  chamber_to_digis_.clear();
520  superchamber_to_digis_.clear();
521 
522  detid_to_pads_.clear();
523  chamber_to_pads_.clear();
524  superchamber_to_pads_.clear();
525 
526  detid_to_clusters_.clear();
527  chamber_to_clusters_.clear();
529 
530  superchamber_to_copads_.clear();
531 }

◆ clustersInChamber()

const GEMPadDigiClusterContainer & GEMDigiMatcher::clustersInChamber ( unsigned int  detid) const

Definition at line 380 of file GEMDigiMatcher.cc.

380  {
381  if (chamber_to_clusters_.find(detid) == chamber_to_clusters_.end())
382  return no_gem_clusters_;
383  return chamber_to_clusters_.at(detid);
384 }

◆ clustersInDetId()

const GEMPadDigiClusterContainer & GEMDigiMatcher::clustersInDetId ( unsigned int  detid) const

Definition at line 374 of file GEMDigiMatcher.cc.

374  {
375  if (detid_to_clusters_.find(detid) == detid_to_clusters_.end())
376  return no_gem_clusters_;
377  return detid_to_clusters_.at(detid);
378 }

◆ clustersInSuperChamber()

const GEMPadDigiClusterContainer & GEMDigiMatcher::clustersInSuperChamber ( unsigned int  detid) const

Definition at line 386 of file GEMDigiMatcher.cc.

386  {
387  if (superchamber_to_clusters_.find(detid) == superchamber_to_clusters_.end())
388  return no_gem_clusters_;
389  return superchamber_to_clusters_.at(detid);
390 }

◆ coPadsInSuperChamber()

const GEMCoPadDigiContainer & GEMDigiMatcher::coPadsInSuperChamber ( unsigned int  detid) const

Definition at line 392 of file GEMDigiMatcher.cc.

392  {
393  if (superchamber_to_copads_.find(detid) == superchamber_to_copads_.end())
394  return no_gem_copads_;
395  return superchamber_to_copads_.at(detid);
396 }

◆ detIdsCluster()

std::set< unsigned int > GEMDigiMatcher::detIdsCluster ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 306 of file GEMDigiMatcher.cc.

306  {
307  return selectDetIds(detid_to_clusters_, gem_type);
308 }

◆ detIdsDigi()

std::set< unsigned int > GEMDigiMatcher::detIdsDigi ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 300 of file GEMDigiMatcher.cc.

300  {
301  return selectDetIds(detid_to_digis_, gem_type);
302 }

◆ detIdsPad()

std::set< unsigned int > GEMDigiMatcher::detIdsPad ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 304 of file GEMDigiMatcher.cc.

304 { return selectDetIds(detid_to_pads_, gem_type); }

◆ detIdsSimLink()

std::set< unsigned int > GEMDigiMatcher::detIdsSimLink ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 296 of file GEMDigiMatcher.cc.

296  {
297  return selectDetIds(detid_to_simLinks_, gem_type);
298 }

◆ digisInChamber()

const GEMDigiContainer & GEMDigiMatcher::digisInChamber ( unsigned int  detid) const

Definition at line 344 of file GEMDigiMatcher.cc.

344  {
345  if (chamber_to_digis_.find(detid) == chamber_to_digis_.end())
346  return no_gem_digis_;
347  return chamber_to_digis_.at(detid);
348 }

◆ digisInDetId()

const GEMDigiContainer & GEMDigiMatcher::digisInDetId ( unsigned int  detid) const

Definition at line 338 of file GEMDigiMatcher.cc.

338  {
339  if (detid_to_digis_.find(detid) == detid_to_digis_.end())
340  return no_gem_digis_;
341  return detid_to_digis_.at(detid);
342 }

◆ digisInSuperChamber()

const GEMDigiContainer & GEMDigiMatcher::digisInSuperChamber ( unsigned int  detid) const

Definition at line 350 of file GEMDigiMatcher.cc.

350  {
351  if (superchamber_to_digis_.find(detid) == superchamber_to_digis_.end())
352  return no_gem_digis_;
353  return superchamber_to_digis_.at(detid);
354 }

◆ extrapolateHsfromGEMPad()

int GEMDigiMatcher::extrapolateHsfromGEMPad ( unsigned int  ,
int   
) const

◆ extrapolateHsfromGEMStrip()

int GEMDigiMatcher::extrapolateHsfromGEMStrip ( unsigned int  ,
int   
) const

◆ getGlobalPointDigi()

GlobalPoint GEMDigiMatcher::getGlobalPointDigi ( unsigned int  rawId,
const GEMDigi d 
) const

Definition at line 501 of file GEMDigiMatcher.cc.

501  {
502  GEMDetId gem_id(rawId);
503  const LocalPoint& gem_lp = gemGeometry_->etaPartition(gem_id)->centreOfStrip(d.strip());
504  const GlobalPoint& gem_gp = gemGeometry_->idToDet(gem_id)->surface().toGlobal(gem_lp);
505  return gem_gp;
506 }

References ztail::d.

◆ getGlobalPointPad()

GlobalPoint GEMDigiMatcher::getGlobalPointPad ( unsigned int  rawId,
const GEMPadDigi tp 
) const

Definition at line 508 of file GEMDigiMatcher.cc.

508  {
509  GEMDetId gem_id(rawId);
510  const LocalPoint& gem_lp = gemGeometry_->etaPartition(gem_id)->centreOfPad(tp.pad());
511  const GlobalPoint& gem_gp = gemGeometry_->idToDet(gem_id)->surface().toGlobal(gem_lp);
512  return gem_gp;
513 }

References cmsswSequenceInfo::tp.

◆ init()

void GEMDigiMatcher::init ( const edm::Event e,
const edm::EventSetup eventSetup 
)

Definition at line 47 of file GEMDigiMatcher.cc.

47  {
48  muonSimHitMatcher_->init(iEvent, iSetup);
49 
50  if (matchToSimLink_)
52  iEvent.getByToken(gemDigiToken_, gemDigisH_);
53  iEvent.getByToken(gemPadToken_, gemPadsH_);
55  iEvent.getByToken(gemCoPadToken_, gemCoPadsH_);
56 
57  gemGeometry_ = &iSetup.getData(geomToken_);
58 }

References edm::EventSetup::getData(), and iEvent.

◆ match()

void GEMDigiMatcher::match ( const SimTrack t,
const SimVertex v 
)

do the matching

Definition at line 61 of file GEMDigiMatcher.cc.

61  {
62  // match simhits first
63  muonSimHitMatcher_->match(t, v);
64 
65  // get the digi collections
66  const GEMDigiCollection& gemDigis = *gemDigisH_.product();
67  const GEMPadDigiCollection& gemPads = *gemPadsH_.product();
68  const GEMPadDigiClusterCollection& gemClusters = *gemClustersH_.product();
69  const GEMCoPadDigiCollection& gemCoPads = *gemCoPadsH_.product();
70 
71  clear();
72 
73  // hard cut on non-GEM muons
74  if (std::abs(t.momentum().eta()) < 1.55)
75  return;
76 
77  // now match the digis
78  if (matchToSimLink_) {
80  matchDigisSLToSimTrack(gemDigisSL);
81  }
82  matchDigisToSimTrack(gemDigis);
83  matchPadsToSimTrack(gemPads);
84  matchClustersToSimTrack(gemClusters);
85  matchCoPadsToSimTrack(gemCoPads);
86 }

References funct::abs(), clear(), submitPVValidationJobs::t, and findQualityFiles::v.

◆ matchClustersToSimTrack()

void GEMDigiMatcher::matchClustersToSimTrack ( const GEMPadDigiClusterCollection clusters)
private

Definition at line 215 of file GEMDigiMatcher.cc.

215  {
216  const auto& det_ids = muonSimHitMatcher_->detIds();
217  for (auto id : det_ids) {
218  GEMDetId p_id(id);
219 
220  auto clusters_in_det = clusters.get(p_id);
221 
222  for (auto cluster = clusters_in_det.first; cluster != clusters_in_det.second; ++cluster) {
223  bool isMatched;
224 
225  // ignore 16-partition GE2/1 pads
226  if (p_id.isGE21() and cluster->nPartitions() == GEMPadDigiCluster::GE21SplitStrip)
227  continue;
228 
229  // check that the cluster BX is within the range
230  if (cluster->bx() < minBXCluster_ || cluster->bx() > maxBXCluster_)
231  continue;
232 
233  if (verboseCluster_)
234  edm::LogInfo("GEMDigiMatcher") << "GEMCluster " << p_id << " " << *cluster << endl;
235 
236  // check that at least one pad was hit by the track
237  for (const auto& p : cluster->pads()) {
238  for (auto pad : detid_to_pads_[id]) {
239  if (pad.pad() == p) {
240  isMatched = true;
241  }
242  }
243  }
244  if (isMatched) {
245  detid_to_clusters_[id].push_back(*cluster);
246  chamber_to_clusters_[p_id.chamberId().rawId()].push_back(*cluster);
247  superchamber_to_clusters_[p_id.superChamberId().rawId()].push_back(*cluster);
248  if (verboseCluster_)
249  edm::LogInfo("GEMDigiMatcher") << "...was matched!" << endl;
250  }
251  }
252  }
253 }

References GEMDetId::chamberId(), bsc_activity_cfg::clusters, GEMPadDigiCluster::GE21SplitStrip, triggerObjects_cff::id, GEMDetId::isGE21(), trackerHitRTTI::isMatched(), AlCaHLTBitMon_ParallelJobs::p, DetId::rawId(), and GEMDetId::superChamberId().

◆ matchCoPadsToSimTrack()

void GEMDigiMatcher::matchCoPadsToSimTrack ( const GEMCoPadDigiCollection co_pads)
private

Definition at line 255 of file GEMDigiMatcher.cc.

255  {
256  // loop on the GEM detids
257  for (auto d : superChamberIdsPad()) {
258  GEMDetId id(d);
259 
260  const auto& co_pads_in_det = co_pads.get(id);
261  for (auto copad = co_pads_in_det.first; copad != co_pads_in_det.second; ++copad) {
262  // check that the cluster BX is within the range
263  if (copad->bx(1) < minBXCoPad_ || copad->bx(1) > maxBXCoPad_)
264  continue;
265 
266  if (verboseCoPad_)
267  edm::LogInfo("GEMDigiMatcher") << "GEMCoPadDigi: " << id << " " << *copad << endl;
268 
269  bool isMatchedL1 = false;
270  bool isMatchedL2 = false;
271  GEMDetId gemL1_id(id.region(), 1, id.station(), 1, id.chamber(), copad->roll());
272  GEMDetId gemL2_id(id.region(), 1, id.station(), 2, id.chamber(), 0);
273 
274  // first pad is tightly matched
275  for (const auto& p : padsInDetId(gemL1_id.rawId())) {
276  if (p == copad->first()) {
277  isMatchedL1 = true;
278  }
279  }
280 
281  // second pad can only be loosely matched
282  for (const auto& p : padsInChamber(gemL2_id.rawId())) {
283  if (p == copad->second()) {
284  isMatchedL2 = true;
285  }
286  }
287  if (isMatchedL1 and isMatchedL2) {
288  superchamber_to_copads_[id.rawId()].push_back(*copad);
289  if (verboseCoPad_)
290  edm::LogInfo("GEMDigiMatcher") << "...was matched! " << endl;
291  }
292  }
293  }
294 }

References relativeConstraints::chamber, ztail::d, triggerObjects_cff::id, AlCaHLTBitMon_ParallelJobs::p, HLT_FULL_cff::region, and relativeConstraints::station.

◆ matchDigisSLToSimTrack()

void GEMDigiMatcher::matchDigisSLToSimTrack ( const edm::DetSetVector< GEMDigiSimLink > &  digisSL)
private

Definition at line 88 of file GEMDigiMatcher.cc.

88  {
89  if (verboseSimLink_)
90  edm::LogInfo("GEMDigiMatcher") << "Matching simtrack to GEM simlinks" << endl;
91 
92  // loop on the simlinks
93  for (auto itsimlink = digisSL.begin(); itsimlink != digisSL.end(); itsimlink++) {
94  for (auto sl = itsimlink->data.begin(); sl != itsimlink->data.end(); ++sl) {
95  GEMDetId p_id(sl->getDetUnitId());
96 
97  // ignore simlinks in non-matched chambers
98  const auto& detids(muonSimHitMatcher_->detIds());
99  if (detids.find(p_id.rawId()) == detids.end())
100  continue;
101 
102  // no simhits in this chamber!
103  if (muonSimHitMatcher_->hitsInDetId(p_id.rawId()).empty())
104  continue;
105 
106  if (verboseSimLink_)
107  edm::LogInfo("GEMDigiMatcher") << "GEMDigiSimLink " << p_id << " " << sl->getStrip() << " " << sl->getBx()
108  << " " << sl->getEnergyLoss() << " " << sl->getTimeOfFlight() << " "
109  << sl->getParticleType() << std::endl;
110 
111  // consider only the muon hits
112  if (simMuOnly_ && std::abs(sl->getParticleType()) != 13)
113  continue;
114 
115  // discard electron hits in the GEM chambers
116  if (discardEleHits_ && std::abs(sl->getParticleType()) == 11)
117  continue;
118 
119  // loop on the matched simhits
120  for (const auto& simhit : muonSimHitMatcher_->hitsInDetId(p_id.rawId())) {
121  // check if the simhit properties agree
122  if (simhit.particleType() == sl->getParticleType() and simhit.trackId() == sl->getTrackId() and
123  std::abs(simhit.energyLoss() - sl->getEnergyLoss()) < 0.001 and
124  std::abs(simhit.timeOfFlight() - sl->getTimeOfFlight()) < 0.001 and
125  simhit.entryPoint() == sl->getEntryPoint() and simhit.momentumAtEntry() == sl->getMomentumAtEntry()) {
126  detid_to_simLinks_[p_id.rawId()].push_back(*sl);
127  if (verboseSimLink_)
128  edm::LogInfo("GEMDigiMatcher") << "...was matched!" << endl;
129  break;
130  }
131  }
132  }
133  }
134 }

References funct::abs(), edm::DetSetVector< T >::begin(), relativeConstraints::empty, and edm::DetSetVector< T >::end().

◆ matchDigisToSimTrack()

void GEMDigiMatcher::matchDigisToSimTrack ( const GEMDigiCollection digis)
private

Definition at line 136 of file GEMDigiMatcher.cc.

136  {
137  if (verboseDigi_)
138  edm::LogInfo("GEMDigiMatcher") << "Matching simtrack to GEM digis" << endl;
139  for (auto id : muonSimHitMatcher_->detIds()) {
140  GEMDetId p_id(id);
141  const auto& hit_strips = muonSimHitMatcher_->hitStripsInDetId(id, matchDeltaStrip_);
142  const auto& digis_in_det = digis.get(p_id);
143 
144  for (auto d = digis_in_det.first; d != digis_in_det.second; ++d) {
145  bool isMatched = false;
146 
147  // check that the digi is within BX range
148  if (d->bx() < minBXDigi_ || d->bx() > maxBXDigi_)
149  continue;
150 
151  if (verboseDigi_)
152  edm::LogInfo("GEMDigiMatcher") << "GEMDigi " << p_id << " " << *d << endl;
153 
154  // GEN-SIM-DIGI-RAW monte carlo
155  if (matchToSimLink_) {
156  // check that the digi matches to at least one GEMDigiSimLink
157  for (const auto& sl : detid_to_simLinks_[p_id.rawId()]) {
158  if (sl.getStrip() == d->strip() and sl.getBx() == d->bx()) {
159  isMatched = true;
160  break;
161  }
162  }
163  }
164  // GEN-SIM-RAW monte carlo
165  else {
166  // check that it matches a strip that was hit by SimHits from our track
167  if (hit_strips.find(d->strip()) != hit_strips.end()) {
168  isMatched = true;
169  }
170  }
171  if (isMatched) {
172  detid_to_digis_[p_id.rawId()].push_back(*d);
173  chamber_to_digis_[p_id.chamberId().rawId()].push_back(*d);
174  superchamber_to_digis_[p_id.superChamberId().rawId()].push_back(*d);
175  if (verboseDigi_)
176  edm::LogInfo("GEMDigiMatcher") << "...was matched!" << endl;
177  }
178  }
179  }
180 }

References GEMDetId::chamberId(), ztail::d, trackerHitRTTI::isMatched(), DetId::rawId(), and GEMDetId::superChamberId().

◆ matchPadsToSimTrack()

void GEMDigiMatcher::matchPadsToSimTrack ( const GEMPadDigiCollection pads)
private

Definition at line 181 of file GEMDigiMatcher.cc.

181  {
182  const auto& det_ids = muonSimHitMatcher_->detIds();
183  for (const auto& id : det_ids) {
184  GEMDetId p_id(id);
185 
186  const auto& pads_in_det = pads.get(p_id);
187 
188  for (auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
189  // ignore 16-partition GE2/1 pads
190  if (p_id.isGE21() and pad->nPartitions() == GEMPadDigi::GE21SplitStrip)
191  continue;
192 
193  // check that the pad BX is within the range
194  if (pad->bx() < minBXPad_ || pad->bx() > maxBXPad_)
195  continue;
196 
197  if (verbosePad_)
198  edm::LogInfo("GEMDigiMatcher") << "GEMPad " << p_id << " " << *pad << endl;
199 
200  // check that it matches a pad that was hit by SimHits from our track
201  for (auto digi : detid_to_digis_[p_id.rawId()]) {
202  if (digi.strip() / 2 == pad->pad()) {
203  detid_to_pads_[p_id.rawId()].push_back(*pad);
204  chamber_to_pads_[p_id.chamberId().rawId()].push_back(*pad);
205  superchamber_to_pads_[p_id.superChamberId().rawId()].push_back(*pad);
206  if (verbosePad_)
207  edm::LogInfo("GEMDigiMatcher") << "...was matched!" << endl;
208  break;
209  }
210  }
211  }
212  }
213 }

References GEMDetId::chamberId(), GEMPadDigi::GE21SplitStrip, GEMDetId::isGE21(), DetId::rawId(), and GEMDetId::superChamberId().

◆ muonSimHitMatcher()

std::shared_ptr<GEMSimHitMatcher> GEMDigiMatcher::muonSimHitMatcher ( )
inline

Definition at line 110 of file GEMDigiMatcher.h.

110 { return muonSimHitMatcher_; }

References muonSimHitMatcher_.

◆ nCoPads()

int GEMDigiMatcher::nCoPads ( ) const

How many coincidence pads in GEM did this simtrack get in total?

Definition at line 452 of file GEMDigiMatcher.cc.

452  {
453  int n = 0;
454  const auto& ids = superChamberIdsCoPad();
455  for (const auto& id : ids) {
456  n += coPadsInSuperChamber(id).size();
457  }
458  return n;
459 }

References dqmiodumpmetadata::n.

◆ nLayersWithClustersInSuperChamber()

int GEMDigiMatcher::nLayersWithClustersInSuperChamber ( unsigned int  detid) const

Definition at line 428 of file GEMDigiMatcher.cc.

428  {
429  set<int> layers;
430  GEMDetId sch_id(detid);
431  for (int iLayer = 1; iLayer <= 2; iLayer++) {
432  GEMDetId ch_id(sch_id.region(), sch_id.ring(), sch_id.station(), iLayer, sch_id.chamber(), 0);
433  // get the pads in this chamber
434  const auto& clusters = clustersInChamber(ch_id.rawId());
435  // at least one digi in this layer!
436  if (!clusters.empty()) {
437  layers.insert(iLayer);
438  }
439  }
440  return layers.size();
441 }

References GEMDetId::chamber(), bsc_activity_cfg::clusters, hgcalTopologyTester_cfi::layers, GEMDetId::region(), GEMDetId::ring(), and GEMDetId::station().

◆ nLayersWithDigisInSuperChamber()

int GEMDigiMatcher::nLayersWithDigisInSuperChamber ( unsigned int  detid) const

Definition at line 398 of file GEMDigiMatcher.cc.

398  {
399  set<int> layers;
400  GEMDetId sch_id(detid);
401  for (int iLayer = 1; iLayer <= 2; iLayer++) {
402  GEMDetId ch_id(sch_id.region(), sch_id.ring(), sch_id.station(), iLayer, sch_id.chamber(), 0);
403  // get the digis in this chamber
404  const auto& digis = digisInChamber(ch_id.rawId());
405  // at least one digi in this layer!
406  if (!digis.empty()) {
407  layers.insert(iLayer);
408  }
409  }
410  return layers.size();
411 }

References GEMDetId::chamber(), hgcalTopologyTester_cfi::layers, GEMDetId::region(), GEMDetId::ring(), and GEMDetId::station().

◆ nLayersWithPadsInSuperChamber()

int GEMDigiMatcher::nLayersWithPadsInSuperChamber ( unsigned int  detid) const

Definition at line 413 of file GEMDigiMatcher.cc.

413  {
414  set<int> layers;
415  GEMDetId sch_id(detid);
416  for (int iLayer = 1; iLayer <= 2; iLayer++) {
417  GEMDetId ch_id(sch_id.region(), sch_id.ring(), sch_id.station(), iLayer, sch_id.chamber(), 0);
418  // get the pads in this chamber
419  const auto& pads = padsInChamber(ch_id.rawId());
420  // at least one digi in this layer!
421  if (!pads.empty()) {
422  layers.insert(iLayer);
423  }
424  }
425  return layers.size();
426 }

References GEMDetId::chamber(), hgcalTopologyTester_cfi::layers, GEMDetId::region(), GEMDetId::ring(), and GEMDetId::station().

◆ nPads()

int GEMDigiMatcher::nPads ( ) const

How many pads in GEM did this simtrack get in total?

Definition at line 443 of file GEMDigiMatcher.cc.

443  {
444  int n = 0;
445  const auto& ids = superChamberIdsPad();
446  for (const auto& id : ids) {
447  n += padsInSuperChamber(id).size();
448  }
449  return n;
450 }

References dqmiodumpmetadata::n.

◆ padNumbersInDetId()

std::set< int > GEMDigiMatcher::padNumbersInDetId ( unsigned int  detid) const

Definition at line 470 of file GEMDigiMatcher.cc.

470  {
471  set<int> result;
472  const auto& digis = padsInDetId(detid);
473  for (const auto& d : digis) {
474  result.insert(d.pad());
475  }
476  return result;
477 }

References ztail::d, and mps_fire::result.

◆ padsInChamber()

const GEMPadDigiContainer & GEMDigiMatcher::padsInChamber ( unsigned int  detid) const

Definition at line 362 of file GEMDigiMatcher.cc.

362  {
363  if (chamber_to_pads_.find(detid) == chamber_to_pads_.end())
364  return no_gem_pads_;
365  return chamber_to_pads_.at(detid);
366 }

◆ padsInDetId()

const GEMPadDigiContainer & GEMDigiMatcher::padsInDetId ( unsigned int  detid) const

Definition at line 356 of file GEMDigiMatcher.cc.

356  {
357  if (detid_to_pads_.find(detid) == detid_to_pads_.end())
358  return no_gem_pads_;
359  return detid_to_pads_.at(detid);
360 }

◆ padsInSuperChamber()

const GEMPadDigiContainer & GEMDigiMatcher::padsInSuperChamber ( unsigned int  detid) const

Definition at line 368 of file GEMDigiMatcher.cc.

368  {
369  if (superchamber_to_pads_.find(detid) == superchamber_to_pads_.end())
370  return no_gem_pads_;
371  return superchamber_to_pads_.at(detid);
372 }

◆ partitionNumbers()

std::set< int > GEMDigiMatcher::partitionNumbers ( ) const

Definition at line 479 of file GEMDigiMatcher.cc.

479  {
480  std::set<int> result;
481 
482  const auto& detids = detIdsDigi();
483  for (const auto& id : detids) {
484  const GEMDetId& idd(id);
485  result.insert(idd.roll());
486  }
487  return result;
488 }

References mps_fire::result, and GEMDetId::roll().

◆ partitionNumbersWithCoPads()

std::set< int > GEMDigiMatcher::partitionNumbersWithCoPads ( ) const

Definition at line 490 of file GEMDigiMatcher.cc.

490  {
491  std::set<int> result;
492 
493  const auto& detids = superChamberIdsCoPad();
494  for (const auto& id : detids) {
495  const GEMDetId& idd(id);
496  result.insert(idd.roll());
497  }
498  return result;
499 }

References mps_fire::result, and GEMDetId::roll().

◆ selectDetIds()

template<class T >
std::set< unsigned int > GEMDigiMatcher::selectDetIds ( const T digis,
int  gem_type 
) const
private

Definition at line 183 of file GEMDigiMatcher.h.

183  {
184  std::set<unsigned int> result;
185  for (const auto& p : digis) {
186  const auto& id = p.first;
187  if (gem_type > 0) {
188  GEMDetId detId(id);
189  if (MuonHitHelper::toGEMType(detId.station(), detId.ring()) != gem_type)
190  continue;
191  }
192  result.insert(p.first);
193  }
194  return result;
195 }

References AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, GEMDetId::ring(), GEMDetId::station(), and MuonHitHelper::toGEMType().

◆ simLinksInDetId()

const GEMDigiSimLinkContainer& GEMDigiMatcher::simLinksInDetId ( unsigned int  ) const

◆ stripNumbersInDetId()

std::set< int > GEMDigiMatcher::stripNumbersInDetId ( unsigned int  detid) const

Definition at line 461 of file GEMDigiMatcher.cc.

461  {
462  set<int> result;
463  const auto& digis = digisInDetId(detid);
464  for (const auto& d : digis) {
465  result.insert(d.strip());
466  }
467  return result;
468 }

References ztail::d, and mps_fire::result.

◆ superChamberIdsCluster()

std::set< unsigned int > GEMDigiMatcher::superChamberIdsCluster ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 330 of file GEMDigiMatcher.cc.

330  {
331  return selectDetIds(superchamber_to_clusters_, gem_type);
332 }

◆ superChamberIdsCoPad()

std::set< unsigned int > GEMDigiMatcher::superChamberIdsCoPad ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 334 of file GEMDigiMatcher.cc.

334  {
335  return selectDetIds(superchamber_to_copads_, gem_type);
336 }

◆ superChamberIdsDigi()

std::set< unsigned int > GEMDigiMatcher::superChamberIdsDigi ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 322 of file GEMDigiMatcher.cc.

322  {
323  return selectDetIds(superchamber_to_digis_, gem_type);
324 }

◆ superChamberIdsPad()

std::set< unsigned int > GEMDigiMatcher::superChamberIdsPad ( int  gem_type = MuonHitHelper::GEM_ALL) const

Definition at line 326 of file GEMDigiMatcher.cc.

326  {
327  return selectDetIds(superchamber_to_pads_, gem_type);
328 }

Member Data Documentation

◆ chamber_to_clusters_

std::map<unsigned int, GEMPadDigiClusterContainer> GEMDigiMatcher::chamber_to_clusters_
private

Definition at line 170 of file GEMDigiMatcher.h.

◆ chamber_to_digis_

std::map<unsigned int, GEMDigiContainer> GEMDigiMatcher::chamber_to_digis_
private

Definition at line 162 of file GEMDigiMatcher.h.

◆ chamber_to_pads_

std::map<unsigned int, GEMPadDigiContainer> GEMDigiMatcher::chamber_to_pads_
private

Definition at line 166 of file GEMDigiMatcher.h.

◆ detid_to_clusters_

std::map<unsigned int, GEMPadDigiClusterContainer> GEMDigiMatcher::detid_to_clusters_
private

Definition at line 169 of file GEMDigiMatcher.h.

◆ detid_to_digis_

std::map<unsigned int, GEMDigiContainer> GEMDigiMatcher::detid_to_digis_
private

Definition at line 161 of file GEMDigiMatcher.h.

◆ detid_to_pads_

std::map<unsigned int, GEMPadDigiContainer> GEMDigiMatcher::detid_to_pads_
private

Definition at line 165 of file GEMDigiMatcher.h.

Referenced by allPads().

◆ detid_to_simLinks_

std::map<unsigned int, GEMDigiSimLinkContainer> GEMDigiMatcher::detid_to_simLinks_
private

Definition at line 159 of file GEMDigiMatcher.h.

◆ discardEleHits_

bool GEMDigiMatcher::discardEleHits_
private

Definition at line 142 of file GEMDigiMatcher.h.

◆ gemClustersH_

edm::Handle<GEMPadDigiClusterCollection> GEMDigiMatcher::gemClustersH_
private

Definition at line 130 of file GEMDigiMatcher.h.

◆ gemClusterToken_

edm::EDGetTokenT<GEMPadDigiClusterCollection> GEMDigiMatcher::gemClusterToken_
private

Definition at line 124 of file GEMDigiMatcher.h.

◆ gemCoPadsH_

edm::Handle<GEMCoPadDigiCollection> GEMDigiMatcher::gemCoPadsH_
private

Definition at line 131 of file GEMDigiMatcher.h.

◆ gemCoPadToken_

edm::EDGetTokenT<GEMCoPadDigiCollection> GEMDigiMatcher::gemCoPadToken_
private

Definition at line 125 of file GEMDigiMatcher.h.

◆ gemDigisH_

edm::Handle<GEMDigiCollection> GEMDigiMatcher::gemDigisH_
private

Definition at line 128 of file GEMDigiMatcher.h.

◆ gemDigisSLH_

edm::Handle<edm::DetSetVector<GEMDigiSimLink> > GEMDigiMatcher::gemDigisSLH_
private

Definition at line 127 of file GEMDigiMatcher.h.

◆ gemDigiToken_

edm::EDGetTokenT<GEMDigiCollection> GEMDigiMatcher::gemDigiToken_
private

Definition at line 122 of file GEMDigiMatcher.h.

◆ gemGeometry_

const GEMGeometry* GEMDigiMatcher::gemGeometry_
private

Definition at line 136 of file GEMDigiMatcher.h.

◆ gemPadsH_

edm::Handle<GEMPadDigiCollection> GEMDigiMatcher::gemPadsH_
private

Definition at line 129 of file GEMDigiMatcher.h.

◆ gemPadToken_

edm::EDGetTokenT<GEMPadDigiCollection> GEMDigiMatcher::gemPadToken_
private

Definition at line 123 of file GEMDigiMatcher.h.

◆ gemSimLinkToken_

edm::EDGetTokenT<edm::DetSetVector<GEMDigiSimLink> > GEMDigiMatcher::gemSimLinkToken_
private

Definition at line 121 of file GEMDigiMatcher.h.

◆ geomToken_

edm::ESGetToken<GEMGeometry, MuonGeometryRecord> GEMDigiMatcher::geomToken_
private

Definition at line 135 of file GEMDigiMatcher.h.

◆ matchDeltaStrip_

int GEMDigiMatcher::matchDeltaStrip_
private

Definition at line 149 of file GEMDigiMatcher.h.

◆ matchToSimLink_

bool GEMDigiMatcher::matchToSimLink_
private

Definition at line 157 of file GEMDigiMatcher.h.

◆ maxBXCluster_

int GEMDigiMatcher::maxBXCluster_
private

Definition at line 146 of file GEMDigiMatcher.h.

◆ maxBXCoPad_

int GEMDigiMatcher::maxBXCoPad_
private

Definition at line 147 of file GEMDigiMatcher.h.

◆ maxBXDigi_

int GEMDigiMatcher::maxBXDigi_
private

Definition at line 144 of file GEMDigiMatcher.h.

◆ maxBXPad_

int GEMDigiMatcher::maxBXPad_
private

Definition at line 145 of file GEMDigiMatcher.h.

◆ minBXCluster_

int GEMDigiMatcher::minBXCluster_
private

Definition at line 146 of file GEMDigiMatcher.h.

◆ minBXCoPad_

int GEMDigiMatcher::minBXCoPad_
private

Definition at line 147 of file GEMDigiMatcher.h.

◆ minBXDigi_

int GEMDigiMatcher::minBXDigi_
private

Definition at line 144 of file GEMDigiMatcher.h.

◆ minBXPad_

int GEMDigiMatcher::minBXPad_
private

Definition at line 145 of file GEMDigiMatcher.h.

◆ muonSimHitMatcher_

std::shared_ptr<GEMSimHitMatcher> GEMDigiMatcher::muonSimHitMatcher_
private

Definition at line 133 of file GEMDigiMatcher.h.

Referenced by muonSimHitMatcher().

◆ no_gem_clusters_

GEMPadDigiClusterContainer GEMDigiMatcher::no_gem_clusters_
private

Definition at line 178 of file GEMDigiMatcher.h.

◆ no_gem_copads_

GEMCoPadDigiContainer GEMDigiMatcher::no_gem_copads_
private

Definition at line 179 of file GEMDigiMatcher.h.

◆ no_gem_digis_

GEMDigiContainer GEMDigiMatcher::no_gem_digis_
private

Definition at line 176 of file GEMDigiMatcher.h.

◆ no_gem_pads_

GEMPadDigiContainer GEMDigiMatcher::no_gem_pads_
private

Definition at line 177 of file GEMDigiMatcher.h.

◆ no_gem_simLinks_

GEMDigiSimLinkContainer GEMDigiMatcher::no_gem_simLinks_
private

Definition at line 175 of file GEMDigiMatcher.h.

◆ simMuOnly_

bool GEMDigiMatcher::simMuOnly_
private

Definition at line 141 of file GEMDigiMatcher.h.

◆ superchamber_to_clusters_

std::map<unsigned int, GEMPadDigiClusterContainer> GEMDigiMatcher::superchamber_to_clusters_
private

Definition at line 171 of file GEMDigiMatcher.h.

◆ superchamber_to_copads_

std::map<unsigned int, GEMCoPadDigiContainer> GEMDigiMatcher::superchamber_to_copads_
private

Definition at line 173 of file GEMDigiMatcher.h.

◆ superchamber_to_digis_

std::map<unsigned int, GEMDigiContainer> GEMDigiMatcher::superchamber_to_digis_
private

Definition at line 163 of file GEMDigiMatcher.h.

◆ superchamber_to_pads_

std::map<unsigned int, GEMPadDigiContainer> GEMDigiMatcher::superchamber_to_pads_
private

Definition at line 167 of file GEMDigiMatcher.h.

◆ verboseCluster_

bool GEMDigiMatcher::verboseCluster_
private

Definition at line 154 of file GEMDigiMatcher.h.

◆ verboseCoPad_

bool GEMDigiMatcher::verboseCoPad_
private

Definition at line 155 of file GEMDigiMatcher.h.

◆ verboseDigi_

bool GEMDigiMatcher::verboseDigi_
private

Definition at line 152 of file GEMDigiMatcher.h.

◆ verbosePad_

bool GEMDigiMatcher::verbosePad_
private

Definition at line 153 of file GEMDigiMatcher.h.

◆ verboseSimLink_

bool GEMDigiMatcher::verboseSimLink_
private

Definition at line 151 of file GEMDigiMatcher.h.

edm::DetSetVector
Definition: DetSetVector.h:61
GEMDigiMatcher::maxBXDigi_
int maxBXDigi_
Definition: GEMDigiMatcher.h:144
GEMDigiMatcher::gemCoPadsH_
edm::Handle< GEMCoPadDigiCollection > gemCoPadsH_
Definition: GEMDigiMatcher.h:131
GEMCoPadDigiCollection
GEMDigiMatcher::gemClustersH_
edm::Handle< GEMPadDigiClusterCollection > gemClustersH_
Definition: GEMDigiMatcher.h:130
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
GEMDigiMatcher::superChamberIdsCoPad
std::set< unsigned int > superChamberIdsCoPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:334
edm::Handle::product
T const * product() const
Definition: Handle.h:70
MuonHitHelper::toGEMType
static int toGEMType(int st, int ri)
Definition: MuonHitHelper.cc:49
edm::DetSetVector::end
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
GEMGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GEMGeometry.cc:25
relativeConstraints.station
station
Definition: relativeConstraints.py:67
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
GEMDigiMatcher::gemDigiToken_
edm::EDGetTokenT< GEMDigiCollection > gemDigiToken_
Definition: GEMDigiMatcher.h:122
GEMDigiMatcher::digisInChamber
const GEMDigiContainer & digisInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:344
GEMDigiMatcher::matchDigisToSimTrack
void matchDigisToSimTrack(const GEMDigiCollection &)
Definition: GEMDigiMatcher.cc:136
GEMDigiMatcher::gemGeometry_
const GEMGeometry * gemGeometry_
Definition: GEMDigiMatcher.h:136
edm::DetSetVector::begin
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:314
GEMDigiMatcher::padsInChamber
const GEMPadDigiContainer & padsInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:362
GEMDigiMatcher::chamber_to_digis_
std::map< unsigned int, GEMDigiContainer > chamber_to_digis_
Definition: GEMDigiMatcher.h:162
GEMDigiMatcher::chamber_to_clusters_
std::map< unsigned int, GEMPadDigiClusterContainer > chamber_to_clusters_
Definition: GEMDigiMatcher.h:170
GEMDigiMatcher::verboseSimLink_
bool verboseSimLink_
Definition: GEMDigiMatcher.h:151
GEMDigiMatcher::gemSimLinkToken_
edm::EDGetTokenT< edm::DetSetVector< GEMDigiSimLink > > gemSimLinkToken_
Definition: GEMDigiMatcher.h:121
GEMDigiMatcher::verboseDigi_
bool verboseDigi_
Definition: GEMDigiMatcher.h:152
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
findQualityFiles.v
v
Definition: findQualityFiles.py:179
GEMDigiMatcher::matchCoPadsToSimTrack
void matchCoPadsToSimTrack(const GEMCoPadDigiCollection &)
Definition: GEMDigiMatcher.cc:255
edm::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
GEMDigiMatcher::matchDeltaStrip_
int matchDeltaStrip_
Definition: GEMDigiMatcher.h:149
GEMPadDigi::GE21SplitStrip
Definition: GEMPadDigi.h:22
GEMDigiMatcher::matchPadsToSimTrack
void matchPadsToSimTrack(const GEMPadDigiCollection &)
Definition: GEMDigiMatcher.cc:181
GEMDigiMatcher::superchamber_to_clusters_
std::map< unsigned int, GEMPadDigiClusterContainer > superchamber_to_clusters_
Definition: GEMDigiMatcher.h:171
GEMDigiMatcher::minBXPad_
int minBXPad_
Definition: GEMDigiMatcher.h:145
GEMDigiMatcher::maxBXPad_
int maxBXPad_
Definition: GEMDigiMatcher.h:145
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
GEMDigiMatcher::gemDigisSLH_
edm::Handle< edm::DetSetVector< GEMDigiSimLink > > gemDigisSLH_
Definition: GEMDigiMatcher.h:127
GEMDigiMatcher::no_gem_copads_
GEMCoPadDigiContainer no_gem_copads_
Definition: GEMDigiMatcher.h:179
GEMDigiMatcher::superchamber_to_pads_
std::map< unsigned int, GEMPadDigiContainer > superchamber_to_pads_
Definition: GEMDigiMatcher.h:167
GEMDigiMatcher::clear
void clear()
Definition: GEMDigiMatcher.cc:515
GEMDigiMatcher::minBXCluster_
int minBXCluster_
Definition: GEMDigiMatcher.h:146
GEMDigiMatcher::maxBXCoPad_
int maxBXCoPad_
Definition: GEMDigiMatcher.h:147
GEMDigiMatcher::detid_to_clusters_
std::map< unsigned int, GEMPadDigiClusterContainer > detid_to_clusters_
Definition: GEMDigiMatcher.h:169
GEMDigiMatcher::minBXCoPad_
int minBXCoPad_
Definition: GEMDigiMatcher.h:147
GEMDigiMatcher::verboseCoPad_
bool verboseCoPad_
Definition: GEMDigiMatcher.h:155
GEMDigiMatcher::selectDetIds
std::set< unsigned int > selectDetIds(const T &, int) const
Definition: GEMDigiMatcher.h:183
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
GEMPadDigiCollection
GEMDigiMatcher::clustersInChamber
const GEMPadDigiClusterContainer & clustersInChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:380
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
GEMDigiMatcher::digisInDetId
const GEMDigiContainer & digisInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:338
GEMDigiMatcher::no_gem_pads_
GEMPadDigiContainer no_gem_pads_
Definition: GEMDigiMatcher.h:177
GEMDigiMatcher::gemDigisH_
edm::Handle< GEMDigiCollection > gemDigisH_
Definition: GEMDigiMatcher.h:128
Point3DBase< float, LocalTag >
GEMPadDigiClusterCollection
GEMDigiMatcher::matchDigisSLToSimTrack
void matchDigisSLToSimTrack(const edm::DetSetVector< GEMDigiSimLink > &)
Definition: GEMDigiMatcher.cc:88
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
GEMDigiMatcher::matchClustersToSimTrack
void matchClustersToSimTrack(const GEMPadDigiClusterCollection &)
Definition: GEMDigiMatcher.cc:215
GEMDigiMatcher::gemClusterToken_
edm::EDGetTokenT< GEMPadDigiClusterCollection > gemClusterToken_
Definition: GEMDigiMatcher.h:124
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
GEMDigiMatcher::verboseCluster_
bool verboseCluster_
Definition: GEMDigiMatcher.h:154
GEMDigiMatcher::gemCoPadToken_
edm::EDGetTokenT< GEMCoPadDigiCollection > gemCoPadToken_
Definition: GEMDigiMatcher.h:125
trackerHitRTTI::isMatched
bool isMatched(TrackingRecHit const &hit)
Definition: trackerHitRTTI.h:33
GEMDigiMatcher::superChamberIdsPad
std::set< unsigned int > superChamberIdsPad(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:326
GEMDigiMatcher::gemPadsH_
edm::Handle< GEMPadDigiCollection > gemPadsH_
Definition: GEMDigiMatcher.h:129
GEMSimHitMatcher
Definition: GEMSimHitMatcher.h:16
GEMDigiMatcher::minBXDigi_
int minBXDigi_
Definition: GEMDigiMatcher.h:144
GEMDigiMatcher::no_gem_clusters_
GEMPadDigiClusterContainer no_gem_clusters_
Definition: GEMDigiMatcher.h:178
GEMDetId
Definition: GEMDetId.h:18
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
iEvent
int iEvent
Definition: GenABIO.cc:224
GEMEtaPartition::centreOfStrip
LocalPoint centreOfStrip(int strip) const
Definition: GEMEtaPartition.cc:26
GEMDigiMatcher::chamber_to_pads_
std::map< unsigned int, GEMPadDigiContainer > chamber_to_pads_
Definition: GEMDigiMatcher.h:166
GEMEtaPartition::centreOfPad
LocalPoint centreOfPad(int pad) const
Definition: GEMEtaPartition.cc:45
GEMDigiMatcher::maxBXCluster_
int maxBXCluster_
Definition: GEMDigiMatcher.h:146
GEMDigiMatcher::simMuOnly_
bool simMuOnly_
Definition: GEMDigiMatcher.h:141
eostools.move
def move(src, dest)
Definition: eostools.py:511
GEMDigiMatcher::coPadsInSuperChamber
const GEMCoPadDigiContainer & coPadsInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:392
GEMDigiMatcher::detid_to_simLinks_
std::map< unsigned int, GEMDigiSimLinkContainer > detid_to_simLinks_
Definition: GEMDigiMatcher.h:159
GEMDigiMatcher::detIdsDigi
std::set< unsigned int > detIdsDigi(int gem_type=MuonHitHelper::GEM_ALL) const
Definition: GEMDigiMatcher.cc:300
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
GEMDigiMatcher::detid_to_digis_
std::map< unsigned int, GEMDigiContainer > detid_to_digis_
Definition: GEMDigiMatcher.h:161
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
GEMDigiCollection
GEMPadDigiCluster::GE21SplitStrip
Definition: GEMPadDigiCluster.h:24
GEMDigiMatcher::detid_to_pads_
std::map< unsigned int, GEMPadDigiContainer > detid_to_pads_
Definition: GEMDigiMatcher.h:165
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
GEMDigiMatcher::discardEleHits_
bool discardEleHits_
Definition: GEMDigiMatcher.h:142
GEMDigiMatcher::gemPadToken_
edm::EDGetTokenT< GEMPadDigiCollection > gemPadToken_
Definition: GEMDigiMatcher.h:123
GEMDigiMatcher::muonSimHitMatcher_
std::shared_ptr< GEMSimHitMatcher > muonSimHitMatcher_
Definition: GEMDigiMatcher.h:133
GEMGeometry
Definition: GEMGeometry.h:24
ztail.d
d
Definition: ztail.py:151
mps_fire.result
result
Definition: mps_fire.py:311
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GEMDigiMatcher::matchToSimLink_
bool matchToSimLink_
Definition: GEMDigiMatcher.h:157
muonGEMDigiPSet.gemSimLink
gemSimLink
Definition: muonGEMDigiPSet.py:4
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
GEMDigiMatcher::geomToken_
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
Definition: GEMDigiMatcher.h:135
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
edm::InputTag
Definition: InputTag.h:15
GEMDigiMatcher::superchamber_to_copads_
std::map< unsigned int, GEMCoPadDigiContainer > superchamber_to_copads_
Definition: GEMDigiMatcher.h:173
GEMDigiMatcher::padsInSuperChamber
const GEMPadDigiContainer & padsInSuperChamber(unsigned int) const
Definition: GEMDigiMatcher.cc:368
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
GEMDigiMatcher::no_gem_digis_
GEMDigiContainer no_gem_digis_
Definition: GEMDigiMatcher.h:176
GEMDigiMatcher::superchamber_to_digis_
std::map< unsigned int, GEMDigiContainer > superchamber_to_digis_
Definition: GEMDigiMatcher.h:163
GEMGeometry::etaPartition
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return a GEMEtaPartition given its id.
Definition: GEMGeometry.cc:77
GEMDigiMatcher::verbosePad_
bool verbosePad_
Definition: GEMDigiMatcher.h:153
GEMDigiMatcher::padsInDetId
const GEMPadDigiContainer & padsInDetId(unsigned int) const
Definition: GEMDigiMatcher.cc:356