|
 |
Go to the documentation of this file.
10 maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad")),
11 maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad")),
12 useOldLCTDataFormat_(tmbParams_.getParameter<
bool>(
"useOldLCTDataFormat")),
13 promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern")),
14 promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality")),
15 doLCTGhostBustingWithGEMs_(tmbParams_.getParameter<
bool>(
"doLCTGhostBustingWithGEMs")) {
42 for (
const auto& ch : superChamber->chambers()) {
43 for (
const auto& roll : ch->etaPartitions()) {
45 auto pads_in_det = gemPads->get(roll_id);
46 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
50 pads_[
bx].emplace_back(roll_id.rawId(), *pad);
102 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! either ALCT or CLCT not valid, return invalid LCT \n";
158 keyStrip = mymap1.at(gem2.
pad(2));
191 keyWG = mymap2.at(gem2.
roll() - 1);
201 LogTrace(
"CSCGEMCMotherboard") <<
"Warning!!! wiregroup and strip pair are not crossing each other"
202 <<
" detid " <<
cscId_ <<
" with wiregroup " << keyWG <<
"keyStrip " << keyStrip
233 for (
unsigned i = 0;
i < mymap.size();
i++) {
235 if ((
i < 10)
or (
i > 15))
237 if ((mymap.at(
i).first <= roll) and (roll <= mymap.at(
i).second))
264 return 0.5 * (
p.pad(1) +
p.pad(2));
273 return 0.5 * (mymap.at(keyStrip).first + mymap.at(keyStrip).second);
286 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
288 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
290 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
291 const auto& in_pads =
pads_[
bx];
292 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
294 for (
const auto& pad : in_pads) {
295 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
296 const auto& roll_id(
GEMDetId(pad.first));
299 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
301 LogTrace(
"CSCGEMMotherboard") << std::endl;
307 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------"
309 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
311 for (
int bx = bx_start;
bx <= bx_stop;
bx++) {
313 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " <<
bx <<
" : " << in_pads.size() << std::endl;
315 for (
const auto& pad : in_pads) {
316 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
317 const auto& roll_id(
GEMDetId(pad.first));
320 LogTrace(
"CSCGEMMotherboard") <<
" (in overlap)" << std::endl;
322 LogTrace(
"CSCGEMMotherboard") << std::endl;
332 return LCT_Quality::NO_CLCT;
336 return LCT_Quality::NO_ALCT;
348 return LCT_Quality::CLCT_LAYER_TRIGGER;
370 return LCT_Quality::MARGINAL_ANODE_CATHODE;
374 return LCT_Quality::HQ_ANODE_MARGINAL_CATHODE;
378 return LCT_Quality::HQ_CATHODE_MARGINAL_ANODE;
383 return LCT_Quality::HQ_ACCEL_ALCT;
391 return LCT_Quality::HQ_PATTERN_2_3;
394 return LCT_Quality::HQ_PATTERN_4_5;
397 return LCT_Quality::HQ_PATTERN_6_7;
400 return LCT_Quality::HQ_PATTERN_8_9;
403 return LCT_Quality::HQ_PATTERN_10;
408 <<
"+++ findQuality: Unexpected CLCT pattern id = " <<
pattern <<
"+++\n";
419 const matchesBX<GEMPadDigi>& CSCGEMMotherboard::getPads<GEMPadDigi>()
const {
424 const matchesBX<GEMCoPadDigi>& CSCGEMMotherboard::getPads<GEMCoPadDigi>()
const {
429 int CSCGEMMotherboard::getMaxDeltaBX<GEMPadDigi>()
const {
434 int CSCGEMMotherboard::getMaxDeltaBX<GEMCoPadDigi>()
const {
439 int CSCGEMMotherboard::getLctTrigEnable<CSCALCTDigi>()
const {
444 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