|
|
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";
191 keyStrip = mymap1.at(gem2.
pad(2));
224 keyWG = mymap2.at(gem2.
roll() - 1);
234 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other"
235 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
267 for (
unsigned i = 0;
i < mymap.size();
i++) {
269 if ((
i < 10)
or (
i > 15))
271 if ((mymap.at(
i).first <= roll) and (roll <= mymap.at(
i).second))
298 return 0.5 * (
p.pad(1) +
p.pad(2));
307 return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
320 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
322 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
324 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
325 const auto& in_pads =
pads_[
bx];
326 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
328 for (
const auto& pad : in_pads) {
329 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
330 const auto& roll_id(
GEMDetId(pad.first));
333 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
335 LogTrace(
"CSCGEMMotherboard") << std::endl;
341 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
343 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
345 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
347 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
349 for (
const auto& pad : in_pads) {
350 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
351 const auto& roll_id(
GEMDetId(pad.first));
354 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
356 LogTrace(
"CSCGEMMotherboard") << std::endl;
363 int gemlayers)
const {
443 <<
"findQualityGEMv1: Unexpected CLCT pattern id = " <<
pattern <<
" in " <<
theCSCName_;
455 int gemlayers)
const {
459 }
else if (!aLCT.
isValid() && cLCT.
isValid() and gemlayers == 2) {
460 return LCT_QualityRun3::CLCT_2GEM;
461 }
else if (aLCT.
isValid() && !cLCT.
isValid() and gemlayers == 2) {
462 return LCT_QualityRun3::ALCT_2GEM;
465 return LCT_QualityRun3::ALCTCLCT;
466 else if (gemlayers == 1)
467 return LCT_QualityRun3::ALCTCLCT_1GEM;
468 else if (gemlayers == 2)
469 return LCT_QualityRun3::ALCTCLCT_2GEM;
475 const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads<GEMPadDigi>()
const {
480 const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const {
485 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const {
490 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const {
495 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const {
500 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
Log< level::Warning, false > LogWarning
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
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
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
std::unique_ptr< CSCUpgradeMotherboardLUTGenerator > generator_
int getBX(const GEMPadDigi &p) const
~CSCGEMMotherboard() override
const GEMGeometry * gem_g