diff --git a/DataFormats/CSCDigi/interface/CSCShowerDigi.h b/DataFormats/CSCDigi/interface/CSCShowerDigi.h index 78896227eec3d..f637fd89299e1 100644 --- a/DataFormats/CSCDigi/interface/CSCShowerDigi.h +++ b/DataFormats/CSCDigi/interface/CSCShowerDigi.h @@ -11,16 +11,23 @@ class CSCShowerDigi { // Run-3 definitions as provided in DN-20-033 enum Run3Shower { kInvalid = 0, kLoose = 1, kNominal = 2, kTight = 3 }; // Shower types. and showers from OTMB/TMB are assigned with kLCTShower - enum ShowerType { kInvalidShower = 0, kALCTShower = 1, kCLCTShower = 2, kLCTShower = 3 }; + enum ShowerType { + kInvalidShower = 0, + kALCTShower = 1, + kCLCTShower = 2, + kLCTShower = 3, + kEMTFShower = 4, + kGMTShower = 5 + }; /// Constructors CSCShowerDigi(const uint16_t inTimeBits, const uint16_t outTimeBits, const uint16_t cscID, - const uint16_t bx, - const uint16_t showerType, - const uint16_t wireNHits, - const uint16_t compNHits); + const uint16_t bx = 0, + const uint16_t showerType = 4, + const uint16_t wireNHits = 0, + const uint16_t compNHits = 0); /// default CSCShowerDigi(); diff --git a/DataFormats/CSCDigi/src/CSCShowerDigi.cc b/DataFormats/CSCDigi/src/CSCShowerDigi.cc index 415b8c0ac502a..84439efd6b40e 100644 --- a/DataFormats/CSCDigi/src/CSCShowerDigi.cc +++ b/DataFormats/CSCDigi/src/CSCShowerDigi.cc @@ -61,11 +61,34 @@ std::ostream& operator<<(std::ostream& o, const CSCShowerDigi& digi) { compHitsStr += std::to_string(digi.getComparatorNHits()); std::string wireHitsStr(", wireHits "); wireHitsStr += std::to_string(digi.getWireNHits()); + std::string showerStr; + switch (showerType) { + case 0: + showerStr = "Invalid ShowerType"; + break; + case 1: + showerStr = "AnodeShower"; + break; + case 2: + showerStr = "CathodeShower"; + break; + case 3: + showerStr = "MatchedShower"; + break; + case 4: + showerStr = "EMTFShower"; + break; + case 5: + showerStr = "GMTShower"; + break; + default: + showerStr = "UnknownShowerType"; + } - return o << (showerType == 0 - ? "Invalid ShowerType" - : (showerType == 1 ? "ALCTShower" : (showerType == 2 ? "CLCTShower" : "correlatedLCTShower"))) - << ": bx " << digi.getBX() << ", in-time bits " << digi.bitsInTime() << ", out-of-time bits " + //return o << (showerType == 0 + // ? "Invalid ShowerType" + // : (showerType == 1 ? "ALCTShower" : (showerType == 2 ? "CLCTShower" : "correlatedLCTShower"))) + return o << showerStr << ": bx " << digi.getBX() << ", in-time bits " << digi.bitsInTime() << ", out-of-time bits " << digi.bitsOutOfTime() << ((showerType == 1 or showerType == 3) ? wireHitsStr : "") << ((showerType == 2 or showerType == 3) ? compHitsStr : "") << ";"; } diff --git a/EventFilter/CSCRawToDigi/interface/CSCALCTHeader.h b/EventFilter/CSCRawToDigi/interface/CSCALCTHeader.h index 4c4b021e5f14d..938809932a900 100644 --- a/EventFilter/CSCRawToDigi/interface/CSCALCTHeader.h +++ b/EventFilter/CSCRawToDigi/interface/CSCALCTHeader.h @@ -170,7 +170,7 @@ class CSCALCTHeader { for (unsigned bx = 0; bx < header2007.lctBins; bx++) { //CSCID is set to be 0 //ALCTshower, showerType_= 1, wireNHits and ComparatorNHits are not available in data - results.push_back(CSCShowerDigi(theALCTs[bx * 2].reserved & 0x3, 0, 0, bx, 1, 0, 0)); + results.push_back(CSCShowerDigi(theALCTs[bx * 2].reserved & 0x3, 0, 0, bx, CSCShowerDigi::ShowerType::kALCTShower, 0, 0)); } return results; } else diff --git a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_CCLUT.cc b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_CCLUT.cc index eb830ef41c62b..d320ed1a8aa39 100644 --- a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_CCLUT.cc +++ b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_CCLUT.cc @@ -168,7 +168,7 @@ CSCShowerDigi CSCTMBHeader2020_CCLUT::showerDigi(uint32_t idlayer) const { uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //LCTshower with showerType = 3. comparatorNHits from hmt_nhits() and wireNHit is not available CSCShowerDigi result( - hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, 3, 0, hmt_nhits()); // 2-bits intime, 2-bits out of time + hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, CSCShowerDigi::ShowerType::kLCTShower, 0, hmt_nhits()); // 2-bits intime, 2-bits out of time return result; } @@ -176,7 +176,7 @@ CSCShowerDigi CSCTMBHeader2020_CCLUT::anodeShowerDigi(uint32_t idlayer) const { uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //ALCT shower with showerType = 1. nhits_ is not available from unpack data - CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, 1, 0, 0); // 2-bits intime, no out of time + CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kALCTShower, 0, 0); // 2-bits intime, no out of time return result; } @@ -184,7 +184,7 @@ CSCShowerDigi CSCTMBHeader2020_CCLUT::cathodeShowerDigi(uint32_t idlayer) const uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win - bits.hmt_match_win + 3; //CLCT shower with showerType = 2. - CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, 2, 0, hmt_nhits()); // 2-bits intime, no out of time + CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kCLCTShower, 0, hmt_nhits()); // 2-bits intime, no out of time return result; } diff --git a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_GEM.cc b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_GEM.cc index f17e85c096ea4..b7563a1213e84 100644 --- a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_GEM.cc +++ b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_GEM.cc @@ -172,7 +172,7 @@ CSCShowerDigi CSCTMBHeader2020_GEM::showerDigi(uint32_t idlayer) const { uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //LCTshower with showerType = 3. comparatorNHits from hmt_nhits() and wireNHits is not available CSCShowerDigi result( - hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, 3, 0, hmt_nhits()); // 2-bits intime, 2-bits out of time + hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, CSCShowerDigi::ShowerType::kLCTShower, 0, hmt_nhits()); // 2-bits intime, 2-bits out of time return result; } @@ -180,7 +180,7 @@ CSCShowerDigi CSCTMBHeader2020_GEM::anodeShowerDigi(uint32_t idlayer) const { uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //ALCT shower with showerType = 1. wireNHits is not available from unpack data - CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, 1, 0, 0); // 2-bits intime, no out of time + CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kALCTShower, 0, 0); // 2-bits intime, no out of time return result; } @@ -188,7 +188,7 @@ CSCShowerDigi CSCTMBHeader2020_GEM::cathodeShowerDigi(uint32_t idlayer) const { uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win - bits.hmt_match_win + 3; //CLCT shower with showerType = 2. comparatorNHits from hmt_nhits() - CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, 2, 0, hmt_nhits()); // 2-bits intime, no out of time + CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kCLCTShower, 0, hmt_nhits()); // 2-bits intime, no out of time return result; } diff --git a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_TMB.cc b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_TMB.cc index 7486051c8f24c..6873732843c2a 100644 --- a/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_TMB.cc +++ b/EventFilter/CSCRawToDigi/src/CSCTMBHeader2020_TMB.cc @@ -138,7 +138,7 @@ CSCShowerDigi CSCTMBHeader2020_TMB::showerDigi(uint32_t idlayer) const { uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //LCTshower with showerType = 3. wireNHits is not avaiable //TMB LCT shower is copied from ALCT shower - CSCShowerDigi result(hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, 3, 0, 0); // 2-bits intime, 2-bits out of time + CSCShowerDigi result(hmt_bits & 0x3, (hmt_bits >> 2) & 0x3, cscid, bx, CSCShowerDigi::ShowerType::kLCTShower, 0, 0); // 2-bits intime, 2-bits out of time return result; } @@ -146,7 +146,7 @@ CSCShowerDigi CSCTMBHeader2020_TMB::anodeShowerDigi(uint32_t idlayer) const { uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //ALCTshower with showerType = 1. wireNHits is not avaiable - CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, 1, 0, 0); // 2-bits intime, no out of time + CSCShowerDigi result(bits.anode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kALCTShower, 0, 0); // 2-bits intime, no out of time return result; } @@ -154,7 +154,7 @@ CSCShowerDigi CSCTMBHeader2020_TMB::cathodeShowerDigi(uint32_t idlayer) const { uint16_t cscid = bits.cscID; uint16_t bx = CSCConstants::LCT_CENTRAL_BX - bits.pop_l1a_match_win; //CLCTshower with showerType = 2. comparatorNhits is not avaiable for TMB yet - CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, 2, 0, 0); // 2-bits intime, no out of time + CSCShowerDigi result(bits.cathode_hmt & 0x3, 0, cscid, bx, CSCShowerDigi::ShowerType::kCLCTShower, 0, 0); // 2-bits intime, no out of time return result; } diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/EMTFBlockME.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/EMTFBlockME.cc index e08a6d8a9f9de..8578d08d502b1 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/EMTFBlockME.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/EMTFBlockME.cc @@ -304,7 +304,9 @@ namespace l1t { // Fill the CSCShowerDigi CSCShowerDigi Shower_(ME_.HMT_inTime() == -99 ? 0 : ME_.HMT_inTime(), ME_.HMT_outOfTime() == -99 ? 0 : ME_.HMT_outOfTime(), - Hit_.CSC_DetId()); + Hit_.CSC_DetId(), + Hit_.BX(), + CSCShowerDigi::ShowerType::kEMTFShower); // Set the stub number for this hit // Each chamber can send up to 2 stubs per BX diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCAnodeLCTProcessor.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCAnodeLCTProcessor.cc index 2d13d2dafc533..33ce88ec7568e 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCAnodeLCTProcessor.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCAnodeLCTProcessor.cc @@ -85,10 +85,6 @@ CSCAnodeLCTProcessor::CSCAnodeLCTProcessor(unsigned endcap, const auto& shower = showerParams_.getParameterSet("anodeShower"); thresholds_ = shower.getParameter>("showerThresholds"); showerNumTBins_ = shower.getParameter("showerNumTBins"); - //showerMinInTBin_ = shower.getParameter("showerMinInTBin"); - //showerMaxInTBin_ = shower.getParameter("showerMaxInTBin"); - //showerMinOutTBin_ = shower.getParameter("showerMinOutTBin"); - //showerMaxOutTBin_ = shower.getParameter("showerMaxOutTBin"); minLayersCentralTBin_ = shower.getParameter("minLayersCentralTBin"); } @@ -1415,6 +1411,7 @@ void CSCAnodeLCTProcessor::encodeHighMultiplicityBits() { } } //ALCT shower construction with showerType_=1, comparatorhits_= 0; - anode_showers_[bx] = CSCShowerDigi(this_inTimeHMT, false, theTrigChamber, bx, 1, this_hitsInTime, 0); + anode_showers_[bx] = CSCShowerDigi( + this_inTimeHMT, false, theTrigChamber, bx, CSCShowerDigi::ShowerType::kALCTShower, this_hitsInTime, 0); } } diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc index 5efc1f2bbbf47..2eff3897e3326 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc @@ -1294,6 +1294,7 @@ void CSCCathodeLCTProcessor::encodeHighMultiplicityBits() { } } //CLCTshower constructor with showerType_ = 2, wirehits = 0; - cathode_showers_[bx] = CSCShowerDigi(this_inTimeHMT, false, theTrigChamber, bx, 2, 0, this_hitsInTime); + cathode_showers_[bx] = CSCShowerDigi( + this_inTimeHMT, false, theTrigChamber, bx, CSCShowerDigi::ShowerType::kCLCTShower, 0, this_hitsInTime); } } diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc index cd2cdf95e2303..c57413908d1a3 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc @@ -640,8 +640,13 @@ void CSCMotherboard::matchShowers(CSCShowerDigi* anode_showers, CSCShowerDigi* c matchHMT = 1; } //LCTShower with showerType = 3 - showers_[bx] = CSCShowerDigi( - matchHMT & 3, false, ashower.getCSCID(), bx, 3, ashower.getWireNHits(), cshower.getComparatorNHits()); + showers_[bx] = CSCShowerDigi(matchHMT & 3, + false, + ashower.getCSCID(), + bx, + CSCShowerDigi::ShowerType::kLCTShower, + ashower.getWireNHits(), + cshower.getComparatorNHits()); } }