CMS 3D CMS Logo

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

#include <CSCStubMatcher.h>

Public Member Functions

std::map< unsigned int, CSCALCTDigiContaineralcts () const
 
const CSCALCTDigiContaineralctsInChamber (unsigned int) const
 
const CSCALCTDigiContainerallALCTsInChamber (unsigned int) const
 
const CSCCLCTDigiContainerallCLCTsInChamber (unsigned int) const
 all stubs (not necessarily matching) from a particular crossed chamber More...
 
const CSCCorrelatedLCTDigiContainerallLCTsInChamber (unsigned int) const
 
const CSCCorrelatedLCTDigiContainerallMPLCTsInChamber (unsigned int) const
 
CSCALCTDigi bestAlctInChamber (unsigned int) const
 
CSCCLCTDigi bestClctInChamber (unsigned int) const
 best matching from a particular crossed chamber More...
 
CSCCorrelatedLCTDigi bestLctInChamber (unsigned int) const
 
CSCCorrelatedLCTDigi bestMplctInChamber (unsigned int) const
 
std::set< unsigned int > chamberIdsALCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::set< unsigned int > chamberIdsAllALCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::set< unsigned int > chamberIdsAllCLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 crossed chamber detIds with not necessarily matching stubs More...
 
std::set< unsigned int > chamberIdsAllLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::set< unsigned int > chamberIdsAllMPLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::set< unsigned int > chamberIdsCLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 chamber detIds with matching stubs More...
 
std::set< unsigned int > chamberIdsLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::set< unsigned int > chamberIdsMPLCT (int csc_type=MuonHitHelper::CSC_ALL) const
 
std::map< unsigned int, CSCCLCTDigiContainerclcts () const
 all matching lcts More...
 
const CSCCLCTDigiContainerclctsInChamber (unsigned int) const
 all matching from a particular crossed chamber More...
 
std::shared_ptr< CSCDigiMatchercscDigiMatcher ()
 
 CSCStubMatcher (edm::ParameterSet const &iPS, edm::ConsumesCollector &&iC)
 
std::shared_ptr< GEMDigiMatchergemDigiMatcher ()
 
GlobalPoint getGlobalPosition (unsigned int rawId, const CSCCorrelatedLCTDigi &lct) const
 
void init (const edm::Event &e, const edm::EventSetup &eventSetup)
 initialize the event More...
 
bool lctInChamber (const CSCDetId &id, const CSCCorrelatedLCTDigi &lct) const
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainerlcts () const
 
const CSCCorrelatedLCTDigiContainerlctsInChamber (unsigned int) const
 
void match (const SimTrack &t, const SimVertex &v)
 do the matching More...
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainermplcts () const
 
const CSCCorrelatedLCTDigiContainermplctsInChamber (unsigned int) const
 
int nChambersWithALCT (int min_quality=0) const
 
int nChambersWithCLCT (int min_quality=0) const
 How many CSC chambers with matching stubs of some minimal quality did this SimTrack hit? More...
 
int nChambersWithLCT (int min_quality=0) const
 
int nChambersWithMPLCT (int min_quality=0) const
 
float zpositionOfLayer (unsigned int detid, int layer) const
 
 ~CSCStubMatcher ()
 

Private Member Functions

void matchALCTsToSimTrack (const CSCALCTDigiCollection &)
 
void matchCLCTsToSimTrack (const CSCCLCTDigiCollection &)
 
void matchLCTsToSimTrack (const CSCCorrelatedLCTDigiCollection &)
 
void matchMPLCTsToSimTrack (const CSCCorrelatedLCTDigiCollection &)
 
template<class D >
std::set< unsigned int > selectDetIds (D &, int) const
 

Private Attributes

edm::Handle< CSCALCTDigiCollectionalctsH_
 
edm::EDGetTokenT< CSCALCTDigiCollectionalctToken_
 
std::map< unsigned int, CSCALCTDigiContainerchamber_to_alcts_
 
std::map< unsigned int, CSCALCTDigiContainerchamber_to_alcts_all_
 
std::map< unsigned int, CSCCLCTDigiContainerchamber_to_clcts_
 
std::map< unsigned int, CSCCLCTDigiContainerchamber_to_clcts_all_
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainerchamber_to_lcts_
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainerchamber_to_lcts_all_
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainerchamber_to_mplcts_
 
std::map< unsigned int, CSCCorrelatedLCTDigiContainerchamber_to_mplcts_all_
 
edm::Handle< CSCCLCTDigiCollectionclctsH_
 
edm::EDGetTokenT< CSCCLCTDigiCollectionclctToken_
 
edm::ESHandle< CSCGeometrycsc_geom_
 
std::shared_ptr< CSCDigiMatchercscDigiMatcher_
 
const CSCGeometrycscGeometry_
 
std::shared_ptr< GEMDigiMatchergemDigiMatcher_
 
bool hsFromSimHitMean_
 
edm::Handle< CSCCorrelatedLCTDigiCollectionlctsH_
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectionlctToken_
 
int maxBXALCT_
 
int maxBXCLCT_
 
int maxBXLCT_
 
int maxBXMPLCT_
 
int minBXALCT_
 
int minBXCLCT_
 
int minBXLCT_
 
int minBXMPLCT_
 
int minNHitsChamber_
 
int minNHitsChamberALCT_
 
int minNHitsChamberCLCT_
 
int minNHitsChamberLCT_
 
int minNHitsChamberMPLCT_
 
edm::Handle< CSCCorrelatedLCTDigiCollectionmplctsH_
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectionmplctToken_
 
CSCALCTDigiContainer no_alcts_
 
CSCCLCTDigiContainer no_clcts_
 
CSCCorrelatedLCTDigiContainer no_lcts_
 
CSCCorrelatedLCTDigiContainer no_mplcts_
 
bool verboseALCT_
 
bool verboseCLCT_
 
bool verboseLCT_
 
bool verboseMPLCT_
 

Detailed Description

Description: Matching of CSC L1 trigger stubs to SimTrack

Author: Sven Dildick (TAMU), Tao Huang (TAMU)

Definition at line 22 of file CSCStubMatcher.h.

Constructor & Destructor Documentation

◆ CSCStubMatcher()

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

Definition at line 8 of file CSCStubMatcher.cc.

8  {
9  const auto& cscCLCT = pSet.getParameter<edm::ParameterSet>("cscCLCT");
10  minBXCLCT_ = cscCLCT.getParameter<int>("minBX");
11  maxBXCLCT_ = cscCLCT.getParameter<int>("maxBX");
12  verboseCLCT_ = cscCLCT.getParameter<int>("verbose");
13  minNHitsChamberCLCT_ = cscCLCT.getParameter<int>("minNHitsChamber");
14 
15  const auto& cscALCT = pSet.getParameter<edm::ParameterSet>("cscALCT");
16  minBXALCT_ = cscALCT.getParameter<int>("minBX");
17  maxBXALCT_ = cscALCT.getParameter<int>("maxBX");
18  verboseALCT_ = cscALCT.getParameter<int>("verbose");
19  minNHitsChamberALCT_ = cscALCT.getParameter<int>("minNHitsChamber");
20 
21  const auto& cscLCT = pSet.getParameter<edm::ParameterSet>("cscLCT");
22  minBXLCT_ = cscLCT.getParameter<int>("minBX");
23  maxBXLCT_ = cscLCT.getParameter<int>("maxBX");
24  verboseLCT_ = cscLCT.getParameter<int>("verbose");
25  minNHitsChamberLCT_ = cscLCT.getParameter<int>("minNHitsChamber");
26  hsFromSimHitMean_ = cscLCT.getParameter<bool>("hsFromSimHitMean");
27 
28  const auto& cscMPLCT = pSet.getParameter<edm::ParameterSet>("cscMPLCT");
29  minBXMPLCT_ = cscMPLCT.getParameter<int>("minBX");
30  maxBXMPLCT_ = cscMPLCT.getParameter<int>("maxBX");
31  verboseMPLCT_ = cscMPLCT.getParameter<int>("verbose");
32  minNHitsChamberMPLCT_ = cscMPLCT.getParameter<int>("minNHitsChamber");
33 
34  gemDigiMatcher_.reset(new GEMDigiMatcher(pSet, std::move(iC)));
35  cscDigiMatcher_.reset(new CSCDigiMatcher(pSet, std::move(iC)));
36 
37  clctToken_ = iC.consumes<CSCCLCTDigiCollection>(cscCLCT.getParameter<edm::InputTag>("inputTag"));
38  alctToken_ = iC.consumes<CSCALCTDigiCollection>(cscALCT.getParameter<edm::InputTag>("inputTag"));
39  lctToken_ = iC.consumes<CSCCorrelatedLCTDigiCollection>(cscLCT.getParameter<edm::InputTag>("inputTag"));
41 }

References muonCSCStubPSet::cscALCT, muonCSCStubPSet::cscCLCT, muonCSCStubPSet::cscLCT, muonCSCStubPSet::cscMPLCT, edm::ParameterSet::getParameter(), and eostools::move().

◆ ~CSCStubMatcher()

CSCStubMatcher::~CSCStubMatcher ( )
inline

Definition at line 26 of file CSCStubMatcher.h.

26 {}

Member Function Documentation

◆ alcts()

std::map<unsigned int, CSCALCTDigiContainer> CSCStubMatcher::alcts ( ) const
inline

Definition at line 60 of file CSCStubMatcher.h.

60 { return chamber_to_alcts_; }

References chamber_to_alcts_.

◆ alctsInChamber()

const CSCALCTDigiContainer & CSCStubMatcher::alctsInChamber ( unsigned int  detid) const

Definition at line 380 of file CSCStubMatcher.cc.

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

◆ allALCTsInChamber()

const CSCALCTDigiContainer & CSCStubMatcher::allALCTsInChamber ( unsigned int  detid) const

Definition at line 356 of file CSCStubMatcher.cc.

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

◆ allCLCTsInChamber()

const CSCCLCTDigiContainer & CSCStubMatcher::allCLCTsInChamber ( unsigned int  detid) const

all stubs (not necessarily matching) from a particular crossed chamber

Definition at line 350 of file CSCStubMatcher.cc.

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

◆ allLCTsInChamber()

const CSCCorrelatedLCTDigiContainer & CSCStubMatcher::allLCTsInChamber ( unsigned int  detid) const

Definition at line 362 of file CSCStubMatcher.cc.

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

◆ allMPLCTsInChamber()

const CSCCorrelatedLCTDigiContainer & CSCStubMatcher::allMPLCTsInChamber ( unsigned int  detid) const

Definition at line 368 of file CSCStubMatcher.cc.

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

◆ bestAlctInChamber()

CSCALCTDigi CSCStubMatcher::bestAlctInChamber ( unsigned int  detid) const

Definition at line 415 of file CSCStubMatcher.cc.

415  {
416  //sort stubs based on quality
417  const auto& input(alctsInChamber(detid));
418  int bestQ = 0;
419  int index = -1;
420  for (unsigned int i = 0; i < input.size(); ++i) {
421  int quality = input[i].getQuality();
422  if (quality > bestQ) {
423  bestQ = quality;
424  index = i;
425  }
426  }
427  if (index != -1)
428  return input[index];
429  return CSCALCTDigi();
430 }

References mps_fire::i, input, and qcdUeDQM_cfi::quality.

◆ bestClctInChamber()

CSCCLCTDigi CSCStubMatcher::bestClctInChamber ( unsigned int  detid) const

best matching from a particular crossed chamber

Definition at line 398 of file CSCStubMatcher.cc.

398  {
399  //sort stubs based on quality
400  const auto& input(clctsInChamber(detid));
401  int bestQ = 0;
402  int index = -1;
403  for (unsigned int i = 0; i < input.size(); ++i) {
404  int quality = input[i].getQuality();
405  if (quality > bestQ) {
406  bestQ = quality;
407  index = i;
408  }
409  }
410  if (index != -1)
411  return input[index];
412  return CSCCLCTDigi();
413 }

References mps_fire::i, input, and qcdUeDQM_cfi::quality.

◆ bestLctInChamber()

CSCCorrelatedLCTDigi CSCStubMatcher::bestLctInChamber ( unsigned int  detid) const

Definition at line 432 of file CSCStubMatcher.cc.

432  {
433  //sort stubs based on quality
434  const auto& input(lctsInChamber(detid));
435  int bestQ = 0;
436  int index = -1;
437  for (unsigned int i = 0; i < input.size(); ++i) {
438  int quality = input[i].getQuality();
439  if (quality > bestQ) {
440  bestQ = quality;
441  index = i;
442  }
443  }
444  if (index != -1)
445  return input[index];
446  return CSCCorrelatedLCTDigi();
447 }

References mps_fire::i, input, and qcdUeDQM_cfi::quality.

◆ bestMplctInChamber()

CSCCorrelatedLCTDigi CSCStubMatcher::bestMplctInChamber ( unsigned int  ) const

◆ chamberIdsALCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsALCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 338 of file CSCStubMatcher.cc.

338  {
339  return selectDetIds(chamber_to_alcts_, csc_type);
340 }

◆ chamberIdsAllALCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsAllALCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 322 of file CSCStubMatcher.cc.

322  {
323  return selectDetIds(chamber_to_alcts_all_, csc_type);
324 }

◆ chamberIdsAllCLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsAllCLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

crossed chamber detIds with not necessarily matching stubs

Definition at line 318 of file CSCStubMatcher.cc.

318  {
319  return selectDetIds(chamber_to_clcts_all_, csc_type);
320 }

◆ chamberIdsAllLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsAllLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 326 of file CSCStubMatcher.cc.

326  {
327  return selectDetIds(chamber_to_lcts_all_, csc_type);
328 }

◆ chamberIdsAllMPLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsAllMPLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 330 of file CSCStubMatcher.cc.

330  {
331  return selectDetIds(chamber_to_mplcts_all_, csc_type);
332 }

◆ chamberIdsCLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsCLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

chamber detIds with matching stubs

Definition at line 334 of file CSCStubMatcher.cc.

334  {
335  return selectDetIds(chamber_to_clcts_, csc_type);
336 }

◆ chamberIdsLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 342 of file CSCStubMatcher.cc.

342  {
343  return selectDetIds(chamber_to_lcts_, csc_type);
344 }

◆ chamberIdsMPLCT()

std::set< unsigned int > CSCStubMatcher::chamberIdsMPLCT ( int  csc_type = MuonHitHelper::CSC_ALL) const

Definition at line 346 of file CSCStubMatcher.cc.

346  {
347  return selectDetIds(chamber_to_mplcts_, csc_type);
348 }

◆ clcts()

std::map<unsigned int, CSCCLCTDigiContainer> CSCStubMatcher::clcts ( ) const
inline

all matching lcts

Definition at line 59 of file CSCStubMatcher.h.

59 { return chamber_to_clcts_; }

References chamber_to_clcts_.

◆ clctsInChamber()

const CSCCLCTDigiContainer & CSCStubMatcher::clctsInChamber ( unsigned int  detid) const

all matching from a particular crossed chamber

Definition at line 374 of file CSCStubMatcher.cc.

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

◆ cscDigiMatcher()

std::shared_ptr<CSCDigiMatcher> CSCStubMatcher::cscDigiMatcher ( )
inline

Definition at line 84 of file CSCStubMatcher.h.

84 { return cscDigiMatcher_; }

References cscDigiMatcher_.

◆ gemDigiMatcher()

std::shared_ptr<GEMDigiMatcher> CSCStubMatcher::gemDigiMatcher ( )
inline

Definition at line 85 of file CSCStubMatcher.h.

85 { return gemDigiMatcher_; }

References gemDigiMatcher_.

◆ getGlobalPosition()

GlobalPoint CSCStubMatcher::getGlobalPosition ( unsigned int  rawId,
const CSCCorrelatedLCTDigi lct 
) const

Definition at line 543 of file CSCStubMatcher.cc.

543  {
544  CSCDetId cscId(rawId);
545  CSCDetId key_id(cscId.endcap(), cscId.station(), cscId.ring(), cscId.chamber(), CSCConstants::KEY_CLCT_LAYER);
546  const auto& chamber = cscGeometry_->chamber(cscId);
547  float fractional_strip = lct.getFractionalStrip();
548  const auto& layer_geo = chamber->layer(CSCConstants::KEY_CLCT_LAYER)->geometry();
549  // LCT::getKeyWG() also starts from 0
550  float wire = layer_geo->middleWireOfGroup(lct.getKeyWG() + 1);
551  const LocalPoint& csc_intersect = layer_geo->intersectionOfStripAndWire(fractional_strip, wire);
552  const GlobalPoint& csc_gp = cscGeometry_->idToDet(key_id)->surface().toGlobal(csc_intersect);
553  return csc_gp;
554 }

References relativeConstraints::chamber, CSCDetId::chamber(), CSCDetId::endcap(), CSCCorrelatedLCTDigi::getFractionalStrip(), CSCCorrelatedLCTDigi::getKeyWG(), CSCConstants::KEY_CLCT_LAYER, CSCDetId::ring(), and CSCDetId::station().

◆ init()

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

initialize the event

Definition at line 43 of file CSCStubMatcher.cc.

43  {
44  gemDigiMatcher_->init(iEvent, iSetup);
45  cscDigiMatcher_->init(iEvent, iSetup);
46 
47  iEvent.getByToken(clctToken_, clctsH_);
48  iEvent.getByToken(alctToken_, alctsH_);
49  iEvent.getByToken(lctToken_, lctsH_);
50  iEvent.getByToken(mplctToken_, mplctsH_);
51 
52  iSetup.get<MuonGeometryRecord>().get(csc_geom_);
53  if (csc_geom_.isValid()) {
55  } else {
56  std::cout << "+++ Info: CSC geometry is unavailable. +++\n";
57  }
58 }

References gather_cfg::cout, edm::EventSetup::get(), get, and iEvent.

◆ lctInChamber()

bool CSCStubMatcher::lctInChamber ( const CSCDetId id,
const CSCCorrelatedLCTDigi lct 
) const

Definition at line 535 of file CSCStubMatcher.cc.

535  {
536  for (const auto& stub : lctsInChamber(id.rawId())) {
537  if (stub == lct)
538  return true;
539  }
540  return false;
541 }

◆ lcts()

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::lcts ( ) const
inline

Definition at line 61 of file CSCStubMatcher.h.

61 { return chamber_to_lcts_; }

References chamber_to_lcts_.

◆ lctsInChamber()

const CSCCorrelatedLCTDigiContainer & CSCStubMatcher::lctsInChamber ( unsigned int  detid) const

Definition at line 386 of file CSCStubMatcher.cc.

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

◆ match()

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

do the matching

Definition at line 61 of file CSCStubMatcher.cc.

61  {
62  // match simhits first
63  gemDigiMatcher_->match(t, v);
64  cscDigiMatcher_->match(t, v);
65 
70 
75 }

References OrderedSet::t, and findQualityFiles::v.

◆ matchALCTsToSimTrack()

void CSCStubMatcher::matchALCTsToSimTrack ( const CSCALCTDigiCollection alcts)
private

Definition at line 141 of file CSCStubMatcher.cc.

141  {
142  const auto& anode_ids = cscDigiMatcher_->chamberIdsWire(0);
143  int n_minLayers = 0;
144  for (const auto& id : anode_ids) {
145  if (cscDigiMatcher_->nLayersWithWireInChamber(id) >= minNHitsChamberALCT_)
146  ++n_minLayers;
147  CSCDetId ch_id(id);
148 
149  // fill 1 WG wide gaps
150  const auto& digi_wgs = cscDigiMatcher_->wiregroupsInChamber(id, 1);
151  if (verboseALCT_) {
152  cout << "alct: digi_wgs " << ch_id << " ";
153  copy(digi_wgs.begin(), digi_wgs.end(), ostream_iterator<int>(cout, " "));
154  cout << endl;
155  }
156 
157  int ring = ch_id.ring();
158  if (ring == 4)
159  ring = 1; //use ME1b id to get CLCTs
160  CSCDetId ch_id2(ch_id.endcap(), ch_id.station(), ring, ch_id.chamber(), 0);
161 
162  const auto& alcts_in_det = alcts.get(ch_id2);
163  for (auto a = alcts_in_det.first; a != alcts_in_det.second; ++a) {
164  if (!a->isValid())
165  continue;
166 
167  if (verboseALCT_)
168  cout << "alct " << ch_id << " " << *a << endl;
169 
170  // check that the BX for stub wasn't too early or too late
171  if (a->getBX() < minBXALCT_ || a->getBX() > maxBXALCT_)
172  continue;
173 
174  int wg = a->getKeyWG() + 1; // as ALCT wiregroups numbers start from 0
175 
176  // store all ALCTs in this chamber
177  chamber_to_alcts_all_[id].push_back(*a);
178 
179  // match by wiregroup with the digis
180  if (digi_wgs.find(wg) == digi_wgs.end()) {
181  if (verboseALCT_)
182  cout << "alctBAD" << endl;
183  continue;
184  }
185  if (verboseALCT_)
186  cout << "alctGOOD" << endl;
187 
188  // store matching ALCTs in this chamber
189  chamber_to_alcts_[id].push_back(*a);
190  }
191  if (chamber_to_alcts_[id].size() > 2) {
192  cout << "WARNING!!! too many ALCTs " << chamber_to_alcts_[id].size() << " in " << ch_id << endl;
193  for (auto& a : chamber_to_alcts_[id])
194  cout << " " << a << endl;
195  }
196  }
197 }

References a, CSCDetId::chamber(), filterCSVwithJSON::copy, gather_cfg::cout, CSCDetId::endcap(), triggerObjects_cff::id, CSCDetId::ring(), relativeConstraints::ring, std::size(), and CSCDetId::station().

◆ matchCLCTsToSimTrack()

void CSCStubMatcher::matchCLCTsToSimTrack ( const CSCCLCTDigiCollection clcts)
private

Definition at line 77 of file CSCStubMatcher.cc.

77  {
78  const auto& cathode_ids = cscDigiMatcher_->chamberIdsStrip(0);
79  int n_minLayers = 0;
80  for (const auto& id : cathode_ids) {
81  CSCDetId ch_id(id);
82  if (verboseCLCT_) {
83  cout << "To check CSC chamber " << ch_id << endl;
84  }
85  if (cscDigiMatcher_->nLayersWithStripInChamber(id) >= minNHitsChamberCLCT_)
86  ++n_minLayers;
87 
88  // fill 1 half-strip wide gaps
89  const auto& digi_strips = cscDigiMatcher_->stripsInChamber(id, 1);
90  if (verboseCLCT_) {
91  cout << "clct: digi_strips " << ch_id << " Nlayers " << cscDigiMatcher_->nLayersWithStripInChamber(id) << " ";
92  copy(digi_strips.begin(), digi_strips.end(), ostream_iterator<int>(cout, " "));
93  cout << endl;
94  }
95 
96  int ring = ch_id.ring();
97  if (ring == 4)
98  ring = 1; //use ME1b id to get CLCTs
99  CSCDetId ch_id2(ch_id.endcap(), ch_id.station(), ring, ch_id.chamber(), 0);
100 
101  const auto& clcts_in_det = clcts.get(ch_id2);
102 
103  for (auto c = clcts_in_det.first; c != clcts_in_det.second; ++c) {
104  if (verboseCLCT_)
105  cout << "clct " << ch_id << " " << *c << endl;
106 
107  if (!c->isValid())
108  continue;
109 
110  // check that the BX for this stub wasn't too early or too late
111  if (c->getBX() < minBXCLCT_ || c->getBX() > maxBXCLCT_)
112  continue;
113 
114  int half_strip = c->getKeyStrip() + 1; // CLCT halfstrip numbers start from 0
115  if (ch_id.ring() == 4 and ch_id.station() == 1 and half_strip > 128)
116  half_strip = half_strip - 128;
117 
118  // store all CLCTs in this chamber
119  chamber_to_clcts_all_[id].push_back(*c);
120 
121  // match by half-strip with the digis
122  if (digi_strips.find(half_strip) == digi_strips.end()) {
123  if (verboseCLCT_)
124  cout << "clctBAD, half_strip " << half_strip << endl;
125  continue;
126  }
127  if (verboseCLCT_)
128  cout << "clctGOOD" << endl;
129 
130  // store matching CLCTs in this chamber
131  chamber_to_clcts_[id].push_back(*c);
132  }
133  if (chamber_to_clcts_[id].size() > 2) {
134  cout << "WARNING!!! too many CLCTs " << chamber_to_clcts_[id].size() << " in " << ch_id << endl;
135  for (auto& c : chamber_to_clcts_[id])
136  cout << " " << c << endl;
137  }
138  }
139 }

References HltBtagPostValidation_cff::c, CSCDetId::chamber(), filterCSVwithJSON::copy, gather_cfg::cout, CSCDetId::endcap(), triggerObjects_cff::id, CSCDetId::ring(), relativeConstraints::ring, std::size(), and CSCDetId::station().

◆ matchLCTsToSimTrack()

void CSCStubMatcher::matchLCTsToSimTrack ( const CSCCorrelatedLCTDigiCollection lcts)
private

Definition at line 199 of file CSCStubMatcher.cc.

199  {
200  // only look for stubs in chambers that already have CLCT and ALCT
201  const auto& cathode_ids = chamberIdsAllCLCT(0);
202  const auto& anode_ids = chamberIdsAllALCT(0);
203 
204  std::set<int> cathode_and_anode_ids;
205  std::set_union(cathode_ids.begin(),
206  cathode_ids.end(),
207  anode_ids.begin(),
208  anode_ids.end(),
209  std::inserter(cathode_and_anode_ids, cathode_and_anode_ids.end()));
210 
211  for (const auto& id : cathode_and_anode_ids) {
212  int iLct = -1;
213 
214  CSCDetId ch_id(id);
215 
216  //use ME1b id to get LCTs
217  int ring = ch_id.ring();
218  if (ring == 4)
219  ring = 1;
220  CSCDetId ch_id2(ch_id.endcap(), ch_id.station(), ring, ch_id.chamber(), 0);
221 
222  const auto& lcts_in_det = lcts.get(ch_id2);
223 
224  // collect all LCTs in a handy container
226  for (auto lct = lcts_in_det.first; lct != lcts_in_det.second; ++lct) {
227  lcts_tmp.push_back(*lct);
228  }
229 
230  for (const auto& lct : lcts_tmp) {
231  iLct++;
232 
233  bool lct_matched(false);
234  bool lct_clct_match(false);
235  bool lct_alct_match(false);
236  bool lct_gem1_match(false);
237  bool lct_gem2_match(false);
238 
239  if (verboseLCT_)
240  cout << "in LCT, getCLCT " << lct.getCLCT() << " getALCT " << lct.getALCT() << endl;
241 
242  // Check if matched to an CLCT
243  for (const auto& p : clctsInChamber(id)) {
244  if (p == lct.getCLCT()) {
245  lct_clct_match = true;
246  break;
247  }
248  }
249 
250  // Check if matched to an ALCT
251  for (const auto& p : alctsInChamber(id)) {
252  if (p == lct.getALCT()) {
253  lct_alct_match = true;
254  break;
255  }
256  }
257 
258  // fixME here: double check the timing of GEMPad
259  if (ch_id.ring() == 1 and (ch_id.station() == 1 or ch_id.station() == 2)) {
260  // Check if matched to an GEM pad L1
261  const GEMDetId gemDetIdL1(ch_id.zendcap(), 1, ch_id.station(), 1, ch_id.chamber(), 0);
262  for (const auto& p : gemDigiMatcher_->padsInChamber(gemDetIdL1.rawId())) {
263  if (p == lct.getGEM1()) {
264  lct_gem1_match = true;
265  break;
266  }
267  }
268 
269  // Check if matched to an GEM pad L2
270  const GEMDetId gemDetIdL2(ch_id.zendcap(), 1, ch_id.station(), 2, ch_id.chamber(), 0);
271  for (const auto& p : gemDigiMatcher_->padsInChamber(gemDetIdL2.rawId())) {
272  if (p == lct.getGEM2()) {
273  lct_gem2_match = true;
274  break;
275  }
276  }
277  }
278 
279  lct_matched = ((lct_clct_match and lct_alct_match) or (lct_alct_match and lct_gem1_match and lct_gem2_match) or
280  (lct_clct_match and lct_gem1_match and lct_gem2_match));
281 
282  if (lct_matched) {
283  if (verboseLCT_)
284  cout << "this LCT matched to simtrack in chamber " << ch_id << endl;
285  chamber_to_lcts_[id].emplace_back(lct);
286  }
287  } // lct loop over
288  }
289 }

References CSCDetId::chamber(), gather_cfg::cout, CSCDetId::endcap(), triggerObjects_cff::id, or, AlCaHLTBitMon_ParallelJobs::p, CSCDetId::ring(), relativeConstraints::ring, CSCDetId::station(), and CSCDetId::zendcap().

◆ matchMPLCTsToSimTrack()

void CSCStubMatcher::matchMPLCTsToSimTrack ( const CSCCorrelatedLCTDigiCollection mplcts)
private

Definition at line 291 of file CSCStubMatcher.cc.

291  {
292  // match simtrack to MPC LCT by looking only in chambers
293  // that already have LCTs matched to this simtrack
294  const auto& lcts_ids = chamberIdsLCT(0);
295 
296  // loop on the detids
297  for (const auto& id : lcts_ids) {
298  const auto& mplcts_in_det = mplcts.get(id);
299 
300  // loop on the MPC LCTs in this detid
301  for (auto lct = mplcts_in_det.first; lct != mplcts_in_det.second; ++lct) {
302  if (!lct->isValid())
303  continue;
304 
305  // std::cout << "MPC Stub ALL " << *lct << std::endl;
306  chamber_to_mplcts_all_[id].emplace_back(*lct);
307 
308  // check if this stub corresponds with a previously matched stub
309  for (const auto& sim_stub : lctsInChamber(id)) {
310  if (sim_stub == *lct) {
311  chamber_to_mplcts_[id].emplace_back(*lct);
312  }
313  }
314  }
315  }
316 }

References triggerObjects_cff::id.

◆ mplcts()

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::mplcts ( ) const
inline

Definition at line 62 of file CSCStubMatcher.h.

62 { return chamber_to_mplcts_; }

References chamber_to_mplcts_.

◆ mplctsInChamber()

const CSCCorrelatedLCTDigiContainer & CSCStubMatcher::mplctsInChamber ( unsigned int  detid) const

Definition at line 392 of file CSCStubMatcher.cc.

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

◆ nChambersWithALCT()

int CSCStubMatcher::nChambersWithALCT ( int  min_quality = 0) const

Definition at line 475 of file CSCStubMatcher.cc.

475  {
476  int result = 0;
477  const auto& chamber_ids = chamberIdsALCT();
478  for (const auto& id : chamber_ids) {
479  int nStubChamber = 0;
480  const auto& alcts = alctsInChamber(id);
481  for (const auto& alct : alcts) {
482  if (!alct.isValid())
483  continue;
484  if (alct.getQuality() >= min_quality) {
485  nStubChamber++;
486  }
487  }
488  if (nStubChamber > 0) {
489  ++result;
490  }
491  }
492  return result;
493 }

References mps_fire::result.

◆ nChambersWithCLCT()

int CSCStubMatcher::nChambersWithCLCT ( int  min_quality = 0) const

How many CSC chambers with matching stubs of some minimal quality did this SimTrack hit?

Definition at line 455 of file CSCStubMatcher.cc.

455  {
456  int result = 0;
457  const auto& chamber_ids = chamberIdsCLCT();
458  for (const auto& id : chamber_ids) {
459  int nStubChamber = 0;
460  const auto& clcts = clctsInChamber(id);
461  for (const auto& clct : clcts) {
462  if (!clct.isValid())
463  continue;
464  if (clct.getQuality() >= min_quality) {
465  nStubChamber++;
466  }
467  }
468  if (nStubChamber > 0) {
469  ++result;
470  }
471  }
472  return result;
473 }

References mps_fire::result.

◆ nChambersWithLCT()

int CSCStubMatcher::nChambersWithLCT ( int  min_quality = 0) const

Definition at line 495 of file CSCStubMatcher.cc.

495  {
496  int result = 0;
497  const auto& chamber_ids = chamberIdsLCT();
498  for (const auto& id : chamber_ids) {
499  int nStubChamber = 0;
500  const auto& lcts = lctsInChamber(id);
501  for (const auto& lct : lcts) {
502  if (!lct.isValid())
503  continue;
504  if (lct.getQuality() >= min_quality) {
505  nStubChamber++;
506  }
507  }
508  if (nStubChamber > 0) {
509  ++result;
510  }
511  }
512  return result;
513 }

References mps_fire::result.

◆ nChambersWithMPLCT()

int CSCStubMatcher::nChambersWithMPLCT ( int  min_quality = 0) const

Definition at line 515 of file CSCStubMatcher.cc.

515  {
516  int result = 0;
517  const auto& chamber_ids = chamberIdsMPLCT();
518  for (const auto& id : chamber_ids) {
519  int nStubChamber = 0;
520  const auto& mplcts = mplctsInChamber(id);
521  for (const auto& mplct : mplcts) {
522  if (!mplct.isValid())
523  continue;
524  if (mplct.getQuality() >= min_quality) {
525  nStubChamber++;
526  }
527  }
528  if (nStubChamber > 0) {
529  ++result;
530  }
531  }
532  return result;
533 }

References mps_fire::result.

◆ selectDetIds()

template<class D >
std::set< unsigned int > CSCStubMatcher::selectDetIds ( D &  digis,
int  csc_type 
) const
private

Definition at line 149 of file CSCStubMatcher.h.

149  {
150  std::set<unsigned int> result;
151  for (auto& p : digis) {
152  auto id = p.first;
153  if (csc_type > 0) {
154  CSCDetId detId(id);
155  if (MuonHitHelper::toCSCType(detId.station(), detId.ring()) != csc_type)
156  continue;
157  }
158  result.insert(p.first);
159  }
160  return result;
161 }

References AlCaHLTBitMon_ParallelJobs::p, mps_fire::result, CSCDetId::ring(), CSCDetId::station(), and MuonHitHelper::toCSCType().

◆ zpositionOfLayer()

float CSCStubMatcher::zpositionOfLayer ( unsigned int  detid,
int  layer 
) const

Definition at line 449 of file CSCStubMatcher.cc.

449  {
450  const auto& id = CSCDetId(detid);
451  const auto& chamber(cscGeometry_->chamber(id));
452  return fabs(chamber->layer(layer)->centerOfStrip(20).z());
453 }

References relativeConstraints::chamber.

Member Data Documentation

◆ alctsH_

edm::Handle<CSCALCTDigiCollection> CSCStubMatcher::alctsH_
private

Definition at line 99 of file CSCStubMatcher.h.

◆ alctToken_

edm::EDGetTokenT<CSCALCTDigiCollection> CSCStubMatcher::alctToken_
private

Definition at line 94 of file CSCStubMatcher.h.

◆ chamber_to_alcts_

std::map<unsigned int, CSCALCTDigiContainer> CSCStubMatcher::chamber_to_alcts_
private

Definition at line 117 of file CSCStubMatcher.h.

Referenced by alcts().

◆ chamber_to_alcts_all_

std::map<unsigned int, CSCALCTDigiContainer> CSCStubMatcher::chamber_to_alcts_all_
private

Definition at line 111 of file CSCStubMatcher.h.

◆ chamber_to_clcts_

std::map<unsigned int, CSCCLCTDigiContainer> CSCStubMatcher::chamber_to_clcts_
private

Definition at line 116 of file CSCStubMatcher.h.

Referenced by clcts().

◆ chamber_to_clcts_all_

std::map<unsigned int, CSCCLCTDigiContainer> CSCStubMatcher::chamber_to_clcts_all_
private

Definition at line 110 of file CSCStubMatcher.h.

◆ chamber_to_lcts_

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::chamber_to_lcts_
private

Definition at line 118 of file CSCStubMatcher.h.

Referenced by lcts().

◆ chamber_to_lcts_all_

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::chamber_to_lcts_all_
private

Definition at line 112 of file CSCStubMatcher.h.

◆ chamber_to_mplcts_

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::chamber_to_mplcts_
private

Definition at line 119 of file CSCStubMatcher.h.

Referenced by mplcts().

◆ chamber_to_mplcts_all_

std::map<unsigned int, CSCCorrelatedLCTDigiContainer> CSCStubMatcher::chamber_to_mplcts_all_
private

Definition at line 113 of file CSCStubMatcher.h.

◆ clctsH_

edm::Handle<CSCCLCTDigiCollection> CSCStubMatcher::clctsH_
private

Definition at line 98 of file CSCStubMatcher.h.

◆ clctToken_

edm::EDGetTokenT<CSCCLCTDigiCollection> CSCStubMatcher::clctToken_
private

Definition at line 93 of file CSCStubMatcher.h.

◆ csc_geom_

edm::ESHandle<CSCGeometry> CSCStubMatcher::csc_geom_
private

Definition at line 106 of file CSCStubMatcher.h.

◆ cscDigiMatcher_

std::shared_ptr<CSCDigiMatcher> CSCStubMatcher::cscDigiMatcher_
private

Definition at line 103 of file CSCStubMatcher.h.

Referenced by cscDigiMatcher().

◆ cscGeometry_

const CSCGeometry* CSCStubMatcher::cscGeometry_
private

Definition at line 107 of file CSCStubMatcher.h.

◆ gemDigiMatcher_

std::shared_ptr<GEMDigiMatcher> CSCStubMatcher::gemDigiMatcher_
private

Definition at line 104 of file CSCStubMatcher.h.

Referenced by gemDigiMatcher().

◆ hsFromSimHitMean_

bool CSCStubMatcher::hsFromSimHitMean_
private

Definition at line 124 of file CSCStubMatcher.h.

◆ lctsH_

edm::Handle<CSCCorrelatedLCTDigiCollection> CSCStubMatcher::lctsH_
private

Definition at line 100 of file CSCStubMatcher.h.

◆ lctToken_

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> CSCStubMatcher::lctToken_
private

Definition at line 95 of file CSCStubMatcher.h.

◆ maxBXALCT_

int CSCStubMatcher::maxBXALCT_
private

Definition at line 138 of file CSCStubMatcher.h.

◆ maxBXCLCT_

int CSCStubMatcher::maxBXCLCT_
private

Definition at line 137 of file CSCStubMatcher.h.

◆ maxBXLCT_

int CSCStubMatcher::maxBXLCT_
private

Definition at line 139 of file CSCStubMatcher.h.

◆ maxBXMPLCT_

int CSCStubMatcher::maxBXMPLCT_
private

Definition at line 140 of file CSCStubMatcher.h.

◆ minBXALCT_

int CSCStubMatcher::minBXALCT_
private

Definition at line 138 of file CSCStubMatcher.h.

◆ minBXCLCT_

int CSCStubMatcher::minBXCLCT_
private

Definition at line 137 of file CSCStubMatcher.h.

◆ minBXLCT_

int CSCStubMatcher::minBXLCT_
private

Definition at line 139 of file CSCStubMatcher.h.

◆ minBXMPLCT_

int CSCStubMatcher::minBXMPLCT_
private

Definition at line 140 of file CSCStubMatcher.h.

◆ minNHitsChamber_

int CSCStubMatcher::minNHitsChamber_
private

Definition at line 126 of file CSCStubMatcher.h.

◆ minNHitsChamberALCT_

int CSCStubMatcher::minNHitsChamberALCT_
private

Definition at line 127 of file CSCStubMatcher.h.

◆ minNHitsChamberCLCT_

int CSCStubMatcher::minNHitsChamberCLCT_
private

Definition at line 128 of file CSCStubMatcher.h.

◆ minNHitsChamberLCT_

int CSCStubMatcher::minNHitsChamberLCT_
private

Definition at line 129 of file CSCStubMatcher.h.

◆ minNHitsChamberMPLCT_

int CSCStubMatcher::minNHitsChamberMPLCT_
private

Definition at line 130 of file CSCStubMatcher.h.

◆ mplctsH_

edm::Handle<CSCCorrelatedLCTDigiCollection> CSCStubMatcher::mplctsH_
private

Definition at line 101 of file CSCStubMatcher.h.

◆ mplctToken_

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> CSCStubMatcher::mplctToken_
private

Definition at line 96 of file CSCStubMatcher.h.

◆ no_alcts_

CSCALCTDigiContainer CSCStubMatcher::no_alcts_
private

Definition at line 143 of file CSCStubMatcher.h.

◆ no_clcts_

CSCCLCTDigiContainer CSCStubMatcher::no_clcts_
private

Definition at line 142 of file CSCStubMatcher.h.

◆ no_lcts_

CSCCorrelatedLCTDigiContainer CSCStubMatcher::no_lcts_
private

Definition at line 144 of file CSCStubMatcher.h.

◆ no_mplcts_

CSCCorrelatedLCTDigiContainer CSCStubMatcher::no_mplcts_
private

Definition at line 145 of file CSCStubMatcher.h.

◆ verboseALCT_

bool CSCStubMatcher::verboseALCT_
private

Definition at line 132 of file CSCStubMatcher.h.

◆ verboseCLCT_

bool CSCStubMatcher::verboseCLCT_
private

Definition at line 133 of file CSCStubMatcher.h.

◆ verboseLCT_

bool CSCStubMatcher::verboseLCT_
private

Definition at line 134 of file CSCStubMatcher.h.

◆ verboseMPLCT_

bool CSCStubMatcher::verboseMPLCT_
private

Definition at line 135 of file CSCStubMatcher.h.

mps_fire.i
i
Definition: mps_fire.py:355
CSCStubMatcher::alctsInChamber
const CSCALCTDigiContainer & alctsInChamber(unsigned int) const
Definition: CSCStubMatcher.cc:380
input
static const std::string input
Definition: EdmProvDump.cc:48
CSCStubMatcher::csc_geom_
edm::ESHandle< CSCGeometry > csc_geom_
Definition: CSCStubMatcher.h:106
edm::Handle::product
T const * product() const
Definition: Handle.h:70
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
CSCStubMatcher::minNHitsChamberALCT_
int minNHitsChamberALCT_
Definition: CSCStubMatcher.h:127
CSCStubMatcher::maxBXALCT_
int maxBXALCT_
Definition: CSCStubMatcher.h:138
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CSCGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: CSCGeometry.cc:91
gather_cfg.cout
cout
Definition: gather_cfg.py:144
CSCStubMatcher::verboseALCT_
bool verboseALCT_
Definition: CSCStubMatcher.h:132
CSCStubMatcher::cscGeometry_
const CSCGeometry * cscGeometry_
Definition: CSCStubMatcher.h:107
CSCCorrelatedLCTDigi::getKeyWG
uint16_t getKeyWG() const
return the key wire group. counts from 0.
Definition: CSCCorrelatedLCTDigi.h:56
CSCStubMatcher::lctsInChamber
const CSCCorrelatedLCTDigiContainer & lctsInChamber(unsigned int) const
Definition: CSCStubMatcher.cc:386
GEMDigiMatcher
Definition: GEMDigiMatcher.h:28
CSCStubMatcher::cscDigiMatcher_
std::shared_ptr< CSCDigiMatcher > cscDigiMatcher_
Definition: CSCStubMatcher.h:103
CSCCorrelatedLCTDigiContainer
std::vector< CSCCorrelatedLCTDigi > CSCCorrelatedLCTDigiContainer
Definition: CSCStubMatcher.h:20
CSCCorrelatedLCTDigi::getFractionalStrip
float getFractionalStrip(uint16_t n=2) const
return the fractional strip. counts from 0.25
Definition: CSCCorrelatedLCTDigi.cc:102
CSCStubMatcher::clctToken_
edm::EDGetTokenT< CSCCLCTDigiCollection > clctToken_
Definition: CSCStubMatcher.h:93
findQualityFiles.v
v
Definition: findQualityFiles.py:179
CSCCLCTDigi
Definition: CSCCLCTDigi.h:17
CSCStubMatcher::mplctsH_
edm::Handle< CSCCorrelatedLCTDigiCollection > mplctsH_
Definition: CSCStubMatcher.h:101
CSCStubMatcher::no_alcts_
CSCALCTDigiContainer no_alcts_
Definition: CSCStubMatcher.h:143
CSCStubMatcher::alcts
std::map< unsigned int, CSCALCTDigiContainer > alcts() const
Definition: CSCStubMatcher.h:60
CSCStubMatcher::chamber_to_lcts_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_lcts_
Definition: CSCStubMatcher.h:118
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
CSCStubMatcher::chamber_to_lcts_all_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_lcts_all_
Definition: CSCStubMatcher.h:112
CSCStubMatcher::clctsH_
edm::Handle< CSCCLCTDigiCollection > clctsH_
Definition: CSCStubMatcher.h:98
CSCStubMatcher::selectDetIds
std::set< unsigned int > selectDetIds(D &, int) const
Definition: CSCStubMatcher.h:149
CSCStubMatcher::minNHitsChamberLCT_
int minNHitsChamberLCT_
Definition: CSCStubMatcher.h:129
CSCStubMatcher::chamber_to_mplcts_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_mplcts_
Definition: CSCStubMatcher.h:119
CSCStubMatcher::clcts
std::map< unsigned int, CSCCLCTDigiContainer > clcts() const
all matching lcts
Definition: CSCStubMatcher.h:59
CSCStubMatcher::verboseLCT_
bool verboseLCT_
Definition: CSCStubMatcher.h:134
CSCStubMatcher::lctsH_
edm::Handle< CSCCorrelatedLCTDigiCollection > lctsH_
Definition: CSCStubMatcher.h:100
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
CSCStubMatcher::verboseCLCT_
bool verboseCLCT_
Definition: CSCStubMatcher.h:133
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
CSCStubMatcher::clctsInChamber
const CSCCLCTDigiContainer & clctsInChamber(unsigned int) const
all matching from a particular crossed chamber
Definition: CSCStubMatcher.cc:374
CSCStubMatcher::minBXCLCT_
int minBXCLCT_
Definition: CSCStubMatcher.h:137
CSCStubMatcher::alctsH_
edm::Handle< CSCALCTDigiCollection > alctsH_
Definition: CSCStubMatcher.h:99
Point3DBase< float, LocalTag >
OrderedSet.t
t
Definition: OrderedSet.py:90
CSCStubMatcher::minNHitsChamberMPLCT_
int minNHitsChamberMPLCT_
Definition: CSCStubMatcher.h:130
CSCDigiMatcher
Definition: CSCDigiMatcher.h:25
CSCStubMatcher::chamber_to_clcts_
std::map< unsigned int, CSCCLCTDigiContainer > chamber_to_clcts_
Definition: CSCStubMatcher.h:116
CSCStubMatcher::chamber_to_mplcts_all_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_mplcts_all_
Definition: CSCStubMatcher.h:113
muonCSCStubPSet.cscMPLCT
cscMPLCT
Definition: muonCSCStubPSet.py:30
CSCStubMatcher::minNHitsChamberCLCT_
int minNHitsChamberCLCT_
Definition: CSCStubMatcher.h:128
CSCStubMatcher::matchMPLCTsToSimTrack
void matchMPLCTsToSimTrack(const CSCCorrelatedLCTDigiCollection &)
Definition: CSCStubMatcher.cc:291
CSCStubMatcher::mplctsInChamber
const CSCCorrelatedLCTDigiContainer & mplctsInChamber(unsigned int) const
Definition: CSCStubMatcher.cc:392
CSCStubMatcher::matchCLCTsToSimTrack
void matchCLCTsToSimTrack(const CSCCLCTDigiCollection &)
Definition: CSCStubMatcher.cc:77
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
CSCStubMatcher::matchALCTsToSimTrack
void matchALCTsToSimTrack(const CSCALCTDigiCollection &)
Definition: CSCStubMatcher.cc:141
GEMDetId
Definition: GEMDetId.h:17
CSCStubMatcher::minBXALCT_
int minBXALCT_
Definition: CSCStubMatcher.h:138
CSCDetId
Definition: CSCDetId.h:26
CSCStubMatcher::chamberIdsMPLCT
std::set< unsigned int > chamberIdsMPLCT(int csc_type=MuonHitHelper::CSC_ALL) const
Definition: CSCStubMatcher.cc:346
CSCStubMatcher::no_clcts_
CSCCLCTDigiContainer no_clcts_
Definition: CSCStubMatcher.h:142
iEvent
int iEvent
Definition: GenABIO.cc:224
CSCStubMatcher::hsFromSimHitMean_
bool hsFromSimHitMean_
Definition: CSCStubMatcher.h:124
CSCStubMatcher::alctToken_
edm::EDGetTokenT< CSCALCTDigiCollection > alctToken_
Definition: CSCStubMatcher.h:94
CSCStubMatcher::chamberIdsAllALCT
std::set< unsigned int > chamberIdsAllALCT(int csc_type=MuonHitHelper::CSC_ALL) const
Definition: CSCStubMatcher.cc:322
CSCStubMatcher::mplctToken_
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > mplctToken_
Definition: CSCStubMatcher.h:96
CSCALCTDigiCollection
CSCCorrelatedLCTDigiCollection
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
muonCSCStubPSet.cscCLCT
cscCLCT
Definition: muonCSCStubPSet.py:5
get
#define get
CSCStubMatcher::mplcts
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > mplcts() const
Definition: CSCStubMatcher.h:62
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
muonCSCStubPSet.cscALCT
cscALCT
Definition: muonCSCStubPSet.py:13
CSCStubMatcher::chamber_to_alcts_
std::map< unsigned int, CSCALCTDigiContainer > chamber_to_alcts_
Definition: CSCStubMatcher.h:117
CSCStubMatcher::chamberIdsAllCLCT
std::set< unsigned int > chamberIdsAllCLCT(int csc_type=MuonHitHelper::CSC_ALL) const
crossed chamber detIds with not necessarily matching stubs
Definition: CSCStubMatcher.cc:318
muonCSCStubPSet.cscLCT
cscLCT
Definition: muonCSCStubPSet.py:21
eostools.move
def move(src, dest)
Definition: eostools.py:511
CSCStubMatcher::no_mplcts_
CSCCorrelatedLCTDigiContainer no_mplcts_
Definition: CSCStubMatcher.h:145
CSCStubMatcher::minBXMPLCT_
int minBXMPLCT_
Definition: CSCStubMatcher.h:140
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
CSCCLCTDigiCollection
CSCALCTDigi
Definition: CSCALCTDigi.h:16
CSCStubMatcher::verboseMPLCT_
bool verboseMPLCT_
Definition: CSCStubMatcher.h:135
CSCConstants::KEY_CLCT_LAYER
Definition: CSCConstants.h:46
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
CSCStubMatcher::no_lcts_
CSCCorrelatedLCTDigiContainer no_lcts_
Definition: CSCStubMatcher.h:144
CSCStubMatcher::chamber_to_clcts_all_
std::map< unsigned int, CSCCLCTDigiContainer > chamber_to_clcts_all_
Definition: CSCStubMatcher.h:110
CSCStubMatcher::gemDigiMatcher_
std::shared_ptr< GEMDigiMatcher > gemDigiMatcher_
Definition: CSCStubMatcher.h:104
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
CSCStubMatcher::lcts
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > lcts() const
Definition: CSCStubMatcher.h:61
CSCStubMatcher::chamberIdsCLCT
std::set< unsigned int > chamberIdsCLCT(int csc_type=MuonHitHelper::CSC_ALL) const
chamber detIds with matching stubs
Definition: CSCStubMatcher.cc:334
mps_fire.result
result
Definition: mps_fire.py:303
MuonHitHelper::toCSCType
static int toCSCType(int st, int ri)
Definition: MuonHitHelper.cc:195
CSCStubMatcher::chamberIdsLCT
std::set< unsigned int > chamberIdsLCT(int csc_type=MuonHitHelper::CSC_ALL) const
Definition: CSCStubMatcher.cc:342
CSCStubMatcher::chamberIdsALCT
std::set< unsigned int > chamberIdsALCT(int csc_type=MuonHitHelper::CSC_ALL) const
Definition: CSCStubMatcher.cc:338
CSCStubMatcher::lctToken_
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > lctToken_
Definition: CSCStubMatcher.h:95
CSCStubMatcher::chamber_to_alcts_all_
std::map< unsigned int, CSCALCTDigiContainer > chamber_to_alcts_all_
Definition: CSCStubMatcher.h:111
CSCStubMatcher::maxBXLCT_
int maxBXLCT_
Definition: CSCStubMatcher.h:139
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
edm::InputTag
Definition: InputTag.h:15
CSCGeometry::chamber
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
Definition: CSCGeometry.cc:100
CSCStubMatcher::minBXLCT_
int minBXLCT_
Definition: CSCStubMatcher.h:139
CSCStubMatcher::maxBXCLCT_
int maxBXCLCT_
Definition: CSCStubMatcher.h:137
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
CSCStubMatcher::matchLCTsToSimTrack
void matchLCTsToSimTrack(const CSCCorrelatedLCTDigiCollection &)
Definition: CSCStubMatcher.cc:199
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
CSCStubMatcher::maxBXMPLCT_
int maxBXMPLCT_
Definition: CSCStubMatcher.h:140