Skip to content

Commit

Permalink
Merge pull request cms-sw#54 from tahuang1991/from-CMSSW_10_2_1-ME1a-…
Browse files Browse the repository at this point in the history
…numbering_Tao

From cmssw 10 2 1 me1a numbering tao
  • Loading branch information
Sven Dildick authored Aug 15, 2018
2 parents f677b45 + 23fce9c commit 81ebf25
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 36 deletions.
1 change: 1 addition & 0 deletions L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ CSCMotherboard::CSCMotherboard(unsigned endcap, unsigned station,
theSubsector(subsector), theTrigChamber(chamber) {

theRing = CSCTriggerNumbering::ringFromTriggerLabels(theStation, theTrigChamber);
theChamber = CSCTriggerNumbering::chamberFromTriggerLabels(theSector,theSubsector,theStation,theTrigChamber);

// Normal constructor. -JM
// Pass ALCT, CLCT, and common parameters on to ALCT and CLCT processors.
Expand Down
1 change: 1 addition & 0 deletions L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ class CSCMotherboard
const unsigned theSubsector;
const unsigned theTrigChamber;
unsigned theRing;
unsigned theChamber;

const CSCGeometry* csc_g;

Expand Down
14 changes: 13 additions & 1 deletion L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.cc
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,19 @@ void CSCMotherboardME11::run(const CSCWireDigiCollection* wiredc,
for (int b=0;b<20;b++)
used_alct_mask[b] = used_alct_mask_1a[b] = used_clct_mask[b] = used_clct_mask_1a[b] = 0;


// CLCT-centric CLCT-to-ALCT matching
if (clct_to_alct) for (int bx_clct = 0; bx_clct < CSCConstants::MAX_CLCT_TBINS; bx_clct++)
{

if (clct->bestCLCT[bx_clct].isValid())
{
if (infoV > 1 ) LogTrace("CSCMotherboard")
<<"clct centric in ME11, endcap "<< theEndcap <<" theStation "<< theStation <<" thechamber "<< theChamber
<<" bx_clct " << bx_clct <<" best CLCT "<< clct->bestCLCT[bx_clct];
if (infoV > 1 && clct->secondCLCT[bx_clct].isValid()) LogTrace("CSCMotherboard")
<<" second CLCT "<< clct->secondCLCT[bx_clct];

int bx_alct_start = bx_clct - match_trig_window_size/2;
int bx_alct_stop = bx_clct + match_trig_window_size/2;
for (int bx_alct = bx_alct_start; bx_alct <= bx_alct_stop; bx_alct++)
Expand Down Expand Up @@ -224,10 +231,15 @@ void CSCMotherboardME11::run(const CSCWireDigiCollection* wiredc,
{
if (alct->bestALCT[bx_alct].isValid())
{
if (infoV > 1 ) LogTrace("CSCMotherboard")
<<"alct centric in ME11, endcap "<< theEndcap <<" theStation "<< theStation <<" thechamber "<< theChamber
<<" bx_alct " << bx_alct <<" best ALCT "<< alct->bestALCT[bx_alct];
if (infoV > 1 && alct->secondALCT[bx_alct].isValid()) LogTrace("CSCMotherboard")
<<" second ALCT "<< alct->secondALCT[bx_alct];

int bx_clct_start = bx_alct - match_trig_window_size/2;
int bx_clct_stop = bx_alct + match_trig_window_size/2;

// matching in ME1b
for (int bx_clct = bx_clct_start; bx_clct <= bx_clct_stop; bx_clct++)
{
if (bx_clct < 0 || bx_clct >= CSCConstants::MAX_CLCT_TBINS) continue;
Expand Down
38 changes: 14 additions & 24 deletions L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesBuilder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,6 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,
{
// run the TMB
CSCMotherboardME11* tmb11 = static_cast<CSCMotherboardME11*>(tmb);
LogTrace("CSCTriggerPrimitivesBuilder")<<"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<" S:"<<stat<<" R:"<<ring;
tmb11->run(wiredc,compdc);

// get all collections
Expand All @@ -237,15 +236,13 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,
// if (tmpV[al].getKeyWG()>=10) alctV.push_back(tmpV[al]);
//}

LogTrace("CSCTriggerPrimitivesBuilder")<<"CSCTriggerPrimitivesBuilder:: a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size()
//<<" 1a: a="<<alctV1a.size()<<" c="<<clctV1a.size()<<" l="<<lctV1a.size();
<<" c="<<clctV1a.size()<<" l="<<lctV1a.size();

// ME1/b

if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
LogTrace("L1CSCTrigger")
<< "CSCTriggerPrimitivesBuilder results in " <<detid;
if (!(lctV.empty()&&alctV.empty()&&clctV.empty() && lctV1a.empty() && clctV1a.empty())) {
LogTrace("CSCTriggerPrimitivesBuilder")<<"CSCTriggerPrimitivesBuilder::build "
<< "CSCTriggerPrimitivesBuilder results in " <<detid
<<" ME1b a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size()
<<" ME1a c="<<clctV1a.size()<<" l="<<lctV1a.size();
}

// put collections in event
Expand All @@ -259,12 +256,6 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,

if (disableME1a) continue;

CSCDetId detid1a(endc, stat, 4, chid, 0);

//if (!(lctV1a.empty()&&alctV1a.empty()&&clctV1a.empty())){
if (!(lctV1a.empty() && clctV1a.empty())){
LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " <<detid1a;
}

// put collections in event, still use detid ring =1
put(lctV1a, oc_lct, detid, " ME1a LCT digi");
Expand All @@ -281,7 +272,6 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,
CSCGEMMotherboardME11* tmb11GEM = static_cast<CSCGEMMotherboardME11*>(tmb);
tmb11GEM->setCSCGeometry(csc_g);
tmb11GEM->setGEMGeometry(gem_g);
LogTrace("CSCTriggerPrimitivesBuilder")<<"CSCTriggerPrimitivesBuilder::build in E:"<<endc<<" S:"<<stat<<" R:"<<ring;
tmb11GEM->run(wiredc, compdc, gemPads);

// 0th layer means whole chamber.
Expand Down Expand Up @@ -315,7 +305,9 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,
// ME1/b
if (!(lctV.empty()&&alctV.empty()&&clctV.empty())) {
LogTrace("L1CSCTrigger")
<< "CSCTriggerPrimitivesBuilder results in " <<detid;
<< "CSCTriggerPrimitivesBuilder results in " <<detid
<<" ME1b a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size()
<<" ME1a c="<<clctV1a.size()<<" l="<<lctV1a.size();
}

// put collections in event
Expand All @@ -329,11 +321,6 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,
// ME1/a
if (disableME1a) continue;

CSCDetId detid1a(endc, stat, 4, chid, 0);

if (!(lctV1a.empty() && clctV1a.empty())){
LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " <<detid1a;
}

// put collections in event, still use detid ring =1
put(lctV1a, oc_lct, detid, " ME1a LCT digi");
Expand Down Expand Up @@ -365,7 +352,8 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,

if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
LogTrace("L1CSCTrigger")
<< "CSCTriggerPrimitivesBuilder got results in " <<detid;
<< "CSCTriggerPrimitivesBuilder got results in " <<detid
<<" ME21 a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size();
}

// put collections in event
Expand Down Expand Up @@ -393,7 +381,8 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,

if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
LogTrace("L1CSCTrigger")
<< "CSCTriggerPrimitivesBuilder got results in " <<detid;
<< "CSCTriggerPrimitivesBuilder got results in " <<detid
<<" ME31/41 a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size();
}

// put collections in event
Expand All @@ -419,7 +408,8 @@ void CSCTriggerPrimitivesBuilder::build(const CSCBadChambers* badChambers,

if (!(alctV.empty() && clctV.empty() && lctV.empty())) {
LogTrace("L1CSCTrigger")
<< "CSCTriggerPrimitivesBuilder got results in " <<detid;
<< "CSCTriggerPrimitivesBuilder got results in " <<detid
<<" ME21 a="<<alctV.size()<<" c="<<clctV.size()<<" l="<<lctV.size();
}

// put collections in event
Expand Down
47 changes: 36 additions & 11 deletions L1Trigger/CSCTriggerPrimitives/test/CSCTriggerPrimitivesReader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1490,8 +1490,8 @@ void CSCTriggerPrimitivesReader::compareALCTs(
strstrm << "\n";
}
LogTrace("CSCTriggerPrimitivesReader") << strstrm.str();
if (stat==1 && ring==1)
std::cout <<"ME11 CompareALCTs "<< strstrm.str()<< std::endl;
//if (stat==1 && ring==1)
// std::cout <<"ME11 CompareALCTs "<< strstrm.str()<< std::endl;
}

int csctype = getCSCType(detid);
Expand Down Expand Up @@ -1586,7 +1586,8 @@ void CSCTriggerPrimitivesReader::compareALCTs(
}
hAlctCompTotal2i->Fill(ix2,detid.chamber());
}
if (data_trknmb == emul_trknmb ) {
if (abs(data_wiregroup - emul_wiregroup) <= 2){
//if (data_trknmb == emul_trknmb ) {
//data_quality == emul_quality &&
//data_accel == emul_accel &&
//data_collB == emul_collB &&
Expand Down Expand Up @@ -1629,7 +1630,8 @@ void CSCTriggerPrimitivesReader::compareALCTs(
}//loop emul
if (debug and stubs_comparison[0].key_WG_data != stubs_comparison[0].key_WG_emul)
LogTrace("CSCTriggerPrimitivesReader")
<<"stubs_comparison 0 key_WG_data "<<stubs_comparison[0].key_WG_data <<" key_WG_emul "<< stubs_comparison[0].key_WG_emul;
<<" not matched ALCT from data "<< alctV_data[i]
<<" stubs_comparison 0 key_WG_data "<<stubs_comparison[0].key_WG_data <<" key_WG_emul "<< stubs_comparison[0].key_WG_emul;
//if (stat==1) std::cout <<" stub_tree filled , ring "<< stubs_comparison[0].ring << std::endl;
//cout <<"ALCT data BX "<< stubs_comparison[0].bx_data <<" WG "<< stubs_comparison[0].key_WG_data <<" emul BX "<< stubs_comparison[0].bx_emul<<" emul BX corrected "<< stubs_comparison[0].bx_corr_emul <<" WG "<< stubs_comparison[0].key_WG_emul << endl;
stub_tree[0]->Fill();
Expand Down Expand Up @@ -1666,6 +1668,9 @@ void CSCTriggerPrimitivesReader::compareALCTs(
emul_corr_bx = emul_bx;
stubs_comparison[0].bx_corr_emul = emul_corr_bx;
stub_tree[0]->Fill();
if (debug)
LogTrace("CSCTriggerPrimitivesReader")
<<"not matched ALCT from emulation "<< alctV_emul[i];

}//loop emul
}
Expand Down Expand Up @@ -1710,6 +1715,10 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
std::vector<bool> bookedclctV_emul;
for (digiIt = erange.first; digiIt != erange.second; digiIt++) {
if ((*digiIt).isValid()) {
for (auto pclct : clctV_emul){
if (digiIt->getBX() != pclct.getBX() and abs(digiIt->getBX() - pclct.getBX())< 5)
LogTrace("CSCTriggerPrimitivesReader") <<"Two CLCTs very close in timing!!! Special event: first clct "<< pclct <<" second clct "<<*digiIt << std::endl;
}
clctV_emul.push_back(*digiIt);
bookedclctV_emul.push_back(false);
}
Expand All @@ -1718,8 +1727,13 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
std::vector<CSCCLCTPreTriggerDigi> pretrigV_emul;
const CSCCLCTPreTriggerDigiCollection::Range& pretrigrange = pretrigs_emul->get(detid);
for (pretrigIt = pretrigrange.first; pretrigIt != pretrigrange.second; pretrigIt++){
if ((*pretrigIt).isValid())
if ((*pretrigIt).isValid()){
//for (auto preclct : pretrigV_emul){
// if (pretrigIt->getBX() != preclct.getBX() and abs(pretrigIt->getBX() - preclct.getBX())< 5)
// LogTrace("CSCTriggerPrimitivesReader") <<"Two CLCTPretrigs very close in timing!!! Special event: first preclct "<< preclct <<" second preclct "<<*pretrigIt << std::endl;
//}
pretrigV_emul.push_back(*pretrigIt);
}
}

int ndata = clctV_data.size();
Expand Down Expand Up @@ -1753,8 +1767,8 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
strstrm << "\n";
}
LogTrace("CSCTriggerPrimitivesReader") << strstrm.str();
if (stat==1 && ring==1)
std::cout <<"ME11 CompareCLCTs "<< strstrm.str()<< std::endl;
//if (stat==1 && ring==1)
// std::cout <<"ME11 CompareCLCTs "<< strstrm.str()<< std::endl;
}

int csctype = getCSCType(detid);
Expand Down Expand Up @@ -1839,7 +1853,8 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
int emul_cfeb = (*pe).getCFEB();
int emul_bx = (*pe).getBX();

if (data_trknmb == emul_trknmb) {
//if (data_trknmb == emul_trknmb) {
if (abs(data_keystrip - emul_keystrip) <= 2){
// Emulator BX re-calculated using 12-bit full BX number.
// Used for comparison with BX in the data.
int emul_corr_bx =
Expand Down Expand Up @@ -1924,7 +1939,8 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
}//loop emul
if (debug and stubs_comparison[1].key_hs_data != stubs_comparison[1].key_hs_emul)
LogTrace("CSCTriggerPrimitivesReader")
<<"stubs_comparison 1 key_hs_data "<<stubs_comparison[1].key_hs_data <<" key_hs_emul "<< stubs_comparison[1].key_hs_emul;
<<" not matched CLCT from data "<< (*pd)
<<" stubs_comparison 1 key_hs_data "<<stubs_comparison[1].key_hs_data <<" key_hs_emul "<< stubs_comparison[1].key_hs_emul;
//cout <<"CLCT data BX "<< stubs_comparison[1].bx_data <<" emul BX "<< stubs_comparison[1].bx_emul<<" emul BX corrected "<< stubs_comparison[1].bx_corr_emul << endl;
stub_tree[1]->Fill();
}//loop data
Expand Down Expand Up @@ -1958,6 +1974,9 @@ void CSCTriggerPrimitivesReader::compareCLCTs(
stubs_comparison[1].phi_emul = gp_clct_emul.phi();
bookedclctV_emul[k] = true;
stub_tree[1]->Fill();
if (debug)
LogTrace("CSCTriggerPrimitivesReader")
<<"not matched CLCT from emulation "<< clctV_emul[k];
}
}
}
Expand Down Expand Up @@ -2111,7 +2130,8 @@ void CSCTriggerPrimitivesReader::compareLCTs(
int emul_striptype = (*pe).getStripType();
int emul_bend = (*pe).getBend();
int emul_bx = (*pe).getBX();
if (data_trknmb == emul_trknmb) {
//if (data_trknmb == emul_trknmb) {
if (abs(data_keystrip - emul_keystrip) <= 2 || abs(data_wiregroup - emul_wiregroup) <= 2){
// Convert emulator BX into hardware BX using full 12-bit
// BX words in ALCT and CLCT digi collections.
int emul_corr_bx = convertBXofLCT(emul_bx, detid,
Expand Down Expand Up @@ -2176,7 +2196,8 @@ void CSCTriggerPrimitivesReader::compareLCTs(
}//loop emul
if (debug and stubs_comparison[2].key_hs_data != stubs_comparison[2].key_hs_emul)
LogTrace("CSCTriggerPrimitivesReader")
<<"stubs_comparison 2 key_hs_data "<<stubs_comparison[2].key_hs_data <<" key_hs_emul "<< stubs_comparison[2].key_hs_emul;
<<" not matched LCT from Data "<< (*pd)
<<" stubs_comparison 2 key_hs_data "<<stubs_comparison[2].key_hs_data <<" key_hs_emul "<< stubs_comparison[2].key_hs_emul;
//cout <<"LCT data BX "<< stubs_comparison[2].bx_data <<" emul BX "<< stubs_comparison[2].bx_emul<<" emul BX corrected "<< stubs_comparison[2].bx_corr_emul << endl;
stub_tree[2]->Fill();
}//loop data
Expand Down Expand Up @@ -2210,6 +2231,9 @@ void CSCTriggerPrimitivesReader::compareLCTs(
stubs_comparison[2].phi_emul = gp_lct_emul.phi();
bookedlctV_emul[k] = true;
stub_tree[2]->Fill();
if (debug)
LogTrace("CSCTriggerPrimitivesReader")
<<"not matched LCT from emulation "<< lctV_emul[k];

}
}
Expand Down Expand Up @@ -4454,6 +4478,7 @@ CSCTriggerPrimitivesReader::getGlobalPosition(unsigned int rawId, int keyWg, int
// taken from https://github.com/cms-sw/cmssw/blob/dc9f78b6af4ad56c9342cf14041b6485a60b0691/L1Trigger/CSCTriggerPrimitives/src/CSCTriggerPrimitivesReaderGEM.cc
CSCDetId cscId = CSCDetId(rawId);
int ring = cscId.ring();
//std::cout <<"To find globalPosition CSCid "<< cscId <<" keyWG "<< keyWg <<" keyHS "<< keyHS << std::endl;
if (cscId.station() == 1 and cscId.ring() == 1 and (lut_wg_vs_hs_me1b[keyWg][0] <0 || keyHS>=128)){
ring =4;
if (keyHS >= 128)
Expand Down

0 comments on commit 81ebf25

Please sign in to comment.