|
|
#include <CSCStubMatcher.h>
|
std::map< unsigned int, CSCALCTDigiContainer > | alcts () const |
|
const CSCALCTDigiContainer & | alctsInChamber (unsigned int) const |
|
const CSCALCTDigiContainer & | allALCTsInChamber (unsigned int) const |
|
const CSCCLCTDigiContainer & | allCLCTsInChamber (unsigned int) const |
| all stubs (not necessarily matching) from a particular crossed chamber More...
|
|
const CSCCorrelatedLCTDigiContainer & | allLCTsInChamber (unsigned int) const |
|
const CSCCorrelatedLCTDigiContainer & | allMPLCTsInChamber (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, CSCCLCTDigiContainer > | clcts () const |
| all matching lcts More...
|
|
const CSCCLCTDigiContainer & | clctsInChamber (unsigned int) const |
| all matching from a particular crossed chamber More...
|
|
std::shared_ptr< CSCDigiMatcher > | cscDigiMatcher () |
|
| CSCStubMatcher (edm::ParameterSet const &iPS, edm::ConsumesCollector &&iC) |
|
std::shared_ptr< GEMDigiMatcher > | gemDigiMatcher () |
|
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, CSCCorrelatedLCTDigiContainer > | lcts () const |
|
const CSCCorrelatedLCTDigiContainer & | lctsInChamber (unsigned int) const |
|
void | match (const SimTrack &t, const SimVertex &v) |
| do the matching More...
|
|
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > | mplcts () const |
|
const CSCCorrelatedLCTDigiContainer & | mplctsInChamber (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 () |
|
Description: Matching of CSC L1 trigger stubs to SimTrack
Author: Sven Dildick (TAMU), Tao Huang (TAMU)
Definition at line 22 of file CSCStubMatcher.h.
◆ CSCStubMatcher()
◆ ~CSCStubMatcher()
CSCStubMatcher::~CSCStubMatcher |
( |
| ) |
|
|
inline |
◆ alcts()
◆ alctsInChamber()
◆ allALCTsInChamber()
◆ allCLCTsInChamber()
all stubs (not necessarily matching) from a particular crossed chamber
Definition at line 437 of file CSCStubMatcher.cc.
◆ allLCTsInChamber()
◆ allMPLCTsInChamber()
◆ bestAlctInChamber()
CSCALCTDigi CSCStubMatcher::bestAlctInChamber |
( |
unsigned int |
detid | ) |
const |
◆ bestClctInChamber()
CSCCLCTDigi CSCStubMatcher::bestClctInChamber |
( |
unsigned int |
detid | ) |
const |
◆ bestLctInChamber()
◆ bestMplctInChamber()
◆ chamberIdsALCT()
◆ chamberIdsAllALCT()
◆ chamberIdsAllCLCT()
crossed chamber detIds with not necessarily matching stubs
Definition at line 405 of file CSCStubMatcher.cc.
◆ chamberIdsAllLCT()
◆ chamberIdsAllMPLCT()
◆ chamberIdsCLCT()
◆ chamberIdsLCT()
◆ chamberIdsMPLCT()
◆ clcts()
◆ clctsInChamber()
◆ clear()
void CSCStubMatcher::clear |
( |
void |
| ) |
|
|
private |
◆ cscDigiMatcher()
◆ gemDigiMatcher()
◆ getGlobalPosition()
◆ init()
◆ lctInChamber()
◆ lcts()
◆ lctsInChamber()
◆ match()
◆ matchALCTsToSimTrack()
Definition at line 176 of file CSCStubMatcher.cc.
179 for (
const auto&
id : anode_ids) {
187 cout <<
"alct: digi_wgs " << ch_id <<
" ";
188 copy(digi_wgs.begin(), digi_wgs.end(), ostream_iterator<int>(
cout,
" "));
192 int ring = ch_id.ring();
195 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
197 const auto& alcts_in_det =
alcts.get(ch_id2);
198 for (
auto a = alcts_in_det.first;
a != alcts_in_det.second; ++
a) {
203 edm::LogInfo(
"CSCStubMatcher") <<
"alct " << ch_id <<
" " << *
a;
209 int wg =
a->getKeyWG() + 1;
215 if (digi_wgs.find(wg) == digi_wgs.end()) {
References a, CSCDetId::chamber(), filterCSVwithJSON::copy, gather_cfg::cout, mps_fire::end, CSCDetId::endcap(), spr::find(), triggerObjects_cff::id, relativeConstraints::ring, CSCDetId::ring(), findQualityFiles::size, and CSCDetId::station().
◆ matchCLCTsToSimTrack()
Definition at line 76 of file CSCStubMatcher.cc.
79 for (
const auto&
id : cathode_ids) {
82 edm::LogInfo(
"CSCStubMatcher") <<
"To check CSC chamber " << ch_id;
85 int ring = ch_id.ring();
92 std::vector<CSCComparatorDigiContainer> comps;
93 for (
int ilayer = 1; ilayer <= 6; ilayer++) {
94 CSCDetId layerid(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), ilayer);
100 edm::LogInfo(
"CSCStubMatcher") <<
"clct: comparators " << ch_id;
102 for (
const auto&
p : comps) {
104 for (
const auto&
q :
p) {
105 edm::LogInfo(
"CSCStubMatcher") <<
"L" << layer <<
" " <<
q <<
" " <<
q.getHalfStrip() <<
" ";
111 const bool isME1a(ch_id.station() == 1 and ch_id.ring() == 4);
114 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
116 const auto& clcts_in_det =
clcts.get(ch_id2);
118 for (
auto c = clcts_in_det.first;
c != clcts_in_det.second; ++
c) {
120 edm::LogInfo(
"CSCStubMatcher") <<
"clct " << ch_id2 <<
" " << *
c;
135 for (
const auto&
p : comps) {
137 for (
const auto&
q :
p) {
139 edm::LogInfo(
"CSCStubMatcher") <<
"L" << layer <<
" " <<
q <<
" " <<
q.getHalfStrip() <<
" " << std::endl;
140 for (
const auto& clctComp : (*c).getHits()[layer - 1]) {
141 if (clctComp == 65535)
144 edm::LogInfo(
"CSCStubMatcher") <<
"\t" << clctComp <<
" ";
146 if (
q.getHalfStrip() == clctComp
or (isME1a and
q.getHalfStrip() + 128 == clctComp)) {
149 edm::LogInfo(
"CSCStubMatcher") <<
"\t\tnMatches " << nMatches << std::endl;
References HltBtagPostValidation_cff::c, CSCDetId::chamber(), mps_fire::end, CSCDetId::endcap(), spr::find(), triggerObjects_cff::id, or, AlCaHLTBitMon_ParallelJobs::p, submitPVResolutionJobs::q, CSCDetId::ring(), relativeConstraints::ring, findQualityFiles::size, and CSCDetId::station().
◆ matchLCTsToSimTrack()
Definition at line 234 of file CSCStubMatcher.cc.
239 std::set<int> cathode_and_anode_ids;
240 std::set_union(cathode_ids.begin(),
244 std::inserter(cathode_and_anode_ids, cathode_and_anode_ids.end()));
246 for (
const auto&
id : cathode_and_anode_ids) {
252 int ring = ch_id.ring();
255 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
257 const auto& lcts_in_det =
lcts.get(ch_id2);
259 std::map<int, CSCCorrelatedLCTDigiContainer> bx_to_lcts;
263 for (
auto lct = lcts_in_det.first; lct != lcts_in_det.second; ++lct) {
266 lcts_tmp.push_back(*lct);
267 int bx = lct->getBX();
268 bx_to_lcts[
bx].push_back(*lct);
274 if (!(ch_id.ring() == 1 and (ch_id.station() == 1
or ch_id.station() == 2))) {
275 auto lct11 = bx_to_lcts[
bx][0];
276 auto lct22 = bx_to_lcts[
bx][1];
277 int wg1 = lct11.getKeyWG();
278 int wg2 = lct22.getKeyWG();
279 int hs1 = lct11.getStrip();
280 int hs2 = lct22.getStrip();
286 lct12.
setALCT(lct22.getALCT());
287 lcts_tmp.push_back(lct12);
291 lct21.
setALCT(lct11.getALCT());
292 lcts_tmp.push_back(lct21);
298 for (
const auto& lct : lcts_tmp) {
301 bool lct_clct_match(
false);
302 bool lct_alct_match(
false);
303 bool lct_gem1_match(
false);
304 bool lct_gem2_match(
false);
307 edm::LogInfo(
"CSCStubMatcher") << ch_id <<
" " << ch_id2;
309 edm::LogInfo(
"CSCStubMatcher") <<
"getCLCT " << lct.getCLCT() <<
"\ngetALCT " << lct.getALCT() <<
"\ngetGEM1 "
310 << lct.getGEM1() <<
"\ngetGEM2 " << lct.getGEM2();
314 if (
p == lct.getCLCT()) {
315 lct_clct_match =
true;
317 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_clct_match";
324 if (
p == lct.getALCT()) {
325 lct_alct_match =
true;
327 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_alct_match";
333 if (ch_id.ring() == 1 and (ch_id.station() == 1
or ch_id.station() == 2)) {
335 const GEMDetId gemDetIdL1(ch_id.zendcap(), 1, ch_id.station(), 1, ch_id.chamber(), 0);
337 if (
p == lct.getGEM1()) {
338 lct_gem1_match =
true;
340 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem1_match";
346 const GEMDetId gemDetIdL2(ch_id.zendcap(), 1, ch_id.station(), 2, ch_id.chamber(), 0);
348 if (
p == lct.getGEM2()) {
349 lct_gem2_match =
true;
351 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem2_match";
357 const bool alct_clct = lct_clct_match and lct_alct_match;
358 const bool alct_gem = lct_alct_match and lct_gem1_match and lct_gem2_match;
359 const bool clct_gem = lct_clct_match and lct_gem1_match and lct_gem2_match;
361 bool lct_tight_matched = alct_clct
or alct_gem
or clct_gem;
362 bool lct_loose_matched = lct_clct_match
or lct_alct_match;
363 bool lct_matched = lct_loose_matched
or lct_tight_matched;
References CSCCorrelatedLCTDigi::ALCTCLCT, l1GtPatternGenerator_cfi::bx, CSCDetId::chamber(), mps_fire::end, CSCDetId::endcap(), spr::find(), triggerObjects_cff::id, or, AlCaHLTBitMon_ParallelJobs::p, CSCDetId::ring(), relativeConstraints::ring, CSCCorrelatedLCTDigi::setALCT(), CSCCorrelatedLCTDigi::setWireGroup(), findQualityFiles::size, CSCDetId::station(), and CSCDetId::zendcap().
◆ matchMPLCTsToSimTrack()
◆ mplcts()
◆ mplctsInChamber()
◆ nChambersWithALCT()
int CSCStubMatcher::nChambersWithALCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 562 of file CSCStubMatcher.cc.
565 for (
const auto&
id : chamber_ids) {
566 int nStubChamber = 0;
568 for (
const auto& alct :
alcts) {
571 if (alct.getQuality() >= min_quality) {
575 if (nStubChamber > 0) {
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 542 of file CSCStubMatcher.cc.
545 for (
const auto&
id : chamber_ids) {
546 int nStubChamber = 0;
548 for (
const auto& clct :
clcts) {
551 if (clct.getQuality() >= min_quality) {
555 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithLCT()
int CSCStubMatcher::nChambersWithLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 582 of file CSCStubMatcher.cc.
585 for (
const auto&
id : chamber_ids) {
586 int nStubChamber = 0;
588 for (
const auto& lct :
lcts) {
591 if (lct.getQuality() >= min_quality) {
595 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithMPLCT()
int CSCStubMatcher::nChambersWithMPLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 602 of file CSCStubMatcher.cc.
605 for (
const auto&
id : chamber_ids) {
606 int nStubChamber = 0;
608 for (
const auto& mplct :
mplcts) {
609 if (!mplct.isValid())
611 if (mplct.getQuality() >= min_quality) {
615 if (nStubChamber > 0) {
References mps_fire::result.
◆ selectDetIds()
template<class D >
std::set< unsigned int > CSCStubMatcher::selectDetIds |
( |
D & |
digis, |
|
|
int |
csc_type |
|
) |
| const |
|
private |
◆ zpositionOfLayer()
float CSCStubMatcher::zpositionOfLayer |
( |
unsigned int |
detid, |
|
|
int |
layer |
|
) |
| const |
◆ addGhostLCTs_
bool CSCStubMatcher::addGhostLCTs_ |
|
private |
◆ alctsH_
◆ alctToken_
◆ chamber_to_alcts_
◆ chamber_to_alcts_all_
◆ chamber_to_clcts_
◆ chamber_to_clcts_all_
◆ chamber_to_lcts_
◆ chamber_to_lcts_all_
◆ chamber_to_mplcts_
◆ chamber_to_mplcts_all_
◆ clctsH_
◆ clctToken_
◆ cscDigiMatcher_
◆ cscGeometry_
◆ gemDigiMatcher_
◆ geomToken_
◆ lctsH_
◆ lctToken_
◆ maxBXALCT_
int CSCStubMatcher::maxBXALCT_ |
|
private |
◆ maxBXCLCT_
int CSCStubMatcher::maxBXCLCT_ |
|
private |
◆ maxBXLCT_
int CSCStubMatcher::maxBXLCT_ |
|
private |
◆ maxBXMPLCT_
int CSCStubMatcher::maxBXMPLCT_ |
|
private |
◆ minBXALCT_
int CSCStubMatcher::minBXALCT_ |
|
private |
◆ minBXCLCT_
int CSCStubMatcher::minBXCLCT_ |
|
private |
◆ minBXLCT_
int CSCStubMatcher::minBXLCT_ |
|
private |
◆ minBXMPLCT_
int CSCStubMatcher::minBXMPLCT_ |
|
private |
◆ minNHitsChamber_
int CSCStubMatcher::minNHitsChamber_ |
|
private |
◆ minNHitsChamberALCT_
int CSCStubMatcher::minNHitsChamberALCT_ |
|
private |
◆ minNHitsChamberCLCT_
int CSCStubMatcher::minNHitsChamberCLCT_ |
|
private |
◆ minNHitsChamberLCT_
int CSCStubMatcher::minNHitsChamberLCT_ |
|
private |
◆ minNHitsChamberMPLCT_
int CSCStubMatcher::minNHitsChamberMPLCT_ |
|
private |
◆ mplctsH_
◆ mplctToken_
◆ no_alcts_
◆ no_clcts_
◆ no_lcts_
◆ no_mplcts_
◆ verboseALCT_
bool CSCStubMatcher::verboseALCT_ |
|
private |
◆ verboseCLCT_
bool CSCStubMatcher::verboseCLCT_ |
|
private |
◆ verboseLCT_
bool CSCStubMatcher::verboseLCT_ |
|
private |
◆ verboseMPLCT_
bool CSCStubMatcher::verboseMPLCT_ |
|
private |
const CSCALCTDigiContainer & alctsInChamber(unsigned int) const
static const std::string input
T const * product() const
const GeomDet * idToDet(DetId) const override
const CSCGeometry * cscGeometry_
const CSCCorrelatedLCTDigiContainer & lctsInChamber(unsigned int) const
std::shared_ptr< CSCDigiMatcher > cscDigiMatcher_
std::vector< CSCCorrelatedLCTDigi > CSCCorrelatedLCTDigiContainer
edm::EDGetTokenT< CSCCLCTDigiCollection > clctToken_
Log< level::Info, false > LogInfo
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::Handle< CSCCorrelatedLCTDigiCollection > mplctsH_
CSCALCTDigiContainer no_alcts_
std::map< unsigned int, CSCALCTDigiContainer > alcts() const
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_lcts_
const Plane & surface() const
The nominal surface of the GeomDet.
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_lcts_all_
edm::Handle< CSCCLCTDigiCollection > clctsH_
std::set< unsigned int > selectDetIds(D &, int) const
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_mplcts_
std::map< unsigned int, CSCCLCTDigiContainer > clcts() const
all matching lcts
edm::Handle< CSCCorrelatedLCTDigiCollection > lctsH_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const CSCCLCTDigiContainer & clctsInChamber(unsigned int) const
all matching from a particular crossed chamber
edm::Handle< CSCALCTDigiCollection > alctsH_
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > geomToken_
int minNHitsChamberMPLCT_
std::map< unsigned int, CSCCLCTDigiContainer > chamber_to_clcts_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > chamber_to_mplcts_all_
void matchMPLCTsToSimTrack(const CSCCorrelatedLCTDigiCollection &)
const CSCCorrelatedLCTDigiContainer & mplctsInChamber(unsigned int) const
void matchCLCTsToSimTrack(const CSCCLCTDigiCollection &)
void matchALCTsToSimTrack(const CSCALCTDigiCollection &)
std::set< unsigned int > chamberIdsMPLCT(int csc_type=MuonHitHelper::CSC_ALL) const
CSCCLCTDigiContainer no_clcts_
edm::EDGetTokenT< CSCALCTDigiCollection > alctToken_
std::set< unsigned int > chamberIdsAllALCT(int csc_type=MuonHitHelper::CSC_ALL) const
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > mplctToken_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > mplcts() const
std::map< unsigned int, CSCALCTDigiContainer > chamber_to_alcts_
std::set< unsigned int > chamberIdsAllCLCT(int csc_type=MuonHitHelper::CSC_ALL) const
crossed chamber detIds with not necessarily matching stubs
CSCCorrelatedLCTDigiContainer no_mplcts_
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
CSCCorrelatedLCTDigiContainer no_lcts_
std::map< unsigned int, CSCCLCTDigiContainer > chamber_to_clcts_all_
std::shared_ptr< GEMDigiMatcher > gemDigiMatcher_
std::map< unsigned int, CSCCorrelatedLCTDigiContainer > lcts() const
std::set< unsigned int > chamberIdsCLCT(int csc_type=MuonHitHelper::CSC_ALL) const
chamber detIds with matching stubs
static int toCSCType(int st, int ri)
std::set< unsigned int > chamberIdsLCT(int csc_type=MuonHitHelper::CSC_ALL) const
std::set< unsigned int > chamberIdsALCT(int csc_type=MuonHitHelper::CSC_ALL) const
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > lctToken_
std::map< unsigned int, CSCALCTDigiContainer > chamber_to_alcts_all_
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
void matchLCTsToSimTrack(const CSCCorrelatedLCTDigiCollection &)