5 unsigned sector,
unsigned subsector,
9 , maxDeltaBXPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXPad"))
10 , maxDeltaBXCoPad_(tmbParams_.getParameter<
int>(
"maxDeltaBXCoPad"))
11 , useOldLCTDataFormat_(tmbParams_.getParameter<
bool>(
"useOldLCTDataFormat"))
12 , promoteALCTGEMpattern_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMpattern"))
13 , promoteALCTGEMquality_(tmbParams_.getParameter<
bool>(
"promoteALCTGEMquality"))
14 , doLCTGhostBustingWithGEMs_(tmbParams_.getParameter<
bool>(
"doLCTGhostBustingWithGEMs"))
48 run(wiredc, compdc, gemPads.get());
56 for (
const auto& ch : superChamber->chambers()) {
57 for (
const auto& roll : ch->etaPartitions()) {
59 auto pads_in_det = gemPads->get(roll_id);
60 for (
auto pad = pads_in_det.first; pad != pads_in_det.second; ++pad) {
63 pads_[bx].emplace_back(roll_id, *pad);
75 coPads_[copad.bx(1)].push_back(std::make_pair(copad.roll(), copad));
152 keyStrip = mymap1[gem2.pad(2)];
163 keyWG = mymap2[gem2.roll()];
181 for (
unsigned i=0;
i<mymap.size();
i++) {
183 if ((
i < 10)
or (
i > 15))
continue;
184 if ((mymap[
i].
first <= roll) and (roll <= mymap[
i].
second))
return true;
206 return p.second.roll();
221 return 0.5*(p.
pad(1) + p.
pad(2));
238 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
239 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger pads: " << std::endl;
241 for (
int bx = bx_start; bx <= bx_stop; bx++) {
242 const auto& in_pads =
pads_[bx];
243 LogTrace(
"CSCGEMMotherboard") <<
"N(pads) BX " << bx <<
" : " << in_pads.size() << std::endl;
245 for (
const auto& pad : in_pads){
246 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
247 const auto& roll_id(
GEMDetId(pad.first));
250 else LogTrace(
"CSCGEMMotherboard") << std::endl;
258 LogTrace(
"CSCGEMMotherboard") <<
"------------------------------------------------------------------------" << std::endl;
259 LogTrace(
"CSCGEMMotherboard") <<
"* GEM trigger coincidence pads: " << std::endl;
261 for (
int bx = bx_start; bx <= bx_stop; bx++) {
262 const auto& in_pads =
coPads_[bx];
263 LogTrace(
"CSCGEMMotherboard") <<
"N(copads) BX " << bx <<
" : " << in_pads.size() << std::endl;
265 for (
const auto& pad : in_pads){
266 LogTrace(
"CSCGEMMotherboard") <<
"\tdetId " <<
GEMDetId(pad.first) <<
", pad = " << pad.second;
267 const auto& roll_id(
GEMDetId(pad.first));
270 else LogTrace(
"CSCGEMMotherboard") << std::endl;
311 if (!a4 && !c4) quality = 5;
312 else if ( a4 && !c4) quality = 6;
313 else if (!a4 && c4) quality = 7;
314 else if ( a4 && c4) {
323 else if (
pattern == 10) quality = 15;
326 <<
"+++ findQuality: Unexpected CLCT pattern id = " int getQuality() const
return quality of a pattern (number of layers hit!)
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
T getParameter(std::string const &) const
match< GEMCoPadDigi > GEMCoPadDigiId
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMCoPadDigi &gem, enum CSCPart, int i)
std::unique_ptr< CSCUpgradeMotherboardLUTGenerator > generator_
const unsigned theTrigChamber
bool isValid() const
check ALCT validity (1 - valid ALCT)
GEMCoPadDigiIdsBX coPads_
int getRoll(const GEMPadDigiId &p)
std::vector< int > get_gem_roll_to_csc_wg(Parity par, int layer=1) const
int getBX(const GEMPadDigi &p)
int getStripType() const
return striptype
std::vector< GEMCoPadDigi > gemCoPadV
bool promoteALCTGEMpattern_
uint32_t rawId() const
get the raw id
U second(std::pair< T, U > const &p)
bool promoteALCTGEMquality_
match< GEMPadDigi > GEMPadDigiId
bool promoteCLCTGEMquality_
const unsigned theStation
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)=0
virtual std::vector< std::pair< int, int > > get_csc_hs_to_gem_pad(Parity par, enum CSCPart) const =0
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
unsigned int encodePattern(const int ptn, const int highPt)
void printGEMTriggerCoPads(int bx_start, int bx_stop, enum CSCPart)
bool isValid() const
check CLCT validity (1 - valid CLCT)
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const CSCCLCTDigi &clct, const GEMCoPadDigi &gem, enum CSCPart p, int i)
const GEMSuperChamber * superChamber(GEMDetId id) const
int getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
virtual std::vector< int > get_gem_pad_to_csc_hs(Parity par, enum CSCPart) const =0
edm::ParameterSet tmbParams_
int getQuality() const
return quality of a pattern
int getAccelerator() const
int getPattern() const
return pattern
MuonDigiCollection< GEMDetId, GEMPadDigi > GEMPadDigiCollection
virtual const CSCGEMMotherboardLUT * getLUT() const =0
unsigned int findQualityGEM(const CSCALCTDigi &, const CSCCLCTDigi &, int gemlayer)
std::unique_ptr< CSCAnodeLCTProcessor > alct
std::unique_ptr< CSCCathodeLCTProcessor > clct
bool isPadInOverlap(int roll)
~CSCGEMMotherboard() override
const GEMGeometry * gem_g
float getAvePad(const GEMPadDigi &)
int getKeyWG() const
return key wire group
void printGEMTriggerPads(int bx_start, int bx_stop, enum CSCPart)
std::vector< std::pair< int, int > > get_csc_wg_to_gem_roll(Parity par, int layer=1) const