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 317 of file GEMDigiMatcher.cc.

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

◆ chamberIdsDigi()

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

Definition at line 309 of file GEMDigiMatcher.cc.

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

◆ chamberIdsPad()

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

Definition at line 313 of file GEMDigiMatcher.cc.

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

◆ clear()

void GEMDigiMatcher::clear ( void  )
private

Definition at line 514 of file GEMDigiMatcher.cc.

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

◆ clustersInChamber()

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

Definition at line 379 of file GEMDigiMatcher.cc.

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

◆ clustersInDetId()

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

Definition at line 373 of file GEMDigiMatcher.cc.

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

◆ clustersInSuperChamber()

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

Definition at line 385 of file GEMDigiMatcher.cc.

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

◆ coPadsInSuperChamber()

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

Definition at line 391 of file GEMDigiMatcher.cc.

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

◆ detIdsCluster()

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

Definition at line 305 of file GEMDigiMatcher.cc.

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

◆ detIdsDigi()

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

Definition at line 299 of file GEMDigiMatcher.cc.

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

◆ detIdsPad()

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

Definition at line 303 of file GEMDigiMatcher.cc.

303 { return selectDetIds(detid_to_pads_, gem_type); }

◆ detIdsSimLink()

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

Definition at line 295 of file GEMDigiMatcher.cc.

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

◆ digisInChamber()

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

Definition at line 343 of file GEMDigiMatcher.cc.

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

◆ digisInDetId()

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

Definition at line 337 of file GEMDigiMatcher.cc.

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

◆ digisInSuperChamber()

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

Definition at line 349 of file GEMDigiMatcher.cc.

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

◆ 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 500 of file GEMDigiMatcher.cc.

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

References ztail::d.

◆ getGlobalPointPad()

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

Definition at line 507 of file GEMDigiMatcher.cc.

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

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
67  const GEMDigiCollection& gemDigis = *gemDigisH_.product();
68  const GEMPadDigiCollection& gemPads = *gemPadsH_.product();
69  const GEMPadDigiClusterCollection& gemClusters = *gemClustersH_.product();
70  const GEMCoPadDigiCollection& gemCoPads = *gemCoPadsH_.product();
71 
72  clear();
73 
74  // hard cut on non-GEM muons
75  if (std::abs(t.momentum().eta()) < 1.55)
76  return;
77 
78  // now match the digis
79  if (matchToSimLink_)
80  matchDigisSLToSimTrack(gemDigisSL);
81  matchDigisToSimTrack(gemDigis);
82  matchPadsToSimTrack(gemPads);
83  matchClustersToSimTrack(gemClusters);
84  matchCoPadsToSimTrack(gemCoPads);
85 }

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

◆ matchClustersToSimTrack()

void GEMDigiMatcher::matchClustersToSimTrack ( const GEMPadDigiClusterCollection clusters)
private

Definition at line 214 of file GEMDigiMatcher.cc.

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

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 254 of file GEMDigiMatcher.cc.

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

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 87 of file GEMDigiMatcher.cc.

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

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 135 of file GEMDigiMatcher.cc.

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

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

◆ matchPadsToSimTrack()

void GEMDigiMatcher::matchPadsToSimTrack ( const GEMPadDigiCollection pads)
private

Definition at line 180 of file GEMDigiMatcher.cc.

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

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 451 of file GEMDigiMatcher.cc.

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

References dqmiodumpmetadata::n.

◆ nLayersWithClustersInSuperChamber()

int GEMDigiMatcher::nLayersWithClustersInSuperChamber ( unsigned int  detid) const

Definition at line 427 of file GEMDigiMatcher.cc.

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

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 397 of file GEMDigiMatcher.cc.

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

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

◆ nLayersWithPadsInSuperChamber()

int GEMDigiMatcher::nLayersWithPadsInSuperChamber ( unsigned int  detid) const

Definition at line 412 of file GEMDigiMatcher.cc.

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

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 442 of file GEMDigiMatcher.cc.

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

References dqmiodumpmetadata::n.

◆ padNumbersInDetId()

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

Definition at line 469 of file GEMDigiMatcher.cc.

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

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

◆ padsInChamber()

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

Definition at line 361 of file GEMDigiMatcher.cc.

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

◆ padsInDetId()

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

Definition at line 355 of file GEMDigiMatcher.cc.

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

◆ padsInSuperChamber()

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

Definition at line 367 of file GEMDigiMatcher.cc.

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

◆ partitionNumbers()

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

Definition at line 478 of file GEMDigiMatcher.cc.

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

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

◆ partitionNumbersWithCoPads()

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

Definition at line 489 of file GEMDigiMatcher.cc.

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

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 460 of file GEMDigiMatcher.cc.

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

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

◆ superChamberIdsCluster()

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

Definition at line 329 of file GEMDigiMatcher.cc.

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

◆ superChamberIdsCoPad()

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

Definition at line 333 of file GEMDigiMatcher.cc.

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

◆ superChamberIdsDigi()

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

Definition at line 321 of file GEMDigiMatcher.cc.

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

◆ superChamberIdsPad()

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

Definition at line 325 of file GEMDigiMatcher.cc.

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

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:333
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:343
GEMDigiMatcher::matchDigisToSimTrack
void matchDigisToSimTrack(const GEMDigiCollection &)
Definition: GEMDigiMatcher.cc:135
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:361
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:254
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:180
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:514
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:379
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:337
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:87
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
GEMDigiMatcher::matchClustersToSimTrack
void matchClustersToSimTrack(const GEMPadDigiClusterCollection &)
Definition: GEMDigiMatcher.cc:214
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:325
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:88338
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:391
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:299
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
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:367
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:355