5 unsigned sector,
unsigned subsector,
9 , allLCTs(match_trig_window_size)
46 <<
"+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
51 clct->setCSCGeometry(
csc_g);
54 clctV = clct->run(compdc);
59 int used_clct_mask[20];
60 for (
int c=0;
c<20;++
c) used_clct_mask[
c]=0;
65 if (
alct->bestALCT[bx_alct].isValid())
71 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
72 LogTrace(
"CSCMotherboardME3141") <<
"ALCT-CLCT matching in ME34/1 chamber: " <<
cscChamber->
id() << std::endl;
73 LogTrace(
"CSCMotherboardME3141") <<
"------------------------------------------------------------------------" << std::endl;
74 LogTrace(
"CSCMotherboardME3141") <<
"+++ Best ALCT Details: ";
75 alct->bestALCT[bx_alct].print();
76 LogTrace(
"CSCMotherboardME3141") <<
"+++ Second ALCT Details: ";
77 alct->secondALCT[bx_alct].print();
79 LogTrace(
"CSCMotherboardME3141") <<
"------------------------------------------------------------------------" << std::endl;
80 LogTrace(
"CSCMotherboardME3141") <<
"Attempt ALCT-CLCT matching in ME34/13 in bx range: [" << bx_clct_start <<
"," << bx_clct_stop <<
"]" << std::endl;
84 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++)
88 if (clct->bestCLCT[bx_clct].isValid())
90 if (
debug_matching)
LogTrace(
"CSCMotherboardME3141") <<
"++Valid ME21 CLCT: " << clct->bestCLCT[bx_clct] << std::endl;
92 int mbx = bx_clct-bx_clct_start;
94 clct->bestCLCT[bx_clct], clct->secondCLCT[bx_clct],
97 LogTrace(
"CSCMotherboardME3141") <<
"Successful ALCT-CLCT match in ME21: bx_alct = " << bx_alct
98 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
99 <<
"]; bx_clct = " << bx_clct << std::endl;
100 LogTrace(
"CSCMotherboardME3141") <<
"+++ Best CLCT Details: ";
101 clct->bestCLCT[bx_clct].print();
102 LogTrace(
"CSCMotherboardME3141") <<
"+++ Second CLCT Details: ";
103 clct->secondCLCT[bx_clct].print();
104 if (
allLCTs(bx_alct,mbx,0).isValid()) {
105 used_clct_mask[bx_clct] += 1;
121 int cbx = bx + mbx - match_trig_window_size/2;
126 <<
"LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs(bx,mbx,
i)<<std::endl;
148 int cbx = bx + mbx - match_trig_window_size/2;
153 <<
"LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs(bx,mbx,
i)<< std::endl;
157 <<
"bx "<<bx<<
" nnLCT:"<<n<<
" "<<n<<std::endl;
165 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
166 LogTrace(
"CSCMotherboardME3141") <<
"Counting the final LCTs" << std::endl;
167 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
173 LogTrace(
"CSCMotherboardME3141") <<
"LCT "<<n<<
" " <<
p <<std::endl;
186 const bool anodeBestValid = bestALCT.
isValid();
187 const bool anodeSecondValid = secondALCT.
isValid();
188 const bool cathodeBestValid = bestCLCT.
isValid();
189 const bool cathodeSecondValid = secondCLCT.
isValid();
191 if (anodeBestValid and !anodeSecondValid) secondALCT = bestALCT;
192 if (!anodeBestValid and anodeSecondValid) bestALCT = secondALCT;
193 if (cathodeBestValid and !cathodeSecondValid) secondCLCT = bestCLCT;
194 if (!cathodeBestValid and cathodeSecondValid) bestCLCT = secondCLCT;
204 if (((secondALCT != bestALCT)
or (secondCLCT != bestCLCT)) and
215 std::vector<CSCCorrelatedLCTDigi>
result;
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
unsigned int clct_trig_enable
unsigned int match_trig_window_size
CSCDetId id() const
Get the (concrete) DetId.
bool isValid() const
check ALCT validity (1 - valid ALCT)
bool match_earliest_clct_only
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
int pref[CSCConstants::MAX_LCT_TBINS]
const CSCChamber * cscChamber
std::vector< CSCALCTDigi > alctV
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
const CSCGeometry * csc_g
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
bool isValid() const
check CLCT validity (1 - valid CLCT)
unsigned int match_trig_enable
CSCCorrelatedLCTDigi constructLCTs(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, int type, int trknmb) const
void getMatched(std::vector< CSCCorrelatedLCTDigi > &) const
std::vector< CSCCLCTDigi > clctV
unsigned int alct_trig_enable
std::unique_ptr< CSCAnodeLCTProcessor > alct
~CSCMotherboardME3141() override
std::unique_ptr< CSCCathodeLCTProcessor > clct
void correlateLCTs(const CSCALCTDigi &bestALCT, const CSCALCTDigi &secondALCT, const CSCCLCTDigi &bestCLCT, const CSCCLCTDigi &secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2) const
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
unsigned int tmb_cross_bx_algo