|
|
#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 444 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 412 of file CSCStubMatcher.cc.
◆ chamberIdsAllLCT()
◆ chamberIdsAllMPLCT()
◆ chamberIdsCLCT()
◆ chamberIdsLCT()
◆ chamberIdsMPLCT()
◆ clcts()
◆ clctsInChamber()
◆ clear()
void CSCStubMatcher::clear |
( |
void |
| ) |
|
|
private |
◆ cscDigiMatcher()
◆ gemDigiMatcher()
◆ getGlobalPosition()
Definition at line 637 of file CSCStubMatcher.cc.
649 float wire = layer_geo->middleWireOfGroup(lct.
getKeyWG() + 1);
650 const LocalPoint& csc_intersect = layer_geo->intersectionOfStripAndWire(fractional_strip, wire);
References relativeConstraints::chamber, CSCDetId::chamber(), CSCDetId::endcap(), CSCCorrelatedLCTDigi::getFractionalStrip(), CSCCorrelatedLCTDigi::getKeyWG(), CSCCorrelatedLCTDigi::getStrip(), CSCConstants::KEY_CLCT_LAYER, CSCConstants::MAX_HALF_STRIP_ME1B, CSCConstants::MAX_NUM_STRIPS_ME1B, CSCDetId::ring(), and CSCDetId::station().
◆ init()
◆ lctInChamber()
◆ lcts()
◆ lctsInChamber()
◆ match()
◆ matchALCTsToSimTrack()
Definition at line 181 of file CSCStubMatcher.cc.
184 for (
const auto&
id : anode_ids) {
192 cout <<
"alct: digi_wgs " << ch_id <<
" ";
193 copy(digi_wgs.begin(), digi_wgs.end(), ostream_iterator<int>(
cout,
" "));
197 int ring = ch_id.ring();
200 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
202 const auto& alcts_in_det =
alcts.get(ch_id2);
203 for (
auto a = alcts_in_det.first;
a != alcts_in_det.second; ++
a) {
208 edm::LogInfo(
"CSCStubMatcher") <<
"alct " << ch_id <<
" " << *
a;
214 int wg =
a->getKeyWG() + 1;
220 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 81 of file CSCStubMatcher.cc.
84 for (
const auto&
id : cathode_ids) {
87 edm::LogInfo(
"CSCStubMatcher") <<
"To check CSC chamber " << ch_id;
90 int ring = ch_id.ring();
97 std::vector<CSCComparatorDigiContainer> comps;
98 for (
int ilayer = 1; ilayer <= 6; ilayer++) {
99 CSCDetId layerid(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), ilayer);
105 edm::LogInfo(
"CSCStubMatcher") <<
"clct: comparators " << ch_id;
107 for (
const auto&
p : comps) {
109 for (
const auto&
q :
p) {
110 edm::LogInfo(
"CSCStubMatcher") <<
"L" <<
layer <<
" " <<
q <<
" " <<
q.getHalfStrip() <<
" ";
116 const bool isME1a(ch_id.station() == 1 and ch_id.ring() == 4);
119 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
121 const auto& clcts_in_det =
clcts.get(ch_id2);
123 for (
auto c = clcts_in_det.first;
c != clcts_in_det.second; ++
c) {
125 edm::LogInfo(
"CSCStubMatcher") <<
"clct " << ch_id2 <<
" " << *
c;
140 for (
const auto&
p : comps) {
142 for (
const auto&
q :
p) {
144 edm::LogInfo(
"CSCStubMatcher") <<
"L" <<
layer <<
" " <<
q <<
" " <<
q.getHalfStrip() <<
" " << std::endl;
145 for (
const auto& clctComp : (*c).getHits()[
layer - 1]) {
146 if (clctComp == 65535)
149 edm::LogInfo(
"CSCStubMatcher") <<
"\t" << clctComp <<
" ";
151 if (
q.getHalfStrip() == clctComp
or (isME1a and
q.getHalfStrip() + 128 == clctComp)) {
154 edm::LogInfo(
"CSCStubMatcher") <<
"\t\tnMatches " << nMatches << std::endl;
References c, CSCDetId::chamber(), mps_fire::end, CSCDetId::endcap(), spr::find(), triggerObjects_cff::id, phase1PixelTopology::layer, or, AlCaHLTBitMon_ParallelJobs::p, submitPVResolutionJobs::q, CSCDetId::ring(), relativeConstraints::ring, findQualityFiles::size, and CSCDetId::station().
◆ matchLCTsToSimTrack()
Definition at line 239 of file CSCStubMatcher.cc.
244 std::set<int> cathode_and_anode_ids;
245 std::set_union(cathode_ids.begin(),
249 std::inserter(cathode_and_anode_ids, cathode_and_anode_ids.end()));
251 for (
const auto&
id : cathode_and_anode_ids) {
257 int ring = ch_id.ring();
260 CSCDetId ch_id2(ch_id.endcap(), ch_id.station(),
ring, ch_id.chamber(), 0);
262 const auto& lcts_in_det =
lcts.get(ch_id2);
264 std::map<int, CSCCorrelatedLCTDigiContainer> bx_to_lcts;
268 for (
auto lct = lcts_in_det.first; lct != lcts_in_det.second; ++lct) {
271 lcts_tmp.push_back(*lct);
272 int bx = lct->getBX();
273 bx_to_lcts[
bx].push_back(*lct);
279 if (!(ch_id.ring() == 1 and (ch_id.station() == 1
or ch_id.station() == 2))) {
280 auto lct11 = bx_to_lcts[
bx][0];
281 auto lct22 = bx_to_lcts[
bx][1];
282 int wg1 = lct11.getKeyWG();
283 int wg2 = lct22.getKeyWG();
284 int hs1 = lct11.getStrip();
285 int hs2 = lct22.getStrip();
291 lct12.
setALCT(lct22.getALCT());
292 lcts_tmp.push_back(lct12);
296 lct21.
setALCT(lct11.getALCT());
297 lcts_tmp.push_back(lct21);
303 for (
const auto& lct : lcts_tmp) {
306 bool lct_clct_match(
false);
307 bool lct_alct_match(
false);
308 bool lct_gem1_match(
false);
309 bool lct_gem2_match(
false);
312 edm::LogInfo(
"CSCStubMatcher") << ch_id <<
" " << ch_id2;
314 edm::LogInfo(
"CSCStubMatcher") <<
"getCLCT " << lct.getCLCT() <<
"\ngetALCT " << lct.getALCT() <<
"\ngetGEM1 "
315 << lct.getGEM1() <<
"\ngetGEM2 " << lct.getGEM2();
319 if (
p == lct.getCLCT()) {
320 lct_clct_match =
true;
322 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_clct_match";
329 if (
p == lct.getALCT()) {
330 lct_alct_match =
true;
332 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_alct_match";
339 if (ch_id.ring() == 1 and (ch_id.station() == 1
or ch_id.station() == 2)) {
341 const GEMDetId gemDetIdL1(ch_id.zendcap(), 1, ch_id.station(), 1, ch_id.chamber(), 0);
343 if (
p == lct.getGEM1()) {
344 lct_gem1_match =
true;
346 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem1_match";
352 const GEMDetId gemDetIdL2(ch_id.zendcap(), 1, ch_id.station(), 2, ch_id.chamber(), 0);
354 if (
p == lct.getGEM2()) {
355 lct_gem2_match =
true;
357 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem2_match";
364 const bool alct_clct = lct_clct_match and lct_alct_match;
365 const bool alct_gem = lct_alct_match and lct_gem1_match and lct_gem2_match;
366 const bool clct_gem = lct_clct_match and lct_gem1_match and lct_gem2_match;
368 bool lct_tight_matched = alct_clct
or alct_gem
or clct_gem;
369 bool lct_loose_matched = lct_clct_match
or lct_alct_match;
370 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 569 of file CSCStubMatcher.cc.
572 for (
const auto&
id : chamber_ids) {
573 int nStubChamber = 0;
575 for (
const auto& alct :
alcts) {
578 if (alct.getQuality() >= min_quality) {
582 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 549 of file CSCStubMatcher.cc.
552 for (
const auto&
id : chamber_ids) {
553 int nStubChamber = 0;
555 for (
const auto& clct :
clcts) {
558 if (clct.getQuality() >= min_quality) {
562 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithLCT()
int CSCStubMatcher::nChambersWithLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 589 of file CSCStubMatcher.cc.
592 for (
const auto&
id : chamber_ids) {
593 int nStubChamber = 0;
595 for (
const auto& lct :
lcts) {
598 if (lct.getQuality() >= min_quality) {
602 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithMPLCT()
int CSCStubMatcher::nChambersWithMPLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 609 of file CSCStubMatcher.cc.
612 for (
const auto&
id : chamber_ids) {
613 int nStubChamber = 0;
615 for (
const auto& mplct :
mplcts) {
616 if (!mplct.isValid())
618 if (mplct.getQuality() >= min_quality) {
622 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_
◆ useGEMs_
bool CSCStubMatcher::useGEMs_ |
|
private |
◆ 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 uint32_t *__restrict__ Quality * quality
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_
constexpr std::array< uint8_t, layerIndexSize > layer
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 &)