|
|
#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 |
◆ addGhostLCTs()
◆ alcts()
◆ alctsInChamber()
◆ allALCTsInChamber()
◆ allCLCTsInChamber()
all stubs (not necessarily matching) from a particular crossed chamber
Definition at line 425 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 393 of file CSCStubMatcher.cc.
◆ chamberIdsAllLCT()
◆ chamberIdsAllMPLCT()
◆ chamberIdsCLCT()
◆ chamberIdsLCT()
◆ chamberIdsMPLCT()
◆ clcts()
◆ clctsInChamber()
◆ clear()
void CSCStubMatcher::clear |
( |
void |
| ) |
|
|
private |
◆ cscDigiMatcher()
◆ gemDigiMatcher()
◆ getGlobalPosition()
Definition at line 618 of file CSCStubMatcher.cc.
630 float wire = layer_geo->middleWireOfGroup(lct.
getKeyWG() + 1);
631 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::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;
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, CSCDetId::maxLayerId(), CSCDetId::minLayerId(), 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);
278 auto lct11 = bx_to_lcts[
bx][0];
279 auto lct22 = bx_to_lcts[
bx][1];
284 for (
const auto& lct : lcts_tmp) {
287 bool lct_clct_match(
false);
288 bool lct_alct_match(
false);
289 bool lct_gem1_match(
false);
290 bool lct_gem2_match(
false);
293 edm::LogInfo(
"CSCStubMatcher") << ch_id <<
" " << ch_id2;
295 edm::LogInfo(
"CSCStubMatcher") <<
"getCLCT " << lct.getCLCT() <<
"\ngetALCT " << lct.getALCT() <<
"\ngetGEM1 "
296 << lct.getGEM1() <<
"\ngetGEM2 " << lct.getGEM2();
300 if (
p == lct.getCLCT()) {
301 lct_clct_match =
true;
303 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_clct_match";
310 if (
p == lct.getALCT()) {
311 lct_alct_match =
true;
313 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_alct_match";
320 if (ch_id.ring() == 1 and (ch_id.station() == 1
or ch_id.station() == 2)) {
322 const GEMDetId gemDetIdL1(ch_id.zendcap(), 1, ch_id.station(), 1, ch_id.chamber(), 0);
324 if (
p == lct.getGEM1()) {
325 lct_gem1_match =
true;
327 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem1_match";
333 const GEMDetId gemDetIdL2(ch_id.zendcap(), 1, ch_id.station(), 2, ch_id.chamber(), 0);
335 if (
p == lct.getGEM2()) {
336 lct_gem2_match =
true;
338 edm::LogInfo(
"CSCStubMatcher") <<
"\t...lct_gem2_match";
345 const bool alct_clct = lct_clct_match and lct_alct_match;
346 const bool alct_gem = lct_alct_match and lct_gem1_match and lct_gem2_match;
347 const bool clct_gem = lct_clct_match and lct_gem1_match and lct_gem2_match;
349 bool lct_tight_matched = alct_clct
or alct_gem
or clct_gem;
350 bool lct_loose_matched = lct_clct_match
or lct_alct_match;
351 bool lct_matched = lct_loose_matched
or lct_tight_matched;
References l1GtPatternGenerator_cfi::bx, CSCDetId::chamber(), mps_fire::end, CSCDetId::endcap(), spr::find(), triggerObjects_cff::id, or, AlCaHLTBitMon_ParallelJobs::p, CSCDetId::ring(), relativeConstraints::ring, findQualityFiles::size, CSCDetId::station(), and CSCDetId::zendcap().
◆ matchMPLCTsToSimTrack()
◆ mplcts()
◆ mplctsInChamber()
◆ nChambersWithALCT()
int CSCStubMatcher::nChambersWithALCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 550 of file CSCStubMatcher.cc.
553 for (
const auto&
id : chamber_ids) {
554 int nStubChamber = 0;
556 for (
const auto& alct :
alcts) {
559 if (alct.getQuality() >= min_quality) {
563 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 530 of file CSCStubMatcher.cc.
533 for (
const auto&
id : chamber_ids) {
534 int nStubChamber = 0;
536 for (
const auto& clct :
clcts) {
539 if (clct.getQuality() >= min_quality) {
543 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithLCT()
int CSCStubMatcher::nChambersWithLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 570 of file CSCStubMatcher.cc.
573 for (
const auto&
id : chamber_ids) {
574 int nStubChamber = 0;
576 for (
const auto& lct :
lcts) {
579 if (lct.getQuality() >= min_quality) {
583 if (nStubChamber > 0) {
References mps_fire::result.
◆ nChambersWithMPLCT()
int CSCStubMatcher::nChambersWithMPLCT |
( |
int |
min_quality = 0 | ) |
const |
Definition at line 590 of file CSCStubMatcher.cc.
593 for (
const auto&
id : chamber_ids) {
594 int nStubChamber = 0;
596 for (
const auto& mplct :
mplcts) {
597 if (!mplct.isValid())
599 if (mplct.getQuality() >= min_quality) {
603 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_
void addGhostLCTs(const CSCCorrelatedLCTDigi &lct11, const CSCCorrelatedLCTDigi &lct22, CSCCorrelatedLCTDigiContainer &lctcontainer) const
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 &)