4 unsigned sector,
unsigned subsector,
10 <<
"+++ Upgrade CSCMotherboardME3141 constructed while isSLHC is not set! +++\n";
17 <<
"+++ Upgrade CSCMotherboardME3141 constructed while isSLHC is not set! +++\n";
33 <<
"+++ run() called for non-existing ALCT/CLCT processor! +++ \n";
38 clctProc->setCSCGeometry(
csc_g);
41 clctV = clctProc->run(compdc);
46 int used_clct_mask[20];
47 for (
int c=0;
c<20;++
c) used_clct_mask[
c]=0;
52 if (
alctProc->bestALCT[bx_alct].isValid())
58 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
59 LogTrace(
"CSCMotherboardME3141") <<
"ALCT-CLCT matching in ME34/1 chamber: " <<
cscChamber->
id() << std::endl;
60 LogTrace(
"CSCMotherboardME3141") <<
"------------------------------------------------------------------------" << std::endl;
61 LogTrace(
"CSCMotherboardME3141") <<
"+++ Best ALCT Details: ";
63 LogTrace(
"CSCMotherboardME3141") <<
"+++ Second ALCT Details: ";
64 alctProc->secondALCT[bx_alct].print();
66 LogTrace(
"CSCMotherboardME3141") <<
"------------------------------------------------------------------------" << std::endl;
67 LogTrace(
"CSCMotherboardME3141") <<
"Attempt ALCT-CLCT matching in ME34/13 in bx range: [" << bx_clct_start <<
"," << bx_clct_stop <<
"]" << std::endl;
71 for (
int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++)
75 if (clctProc->bestCLCT[bx_clct].isValid())
77 if (
debug_matching)
LogTrace(
"CSCMotherboardME3141") <<
"++Valid ME21 CLCT: " << clctProc->bestCLCT[bx_clct] << std::endl;
79 int mbx = bx_clct-bx_clct_start;
81 clctProc->bestCLCT[bx_clct], clctProc->secondCLCT[bx_clct],
84 LogTrace(
"CSCMotherboardME3141") <<
"Successful ALCT-CLCT match in ME21: bx_alct = " << bx_alct
85 <<
"; match window: [" << bx_clct_start <<
"; " << bx_clct_stop
86 <<
"]; bx_clct = " << bx_clct << std::endl;
87 LogTrace(
"CSCMotherboardME3141") <<
"+++ Best CLCT Details: ";
88 clctProc->bestCLCT[bx_clct].print();
89 LogTrace(
"CSCMotherboardME3141") <<
"+++ Second CLCT Details: ";
90 clctProc->secondCLCT[bx_clct].print();
91 if (
allLCTs(bx_alct,mbx,0).isValid()) {
92 used_clct_mask[bx_clct] += 1;
108 int cbx = bx + mbx - match_trig_window_size/2;
113 <<
"LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs(bx,mbx,
i)<<std::endl;
135 int cbx = bx + mbx - match_trig_window_size/2;
140 <<
"LCT"<<
i+1<<
" "<<bx<<
"/"<<cbx<<
": "<<
allLCTs(bx,mbx,
i)<< std::endl;
144 <<
"bx "<<bx<<
" nnLCT:"<<n<<
" "<<n<<std::endl;
152 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
153 LogTrace(
"CSCMotherboardME3141") <<
"Counting the final LCTs" << std::endl;
154 LogTrace(
"CSCMotherboardME3141") <<
"========================================================================" << std::endl;
160 LogTrace(
"CSCMotherboardME3141") <<
"LCT "<<n<<
" " <<
p <<std::endl;
173 const bool anodeBestValid = bestALCT.
isValid();
174 const bool anodeSecondValid = secondALCT.
isValid();
175 const bool cathodeBestValid = bestCLCT.
isValid();
176 const bool cathodeSecondValid = secondCLCT.
isValid();
178 if (anodeBestValid and !anodeSecondValid) secondALCT = bestALCT;
179 if (!anodeBestValid and anodeSecondValid) bestALCT = secondALCT;
180 if (cathodeBestValid and !cathodeSecondValid) secondCLCT = bestCLCT;
181 if (!cathodeBestValid and cathodeSecondValid) bestCLCT = secondCLCT;
191 if (((secondALCT != bestALCT)
or (secondCLCT != bestCLCT)) and
202 std::vector<CSCCorrelatedLCTDigi>
result;
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
std::vector< CSCCLCTDigi > clctV
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
unsigned int alctClctOffset
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
static bool sortLCTsByQuality(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)
int pref[CSCConstants::MAX_LCT_TBINS]
const CSCChamber * cscChamber
const CSCGeometry * csc_g
void sortLCTs(std::vector< CSCCorrelatedLCTDigi > &lcts, bool(*sorter)(const CSCCorrelatedLCTDigi &, const CSCCorrelatedLCTDigi &)) const
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
std::vector< CSCALCTDigi > alctV
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
unsigned int alct_trig_enable
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
~CSCMotherboardME3141() override
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