|
|
Go to the documentation of this file.
11 maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad")),
12 maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad")),
13 useOldLCTDataFormat_(tmbParams_.getParameter<
bool>(
"useOldLCTDataFormat")),
14 promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern")),
15 promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality")),
16 doLCTGhostBustingWithGEMs_(tmbParams_.getParameter<
bool>(
"doLCTGhostBustingWithGEMs")) {
43 for (
const auto& ch : superChamber->chambers()) {
44 for (
const auto& roll : ch->etaPartitions()) {
46 auto pads_in_det = gemPads->get(roll_id);
47 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
55 pads_[
bx].emplace_back(roll_id.rawId(), *pad);
107 edm::LogError(
"CSCGEMCMotherboard") <<
"Warning!!! neither ALCT nor CLCT valid, return invalid LCT";
163 keyStrip = mymap1.at(gem2.
pad(2));
196 keyWG = mymap2.at(gem2.
roll() - 1);
206 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other"
207 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
238 for (
unsigned i = 0;
i < mymap.size();
i++) {
240 if ((
i < 10)
or (
i > 15))
242 if ((mymap.at(
i).first <= roll) and (roll <= mymap.at(
i).second))
269 return 0.5 * (
p.pad(1) +
p.pad(2));
278 return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
291 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
293 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
295 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
296 const auto& in_pads =
pads_[
bx];
297 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
299 for (
const auto& pad : in_pads) {
300 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
301 const auto& roll_id(
GEMDetId(pad.first));
304 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
306 LogTrace(
"CSCGEMMotherboard") << std::endl;
312 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
314 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
316 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
318 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
320 for (
const auto& pad : in_pads) {
321 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
322 const auto& roll_id(
GEMDetId(pad.first));
325 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
327 LogTrace(
"CSCGEMMotherboard") << std::endl;
337 return LCT_Quality::NO_CLCT;
341 return LCT_Quality::NO_ALCT;
353 return LCT_Quality::CLCT_LAYER_TRIGGER;
375 return LCT_Quality::MARGINAL_ANODE_CATHODE;
379 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
383 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
388 return LCT_Quality::HQ_ACCEL_ALCT;
396 return LCT_Quality::HQ_PATTERN_2_3;
399 return LCT_Quality::HQ_PATTERN_4_5;
402 return LCT_Quality::HQ_PATTERN_6_7;
405 return LCT_Quality::HQ_PATTERN_8_9;
408 return LCT_Quality::HQ_PATTERN_10;
413 <<
"+++ findQuality: Unexpected CLCT pattern id = " <<
pattern <<
"+++\n";
424 const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads<GEMPadDigi>()
const {
429 const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const {
434 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const {
439 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const {
444 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const {
449 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_
edm::ParameterSet tmbParams_
virtual const CSCGEMMotherboardLUT * getLUT() const =0
const unsigned theStation
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, int i) const
U second(std::pair< T, U > const &p)
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 getKeyWG() const
return key wire group
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
uint16_t getBend() const
return bend
enum CSCPart getCSCPart(int keystrip) const
uint16_t getKeyStrip(uint16_t n=2) const
static constexpr TimeType INVALID
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
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
T getParameter(std::string const &) const
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer) 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
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
unsigned int encodePattern(const int clctPattern) const
bool isValid() const
check ALCT validity (1 - valid ALCT)
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
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