|
|
Go to the documentation of this file.
12 maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad")),
13 maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad")),
14 promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern")),
15 promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality")) {
54 for (
const auto& ch : superChamber->chambers()) {
55 for (
const auto& roll : ch->etaPartitions()) {
57 auto pads_in_det = gemPads->get(roll_id);
58 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
70 pads_[
bx].emplace_back(roll_id.rawId(), *pad);
127 edm::LogError(
"CSCGEMCMotherboard") <<
"Warning!!! neither ALCT nor CLCT valid, return invalid LCT";
207 keyStrip = mymap1.at(gem2.
pad(2));
240 keyWG = mymap2.at(gem2.
roll() - 1);
258 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other"
259 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
290 for (
unsigned i = 0;
i < mymap.size();
i++) {
292 if ((
i < 10)
or (
i > 15))
294 if ((mymap.at(
i).first <= roll) and (roll <= mymap.at(
i).second))
321 return 0.5 * (
p.pad(1) +
p.pad(2));
330 return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
338 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
340 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
342 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
343 const auto& in_pads =
pads_[
bx];
344 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
346 for (
const auto& pad : in_pads) {
347 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
348 const auto& roll_id(
GEMDetId(pad.first));
351 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
353 LogTrace(
"CSCGEMMotherboard") << std::endl;
359 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
361 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
363 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
365 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
367 for (
const auto& pad : in_pads) {
368 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
369 const auto& roll_id(
GEMDetId(pad.first));
372 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
374 LogTrace(
"CSCGEMMotherboard") << std::endl;
381 int gemlayers)
const {
461 <<
"findQualityGEMv1: Unexpected CLCT pattern id = " <<
pattern <<
" in " <<
theCSCName_;
473 int gemlayers)
const {
477 }
else if (!aLCT.
isValid() && cLCT.
isValid() and gemlayers == 2) {
478 return LCT_QualityRun3::CLCT_2GEM;
479 }
else if (aLCT.
isValid() && !cLCT.
isValid() and gemlayers == 2) {
480 return LCT_QualityRun3::ALCT_2GEM;
483 return LCT_QualityRun3::ALCTCLCT;
484 else if (gemlayers == 1)
485 return LCT_QualityRun3::ALCTCLCT_1GEM;
486 else if (gemlayers == 2)
487 return LCT_QualityRun3::ALCTCLCT_2GEM;
493 const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads<GEMPadDigi>()
const {
498 const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const {
503 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const {
508 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const {
513 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const {
518 int CSCGEMMotherboard::getLctTrigEnable<CSCCLCTDigi>()
const {
virtual bool doesWiregroupCrossStrip(int key_wg, int key_strip) const
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
bool isPadInOverlap(int roll) const
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
bool useHighMultiplicityBits_
CSCMotherboard::LCT_Quality findQualityGEMv1(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
edm::ParameterSet tmbParams_
virtual const CSCGEMMotherboardLUT * getLUT() const =0
const unsigned theStation
LCT_QualityRun3 findQualityGEMv2(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) const
MuonDigiCollection< GEMDetId, GEMPadDigi > GEMPadDigiCollection
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
const GEMChamber * chamber(GEMDetId id) const
Return the chamber corresponding to the given id.
bool promoteALCTGEMquality_
GEMCoPadDigiIdsBX coPads_
unsigned int clct_trig_enable
uint16_t getKeyStrip(const uint16_t n=2) const
bool getEighthStrip() const
get single eighth strip bit
Log< level::Warning, false > LogWarning
const uint32_t *__restrict__ Quality * quality
uint16_t getKeyWG() const
return key wire group
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
enum CSCPart getCSCPart(int keystrip) const
static constexpr TimeType INVALID
void processGEMClusters(const GEMPadDigiClusterCollection *pads)
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
bool promoteCLCTGEMquality_
uint16_t getQuality() const
return quality of a pattern
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
match< GEMCoPadDigi > GEMCoPadDigiId
std::vector< GEMCoPadDigi > gemCoPadV
bool promoteALCTGEMpattern_
bool isGEMDetId(unsigned int) const
int getRoll(const GEMPadDigiId &p) const
constexpr int roll() const
bool getQuartStrip() const
get single quart strip bit
std::vector< int > get_gem_roll_to_csc_wg(Parity par) const
bool isValid() const
check CLCT validity (1 - valid CLCT)
GEMPadDigi second() const
std::pair< int, int > getRolls(const CSCALCTDigi &) const
Log< level::Error, false > LogError
uint16_t getSlope() const
return the slope
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return the eta partition corresponding to the given id.
int nEtaPartitions() const
Retunr numbers of eta partitions.
CSCCLCTDigi getBXShiftedCLCT(const CSCCLCTDigi &) const
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const
constexpr uint32_t rawId() const
get the raw id
match< GEMPadDigi > GEMPadDigiId
void processGEMPads(const GEMPadDigiCollection *pads)
uint16_t getAccelerator() const
double bend(double r, double rinv, double stripPitch)
unsigned int highMultiplicityBits_
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
unsigned int alct_trig_enable
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
const unsigned theTrigChamber
static constexpr int32_t minRollId
T getParameter(std::string const &) const
unsigned int encodePattern(const int clctPattern) const
bool isValid() const
check ALCT validity (1 - valid ALCT)
float getPad(const GEMPadDigi &) const
const GEMSuperChamber * superChamber(GEMDetId id) const
CSCALCTDigi getBXShiftedALCT(const CSCALCTDigi &) const
uint16_t getPattern() const
return pattern
int getBX(const GEMPadDigi &p) const
~CSCGEMMotherboard() override
const GEMGeometry * gem_g
uint16_t getRun3Pattern() const
return pattern