From d456b10dbd1ceae2fd9e64cf72ae9a5a191e79e3 Mon Sep 17 00:00:00 2001 From: Ho-Fung Tsoi Date: Fri, 26 Nov 2021 16:22:58 +0100 Subject: [PATCH 01/32] duplicate UCTCTP7RawData.h for 5BX unpacker --- .../UCTCTP7RawData5BX.h | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h new file mode 100644 index 0000000000000..c8a859858bbfb --- /dev/null +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h @@ -0,0 +1,347 @@ +#ifndef UCTCTP7RawData_hh +#define UCTCTP7RawData_hh + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/MessageLogger/interface/MessageDrop.h" + +class UCTCTP7RawData { +public: + enum CaloType { EBEE = 0, HBHE, HF }; + + // read-only constructor + UCTCTP7RawData(const uint32_t* d) : myDataPtr(d) { + if (myDataPtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "You gave me a nullptr :<"; + } + } + // read-write constructor, caller must allocate 192*sizeof(uint32_t) bytes + UCTCTP7RawData(uint32_t* d) : myDataPtr(d), myDataWritePtr(d) { + if (myDataPtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "You gave me a nullptr :<"; + } + } + + // No copy constructor and equality operator are needed + UCTCTP7RawData(const UCTCTP7RawData&) = delete; + const UCTCTP7RawData& operator=(const UCTCTP7RawData& i) = delete; + + virtual ~UCTCTP7RawData() { ; } + + // Access functions for convenience + + const uint32_t* dataPtr() const { return myDataPtr; } + + uint32_t sof() { return myDataPtr[0]; } + + size_t getIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t index = 0; + if (cType == EBEE || cType == HBHE) { + if (iPhi > 3) { + edm::LogError("UCTCTP7RawData") << "Incorrect iPhi; iPhi = " << iPhi << "; should be in [0,3]"; + return index; + } + if (cEta < 1 || cEta > 28) { + edm::LogError("UCTCTP7RawData") << "Incorrect caloEta; cEta = " << cEta << "; should be in [1-28]"; + return index; + } + // ECAL/HB+HE fragment size is 3 32-bit words + // Each fragment covers 2 eta and 4 phi towers + // All four phi towers are in one 32-bit word + // Even and odd eta are in neighboring 32-bit words + index = (((cEta - 1) / 2) * (3 + 3) + ((cEta - 1) % 2)); + // But, towers are arranged in a peculiar order for firmware + // convenience - the index needs to be computing with these + // if statements. This is brittle code that one should be + // very careful with. + if (negativeEta) { + // Add offset for 6 ECAL and 6 HCAL fragments + index += (6 * (3 + 3)); + } else { + if (cEta > 12) { + // Add offset for 14 ECAL, 14 HB+HE and 2 HF fragments + // Note that first six are included in the definition of + // the variable - index + // Note also that HF fragments are larger at 4 32-bit words + index += ((14 * (3 + 3) + (2 * 4))); + } + } + // Data starts with ECAL towers so offset by 3 additional 32-bit words + if (cType == HBHE) + index += 3; + } else if (cType == HF) { + if (iPhi > 1) { + edm::LogError("UCTCTP7RawData") << "HF iPhi should be 0 or 1 (for a , b) - invalid iPhi = " << iPhi; + return index; + } + if (cEta < 30 || cEta > 41) { + edm::LogError("UCTCTP7RawData") << "HF cEta should be between 30 and 41 - invalid cEta = " << cEta; + return index; + } + if (negativeEta) { + if (iPhi == 0) { + // Offset by 6 positive eta and 14 negative eta EBEE/HBHE fragments (each 3 32-bit words) + // There are four HF cEta towers packed in each 32-bit word + // Add additional offset of 1 for (34-37) and 2 for (38-41) + index = 20 * (3 + 3) + ((cEta - 30) / 4); + } else { + // Additional HF a fragment offset for HF b channel + index = 20 * (3 + 3) + 1 * 4 + ((cEta - 30) / 4); + } + } else { + if (iPhi == 0) { + // Offset by all EBEE/HBHE and two HF fragments (4 32-bit words) + index = 2 * 14 * (3 + 3) + 2 * 4 + ((cEta - 30) / 4); + } else { + // Additional HF a fragment offset for HF b channel + index = 2 * 14 * (3 + 3) + 3 * 4 + ((cEta - 30) / 4); + } + } + } else { + edm::LogError("UCTCTP7RawData") << "Unknown CaloType " << cType; + return index; + } + if (index >= 192) { + edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + } + return index; + } + + size_t getFeatureIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + // Get index into the data words for the tower + size_t index = getIndex(cType, negativeEta, cEta, iPhi); + if (cType == EBEE || cType == HBHE) { + // Two 32-bit words contain ET, so we should offset the index to + // to the feature and link status bits + if (((cEta - 1) % 2) == 0) { + // [index] is offset to ET of first four towers (0 - 3) + // [index + 2] is where the feature and link status bits are + index += 2; + } else { + // In this case [index] is offset to ET of second four towers (4 - 7) + // [index + 1] is where the feature and link status bits are + index += 1; + } + } else if (cType == HF) { + // HF Fragment has different structure than EBEE and HBHE fragments + // First three 32-bit words have ETs for 11 objects (yes, 11 not 12) + // cEta = 40 / 41 are double in eta and flop bettween a and b HF fragments + // Further the remaining upper byte of the third word actually has feature + // bits. This feature index will point to the 4th 32-bit word. It is + // expected that the top byte from 3rd 32-bit word will be patched in within + // the feature bit access function. + // Since there are three instead of if block as above for EBEE, HBHE + // I wrote here a more compact implementation of index computation. + index += (3 - ((cEta - 30) / 4)); + if (index == 0) { + // Since we sticth index-1, zero is also illegal + edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + } + } else { + // Unknown calotype error already generated in getIndex() + return 0; + } + if (index >= 192) { + edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + } + return index; + } + + void setET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t et) { + if (myDataWritePtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + return; + } + size_t index = getIndex(cType, negativeEta, cEta, iPhi); + uint32_t& data = myDataWritePtr[index]; + if (cType == HF) { + // Pick out the correct 8-bits for the iEta chosen + // Note that cEta = 41 is special, it only occurs for iPhi == 1 and shares cEta = 40 position + if (cEta == 41) { + data |= (et & 0xFF) << 16; + } else { + data |= (et & 0xFF) << (((cEta - 30) % 4) * 8); + } + } else { + // Pick out the correct 8-bits for the iPhi chosen + data |= (et & 0xFF) << (iPhi * 8); + } + } + + uint32_t getET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t index = getIndex(cType, negativeEta, cEta, iPhi); + const uint32_t data = myDataPtr[index]; + uint32_t et = 0xDEADBEEF; + if (cType == HF) { + // Pick out the correct 8-bits for the iEta chosen + // Note that cEta = 41 is special, it only occurs for iPhi == 1 and shares cEta = 40 position + if (cEta == 41) + et = ((data >> 16) & 0xFF); + else + et = ((data >> ((cEta - 30) % 4) * 8) & 0xFF); + } else { + // Pick out the correct 8-bits for the iPhi chosen + et = ((data >> (iPhi * 8)) & 0xFF); + } + return et; + } + + void setFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb) { + if (myDataWritePtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + return; + } + if (cType == HF) { + setHFFeatureBits(negativeEta, cEta, iPhi, fb); + } else { + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + uint32_t& data = myDataWritePtr[index]; + + uint32_t tower = iPhi; + if (((cEta - 1) % 2) == 1) { + tower += 4; + } + data |= (fb & 0x1) << tower; + } + } + + uint32_t getFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + const uint32_t data = myDataPtr[index]; + uint32_t fb = 0; + if (cType == HF) { + fb = getHFFeatureBits(negativeEta, cEta, iPhi); + } else { + // Pick out the correct bit for the tower chosen + uint32_t tower = iPhi; + if (((cEta - 1) % 2) == 1) { + tower += 4; + } + fb = ((data & (0x1 << tower)) != 0) ? 1 : 0; + } + return fb; + } + + void setHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb) { + if (myDataWritePtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + return; + } + size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi); + uint32_t shift = (cEta - 30) * 2; + if (cEta == 41) + shift = 20; // 41 occurs on b-fiber but shares the position of 40 + if (shift >= 8) { + uint32_t& data = myDataWritePtr[index]; + data |= (fb & 0x3) << (shift - 8); + } else { + uint32_t& data = myDataWritePtr[index - 1]; + data |= (fb & 0x3) << (shift + 24); + } + } + + uint32_t getHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi); + // Stitch together the top 8 bits from previous 32-bit word and bottom 14 bits from this word + const uint32_t data = ((myDataPtr[index] & 0x3FFF) << 8) + (myDataPtr[index - 1] >> 24); + uint32_t shift = (cEta - 30) * 2; + if (cEta == 41) + shift = 20; // 41 occurs on b-fiber but shares the position of 40 + return ((data >> shift) & 0x3); + } + + uint32_t getLinkStatus(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + const uint32_t data = myDataPtr[index]; + return (data >> 16); + } + + size_t getSummaryIndex(bool negativeEta, uint32_t region) { + size_t index = 2 * 14 * (3 + 3) + 4 * 4 + (region / 2); + if (negativeEta) + index += 4; + if (index >= 192) { + edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + } + return index; + } + + void setRegionSummary(bool negativeEta, uint32_t region, uint32_t regionData) { + if (myDataWritePtr == nullptr) { + edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + return; + } + size_t index = getSummaryIndex(negativeEta, region); + uint32_t& data = myDataWritePtr[index]; + data |= (regionData & 0xFFFF) << (16 * (region % 2)); + } + + uint32_t getRegionSummary(bool negativeEta, uint32_t region) { + size_t index = getSummaryIndex(negativeEta, region); + const uint32_t data = myDataPtr[index]; + return ((data >> (16 * (region % 2))) & 0xFFFF); + } + + uint32_t getRegionET(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x3FF); } + + bool getRegionEGVeto(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x0400); } + + bool getRegionTauVeto(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x0800); } + + uint32_t getRegionHitLocation(bool negativeEta, uint32_t region) { + return ((getRegionSummary(negativeEta, region) & 0xF000) >> 12); + } + + bool isTowerMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + uint32_t tower = iPhi; + if ((cEta % 2) == 0) + tower += 4; + if (cType == HF) { + tower = (cEta - 30); + if (cEta == 41) + tower = 10; + } + return ((linkStatus & (0x1 << tower)) != 0); + } + + bool isLinkMisaligned(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + if (cType == EBEE && (cEta == 17 || cEta == 21)) { + return ((linkStatus & 0x00000100) != 0); + } + return ((linkStatus & 0x00001000) != 0); + } + + bool isLinkInError(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + if (cType == EBEE && (cEta == 17 || cEta == 21)) { + return ((linkStatus & 0x00000200) != 0); + } + return ((linkStatus & 0x00002000) != 0); + } + + bool isLinkDown(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + if (cType == EBEE && (cEta == 17 || cEta == 21)) { + return ((linkStatus & 0x00000400) != 0); + } + return ((linkStatus & 0x00004000) != 0); + } + + bool isLinkMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + if (cType == EBEE && (cEta == 17 || cEta == 21)) { + return ((linkStatus & 0x00000800) != 0); + } + return ((linkStatus & 0x00008000) != 0); + } + +private: + // Pointer to contiguous array of 192 values + // We assume instantiator of this class will gurantee that fact + const uint32_t* myDataPtr; + // == myDataPtr unless read-only + uint32_t* myDataWritePtr = nullptr; +}; + +#endif From f0ef55de8e6af6132ff02a9571261b25b9d163b6 Mon Sep 17 00:00:00 2001 From: Ho-Fung Tsoi Date: Fri, 26 Nov 2021 16:31:42 +0100 Subject: [PATCH 02/32] Modified Calo-L1 unpacker to read 5BX payload format --- .../CaloLayer1Unpacker.cc | 206 +++++++++++++++++- .../CaloLayer1Unpacker.h | 14 ++ .../UCTCTP7RawData5BX.h | 162 +++++++------- 3 files changed, 295 insertions(+), 87 deletions(-) diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.cc index e493f05790197..64c960ed0d6e4 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.cc @@ -31,17 +31,14 @@ namespace l1t { makeHFTPGs(ctp7_phi, ctp7Data, res->getHcalDigis()); makeRegions(ctp7_phi, ctp7Data, res->getRegions()); } else if (N_BX == 5) { - const uint32_t* ptr5 = ptr; - ptr += 192 * 2; - UCTCTP7RawData ctp7Data(ptr); - makeECalTPGs(ctp7_phi, ctp7Data, res->getEcalDigis()); - makeHCalTPGs(ctp7_phi, ctp7Data, res->getHcalDigis()); - makeHFTPGs(ctp7_phi, ctp7Data, res->getHcalDigis()); - makeRegions(ctp7_phi, ctp7Data, res->getRegions()); + UCTCTP7RawData5BX ctp7Data5BX(ptr); + // BX_n = 0, 1, 2, 3, 4, where 2 is nominal + makeECalTPGs5BX(ctp7_phi, ctp7Data5BX, res->getEcalDigis(), 2); + makeHCalTPGs5BX(ctp7_phi, ctp7Data5BX, res->getHcalDigis(), 2); + makeHFTPGs5BX(ctp7_phi, ctp7Data5BX, res->getHcalDigis(), 2); + makeRegions5BX(ctp7_phi, ctp7Data5BX, res->getRegions(), 2); for (int i = 0; i < 5; i++) { - UCTCTP7RawData ctp7Data(ptr5); - makeECalTPGs(ctp7_phi, ctp7Data, res->getEcalDigisBx(i)); - ptr5 += 192; + makeECalTPGs5BX(ctp7_phi, ctp7Data5BX, res->getEcalDigisBx(i), i); } } else { LogError("CaloLayer1Unpacker") << "Number of BXs to unpack is not 1 or 5, stop here !!! " << N_BX << std::endl; @@ -227,6 +224,195 @@ namespace l1t { } } + // The following four functions are duplicated from above, to be used for 5BX events + // They have a new parameter BX_n = 0, 1, 2, 3, 4, where 2 is nominal + // And use functions defined in UCTCTP7RawData5BX.h + // The idea is not to intervene the normal events unpacking + + void CaloLayer1Unpacker::makeECalTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + EcalTrigPrimDigiCollection* ecalTPGs, + uint32_t BX_n) { + UCTCTP7RawData5BX::CaloType cType = UCTCTP7RawData5BX::EBEE; + for (uint32_t iPhi = 0; iPhi < 4; iPhi++) { // Loop over all four phi divisions on card + int cPhi = -1 + lPhi * 4 + iPhi; // Calorimeter phi index + if (cPhi == 0) + cPhi = 72; + else if (cPhi == -1) + cPhi = 71; + else if (cPhi < -1) { + LogError("CaloLayer1Unpacker") << "Major error in makeECalTPGs5BX" << std::endl; + return; + } + for (int cEta = -28; cEta <= 28; cEta++) { // Calorimeter Eta indices (HB/HE for now) + if (cEta != 0) { // Calorimeter eta = 0 is invalid + bool negativeEta = false; + if (cEta < 0) + negativeEta = true; + uint32_t iEta = abs(cEta); + // This code is fragile! Note that towerDatum is packed as is done in EcalTriggerPrimitiveSample + // Bottom 8-bits are ET + // Then finegrain feature bit + // Then three bits have ttBits, which I have no clue about (not available on ECAL links so not set) + // Then there is a spare FG Veto bit, which is used for L1 spike detection (not available on ECAL links so not set) + // Top three bits seem to be unused. So, we steal those to set the tower masking, link masking and link status information + // To decode these custom three bits use ((EcalTriggerPrimitiveSample::raw() >> 13) & 0x7) + uint32_t towerDatum = ctp7Data5BX.getET(cType, negativeEta, iEta, iPhi, BX_n); + if (ctp7Data5BX.getFB(cType, negativeEta, iEta, iPhi, BX_n) != 0) + towerDatum |= 0x0100; + if (ctp7Data5BX.isTowerMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x2000; + if (ctp7Data5BX.isLinkMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x4000; + if (ctp7Data5BX.isLinkMisaligned(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkInError(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkDown(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x8000; + EcalTriggerPrimitiveSample sample(towerDatum); + int zSide = cEta / ((int)iEta); + // As far as I can tell, the ECal unpacker only uses barrel and endcap IDs, never EcalTriggerTower + const EcalSubdetector ecalTriggerTower = + (iEta > 17) ? EcalSubdetector::EcalEndcap : EcalSubdetector::EcalBarrel; + EcalTrigTowerDetId id(zSide, ecalTriggerTower, iEta, cPhi); + EcalTriggerPrimitiveDigi tpg(id); + tpg.setSize(1); + tpg.setSample(0, sample); + ecalTPGs->push_back(tpg); + } + } + } + } + + void CaloLayer1Unpacker::makeHCalTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + HcalTrigPrimDigiCollection* hcalTPGs, + uint32_t BX_n) { + UCTCTP7RawData5BX::CaloType cType = UCTCTP7RawData5BX::HBHE; + for (uint32_t iPhi = 0; iPhi < 4; iPhi++) { // Loop over all four phi divisions on card + int cPhi = -1 + lPhi * 4 + iPhi; // Calorimeter phi index + if (cPhi == 0) + cPhi = 72; + else if (cPhi == -1) + cPhi = 71; + else if (cPhi < -1) { + LogError("CaloLayer1Unpacker") << "Major error in makeHCalTPGs5BX" << std::endl; + return; + } + for (int cEta = -28; cEta <= 28; cEta++) { // Calorimeter Eta indices (HB/HE for now) + if (cEta != 0) { // Calorimeter eta = 0 is invalid + bool negativeEta = false; + if (cEta < 0) + negativeEta = true; + uint32_t iEta = abs(cEta); + // This code is fragile! Note that towerDatum is packed as is done in HcalTriggerPrimitiveSample + // Bottom 8-bits are ET + // Then feature bit + // The remaining bits are undefined presently + // We use next three bits for link details, which we did not have room in EcalTriggerPrimitiveSample case + // We use next three bits to set the tower masking, link masking and link status information as done for Ecal + // To decode these custom six bits use ((EcalTriggerPrimitiveSample::raw() >> 9) & 0x77) + uint32_t towerDatum = ctp7Data5BX.getET(cType, negativeEta, iEta, iPhi, BX_n); + if (ctp7Data5BX.getFB(cType, negativeEta, iEta, iPhi, BX_n) != 0) + towerDatum |= 0x0100; + if (ctp7Data5BX.isLinkMisaligned(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x0200; + if (ctp7Data5BX.isLinkInError(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x0400; + if (ctp7Data5BX.isLinkDown(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x0800; + if (ctp7Data5BX.isTowerMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x2000; + if (ctp7Data5BX.isLinkMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x4000; + if (ctp7Data5BX.isLinkMisaligned(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkInError(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkDown(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x8000; + HcalTriggerPrimitiveSample sample(towerDatum); + HcalTrigTowerDetId id(cEta, cPhi); + HcalTriggerPrimitiveDigi tpg(id); + tpg.setSize(1); + tpg.setSample(0, sample); + hcalTPGs->push_back(tpg); + } + } + } + } + + void CaloLayer1Unpacker::makeHFTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + HcalTrigPrimDigiCollection* hcalTPGs, + uint32_t BX_n) { + UCTCTP7RawData5BX::CaloType cType = UCTCTP7RawData5BX::HF; + for (uint32_t side = 0; side <= 1; side++) { + bool negativeEta = false; + if (side == 0) + negativeEta = true; + for (uint32_t iEta = 30; iEta <= 40; iEta++) { + for (uint32_t iPhi = 0; iPhi < 2; iPhi++) { + if (iPhi == 1 && iEta == 40) + iEta = 41; + int cPhi = 1 + lPhi * 4 + iPhi * 2; // Calorimeter phi index: 1, 3, 5, ... 71 + if (iEta == 41) + cPhi -= 2; // Last two HF are 3, 7, 11, ... + cPhi = (cPhi + 69) % 72 + 1; // cPhi -= 2 mod 72 + int cEta = iEta; + if (negativeEta) + cEta = -iEta; + // This code is fragile! Note that towerDatum is packed as is done in HcalTriggerPrimitiveSample + // Bottom 8-bits are ET + // Then feature bit + // Then minBias ADC count bit + // The remaining bits are undefined presently + // We use next three bits for link details, which we did not have room in EcalTriggerPrimitiveSample case + // We use next three bits to set the tower masking, link masking and link status information as done for Ecal + // To decode these custom six bits use ((EcalTriggerPrimitiveSample::raw() >> 9) & 0x77) + uint32_t towerDatum = ctp7Data5BX.getET(cType, negativeEta, iEta, iPhi, BX_n); + towerDatum |= ctp7Data5BX.getFB(cType, negativeEta, iEta, iPhi, BX_n) << 8; + if (ctp7Data5BX.isLinkMisaligned(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x0400; + if (ctp7Data5BX.isLinkInError(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x0800; + if (ctp7Data5BX.isLinkDown(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x1000; + if (ctp7Data5BX.isTowerMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x2000; + if (ctp7Data5BX.isLinkMasked(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x4000; + if (ctp7Data5BX.isLinkMisaligned(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkInError(cType, negativeEta, iEta, iPhi, BX_n) || + ctp7Data5BX.isLinkDown(cType, negativeEta, iEta, iPhi, BX_n)) + towerDatum |= 0x8000; + HcalTriggerPrimitiveSample sample(towerDatum); + HcalTrigTowerDetId id(cEta, cPhi); + id.setVersion(1); // To not process these 1x1 HF TPGs with RCT + HcalTriggerPrimitiveDigi tpg(id); + tpg.setSize(1); + tpg.setSample(0, sample); + hcalTPGs->push_back(tpg); + } + } + } + } + + void CaloLayer1Unpacker::makeRegions5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + L1CaloRegionCollection* regions, + uint32_t BX_n) { + for (uint32_t side = 0; side <= 1; side++) { + bool negativeEta = false; + if (side == 0) + negativeEta = true; + for (uint32_t region = 0; region <= 6; region++) { + uint32_t regionData = ctp7Data5BX.getRegionSummary(negativeEta, region, BX_n); + uint32_t lEta = 10 - region; // GCT eta goes 0-21, 0-3 -HF, 4-10 -B/E, 11-17 +B/E, 18-21 +HF + if (!negativeEta) + lEta = region + 11; + regions->push_back(L1CaloRegion((uint16_t)regionData, (unsigned)lEta, (unsigned)lPhi, (int16_t)0)); + } + } + } + } // namespace stage2 } // namespace l1t diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.h index d76d8634af205..05be11d48a291 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.h +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/CaloLayer1Unpacker.h @@ -4,6 +4,7 @@ #include "EventFilter/L1TRawToDigi/interface/Unpacker.h" #include "CaloLayer1Collections.h" #include "UCTCTP7RawData.h" +#include "UCTCTP7RawData5BX.h" namespace l1t { namespace stage2 { @@ -16,6 +17,19 @@ namespace l1t { void makeHCalTPGs(uint32_t lPhi, UCTCTP7RawData& ctp7Data, HcalTrigPrimDigiCollection* hcalTPGs); void makeHFTPGs(uint32_t lPhi, UCTCTP7RawData& ctp7Data, HcalTrigPrimDigiCollection* hcalTPGs); void makeRegions(uint32_t lPhi, UCTCTP7RawData& ctp7Data, L1CaloRegionCollection* regions); + void makeECalTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + EcalTrigPrimDigiCollection* ecalTPGs, + uint32_t BX_n); + void makeHCalTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + HcalTrigPrimDigiCollection* hcalTPGs, + uint32_t BX_n); + void makeHFTPGs5BX(uint32_t lPhi, + UCTCTP7RawData5BX& ctp7Data5BX, + HcalTrigPrimDigiCollection* hcalTPGs, + uint32_t BX_n); + void makeRegions5BX(uint32_t lPhi, UCTCTP7RawData5BX& ctp7Data5BX, L1CaloRegionCollection* regions, uint32_t BX_n); }; } // namespace stage2 } // namespace l1t diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h index c8a859858bbfb..669d85c7c63fc 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/UCTCTP7RawData5BX.h @@ -1,31 +1,31 @@ -#ifndef UCTCTP7RawData_hh -#define UCTCTP7RawData_hh +#ifndef UCTCTP7RawData5BX_hh +#define UCTCTP7RawData5BX_hh #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/MessageLogger/interface/MessageDrop.h" -class UCTCTP7RawData { +class UCTCTP7RawData5BX { public: enum CaloType { EBEE = 0, HBHE, HF }; // read-only constructor - UCTCTP7RawData(const uint32_t* d) : myDataPtr(d) { + UCTCTP7RawData5BX(const uint32_t* d) : myDataPtr(d) { if (myDataPtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "You gave me a nullptr :<"; + edm::LogError("UCTCTP7RawData5BX") << "You gave me a nullptr :<"; } } - // read-write constructor, caller must allocate 192*sizeof(uint32_t) bytes - UCTCTP7RawData(uint32_t* d) : myDataPtr(d), myDataWritePtr(d) { + // read-write constructor, caller must allocate 192*5*sizeof(uint32_t) bytes + UCTCTP7RawData5BX(uint32_t* d) : myDataPtr(d), myDataWritePtr(d) { if (myDataPtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "You gave me a nullptr :<"; + edm::LogError("UCTCTP7RawData5BX") << "You gave me a nullptr :<"; } } // No copy constructor and equality operator are needed - UCTCTP7RawData(const UCTCTP7RawData&) = delete; - const UCTCTP7RawData& operator=(const UCTCTP7RawData& i) = delete; + UCTCTP7RawData5BX(const UCTCTP7RawData5BX&) = delete; + const UCTCTP7RawData5BX& operator=(const UCTCTP7RawData5BX& i) = delete; - virtual ~UCTCTP7RawData() { ; } + virtual ~UCTCTP7RawData5BX() { ; } // Access functions for convenience @@ -33,48 +33,50 @@ class UCTCTP7RawData { uint32_t sof() { return myDataPtr[0]; } - size_t getIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t getIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { size_t index = 0; if (cType == EBEE || cType == HBHE) { if (iPhi > 3) { - edm::LogError("UCTCTP7RawData") << "Incorrect iPhi; iPhi = " << iPhi << "; should be in [0,3]"; + edm::LogError("UCTCTP7RawData5BX") << "Incorrect iPhi; iPhi = " << iPhi << "; should be in [0,3]"; return index; } if (cEta < 1 || cEta > 28) { - edm::LogError("UCTCTP7RawData") << "Incorrect caloEta; cEta = " << cEta << "; should be in [1-28]"; + edm::LogError("UCTCTP7RawData5BX") << "Incorrect caloEta; cEta = " << cEta << "; should be in [1-28]"; return index; } // ECAL/HB+HE fragment size is 3 32-bit words // Each fragment covers 2 eta and 4 phi towers // All four phi towers are in one 32-bit word // Even and odd eta are in neighboring 32-bit words - index = (((cEta - 1) / 2) * (3 + 3) + ((cEta - 1) % 2)); + // Now each fragment contains 5 BX instead of just 1 + // Here BX_n = 0, 1, 2, 3, 4, where 2 is nominal + index = (((cEta - 1) / 2) * (3 + 3) * 5 + ((cEta - 1) % 2)) + 3 * BX_n; // But, towers are arranged in a peculiar order for firmware // convenience - the index needs to be computing with these // if statements. This is brittle code that one should be // very careful with. if (negativeEta) { // Add offset for 6 ECAL and 6 HCAL fragments - index += (6 * (3 + 3)); + index += (6 * (3 + 3)) * 5; } else { if (cEta > 12) { // Add offset for 14 ECAL, 14 HB+HE and 2 HF fragments // Note that first six are included in the definition of // the variable - index // Note also that HF fragments are larger at 4 32-bit words - index += ((14 * (3 + 3) + (2 * 4))); + index += ((14 * (3 + 3) + (2 * 4))) * 5; } } // Data starts with ECAL towers so offset by 3 additional 32-bit words if (cType == HBHE) - index += 3; + index += 3 * 5; } else if (cType == HF) { if (iPhi > 1) { - edm::LogError("UCTCTP7RawData") << "HF iPhi should be 0 or 1 (for a , b) - invalid iPhi = " << iPhi; + edm::LogError("UCTCTP7RawData5BX") << "HF iPhi should be 0 or 1 (for a , b) - invalid iPhi = " << iPhi; return index; } if (cEta < 30 || cEta > 41) { - edm::LogError("UCTCTP7RawData") << "HF cEta should be between 30 and 41 - invalid cEta = " << cEta; + edm::LogError("UCTCTP7RawData5BX") << "HF cEta should be between 30 and 41 - invalid cEta = " << cEta; return index; } if (negativeEta) { @@ -82,33 +84,33 @@ class UCTCTP7RawData { // Offset by 6 positive eta and 14 negative eta EBEE/HBHE fragments (each 3 32-bit words) // There are four HF cEta towers packed in each 32-bit word // Add additional offset of 1 for (34-37) and 2 for (38-41) - index = 20 * (3 + 3) + ((cEta - 30) / 4); + index = 20 * (3 + 3) * 5 + ((cEta - 30) / 4) + 4 * BX_n; } else { // Additional HF a fragment offset for HF b channel - index = 20 * (3 + 3) + 1 * 4 + ((cEta - 30) / 4); + index = 20 * (3 + 3) * 5 + 1 * 4 * 5 + ((cEta - 30) / 4) + 4 * BX_n; } } else { if (iPhi == 0) { // Offset by all EBEE/HBHE and two HF fragments (4 32-bit words) - index = 2 * 14 * (3 + 3) + 2 * 4 + ((cEta - 30) / 4); + index = 2 * 14 * (3 + 3) * 5 + 2 * 4 * 5 + ((cEta - 30) / 4) + 4 * BX_n; } else { // Additional HF a fragment offset for HF b channel - index = 2 * 14 * (3 + 3) + 3 * 4 + ((cEta - 30) / 4); + index = 2 * 14 * (3 + 3) * 5 + 3 * 4 * 5 + ((cEta - 30) / 4) + 4 * BX_n; } } } else { - edm::LogError("UCTCTP7RawData") << "Unknown CaloType " << cType; + edm::LogError("UCTCTP7RawData5BX") << "Unknown CaloType " << cType; return index; } - if (index >= 192) { - edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + if (index >= 192 * 5) { + edm::LogError("UCTCTP7RawData5BX") << "Managed to calculate an out-of-bounds index, buyer beware"; } return index; } - size_t getFeatureIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { + size_t getFeatureIndex(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { // Get index into the data words for the tower - size_t index = getIndex(cType, negativeEta, cEta, iPhi); + size_t index = getIndex(cType, negativeEta, cEta, iPhi, BX_n); if (cType == EBEE || cType == HBHE) { // Two 32-bit words contain ET, so we should offset the index to // to the feature and link status bits @@ -134,24 +136,24 @@ class UCTCTP7RawData { index += (3 - ((cEta - 30) / 4)); if (index == 0) { // Since we sticth index-1, zero is also illegal - edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + edm::LogError("UCTCTP7RawData5BX") << "Managed to calculate an out-of-bounds index, buyer beware"; } } else { // Unknown calotype error already generated in getIndex() return 0; } - if (index >= 192) { - edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + if (index >= 192 * 5) { + edm::LogError("UCTCTP7RawData5BX") << "Managed to calculate an out-of-bounds index, buyer beware"; } return index; } - void setET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t et) { + void setET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t et, uint32_t BX_n) { if (myDataWritePtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + edm::LogError("UCTCTP7RawData5BX") << "I was made in read-only mode"; return; } - size_t index = getIndex(cType, negativeEta, cEta, iPhi); + size_t index = getIndex(cType, negativeEta, cEta, iPhi, BX_n); uint32_t& data = myDataWritePtr[index]; if (cType == HF) { // Pick out the correct 8-bits for the iEta chosen @@ -167,8 +169,8 @@ class UCTCTP7RawData { } } - uint32_t getET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - size_t index = getIndex(cType, negativeEta, cEta, iPhi); + uint32_t getET(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + size_t index = getIndex(cType, negativeEta, cEta, iPhi, BX_n); const uint32_t data = myDataPtr[index]; uint32_t et = 0xDEADBEEF; if (cType == HF) { @@ -185,15 +187,15 @@ class UCTCTP7RawData { return et; } - void setFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb) { + void setFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb, uint32_t BX_n) { if (myDataWritePtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + edm::LogError("UCTCTP7RawData5BX") << "I was made in read-only mode"; return; } if (cType == HF) { - setHFFeatureBits(negativeEta, cEta, iPhi, fb); + setHFFeatureBits(negativeEta, cEta, iPhi, fb, BX_n); } else { - size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi, BX_n); uint32_t& data = myDataWritePtr[index]; uint32_t tower = iPhi; @@ -204,12 +206,12 @@ class UCTCTP7RawData { } } - uint32_t getFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + uint32_t getFB(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi, BX_n); const uint32_t data = myDataPtr[index]; uint32_t fb = 0; if (cType == HF) { - fb = getHFFeatureBits(negativeEta, cEta, iPhi); + fb = getHFFeatureBits(negativeEta, cEta, iPhi, BX_n); } else { // Pick out the correct bit for the tower chosen uint32_t tower = iPhi; @@ -221,12 +223,12 @@ class UCTCTP7RawData { return fb; } - void setHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb) { + void setHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t fb, uint32_t BX_n) { if (myDataWritePtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + edm::LogError("UCTCTP7RawData5BX") << "I was made in read-only mode"; return; } - size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi); + size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi, BX_n); uint32_t shift = (cEta - 30) * 2; if (cEta == 41) shift = 20; // 41 occurs on b-fiber but shares the position of 40 @@ -239,8 +241,8 @@ class UCTCTP7RawData { } } - uint32_t getHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi) { - size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi); + uint32_t getHFFeatureBits(bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + size_t index = getFeatureIndex(HF, negativeEta, cEta, iPhi, BX_n); // Stitch together the top 8 bits from previous 32-bit word and bottom 14 bits from this word const uint32_t data = ((myDataPtr[index] & 0x3FFF) << 8) + (myDataPtr[index - 1] >> 24); uint32_t shift = (cEta - 30) * 2; @@ -249,50 +251,56 @@ class UCTCTP7RawData { return ((data >> shift) & 0x3); } - uint32_t getLinkStatus(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi); + uint32_t getLinkStatus(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + size_t index = getFeatureIndex(cType, negativeEta, cEta, iPhi, BX_n); const uint32_t data = myDataPtr[index]; return (data >> 16); } - size_t getSummaryIndex(bool negativeEta, uint32_t region) { - size_t index = 2 * 14 * (3 + 3) + 4 * 4 + (region / 2); + size_t getSummaryIndex(bool negativeEta, uint32_t region, uint32_t BX_n) { + size_t index = 2 * 14 * (3 + 3) * 5 + 4 * 4 * 5 + (region / 2) + 4 * BX_n; if (negativeEta) - index += 4; - if (index >= 192) { - edm::LogError("UCTCTP7RawData") << "Managed to calculate an out-of-bounds index, buyer beware"; + index += 4 * 5; + if (index >= 192 * 5) { + edm::LogError("UCTCTP7RawData5BX") << "Managed to calculate an out-of-bounds index, buyer beware"; } return index; } - void setRegionSummary(bool negativeEta, uint32_t region, uint32_t regionData) { + void setRegionSummary(bool negativeEta, uint32_t region, uint32_t regionData, uint32_t BX_n) { if (myDataWritePtr == nullptr) { - edm::LogError("UCTCTP7RawData") << "I was made in read-only mode"; + edm::LogError("UCTCTP7RawData5BX") << "I was made in read-only mode"; return; } - size_t index = getSummaryIndex(negativeEta, region); + size_t index = getSummaryIndex(negativeEta, region, BX_n); uint32_t& data = myDataWritePtr[index]; data |= (regionData & 0xFFFF) << (16 * (region % 2)); } - uint32_t getRegionSummary(bool negativeEta, uint32_t region) { - size_t index = getSummaryIndex(negativeEta, region); + uint32_t getRegionSummary(bool negativeEta, uint32_t region, uint32_t BX_n) { + size_t index = getSummaryIndex(negativeEta, region, BX_n); const uint32_t data = myDataPtr[index]; return ((data >> (16 * (region % 2))) & 0xFFFF); } - uint32_t getRegionET(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x3FF); } + uint32_t getRegionET(bool negativeEta, uint32_t region, uint32_t BX_n) { + return (getRegionSummary(negativeEta, region, BX_n) & 0x3FF); + } - bool getRegionEGVeto(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x0400); } + bool getRegionEGVeto(bool negativeEta, uint32_t region, uint32_t BX_n) { + return (getRegionSummary(negativeEta, region, BX_n) & 0x0400); + } - bool getRegionTauVeto(bool negativeEta, uint32_t region) { return (getRegionSummary(negativeEta, region) & 0x0800); } + bool getRegionTauVeto(bool negativeEta, uint32_t region, uint32_t BX_n) { + return (getRegionSummary(negativeEta, region, BX_n) & 0x0800); + } - uint32_t getRegionHitLocation(bool negativeEta, uint32_t region) { - return ((getRegionSummary(negativeEta, region) & 0xF000) >> 12); + uint32_t getRegionHitLocation(bool negativeEta, uint32_t region, uint32_t BX_n) { + return ((getRegionSummary(negativeEta, region, BX_n) & 0xF000) >> 12); } - bool isTowerMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + bool isTowerMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi, BX_n); uint32_t tower = iPhi; if ((cEta % 2) == 0) tower += 4; @@ -304,32 +312,32 @@ class UCTCTP7RawData { return ((linkStatus & (0x1 << tower)) != 0); } - bool isLinkMisaligned(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + bool isLinkMisaligned(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi, BX_n); if (cType == EBEE && (cEta == 17 || cEta == 21)) { return ((linkStatus & 0x00000100) != 0); } return ((linkStatus & 0x00001000) != 0); } - bool isLinkInError(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + bool isLinkInError(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi, BX_n); if (cType == EBEE && (cEta == 17 || cEta == 21)) { return ((linkStatus & 0x00000200) != 0); } return ((linkStatus & 0x00002000) != 0); } - bool isLinkDown(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + bool isLinkDown(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi, BX_n); if (cType == EBEE && (cEta == 17 || cEta == 21)) { return ((linkStatus & 0x00000400) != 0); } return ((linkStatus & 0x00004000) != 0); } - bool isLinkMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi) { - uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi); + bool isLinkMasked(CaloType cType, bool negativeEta, uint32_t cEta, uint32_t iPhi, uint32_t BX_n) { + uint32_t linkStatus = getLinkStatus(cType, negativeEta, cEta, iPhi, BX_n); if (cType == EBEE && (cEta == 17 || cEta == 21)) { return ((linkStatus & 0x00000800) != 0); } @@ -337,7 +345,7 @@ class UCTCTP7RawData { } private: - // Pointer to contiguous array of 192 values + // Pointer to contiguous array of 192*5 values // We assume instantiator of this class will gurantee that fact const uint32_t* myDataPtr; // == myDataPtr unless read-only From 8110a3b304c09201d805ece2af586733a7a14fea Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Wed, 1 Dec 2021 06:39:28 -0800 Subject: [PATCH 03/32] replace ttbar PU for 2017 with 2021 variant (10224->11834) in the short matrix --- Configuration/PyReleaseValidation/scripts/runTheMatrix.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py index 69d13ed783906..185164d43e20a 100755 --- a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py +++ b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py @@ -85,13 +85,13 @@ def runSelected(opt): 135.4, #Run 2 2015/2016 Zee ttbar fastsim 10042.0, #2017 ZMM 10024.0, #2017 ttbar - 10224.0, #2017 ttbar PU 10824.0, #2018 ttbar 2018.1, #2018 ttbar fastsim 11634.911, #2021 DD4hep ttbar reading geometry from XML 11634.914, #2021 DDD ttbar reading geometry from the DB 11634.0, #2021 ttbar (switching to DD4hep by default) 11634.7, #2021 ttbar mkFit + 11834.0, #2021 ttbar PU 12434.0, #2023 ttbar 23234.0, #2026D49 ttbar (HLT TDR baseline w/ HGCal v11) 28234.0, #2026D60 (exercise HF nose) From ea84b43e0c83358693cd0f53a75f466c9136b53c Mon Sep 17 00:00:00 2001 From: Tamas Date: Tue, 7 Dec 2021 01:33:19 +0100 Subject: [PATCH 04/32] es get() migration of L1CondDBPayloadWriter and L1CondDBPayloadWriterExt --- .../plugins/L1CondDBPayloadWriter.cc | 6 +-- .../plugins/L1CondDBPayloadWriterExt.cc | 52 ++++++++++++++++--- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/CondTools/L1Trigger/plugins/L1CondDBPayloadWriter.cc b/CondTools/L1Trigger/plugins/L1CondDBPayloadWriter.cc index b83618cd9ba3e..7586c67697982 100644 --- a/CondTools/L1Trigger/plugins/L1CondDBPayloadWriter.cc +++ b/CondTools/L1Trigger/plugins/L1CondDBPayloadWriter.cc @@ -45,10 +45,8 @@ L1CondDBPayloadWriter::L1CondDBPayloadWriter(const edm::ParameterSet& iConfig) m_writeConfigData(iConfig.getParameter("writeConfigData")), m_overwriteKeys(iConfig.getParameter("overwriteKeys")), m_logTransactions(iConfig.getParameter("logTransactions")), - m_newL1TriggerKeyList(iConfig.getParameter("newL1TriggerKeyList")) { - //now do what ever initialization is needed - l1TriggerKeyToken_ = esConsumes(); -} + m_newL1TriggerKeyList(iConfig.getParameter("newL1TriggerKeyList")), + l1TriggerKeyToken_(esConsumes()) {} L1CondDBPayloadWriter::~L1CondDBPayloadWriter() { // do anything here that needs to be done at desctruction time diff --git a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc b/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc index 1449d7cc80ea1..bad02d46aef30 100644 --- a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc +++ b/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc @@ -1,21 +1,59 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h" - #include "CondFormats/L1TObjects/interface/L1TriggerKeyExt.h" #include "CondFormats/DataRecord/interface/L1TriggerKeyExtRcd.h" #include "CondFormats/L1TObjects/interface/L1TriggerKeyListExt.h" #include "CondFormats/DataRecord/interface/L1TriggerKeyListExtRcd.h" +#include + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "CondTools/L1TriggerExt/interface/DataWriterExt.h" + +class L1CondDBPayloadWriterExt : public edm::one::EDAnalyzer<> { +public: + explicit L1CondDBPayloadWriterExt(const edm::ParameterSet&); + ~L1CondDBPayloadWriterExt() override; + +private: + void beginJob() override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + void endJob() override; + + // ----------member data --------------------------- + l1t::DataWriterExt m_writer; + // std::string m_tag ; // tag is known by PoolDBOutputService + + // set to false to write config data without valid TSC key + bool m_writeL1TriggerKeyExt; + + // set to false to write config data only + bool m_writeConfigData; + + // substitute new payload tokens for existing keys in L1TriggerKeyListExt + bool m_overwriteKeys; + + bool m_logTransactions; + + // if true, do not retrieve L1TriggerKeyListExt from EventSetup + bool m_newL1TriggerKeyListExt; + + // Token to access L1TriggerKeyExt data in the event setup + edm::ESGetToken theL1TriggerKeyExtToken_; +}; + L1CondDBPayloadWriterExt::L1CondDBPayloadWriterExt(const edm::ParameterSet& iConfig) : m_writeL1TriggerKeyExt(iConfig.getParameter("writeL1TriggerKeyExt")), m_writeConfigData(iConfig.getParameter("writeConfigData")), m_overwriteKeys(iConfig.getParameter("overwriteKeys")), m_logTransactions(iConfig.getParameter("logTransactions")), - m_newL1TriggerKeyListExt(iConfig.getParameter("newL1TriggerKeyListExt")) { - //now do what ever initialization is needed - key_token = esConsumes(); -} + m_newL1TriggerKeyListExt(iConfig.getParameter("newL1TriggerKeyListExt")), + theL1TriggerKeyExtToken_(esConsumes()) {} L1CondDBPayloadWriterExt::~L1CondDBPayloadWriterExt() { // do anything here that needs to be done at desctruction time @@ -46,7 +84,7 @@ void L1CondDBPayloadWriterExt::analyze(const edm::Event& iEvent, const edm::Even bool triggerKeyOK = true; try { // Get L1TriggerKeyExt - key = iSetup.get().get(key_token); + key = iSetup.getData(theL1TriggerKeyExtToken_); if (!m_overwriteKeys) { triggerKeyOK = oldKeyList.token(key.tscKey()).empty(); } From e9025cb558e1849300f0aa9e4a31ee9547e1b54f Mon Sep 17 00:00:00 2001 From: Tamas Date: Tue, 7 Dec 2021 14:20:55 +0100 Subject: [PATCH 05/32] Remove L1CondDBPayloadWriterExt.h --- .../plugins/L1CondDBPayloadWriterExt.h | 52 ------------------- 1 file changed, 52 deletions(-) delete mode 100644 CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h diff --git a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h b/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h deleted file mode 100644 index 062c7e1aa11d8..0000000000000 --- a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CondTools_L1TriggerExt_L1CondDBPayloadWriterExt_h -#define CondTools_L1TriggerExt_L1CondDBPayloadWriterExt_h -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "FWCore/Utilities/interface/ESGetToken.h" - -#include "CondTools/L1TriggerExt/interface/DataWriterExt.h" - -#include "CondFormats/L1TObjects/interface/L1TriggerKeyExt.h" -#include "CondFormats/DataRecord/interface/L1TriggerKeyExtRcd.h" - -class L1CondDBPayloadWriterExt : public edm::one::EDAnalyzer<> { -public: - explicit L1CondDBPayloadWriterExt(const edm::ParameterSet&); - ~L1CondDBPayloadWriterExt() override; - -private: - void beginJob() override; - void analyze(const edm::Event&, const edm::EventSetup&) override; - void endJob() override; - - // ----------member data --------------------------- - l1t::DataWriterExt m_writer; - // std::string m_tag ; // tag is known by PoolDBOutputService - - // token to access object key - edm::ESGetToken key_token; - - // set to false to write config data without valid TSC key - bool m_writeL1TriggerKeyExt; - - // set to false to write config data only - bool m_writeConfigData; - - // substitute new payload tokens for existing keys in L1TriggerKeyListExt - bool m_overwriteKeys; - - bool m_logTransactions; - - // if true, do not retrieve L1TriggerKeyListExt from EventSetup - bool m_newL1TriggerKeyListExt; -}; - -#endif From 0e1479a9a6ca403b96db2b4fc5c760640bb65ab6 Mon Sep 17 00:00:00 2001 From: Tamas Date: Tue, 7 Dec 2021 16:38:04 +0100 Subject: [PATCH 06/32] Remove L1TriggerExt from SealModule --- CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc | 2 +- CondTools/L1TriggerExt/plugins/SealModule.cc | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc b/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc index bad02d46aef30..2ce081edc7484 100644 --- a/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc +++ b/CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.cc @@ -180,4 +180,4 @@ void L1CondDBPayloadWriterExt::beginJob() {} void L1CondDBPayloadWriterExt::endJob() {} //define this as a plug-in -//DEFINE_FWK_MODULE(L1CondDBPayloadWriterExt); +DEFINE_FWK_MODULE(L1CondDBPayloadWriterExt); diff --git a/CondTools/L1TriggerExt/plugins/SealModule.cc b/CondTools/L1TriggerExt/plugins/SealModule.cc index c70f0c4ad507b..998706376abc8 100644 --- a/CondTools/L1TriggerExt/plugins/SealModule.cc +++ b/CondTools/L1TriggerExt/plugins/SealModule.cc @@ -1,5 +1,4 @@ #include "FWCore/Framework/interface/MakerMacros.h" -#include "CondTools/L1TriggerExt/plugins/L1CondDBPayloadWriterExt.h" #include "CondTools/L1TriggerExt/plugins/L1CondDBIOVWriterExt.h" #include "CondTools/L1TriggerExt/plugins/L1TriggerKeyDummyProdExt.h" #include "CondTools/L1TriggerExt/plugins/L1TriggerKeyListDummyProdExt.h" @@ -8,7 +7,6 @@ using namespace l1t; -DEFINE_FWK_MODULE(L1CondDBPayloadWriterExt); DEFINE_FWK_MODULE(L1CondDBIOVWriterExt); DEFINE_FWK_EVENTSETUP_MODULE(L1TriggerKeyDummyProdExt); DEFINE_FWK_EVENTSETUP_MODULE(L1TriggerKeyListDummyProdExt); From a06c806327c4f153b784da0b2a5ec897fe49fe5b Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Sat, 11 Dec 2021 02:25:59 +0100 Subject: [PATCH 07/32] Add exception for undefined materials --- .../DDCMS/interface/DDParsingContext.h | 2 - .../plugins/dd4hep/DDDefinitions2Objects.cc | 58 +------------------ 2 files changed, 2 insertions(+), 58 deletions(-) diff --git a/DetectorDescription/DDCMS/interface/DDParsingContext.h b/DetectorDescription/DDCMS/interface/DDParsingContext.h index 66acb4b1f2d0e..650cf56d4aec7 100644 --- a/DetectorDescription/DDCMS/interface/DDParsingContext.h +++ b/DetectorDescription/DDCMS/interface/DDParsingContext.h @@ -20,7 +20,6 @@ namespace cms { rotations.reserve(3000); shapes.reserve(4000); volumes.reserve(3000); - unresolvedMaterials.reserve(300); unresolvedVectors.reserve(300); unresolvedShapes.reserve(1000); @@ -84,7 +83,6 @@ namespace cms { std::unordered_map volumes; std::vector namespaces; - std::unordered_map> unresolvedMaterials; std::vector> compMaterialsVec; std::unordered_map> compMaterialsRefs; std::unordered_map> unresolvedVectors; diff --git a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc index 50bcb9ba9f363..31dc42f6be674 100644 --- a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc +++ b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc @@ -626,14 +626,8 @@ void Converter::operator()(xml_h element) const { continue; } - printout(ns.context()->debug_materials ? ALWAYS : WARNING, - "DD4CMS Warning", - "+++ Composite material \"%s\" [nor \"%s\"] not present! [delay resolution]", - fracname.c_str(), - ns.prepend(fracname).c_str()); - - ns.context()->unresolvedMaterials[nam].emplace_back( - cms::DDParsingContext::CompositeMaterial(ns.prepend(fracname), fraction)); + throw std::runtime_error("DD4CMS Exception -- Composite material \"" + fracname + "\" or \"" + + ns.prepend(fracname) + "\" not yet defined."); } mix->SetTemperature(ns.context()->description.stdConditions().temperature); mix->SetPressure(ns.context()->description.stdConditions().pressure); @@ -2219,54 +2213,6 @@ static long load_dddefinition(Detector& det, xml_h element) { print_doc((doc = d).root()); xml_coll_t(d.root(), DD_CMU(MaterialSection)).for_each(Converter(det, &context)); } - { - PrintLevel printLvl(DEBUG); - if (!context.unresolvedMaterials.empty()) - printLvl = WARNING; - printout(context.debug_materials ? ALWAYS : printLvl, - "DD4CMS", - "+++ RESOLVING %ld unknown material constituents.....", - context.unresolvedMaterials.size()); - - // Resolve referenced materials (if any) - - while (!context.unresolvedMaterials.empty()) { - for (auto it = context.unresolvedMaterials.begin(); it != context.unresolvedMaterials.end();) { - auto const& name = it->first; - std::vector valid; - - printout(context.debug_materials ? ALWAYS : WARNING, - "DD4CMS", - "+++ [%06ld] ---------- %s", - context.unresolvedMaterials.size(), - name.c_str()); - - auto mat = ns.material(name); - for (auto& mit : it->second) { - printout(context.debug_materials ? ALWAYS : WARNING, - "DD4CMS", - "+++ component %-48s Fraction: %.6f", - mit.name.c_str(), - mit.fraction); - auto fmat = ns.material(mit.name); - if (nullptr != fmat.ptr()) { - if (mat.ptr()->GetMaterial()->IsMixture()) { - valid.emplace_back(true); - static_cast(mat.ptr()->GetMaterial()) - ->AddElement(fmat.ptr()->GetMaterial(), mit.fraction); - } - } - } - // All components are resolved - if (valid.size() == it->second.size()) - it = context.unresolvedMaterials.erase(it); - else - ++it; - } - // Do it again if there are unresolved - // materials left after this pass - } - } if (open_geometry) { det.init(); ns.addVolume(det.worldVolume()); From 56a0f257cf1910ed229d26270ea84bcd92acc4a6 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Tue, 14 Dec 2021 00:57:39 +0100 Subject: [PATCH 08/32] Correct material ordering --- Configuration/Geometry/python/dict2026Geometry.py | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D77.xml | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D83.xml | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D84.xml | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D85.xml | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D86.xml | 2 +- .../CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D88.xml | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D77XML_cfi.py | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D83XML_cfi.py | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D84XML_cfi.py | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D85XML_cfi.py | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D86XML_cfi.py | 2 +- .../CMSCommonData/python/cmsExtendedGeometry2026D88XML_cfi.py | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Configuration/Geometry/python/dict2026Geometry.py b/Configuration/Geometry/python/dict2026Geometry.py index 970818d3c7c08..e680100dfc03a 100644 --- a/Configuration/Geometry/python/dict2026Geometry.py +++ b/Configuration/Geometry/python/dict2026Geometry.py @@ -322,8 +322,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D77.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D77.xml index fc661fcbc2165..6d25c1a955d77 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D77.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D77.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D83.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D83.xml index 0476eac441449..4e4939b5af993 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D83.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D83.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D84.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D84.xml index 12bfe6e3dbd44..877b19f178729 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D84.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D84.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D85.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D85.xml index 00ab044d439f3..4356432df0106 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D85.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D85.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D86.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D86.xml index 6108fd5a282eb..ab3140052b31d 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D86.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D86.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D88.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D88.xml index fee515f1ac7fa..b202e469fa73c 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D88.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D88.xml @@ -28,8 +28,8 @@ - + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D77XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D77XML_cfi.py index bbeba51cc9d88..468298ce45fb3 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D77XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D77XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D83XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D83XML_cfi.py index a85715ca494f8..b14366f81c55a 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D83XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D83XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D84XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D84XML_cfi.py index e0d67dfec28d1..86e2bff4bc2e6 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D84XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D84XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D85XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D85XML_cfi.py index 2f537d8ec7988..506aaec86bb6e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D85XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D85XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D86XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D86XML_cfi.py index 9cda328bc4724..5bedc1b5aa97e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D86XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D86XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D88XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D88XML_cfi.py index 3d6bb5b808242..3493841b351d7 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D88XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D88XML_cfi.py @@ -29,8 +29,8 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', From 67b311f986bbcf8967ed7e327f14a6cb26f43f44 Mon Sep 17 00:00:00 2001 From: idas Date: Tue, 14 Dec 2021 11:02:55 +0100 Subject: [PATCH 09/32] Ready to make PR --- .../plugins/HGCalSimHitValidation.cc | 245 +++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc index 1459e75b40693..ff4ea5ec0b21f 100644 --- a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc @@ -84,6 +84,21 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { bool defineGeometry(const DDCompactView* ddViewH); bool defineGeometry(const cms::DDCompactView* ddViewH); + TH1F* createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX = true); + void histoSetting(TH1F*& histo, + const char* xTitle, + const char* yTitle = "", + Color_t lineColor = kBlack, + Color_t markerColor = kBlack, + int linewidth = 1); + void histoSetting(TH2F*& histo, + const char* xTitle, + const char* yTitle = "", + Color_t lineColor = kBlack, + Color_t markerColor = kBlack, + int linewidth = 1); + void fillMuonTomoHistos(int partialType, std::pair hit_); + // ----------member data --------------------------- const std::string nameDetector_, caloHitSource_; const HGCalDDDConstants* hgcons_; @@ -105,6 +120,10 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { MonitorElement *MeanHitOccupancy_Plus_, *MeanHitOccupancy_Minus_; static const unsigned int maxTime_ = 6; std::vector energy_[maxTime_]; + std::vector energyFWF_, energyFWCN_, energyFWCK_; + std::vector energyPWF_, energyPWCN_, energyPWCK_; + std::vector hitXYFWF_, hitXYFWCN_, hitXYFWCK_, hitXYB_; + std::vector hitXYPWF_, hitXYPWCN_, hitXYPWCK_; unsigned int nTimes_; }; @@ -273,6 +292,13 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { energysum esum = (*itr).second.second; int layer = hinfo.layer; double eta = hinfo.eta; + int type, part, orient; + int partialType = -1; + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + HGCSiliconDetId detId = HGCSiliconDetId((*itr).first); + std::tie(type, part, orient) = hgcons_->waferType(detId); + partialType = part; + } for (unsigned int itimeslice = 0; itimeslice < nTimes_; itimeslice++) { fillHitsInfo((*itr).second, itimeslice, esum.eTime[itimeslice]); @@ -282,6 +308,8 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { fillOccupancyMap(OccupancyMap_plus, layer); else fillOccupancyMap(OccupancyMap_minus, layer); + + fillMuonTomoHistos(partialType, (*itr).second); } if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << "With map:used:total " << hits.size() << "|" << nused << "|" @@ -324,6 +352,67 @@ void HGCalSimHitValidation::fillHitsInfo(std::pair hits, un } } +void HGCalSimHitValidation::fillMuonTomoHistos(int partialType, std::pair hits) { + hitsinfo hinfo = hits.first; + energysum esum = hits.second; + double edep = + esum.eTime[0] * CLHEP::GeV / + CLHEP::keV; //index 0 and 1 corresponds to 25 ns and 1000 ns, respectively. In addititon, chaging energy loss unit to keV. + + unsigned int ilayer = hinfo.layer; + double x = hinfo.x * CLHEP::mm / CLHEP::cm; // chaging length unit to cm. + double y = hinfo.y * CLHEP::mm / CLHEP::cm; + if (ilayer < layers_) { + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + // Fill the energy loss histograms for MIP + if (!TMath::AreEqualAbs(edep, 0.0, 1.e-5)) { //to avoid peak at zero due Eloss less than 10 mili eV. + if (hinfo.type == HGCSiliconDetId::HGCalFine) { + if (partialType == 0) + energyFWF_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWF_.at(ilayer)->Fill(edep); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) { + if (partialType == 0) + energyFWCN_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWCN_.at(ilayer)->Fill(edep); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) { + if (partialType == 0) + energyFWCK_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWCK_.at(ilayer)->Fill(edep); + } + } + + // Fill the XY distribution of detector hits + if (hinfo.type == HGCSiliconDetId::HGCalFine) { + if (partialType == 0) + hitXYFWF_.at(ilayer)->Fill(x, y); + if (partialType > 0) + hitXYPWF_.at(ilayer)->Fill(x, y); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) { + if (partialType == 0) + hitXYFWCN_.at(ilayer)->Fill(x, y); + if (partialType > 0) + hitXYPWCN_.at(ilayer)->Fill(x, y); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) { + if (partialType == 0) + hitXYFWCK_.at(ilayer)->Fill(x, y); + if (partialType > 0) + hitXYPWCK_.at(ilayer)->Fill(x, y); + } + + } //is Silicon + if (nameDetector_ == "HGCalHEScintillatorSensitive") { + hitXYB_.at(ilayer)->Fill(x, y); + } //is Scintillator + } //layer condition +} + bool HGCalSimHitValidation::defineGeometry(const DDCompactView* ddViewH) { if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << "Initialize HGCalDDDConstants (DDD) for " << nameDetector_ << " : " @@ -462,13 +551,167 @@ void HGCalSimHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const histoname.str(""); histoname << "energy_time_" << itimeslice << "_layer_" << istr1; energy_[itimeslice].push_back(iB.book1D(histoname.str().c_str(), "energy_", 100, 0, 0.1)); + // TH1F *hEdep = createHisto(histoname.str(), 1000, -3, 6, true); + // histoSetting(hEdep, "Eloss (keV)"); + // energy_[itimeslice].push_back(iB.book1D(histoname.str().c_str(), hEdep)); + // hEdep->Delete(); } - } + ///////////// Histograms for Energy loss in full wafers//////////// + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + histoname.str(""); + histoname << "energy_FullWafer_Fine_layer_" << istr1; + TH1F* hEdepFWF = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepFWF, "Eloss (keV)", "", kRed, kRed, 2); + energyFWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWF)); + hEdepFWF->Delete(); + + histoname.str(""); + histoname << "energy_FullWafer_CoarseThin_layer_" << istr1; + TH1F* hEdepFWCN = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepFWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); + energyFWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCN)); + hEdepFWCN->Delete(); + + histoname.str(""); + histoname << "energy_FullWafer_CoarseThick_layer_" << istr1; + TH1F* hEdepFWCK = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepFWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); + energyFWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCK)); + hEdepFWCK->Delete(); + } + + /////////////////////////////////////////////////////////////////// + + ///////////// Histograms for Energy loss in partial wafers//////////// + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + histoname.str(""); + histoname << "energy_PartialWafer_Fine_layer_" << istr1; + TH1F* hEdepPWF = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepPWF, "Eloss (keV)", "", kRed, kRed, 2); + energyPWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWF)); + hEdepPWF->Delete(); + + histoname.str(""); + histoname << "energy_PartialWafer_CoarseThin_layer_" << istr1; + TH1F* hEdepPWCN = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepPWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); + energyPWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCN)); + hEdepPWCN->Delete(); + + histoname.str(""); + histoname << "energy_PartialWafer_CoarseThick_layer_" << istr1; + TH1F* hEdepPWCK = createHisto(histoname.str(), 1000, -3, 6); + histoSetting(hEdepPWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); + energyPWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCK)); + hEdepPWCK->Delete(); + } + /////////////////////////////////////////////////////////////////// + + ///////////// Histograms for the XY distribution of fired cells/scintillator tiles /////////////// + //Please note that TH2F is placeholder till TGraph Option available in DQMStore.h" + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + histoname.str(""); + histoname << "hitXY_FullWafer_Fine_layer_" << istr1; + TH2F* hitXYFWF = new TH2F( + Form("hitXYFWF_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYFWF, "x (cm)", "y (cm)", kRed, kRed); + hitXYFWF_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWF)); + hitXYFWF->Delete(); + + histoname.str(""); + histoname << "hitXY_FullWafer_CoarseThin_layer_" << istr1; + TH2F* hitXYFWCN = new TH2F( + Form("hitXYFWCN_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYFWCN, "x (cm)", "y (cm)", kGreen + 1, kGreen + 1); + hitXYFWCN_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCN)); + hitXYFWCN->Delete(); + + histoname.str(""); + histoname << "hitXY_FullWafer_CoarseThick_layer_" << istr1; + TH2F* hitXYFWCK = new TH2F( + Form("hitXYFWCK_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYFWCK, "x (cm)", "y (cm)", kMagenta, kMagenta); + hitXYFWCK_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCK)); + hitXYFWCK->Delete(); + + histoname.str(""); + histoname << "hitXY_PartialWafer_Fine_layer_" << istr1; + TH2F* hitXYPWF = new TH2F( + Form("hitXYPWF_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYPWF, "x (cm)", "y (cm)", kRed, kRed); + hitXYPWF_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWF)); + hitXYPWF->Delete(); + + histoname.str(""); + histoname << "hitXY_PartialWafer_CoarseThin_layer_" << istr1; + TH2F* hitXYPWCN = new TH2F( + Form("hitXYPWCN_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYPWCN, "x (cm)", "y (cm)", kGreen + 1, kGreen + 1); + hitXYPWCN_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWCN)); + hitXYPWCN->Delete(); + + histoname.str(""); + histoname << "hitXY_PartialWafer_CoarseThick_layer_" << istr1; + TH2F* hitXYPWCK = new TH2F( + Form("hitXYPWCK_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYPWCK, "x (cm)", "y (cm)", kMagenta, kMagenta); + hitXYPWCK_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWCK)); + hitXYPWCK->Delete(); + } + + if (nameDetector_ == "HGCalHEScintillatorSensitive") { + histoname.str(""); + histoname << "hitXY_Scintillator_layer_" << istr1; + TH2F* hitXYB = new TH2F( + Form("hitXYB_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); + histoSetting(hitXYB, "x (cm)", "y (cm)", kBlue, kBlue); + hitXYB_.push_back(iB.book2D(histoname.str().c_str(), hitXYB)); + hitXYB->Delete(); + } + ////////////////////////////////////////////////////////////////////////////////////////////////// + } MeanHitOccupancy_Plus_ = iB.book1D("MeanHitOccupancy_Plus", "MeanHitOccupancy_Plus", layers_, 0.5, layers_ + 0.5); MeanHitOccupancy_Minus_ = iB.book1D("MeanHitOccupancy_Minus", "MeanHitOccupancy_Minus", layers_, 0.5, layers_ + 0.5); } +TH1F* HGCalSimHitValidation::createHisto( + std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX) { + TH1F* hist = nullptr; + if (isLogX) { + Double_t xbins[nbins + 1]; + double dx = (maxIndexX - minIndexX) / nbins; + for (int i = 0; i <= nbins; i++) { + xbins[i] = TMath::Power(10, (minIndexX + i * dx)); + } + hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, xbins); + } else { + hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, minIndexX, maxIndexX); + } + return hist; +} + +void HGCalSimHitValidation::histoSetting( + TH1F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { + histo->SetStats(); + histo->SetLineColor(lineColor); + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor); + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); +} + +void HGCalSimHitValidation::histoSetting( + TH2F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { + histo->SetStats(); + histo->SetLineColor(lineColor); + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor); + histo->SetMarkerStyle(kFullCircle); + histo->SetMarkerSize(0.6); + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); +} #include "FWCore/Framework/interface/MakerMacros.h" //define this as a plug-in DEFINE_FWK_MODULE(HGCalSimHitValidation); From cb75639ec324926b6d10cbe1f7f66b02eeece6ac Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 14 Dec 2021 15:12:20 +0100 Subject: [PATCH 10/32] Add the demonstration chamber of RPC for the Run3 scenario --- .../muonNumbering/2021/v5/muonNumbering.xml | 502 ++++++++++++++ .../MuonCommonData/data/rpcf/2021/v1/rpcf.xml | 618 ++++++++++++++++++ .../python/testExtendedGeometry2021XML_cfi.py | 11 +- .../muonProdCuts/2021/v3/muonProdCuts.xml | 6 +- .../muonProdCuts/2021/v4/muonProdCuts.xml | 71 ++ .../data/muonSens/2021/v2/muonSens.xml | 50 ++ .../data/{ => muonSens/2021}/v3/muonSens.xml | 0 .../data/muonSens/2021/v4/muonSens.xml | 40 ++ .../data/2021/v1/RPCSpecs.xml | 142 ++++ 9 files changed, 1430 insertions(+), 10 deletions(-) create mode 100644 Geometry/MuonCommonData/data/muonNumbering/2021/v5/muonNumbering.xml create mode 100644 Geometry/MuonCommonData/data/rpcf/2021/v1/rpcf.xml create mode 100644 Geometry/MuonSimData/data/muonProdCuts/2021/v4/muonProdCuts.xml create mode 100644 Geometry/MuonSimData/data/muonSens/2021/v2/muonSens.xml rename Geometry/MuonSimData/data/{ => muonSens/2021}/v3/muonSens.xml (100%) create mode 100644 Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml create mode 100644 Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml diff --git a/Geometry/MuonCommonData/data/muonNumbering/2021/v5/muonNumbering.xml b/Geometry/MuonCommonData/data/muonNumbering/2021/v5/muonNumbering.xml new file mode 100644 index 0000000000000..061de23ecd2f6 --- /dev/null +++ b/Geometry/MuonCommonData/data/muonNumbering/2021/v5/muonNumbering.xml @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/rpcf/2021/v1/rpcf.xml b/Geometry/MuonCommonData/data/rpcf/2021/v1/rpcf.xml new file mode 100644 index 0000000000000..c6b3b84410810 --- /dev/null +++ b/Geometry/MuonCommonData/data/rpcf/2021/v1/rpcf.xml @@ -0,0 +1,618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/python/testExtendedGeometry2021XML_cfi.py b/Geometry/MuonCommonData/python/testExtendedGeometry2021XML_cfi.py index fa847a00f35f8..20e3b5d31e6a0 100644 --- a/Geometry/MuonCommonData/python/testExtendedGeometry2021XML_cfi.py +++ b/Geometry/MuonCommonData/python/testExtendedGeometry2021XML_cfi.py @@ -1,8 +1,5 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2021Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v3/materials.xml', @@ -244,7 +241,7 @@ 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2015/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2021/v1/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/2021/v1/gem21.xml', @@ -252,7 +249,7 @@ 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', )+ cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/2021/v4/muonNumbering.xml', + 'Geometry/MuonCommonData/data/muonNumbering/2021/v5/muonNumbering.xml', 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', @@ -360,11 +357,11 @@ 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', - 'Geometry/MuonSimData/data/v3/muonSens.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', diff --git a/Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml b/Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml index 6fa75a488e218..8d5c5b1c94157 100644 --- a/Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml +++ b/Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml @@ -20,8 +20,10 @@ - + + + @@ -54,10 +56,8 @@ - - diff --git a/Geometry/MuonSimData/data/muonProdCuts/2021/v4/muonProdCuts.xml b/Geometry/MuonSimData/data/muonProdCuts/2021/v4/muonProdCuts.xml new file mode 100644 index 0000000000000..094f7ddf1b49d --- /dev/null +++ b/Geometry/MuonSimData/data/muonProdCuts/2021/v4/muonProdCuts.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/muonSens/2021/v2/muonSens.xml b/Geometry/MuonSimData/data/muonSens/2021/v2/muonSens.xml new file mode 100644 index 0000000000000..0529c79b68a2f --- /dev/null +++ b/Geometry/MuonSimData/data/muonSens/2021/v2/muonSens.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/v3/muonSens.xml b/Geometry/MuonSimData/data/muonSens/2021/v3/muonSens.xml similarity index 100% rename from Geometry/MuonSimData/data/v3/muonSens.xml rename to Geometry/MuonSimData/data/muonSens/2021/v3/muonSens.xml diff --git a/Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml b/Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml new file mode 100644 index 0000000000000..fbb56169c469c --- /dev/null +++ b/Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml b/Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml new file mode 100644 index 0000000000000..0cf4342d56464 --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 81f9403cf7927b76e72a624820d9e11158fc3683 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 15 Dec 2021 01:45:05 +0100 Subject: [PATCH 11/32] Extend cutParser exception message temporarily to help debugging --- CommonTools/Utils/src/MethodSetter.cc | 20 ++++++++++++++++---- CommonTools/Utils/src/cutParser.cc | 3 ++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CommonTools/Utils/src/MethodSetter.cc b/CommonTools/Utils/src/MethodSetter.cc index 9fadeaf248579..50335efeb5db0 100644 --- a/CommonTools/Utils/src/MethodSetter.cc +++ b/CommonTools/Utils/src/MethodSetter.cc @@ -120,10 +120,22 @@ bool MethodSetter::push(const string& name, const vector& arg if (!bool(member)) { // Not a data member either, fatal error, throw. switch (error) { - case reco::parser::kNameDoesNotExist: - throw Exception(begin) << "no method or data member named \"" << name << "\" found for type \"" << type.name() - << "\""; - break; + case reco::parser::kNameDoesNotExist: { + Exception ex(begin); + ex << "no method or data member named \"" << name << "\" found for type \"" << type.name() << "\"\n"; + // The following information is for temporary debugging only, intended to be removed later + ex << "It has the following methods\n"; + edm::TypeFunctionMembers functions(type); + for (auto const& f : functions) { + ex << " " << f->GetName() << "\n"; + } + ex << "and the following data members\n"; + edm::TypeDataMembers members(type); + for (auto const& m : members) { + ex << " " << m->GetName() << "\n"; + } + throw ex; + } break; case reco::parser::kIsNotPublic: throw Exception(begin) << "data member named \"" << name << "\" for type \"" << type.name() << "\" is not publically accessible."; diff --git a/CommonTools/Utils/src/cutParser.cc b/CommonTools/Utils/src/cutParser.cc index 2b22c19acd471..aa8e387035776 100644 --- a/CommonTools/Utils/src/cutParser.cc +++ b/CommonTools/Utils/src/cutParser.cc @@ -24,7 +24,8 @@ bool reco::parser::cutParser(const edm::TypeWithDict& t, const std::string& cut, returnValue = parse(startingFrom, grammar.use_parser<0>() >> end_p, space_p).full; } catch (BaseException& e) { throw edm::Exception(edm::errors::Configuration) - << "Cut parser error:" << baseExceptionWhat(e) << " (char " << e.where - startingFrom << ")\n"; + << "Cut parser error:" << baseExceptionWhat(e) << " (char " << e.where - startingFrom << ")\n" + << "Cut string was " << cut; } return returnValue; } From 0551af9f6ef233a7ba2b0c8f92f62aa6216b4488 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Wed, 15 Dec 2021 02:08:19 +0100 Subject: [PATCH 12/32] Update units tests to use correctly ordered materials --- .../DDCMS/data/cms-test-ddangular-algorithm.xml | 2 +- .../DDCMS/data/cms-test-ddvectors.xml | 2 +- .../DDCMS/data/cms-test-shapes.xml | 2 +- .../DDCMS/data/cms-test-tree-navigation.xml | 2 +- .../plugins/dd4hep/DDDefinitions2Objects.cc | 5 +++-- .../data/cms-test-ddgemangular-algorithm.xml | 2 +- .../data/cms-test-muon-geometry-2015.xml | 2 +- .../cms-test-ddcuttubsfrompoints-algorithm.xml | 2 +- .../cms-test-ddpixbarlayerupgrade-algorithm.xml | 16 ++++++++-------- .../data/cms-test-ddpixfwddisk-algo.xml | 2 +- .../data/cms-test-ddpixphase1fwddisk-algo.xml | 2 +- .../data/cms-test-ddtidaxialcable-algorithm.xml | 2 +- 12 files changed, 21 insertions(+), 20 deletions(-) diff --git a/DetectorDescription/DDCMS/data/cms-test-ddangular-algorithm.xml b/DetectorDescription/DDCMS/data/cms-test-ddangular-algorithm.xml index 321ba09c74f1b..dfec3319d9804 100644 --- a/DetectorDescription/DDCMS/data/cms-test-ddangular-algorithm.xml +++ b/DetectorDescription/DDCMS/data/cms-test-ddangular-algorithm.xml @@ -32,7 +32,7 @@ - + diff --git a/DetectorDescription/DDCMS/data/cms-test-ddvectors.xml b/DetectorDescription/DDCMS/data/cms-test-ddvectors.xml index af2b09a13c764..25c16244a4cdd 100644 --- a/DetectorDescription/DDCMS/data/cms-test-ddvectors.xml +++ b/DetectorDescription/DDCMS/data/cms-test-ddvectors.xml @@ -29,7 +29,7 @@ - + diff --git a/DetectorDescription/DDCMS/data/cms-test-shapes.xml b/DetectorDescription/DDCMS/data/cms-test-shapes.xml index 2a0b4f0aa7f6d..6b86c35b8f4b3 100644 --- a/DetectorDescription/DDCMS/data/cms-test-shapes.xml +++ b/DetectorDescription/DDCMS/data/cms-test-shapes.xml @@ -34,7 +34,7 @@ - + diff --git a/DetectorDescription/DDCMS/data/cms-test-tree-navigation.xml b/DetectorDescription/DDCMS/data/cms-test-tree-navigation.xml index 7399d5b3cfb0b..18281cbe9572e 100644 --- a/DetectorDescription/DDCMS/data/cms-test-tree-navigation.xml +++ b/DetectorDescription/DDCMS/data/cms-test-tree-navigation.xml @@ -32,7 +32,7 @@ - + diff --git a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc index 31dc42f6be674..dd259ba3199d3 100644 --- a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc +++ b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc @@ -11,6 +11,7 @@ #include "XML/Utilities.h" #include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Utilities/interface/thread_safety_macros.h" #include "DataFormats/Math/interface/CMSUnits.h" #include "DetectorDescription/DDCMS/interface/DDAlgoArguments.h" @@ -626,8 +627,8 @@ void Converter::operator()(xml_h element) const { continue; } - throw std::runtime_error("DD4CMS Exception -- Composite material \"" + fracname + "\" or \"" + - ns.prepend(fracname) + "\" not yet defined."); + throw cms::Exception("DD4CMS") << "Composite material \"" + fracname + "\" or \"" + + ns.prepend(fracname) + "\" not yet defined."; } mix->SetTemperature(ns.context()->description.stdConditions().temperature); mix->SetPressure(ns.context()->description.stdConditions().pressure); diff --git a/Geometry/MuonCommonData/data/cms-test-ddgemangular-algorithm.xml b/Geometry/MuonCommonData/data/cms-test-ddgemangular-algorithm.xml index df003053da48a..f199b0b178f07 100644 --- a/Geometry/MuonCommonData/data/cms-test-ddgemangular-algorithm.xml +++ b/Geometry/MuonCommonData/data/cms-test-ddgemangular-algorithm.xml @@ -30,7 +30,7 @@ - + diff --git a/Geometry/MuonCommonData/data/cms-test-muon-geometry-2015.xml b/Geometry/MuonCommonData/data/cms-test-muon-geometry-2015.xml index 6b87359922e2a..2c67ee3355663 100644 --- a/Geometry/MuonCommonData/data/cms-test-muon-geometry-2015.xml +++ b/Geometry/MuonCommonData/data/cms-test-muon-geometry-2015.xml @@ -29,7 +29,7 @@ - + diff --git a/Geometry/TrackerCommonData/data/cms-test-ddcuttubsfrompoints-algorithm.xml b/Geometry/TrackerCommonData/data/cms-test-ddcuttubsfrompoints-algorithm.xml index 975b84a9db0bd..a8da5fdba5373 100644 --- a/Geometry/TrackerCommonData/data/cms-test-ddcuttubsfrompoints-algorithm.xml +++ b/Geometry/TrackerCommonData/data/cms-test-ddcuttubsfrompoints-algorithm.xml @@ -18,7 +18,7 @@ - + diff --git a/Geometry/TrackerCommonData/data/cms-test-ddpixbarlayerupgrade-algorithm.xml b/Geometry/TrackerCommonData/data/cms-test-ddpixbarlayerupgrade-algorithm.xml index e08b40e05dbb5..b67a5fe83a88e 100644 --- a/Geometry/TrackerCommonData/data/cms-test-ddpixbarlayerupgrade-algorithm.xml +++ b/Geometry/TrackerCommonData/data/cms-test-ddpixbarlayerupgrade-algorithm.xml @@ -17,15 +17,15 @@ - - - + + - - - - - + + + + + + diff --git a/Geometry/TrackerCommonData/data/cms-test-ddpixfwddisk-algo.xml b/Geometry/TrackerCommonData/data/cms-test-ddpixfwddisk-algo.xml index 1b6c74da3dc9d..575066b9e6e9f 100644 --- a/Geometry/TrackerCommonData/data/cms-test-ddpixfwddisk-algo.xml +++ b/Geometry/TrackerCommonData/data/cms-test-ddpixfwddisk-algo.xml @@ -27,7 +27,7 @@ - + diff --git a/Geometry/TrackerCommonData/data/cms-test-ddpixphase1fwddisk-algo.xml b/Geometry/TrackerCommonData/data/cms-test-ddpixphase1fwddisk-algo.xml index 775e0986f9bf5..cf2a12f7b4079 100644 --- a/Geometry/TrackerCommonData/data/cms-test-ddpixphase1fwddisk-algo.xml +++ b/Geometry/TrackerCommonData/data/cms-test-ddpixphase1fwddisk-algo.xml @@ -18,7 +18,7 @@ - + diff --git a/Geometry/TrackerCommonData/data/cms-test-ddtidaxialcable-algorithm.xml b/Geometry/TrackerCommonData/data/cms-test-ddtidaxialcable-algorithm.xml index 477e895bb8893..2b598ac86f46b 100644 --- a/Geometry/TrackerCommonData/data/cms-test-ddtidaxialcable-algorithm.xml +++ b/Geometry/TrackerCommonData/data/cms-test-ddtidaxialcable-algorithm.xml @@ -18,7 +18,7 @@ - + From b0369efdadfbad666717cca4016c9fd1bde1792f Mon Sep 17 00:00:00 2001 From: Imran Yusuff Date: Wed, 15 Dec 2021 04:32:21 +0100 Subject: [PATCH 13/32] HGCalWaferValidation: refinements and D86 geometry validation fix --- .../plugins/HGCalWaferValidation.cc | 270 ++++++++++-------- 1 file changed, 152 insertions(+), 118 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc index 430ea823efa4f..d5667a657f8f7 100644 --- a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc @@ -21,13 +21,23 @@ // Original Author: Imran Yusuff // Created: Thu, 27 May 2021 19:47:08 GMT // -// Modified by: Yulun Miao -// Modified at: Wed, 17 Nov 2021 21:04:10 UTC +// Additional Author(s): Yulun Miao /* - Details of Modification: - * Use the l or h preceding the thickness to determine the type of flat file - * Unified partial wafer information to HGCalTypes.h to allow cross-compare + Changelog: + + Wed, 17 Nov 2021 21:04:10 UTC by Yulun Miao: + + * Use the l or h preceding the thickness to determine the type of flat file + * Unified partial wafer information to HGCalTypes.h to allow cross-compare + + Tue, 14 Dmr 2021 by Imran Yusuff: + + * Further tidying the code + * Now uses the first line of the flat file to determine flat file type (single number means new format) + * Separate out shape and rotation matching operation into functions + * Fixed validation for D86 geometry (especially in rotation for type-3 layers) */ + // system include files #include @@ -78,6 +88,8 @@ class HGCalWaferValidation : public edm::one::EDAnalyzer<> { bool DDFindHGCal(DDCompactView::GraphWalker& walker, std::string targetName); void DDFindWafers(DDCompactView::GraphWalker& walker); void ProcessWaferLayer(DDCompactView::GraphWalker& walker); + bool isThicknessMatched(const int geoThickClass, const int fileThickness); + bool isRotationMatched(const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode); void beginJob() override; void analyze(const edm::Event&, const edm::EventSetup&) override; @@ -87,6 +99,10 @@ class HGCalWaferValidation : public edm::one::EDAnalyzer<> { // module parameters edm::FileInPath geometryFileName_; + // information from newer flat file header + unsigned int layerCount_; + std::vector layerTypes_; + // struct to hold wafer information from DD in map struct WaferInfo { int thickClass; @@ -94,16 +110,17 @@ class HGCalWaferValidation : public edm::one::EDAnalyzer<> { double y; int shapeCode; int rotCode; + std::string waferName; // TEMPORARY }; // EDM token to access DD edm::ESGetToken viewToken_; // map holding all wafer properties from DD - std::map waferData; + std::map waferData_; // boolean map to keep track of unaccounted DD wafers (not in flat file) - std::map waferValidated; + std::map waferValidated_; }; // @@ -182,6 +199,7 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) if (walker.current().first.name().fullname().rfind("hgcalwafer:", 0) == 0) { auto wafer = walker.current(); const std::string waferName(walker.current().first.name().fullname()); + //edm::LogVerbatim(logcat) << " " << waferName; // DEBUG: in case wafer name info is needed const int copyNo = wafer.second->copyno(); // extract DD layer properties const int waferType = HGCalTypes::getUnpackedType(copyNo); @@ -190,6 +208,7 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) const WaferCoord waferCoord(waferLayer, waferU, waferV); // map index // build struct of DD wafer properties struct WaferInfo waferInfo; + waferInfo.waferName = waferName; //TEMPORARY waferInfo.thickClass = waferType; waferInfo.x = wafer.second->translation().x(); waferInfo.y = wafer.second->translation().y(); @@ -213,36 +232,50 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) //edm::LogVerbatim(logcat) << "rotStr " << rotStr << " rotCode " << rotCode; // convert shape code to wafer types defined in HGCalTypes.h - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferOut; - if (shapeStr == "F") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferFull; - else if (shapeStr == "a") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferHalf; - else if (shapeStr == "am") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferHalf2; - else if (shapeStr == "b") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferFive; - else if (shapeStr == "bm") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferFive2; - else if (shapeStr == "c") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferThree; - else if (shapeStr == "d") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferSemi; - else if (shapeStr == "dm") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferSemi2; - else if (shapeStr == "g") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferChopTwo; - else if (shapeStr == "gm") - waferInfo.shapeCode = HGCalTypes::WaferPartialType::WaferChopTwoM; + waferInfo.shapeCode = + shapeStr == "F" ? HGCalTypes::WaferPartialType::WaferFull : + shapeStr == "a" ? HGCalTypes::WaferPartialType::WaferHalf : + shapeStr == "am" ? HGCalTypes::WaferPartialType::WaferHalf2 : + shapeStr == "b" ? HGCalTypes::WaferPartialType::WaferFive : + shapeStr == "bm" ? HGCalTypes::WaferPartialType::WaferFive2 : + shapeStr == "c" ? HGCalTypes::WaferPartialType::WaferThree : + shapeStr == "d" ? HGCalTypes::WaferPartialType::WaferSemi : + shapeStr == "dm" ? HGCalTypes::WaferPartialType::WaferSemi2 : + shapeStr == "g" ? HGCalTypes::WaferPartialType::WaferChopTwo : + shapeStr == "gm" ? HGCalTypes::WaferPartialType::WaferChopTwoM : + HGCalTypes::WaferPartialType::WaferOut; waferInfo.rotCode = rotCode; // populate the map - waferData[waferCoord] = waferInfo; - waferValidated[waferCoord] = false; + waferData_[waferCoord] = waferInfo; + waferValidated_[waferCoord] = false; } } while (walker.nextSibling()); } +// ------------ check if wafer thickness in geo matches in file (true = is a match) ------------ +bool HGCalWaferValidation::isThicknessMatched(const int geoThickClass, const int fileThickness) { + if (geoThickClass == 0 && fileThickness == 120) return true; + if (geoThickClass == 1 && fileThickness == 200) return true; + if (geoThickClass == 2 && fileThickness == 300) return true; + return false; +} + +// ------------ check if wafer rotation in geo matches in file (true = is a match) ------------ +bool HGCalWaferValidation::isRotationMatched(const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode) { + if (fileShapeCode != HGCalTypes::WaferPartialType::WaferFull && geoRotCode == fileRotCode) + return true; + if (fileShapeCode == HGCalTypes::WaferPartialType::WaferFull) { + if (isNewFile && layerTypes_[layer-1] == 3) { // this array is index-0 based + if ((geoRotCode+1) % 2 == fileRotCode % 2) return true; + } + else { + if (geoRotCode % 2 == fileRotCode % 2) return true; + } + } + return false; +} + // ------------ method called for each event ------------ void HGCalWaferValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace edm; @@ -313,7 +346,7 @@ void HGCalWaferValidation::analyze(const edm::Event& iEvent, const edm::EventSet DDFindWafers(hemixWalker); // Confirm all the DD wafers have been read - edm::LogVerbatim(logcat) << "Number of wafers read from DD: " << waferData.size(); + edm::LogVerbatim(logcat) << "Number of wafers read from DD: " << waferData_.size(); // Now open the geometry text file std::string fileName = geometryFileName_.fullPath(); @@ -339,6 +372,40 @@ void HGCalWaferValidation::analyze(const edm::Event& iEvent, const edm::EventSet std::string buf; + // find out if this file is an old file or a new file + std::getline(geoTxtFile, buf); + std::stringstream ss(buf); + std::vector first_tokens; + while (ss >> buf) + if (!buf.empty()) + first_tokens.push_back(buf); + + const bool isNewFile(first_tokens.size() == 1); + + if (isNewFile) { + edm::LogVerbatim(logcat) << "Text file is of newer version."; + layerCount_ = std::stoi(buf); + std::getline(geoTxtFile, buf); + std::stringstream layerTypesSS(buf); + while (layerTypesSS >> buf) + if (!buf.empty()) + layerTypes_.push_back(std::stoi(buf)); + if (layerTypes_.size() != layerCount_) + edm::LogWarning(logcat) << "Number of layer types does not tally with layer count."; + + // TEMP: make sure reading is correct + edm::LogVerbatim(logcat) << "layerCount = " << layerCount_; + for (unsigned i=0; i Date: Wed, 15 Dec 2021 05:08:30 +0100 Subject: [PATCH 14/32] apply code-format patch --- .../plugins/HGCalWaferValidation.cc | 129 +++++++++--------- 1 file changed, 65 insertions(+), 64 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc index d5667a657f8f7..60b33bcbba8d9 100644 --- a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc @@ -89,7 +89,8 @@ class HGCalWaferValidation : public edm::one::EDAnalyzer<> { void DDFindWafers(DDCompactView::GraphWalker& walker); void ProcessWaferLayer(DDCompactView::GraphWalker& walker); bool isThicknessMatched(const int geoThickClass, const int fileThickness); - bool isRotationMatched(const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode); + bool isRotationMatched( + const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode); void beginJob() override; void analyze(const edm::Event&, const edm::EventSetup&) override; @@ -232,18 +233,17 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) //edm::LogVerbatim(logcat) << "rotStr " << rotStr << " rotCode " << rotCode; // convert shape code to wafer types defined in HGCalTypes.h - waferInfo.shapeCode = - shapeStr == "F" ? HGCalTypes::WaferPartialType::WaferFull : - shapeStr == "a" ? HGCalTypes::WaferPartialType::WaferHalf : - shapeStr == "am" ? HGCalTypes::WaferPartialType::WaferHalf2 : - shapeStr == "b" ? HGCalTypes::WaferPartialType::WaferFive : - shapeStr == "bm" ? HGCalTypes::WaferPartialType::WaferFive2 : - shapeStr == "c" ? HGCalTypes::WaferPartialType::WaferThree : - shapeStr == "d" ? HGCalTypes::WaferPartialType::WaferSemi : - shapeStr == "dm" ? HGCalTypes::WaferPartialType::WaferSemi2 : - shapeStr == "g" ? HGCalTypes::WaferPartialType::WaferChopTwo : - shapeStr == "gm" ? HGCalTypes::WaferPartialType::WaferChopTwoM : - HGCalTypes::WaferPartialType::WaferOut; + waferInfo.shapeCode = shapeStr == "F" ? HGCalTypes::WaferPartialType::WaferFull + : shapeStr == "a" ? HGCalTypes::WaferPartialType::WaferHalf + : shapeStr == "am" ? HGCalTypes::WaferPartialType::WaferHalf2 + : shapeStr == "b" ? HGCalTypes::WaferPartialType::WaferFive + : shapeStr == "bm" ? HGCalTypes::WaferPartialType::WaferFive2 + : shapeStr == "c" ? HGCalTypes::WaferPartialType::WaferThree + : shapeStr == "d" ? HGCalTypes::WaferPartialType::WaferSemi + : shapeStr == "dm" ? HGCalTypes::WaferPartialType::WaferSemi2 + : shapeStr == "g" ? HGCalTypes::WaferPartialType::WaferChopTwo + : shapeStr == "gm" ? HGCalTypes::WaferPartialType::WaferChopTwoM + : HGCalTypes::WaferPartialType::WaferOut; waferInfo.rotCode = rotCode; // populate the map @@ -255,22 +255,27 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) // ------------ check if wafer thickness in geo matches in file (true = is a match) ------------ bool HGCalWaferValidation::isThicknessMatched(const int geoThickClass, const int fileThickness) { - if (geoThickClass == 0 && fileThickness == 120) return true; - if (geoThickClass == 1 && fileThickness == 200) return true; - if (geoThickClass == 2 && fileThickness == 300) return true; + if (geoThickClass == 0 && fileThickness == 120) + return true; + if (geoThickClass == 1 && fileThickness == 200) + return true; + if (geoThickClass == 2 && fileThickness == 300) + return true; return false; } // ------------ check if wafer rotation in geo matches in file (true = is a match) ------------ -bool HGCalWaferValidation::isRotationMatched(const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode) { +bool HGCalWaferValidation::isRotationMatched( + const bool isNewFile, const int layer, const int fileShapeCode, const int geoRotCode, const int fileRotCode) { if (fileShapeCode != HGCalTypes::WaferPartialType::WaferFull && geoRotCode == fileRotCode) return true; if (fileShapeCode == HGCalTypes::WaferPartialType::WaferFull) { - if (isNewFile && layerTypes_[layer-1] == 3) { // this array is index-0 based - if ((geoRotCode+1) % 2 == fileRotCode % 2) return true; - } - else { - if (geoRotCode % 2 == fileRotCode % 2) return true; + if (isNewFile && layerTypes_[layer - 1] == 3) { // this array is index-0 based + if ((geoRotCode + 1) % 2 == fileRotCode % 2) + return true; + } else { + if (geoRotCode % 2 == fileRotCode % 2) + return true; } } return false; @@ -395,11 +400,10 @@ void HGCalWaferValidation::analyze(const edm::Event& iEvent, const edm::EventSet // TEMP: make sure reading is correct edm::LogVerbatim(logcat) << "layerCount = " << layerCount_; - for (unsigned i=0; i detWithStates; + + detWithStates = compatibleDets(startingState, prop, est); + vector result; + if (!detWithStates.empty()) { + result.push_back(DetGroup(detWithStates)); + } + LogTrace("MTDDetLayers") << "MTDdetTray Compatible modules: " << result.size(); return result; } diff --git a/RecoMTD/DetLayers/src/MTDTrayBarrelLayer.cc b/RecoMTD/DetLayers/src/MTDTrayBarrelLayer.cc index f4f3b7037eff8..d5a0319554dd0 100644 --- a/RecoMTD/DetLayers/src/MTDTrayBarrelLayer.cc +++ b/RecoMTD/DetLayers/src/MTDTrayBarrelLayer.cc @@ -163,9 +163,16 @@ vector MTDTrayBarrelLayer::compatibleDets( vector MTDTrayBarrelLayer::groupedCompatibleDets(const TrajectoryStateOnSurface& startingState, const Propagator& prop, const MeasurementEstimator& est) const { - // FIXME should return only 1 group - edm::LogError("MTDDetLayers") << "dummy implementation of MTDTrayBarrelLayer::groupedCompatibleDets()"; - return vector(); + vector detWithStates; + + detWithStates = compatibleDets(startingState, prop, est); + + vector result; + if (!detWithStates.empty()) { + result.push_back(DetGroup(detWithStates)); + } + LogTrace("MTDDetLayers") << "MTDTrayBarrelLayer Compatible rods: " << result.size(); + return result; } GeomDetEnumerators::SubDetector MTDTrayBarrelLayer::subDetector() const { return theBasicComps.front()->subDetector(); } From 441da8b41b2b77a5d1b087e0f48e6ebb60d55078 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Wed, 15 Dec 2021 22:23:08 +0100 Subject: [PATCH 16/32] Format fix --- .../DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc index dd259ba3199d3..bb0afe27e1230 100644 --- a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc +++ b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc @@ -627,8 +627,8 @@ void Converter::operator()(xml_h element) const { continue; } - throw cms::Exception("DD4CMS") << "Composite material \"" + fracname + "\" or \"" + - ns.prepend(fracname) + "\" not yet defined."; + throw cms::Exception("DD4CMS") << "Composite material \"" + fracname + "\" or \"" + ns.prepend(fracname) + + "\" not yet defined."; } mix->SetTemperature(ns.context()->description.stdConditions().temperature); mix->SetPressure(ns.context()->description.stdConditions().pressure); From a48cceb0e8e94bf148a5d527bae35bd3998d1237 Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 16 Dec 2021 13:46:51 +0100 Subject: [PATCH 17/32] Drop tests for py3-climate and py3-theanets --- PhysicsTools/PythonAnalysis/test/BuildFile.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/PhysicsTools/PythonAnalysis/test/BuildFile.xml b/PhysicsTools/PythonAnalysis/test/BuildFile.xml index 76cbc5c283498..437a9c924ab06 100644 --- a/PhysicsTools/PythonAnalysis/test/BuildFile.xml +++ b/PhysicsTools/PythonAnalysis/test/BuildFile.xml @@ -49,7 +49,6 @@ - @@ -124,7 +123,6 @@ - From 59911235b65986eda93e1edea781ec621d12b005 Mon Sep 17 00:00:00 2001 From: Andrea Date: Thu, 16 Dec 2021 16:58:52 +0100 Subject: [PATCH 18/32] Safer syntax for modifying the configuration parameters --- SimG4Core/Application/python/g4SimHits_cfi.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 1620382a14f14..33fffb466e8d5 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -641,16 +641,19 @@ ## Change ECAL time slices ## from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing -phase2_timing.toModify( g4SimHits.ECalSD, - StoreLayerTimeSim = cms.untracked.bool(True), - TimeSliceUnit = cms.double(0.001) ) +phase2_timing.toModify( g4SimHits, ECalSD = dict( + StoreLayerTimeSim = True, + TimeSliceUnit = 0.001 ) +) + ## ## Change CALO Thresholds ## from Configuration.Eras.Modifier_h2tb_cff import h2tb -h2tb.toModify(g4SimHits.CaloSD, - EminHits = cms.vdouble(0.0,0.0,0.0,0.0,0.0), - TmaxHits = cms.vdouble(1000.0,1000.0,1000.0,1000.0,2000.0) ) +h2tb.toModify(g4SimHits, CaloSD = dict( + EminHits = [0.0, 0.0, 0.0, 0.0, 0.0], + TmaxHits = [1000.0, 1000.0, 1000.0, 1000.0, 2000.0] ) +) ## ## DD4hep migration @@ -664,5 +667,5 @@ from Configuration.Eras.Modifier_phase2_common_cff import phase2_common phase2_common.toModify(g4SimHits, - OnlySDs = ['ZdcSensitiveDetector', 'TotemT2ScintSensitiveDetector', 'TotemSensitiveDetector', 'RomanPotSensitiveDetector', 'PLTSensitiveDetector', 'MuonSensitiveDetector', 'MtdSensitiveDetector', 'BCM1FSensitiveDetector', 'EcalSensitiveDetector', 'CTPPSSensitiveDetector', 'HGCalSensitiveDetector', 'BSCSensitiveDetector', 'CTPPSDiamondSensitiveDetector', 'FP420SensitiveDetector', 'BHMSensitiveDetector', 'HFNoseSensitiveDetector', 'HGCScintillatorSensitiveDetector', 'CastorSensitiveDetector', 'CaloTrkProcessing', 'HcalSensitiveDetector', 'TkAccumulatingSensitiveDetector'] ) -phase2_common.toModify( g4SimHits, LHCTransport = False ) + OnlySDs = ['ZdcSensitiveDetector', 'TotemT2ScintSensitiveDetector', 'TotemSensitiveDetector', 'RomanPotSensitiveDetector', 'PLTSensitiveDetector', 'MuonSensitiveDetector', 'MtdSensitiveDetector', 'BCM1FSensitiveDetector', 'EcalSensitiveDetector', 'CTPPSSensitiveDetector', 'HGCalSensitiveDetector', 'BSCSensitiveDetector', 'CTPPSDiamondSensitiveDetector', 'FP420SensitiveDetector', 'BHMSensitiveDetector', 'HFNoseSensitiveDetector', 'HGCScintillatorSensitiveDetector', 'CastorSensitiveDetector', 'CaloTrkProcessing', 'HcalSensitiveDetector', 'TkAccumulatingSensitiveDetector'], + LHCTransport = False ) From 36c4a6bb65f6dae09263411836d1a87f8cfb68ea Mon Sep 17 00:00:00 2001 From: Michael David Krohn Date: Thu, 16 Dec 2021 11:37:44 -0600 Subject: [PATCH 19/32] Remove 4th depth from TP sum for |ieta| = 16 --- CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc index 48f1029a4596e..0b62242f86103 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc @@ -544,6 +544,11 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { else if (adc >= mipMax) lut[adc] |= QIE11_LUT_MSB1; } + + //Zeroing the 4th depth in the trigger towers where |ieta| = 16 to match the behavior in the uHTR firmware in Run3, where the 4th depth is not included in the sum over depths when constructing the TP energy for this tower. + if (abs(cell.ieta()) == 16 && cell.depth() == 4 && topo_->triggerMode() >= HcalTopologyMode::TriggerMode_2021) { + lut[adc] = 0; + } } } } else if (subdet == HcalForward) { From 1735785ada19dbd04b10d6be92bb396e872d25ca Mon Sep 17 00:00:00 2001 From: Imran Yusuff Date: Thu, 16 Dec 2021 19:11:09 +0100 Subject: [PATCH 20/32] Now using std::map for shape code mapping --- .../plugins/HGCalWaferValidation.cc | 77 ++++++++----------- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc index 60b33bcbba8d9..5b1d9a82b4c47 100644 --- a/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalWaferValidation.cc @@ -85,6 +85,35 @@ class HGCalWaferValidation : public edm::one::EDAnalyzer<> { std::string strWaferCoord(const WaferCoord& coord); + // mapping of wafer shape codes: DD / old format -> new format (LD/HD) + using WaferShapeMap = std::map; + + const WaferShapeMap waferShapeMapDD = {{"F", HGCalTypes::WaferPartialType::WaferFull}, + {"a", HGCalTypes::WaferPartialType::WaferHalf}, + {"am", HGCalTypes::WaferPartialType::WaferHalf2}, + {"b", HGCalTypes::WaferPartialType::WaferFive}, + {"bm", HGCalTypes::WaferPartialType::WaferFive2}, + {"c", HGCalTypes::WaferPartialType::WaferThree}, + {"d", HGCalTypes::WaferPartialType::WaferSemi}, + {"dm", HGCalTypes::WaferPartialType::WaferSemi2}, + {"g", HGCalTypes::WaferPartialType::WaferChopTwo}, + {"gm", HGCalTypes::WaferPartialType::WaferChopTwoM}}; + + const WaferShapeMap waferShapeMapLD = {{"0", HGCalTypes::WaferPartialType::WaferFull}, + {"1", HGCalTypes::WaferPartialType::WaferHalf}, + {"2", HGCalTypes::WaferPartialType::WaferHalf}, + {"3", HGCalTypes::WaferPartialType::WaferSemi}, + {"4", HGCalTypes::WaferPartialType::WaferSemi}, + {"5", HGCalTypes::WaferPartialType::WaferFive}, + {"6", HGCalTypes::WaferPartialType::WaferThree}}; + + const WaferShapeMap waferShapeMapHD = {{"0", HGCalTypes::WaferPartialType::WaferFull}, + {"1", HGCalTypes::WaferPartialType::WaferHalf2}, + {"2", HGCalTypes::WaferPartialType::WaferChopTwoM}, + {"3", HGCalTypes::WaferPartialType::WaferSemi2}, + {"4", HGCalTypes::WaferPartialType::WaferSemi2}, + {"5", HGCalTypes::WaferPartialType::WaferFive2}}; + bool DDFindHGCal(DDCompactView::GraphWalker& walker, std::string targetName); void DDFindWafers(DDCompactView::GraphWalker& walker); void ProcessWaferLayer(DDCompactView::GraphWalker& walker); @@ -233,17 +262,7 @@ void HGCalWaferValidation::ProcessWaferLayer(DDCompactView::GraphWalker& walker) //edm::LogVerbatim(logcat) << "rotStr " << rotStr << " rotCode " << rotCode; // convert shape code to wafer types defined in HGCalTypes.h - waferInfo.shapeCode = shapeStr == "F" ? HGCalTypes::WaferPartialType::WaferFull - : shapeStr == "a" ? HGCalTypes::WaferPartialType::WaferHalf - : shapeStr == "am" ? HGCalTypes::WaferPartialType::WaferHalf2 - : shapeStr == "b" ? HGCalTypes::WaferPartialType::WaferFive - : shapeStr == "bm" ? HGCalTypes::WaferPartialType::WaferFive2 - : shapeStr == "c" ? HGCalTypes::WaferPartialType::WaferThree - : shapeStr == "d" ? HGCalTypes::WaferPartialType::WaferSemi - : shapeStr == "dm" ? HGCalTypes::WaferPartialType::WaferSemi2 - : shapeStr == "g" ? HGCalTypes::WaferPartialType::WaferChopTwo - : shapeStr == "gm" ? HGCalTypes::WaferPartialType::WaferChopTwoM - : HGCalTypes::WaferPartialType::WaferOut; + waferInfo.shapeCode = waferShapeMapDD.at(shapeStr); waferInfo.rotCode = rotCode; // populate the map @@ -432,38 +451,10 @@ void HGCalWaferValidation::analyze(const edm::Event& iEvent, const edm::EventSet const int waferRotCode(std::stoi(tokens[5])); const int waferU(std::stoi(tokens[6])); const int waferV(std::stoi(tokens[7])); - const int waferShapeCode( - isNewFile ? ( - // if using new format flat file - waferDensityStr == "l" ? (waferShapeStr == "0" ? HGCalTypes::WaferPartialType::WaferFull - : waferShapeStr == "1" ? HGCalTypes::WaferPartialType::WaferHalf - : waferShapeStr == "2" ? HGCalTypes::WaferPartialType::WaferHalf - : waferShapeStr == "3" ? HGCalTypes::WaferPartialType::WaferSemi - : waferShapeStr == "4" ? HGCalTypes::WaferPartialType::WaferSemi - : waferShapeStr == "5" ? HGCalTypes::WaferPartialType::WaferFive - : waferShapeStr == "6" ? HGCalTypes::WaferPartialType::WaferThree - : HGCalTypes::WaferPartialType::WaferOut) - : waferDensityStr == "h" ? (waferShapeStr == "0" ? HGCalTypes::WaferPartialType::WaferFull - : waferShapeStr == "1" ? HGCalTypes::WaferPartialType::WaferHalf2 - : waferShapeStr == "2" ? HGCalTypes::WaferPartialType::WaferChopTwoM - : waferShapeStr == "3" ? HGCalTypes::WaferPartialType::WaferSemi2 - : waferShapeStr == "4" ? HGCalTypes::WaferPartialType::WaferSemi2 - : waferShapeStr == "5" ? HGCalTypes::WaferPartialType::WaferFive2 - : HGCalTypes::WaferPartialType::WaferOut) - : HGCalTypes::WaferPartialType::WaferOut) - : ( - // if using old format flat file - waferShapeStr == "F" ? HGCalTypes::WaferPartialType::WaferFull - : waferShapeStr == "a" ? HGCalTypes::WaferPartialType::WaferHalf - : waferShapeStr == "am" ? HGCalTypes::WaferPartialType::WaferHalf2 - : waferShapeStr == "b" ? HGCalTypes::WaferPartialType::WaferFive - : waferShapeStr == "bm" ? HGCalTypes::WaferPartialType::WaferFive2 - : waferShapeStr == "c" ? HGCalTypes::WaferPartialType::WaferThree - : waferShapeStr == "d" ? HGCalTypes::WaferPartialType::WaferSemi - : waferShapeStr == "dm" ? HGCalTypes::WaferPartialType::WaferSemi2 - : waferShapeStr == "g" ? HGCalTypes::WaferPartialType::WaferChopTwo - : waferShapeStr == "gm" ? HGCalTypes::WaferPartialType::WaferChopTwoM - : HGCalTypes::WaferPartialType::WaferOut)); + const int waferShapeCode(isNewFile ? (waferDensityStr == "l" ? waferShapeMapLD.at(waferShapeStr) + : waferDensityStr == "h" ? waferShapeMapHD.at(waferShapeStr) + : HGCalTypes::WaferPartialType::WaferOut) + : waferShapeMapDD.at(waferShapeStr)); // map index for crosschecking with DD const WaferCoord waferCoord(waferLayer, waferU, waferV); From 2f7acc61932aa5f20fbbc7852e5fbcb0201d75fd Mon Sep 17 00:00:00 2001 From: Michael-Krohn Date: Thu, 16 Dec 2021 16:40:43 -0600 Subject: [PATCH 21/32] Modified to follow style guideline from code check --- CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc index 0b62242f86103..75ddfe3954e2a 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc @@ -545,9 +545,10 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { lut[adc] |= QIE11_LUT_MSB1; } - //Zeroing the 4th depth in the trigger towers where |ieta| = 16 to match the behavior in the uHTR firmware in Run3, where the 4th depth is not included in the sum over depths when constructing the TP energy for this tower. - if (abs(cell.ieta()) == 16 && cell.depth() == 4 && topo_->triggerMode() >= HcalTopologyMode::TriggerMode_2021) { - lut[adc] = 0; + //Zeroing the 4th depth in the trigger towers where |ieta| = 16 to match the behavior in the uHTR firmware in Run3, where the 4th depth is not included in the sum over depths when constructing the TP energy for this tower. + if (abs(cell.ieta()) == 16 && cell.depth() == 4 && + topo_->triggerMode() >= HcalTopologyMode::TriggerMode_2021) { + lut[adc] = 0; } } } From 6299f094e7eedc78966641ea36a38cfd475ce2c8 Mon Sep 17 00:00:00 2001 From: Michael-Krohn Date: Thu, 16 Dec 2021 17:05:18 -0600 Subject: [PATCH 22/32] Modified to follow style guideline from code check --- CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc index 75ddfe3954e2a..cd340e7a0139d 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc @@ -547,8 +547,8 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { //Zeroing the 4th depth in the trigger towers where |ieta| = 16 to match the behavior in the uHTR firmware in Run3, where the 4th depth is not included in the sum over depths when constructing the TP energy for this tower. if (abs(cell.ieta()) == 16 && cell.depth() == 4 && - topo_->triggerMode() >= HcalTopologyMode::TriggerMode_2021) { - lut[adc] = 0; + topo_->triggerMode() >= HcalTopologyMode::TriggerMode_2021) { + lut[adc] = 0; } } } From 18ea191e74918b81daf9cb27f1c118797598b4fe Mon Sep 17 00:00:00 2001 From: Sunanda Date: Fri, 17 Dec 2021 01:49:20 +0100 Subject: [PATCH 23/32] Safer syntax fr modifying configuration parameters in some of the cfi's in Geometry/HGCalCommonData --- .../hgcalEEParametersInitialization_cfi.py | 2 +- .../hgcalParametersInitialization_cfi.py | 19 ++++++++-------- .../hgcalV15ParametersInitialization_cfi.py | 22 +++++++++---------- .../hgcalV6ParametersInitialization_cfi.py | 13 +++++------ 4 files changed, 27 insertions(+), 29 deletions(-) diff --git a/Geometry/HGCalCommonData/python/hgcalEEParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalEEParametersInitialization_cfi.py index 76ec3be700e7f..1a8bbb721cbdb 100644 --- a/Geometry/HGCalCommonData/python/hgcalEEParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalEEParametersInitialization_cfi.py @@ -14,5 +14,5 @@ from Configuration.ProcessModifiers.dd4hep_cff import dd4hep dd4hep.toModify(hgcalEEParametersInitialize, - fromDD4hep = cms.bool(True) + fromDD4hep = True ) diff --git a/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py index 6af3726adf221..db44024161624 100644 --- a/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py @@ -5,19 +5,18 @@ from Configuration.ProcessModifiers.dd4hep_cff import dd4hep dd4hep.toModify(hgcalEEParametersInitialize, - fromDD4hep = cms.bool(True) -) + fromDD4hep = True ) hgcalHESiParametersInitialize = hgcalEEParametersInitialize.clone( - name = cms.string("HGCalHESiliconSensitive"), - nameW = cms.string("HGCalHEWafer"), - nameC = cms.string("HGCalHECell"), - nameX = cms.string("HGCalHESiliconSensitive"), + name = "HGCalHESiliconSensitive", + nameW = "HGCalHEWafer", + nameC = "HGCalHECell", + nameX = "HGCalHESiliconSensitive", ) hgcalHEScParametersInitialize = hgcalEEParametersInitialize.clone( - name = cms.string("HGCalHEScintillatorSensitive"), - nameW = cms.string("HGCalWafer"), - nameC = cms.string("HGCalCell"), - nameX = cms.string("HGCalHEScintillatorSensitive"), + name = "HGCalHEScintillatorSensitive", + nameW = "HGCalWafer", + nameC = "HGCalCell", + nameX = "HGCalHEScintillatorSensitive", ) diff --git a/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py index 2080a7aef33f5..f12b6967e0089 100644 --- a/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py @@ -14,21 +14,21 @@ from Configuration.ProcessModifiers.dd4hep_cff import dd4hep dd4hep.toModify(hgcalEEParametersInitialize, - fromDD4hep = cms.bool(True) + fromDD4hep = True ) hgcalHESiParametersInitialize = hgcalEEParametersInitialize.clone( - name = cms.string("HGCalHESiliconLayer"), - name2 = cms.string("HGCalHESiliconSensitive"), - nameW = cms.string("HGCalHEWafer"), - nameC = cms.string("HGCalHESiliconSensitive"), - nameX = cms.string("HGCalHESiliconSensitive"), + name = "HGCalHESiliconLayer", + name2 = "HGCalHESiliconSensitive", + nameW = "HGCalHEWafer", + nameC = "HGCalHESiliconSensitive", + nameX = "HGCalHESiliconSensitive", ) hgcalHEScParametersInitialize = hgcalEEParametersInitialize.clone( - name = cms.string("HGCalHEScintillatorSensitive"), - name2 = cms.string("HGCalHEScintillatorSensitive"), - nameW = cms.string("HGCalWafer"), - nameC = cms.string("HGCalHEScintillatorSensitive"), - nameX = cms.string("HGCalHEScintillatorSensitive"), + name = "HGCalHEScintillatorSensitive", + name2 = "HGCalHEScintillatorSensitive", + nameW = "HGCalWafer", + nameC = "HGCalHEScintillatorSensitive", + nameX = "HGCalHEScintillatorSensitive", ) diff --git a/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py index 2fb16a7dd8cb7..a2ddcda9c6d42 100644 --- a/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py @@ -5,13 +5,12 @@ from Configuration.ProcessModifiers.dd4hep_cff import dd4hep dd4hep.toModify(hgcalEEParametersInitialize, - fromDD4hep = cms.bool(True) -) + fromDD4hep = True ) hgcalHESiParametersInitialize = hgcalEEParametersInitialize.clone( - name = cms.string("HGCalHESiliconSensitive"), - nameW = cms.string("HGCalHEWafer"), - nameC = cms.string("HGCalHECell"), - name2 = cms.string("HGCalHEsil"), - nameX = cms.string("HGCalHESiliconSensitive"), + name = "HGCalHESiliconSensitive", + nameW = "HGCalHEWafer", + nameC = "HGCalHECell", + name2 = "HGCalHEsil", + nameX = "HGCalHESiliconSensitive", ) From 4b5b3b423f02f5bf116b2e612831c7c37a4034ed Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 17 Dec 2021 10:21:30 +0100 Subject: [PATCH 24/32] clean-up remaining commented instances of createNewIOV in the codebase --- .../plugins/GlobalTrackerMuonAlignment.cc | 4 ++-- Alignment/LaserAlignment/plugins/LaserAlignment.cc | 8 ++++---- Alignment/TrackerAlignment/src/TrackerAlignment.cc | 8 ++++---- CondTools/SiStrip/plugins/SiStripPedestalsBuilder.cc | 1 - 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Alignment/CommonAlignmentProducer/plugins/GlobalTrackerMuonAlignment.cc b/Alignment/CommonAlignmentProducer/plugins/GlobalTrackerMuonAlignment.cc index 01be6d8702260..91fb9e87df28b 100644 --- a/Alignment/CommonAlignmentProducer/plugins/GlobalTrackerMuonAlignment.cc +++ b/Alignment/CommonAlignmentProducer/plugins/GlobalTrackerMuonAlignment.cc @@ -3431,9 +3431,9 @@ void GlobalTrackerMuonAlignment::writeGlPosRcd(CLHEP::HepVector& paramVec) { throw cms::Exception("NotAvailable") << "PoolDBOutputService not available"; // if (poolDbService->isNewTagRequest("GlobalPositionRcd")) { - // poolDbService->createNewIOV(&(*globalPositions), poolDbService->endOfTime(), "GlobalPositionRcd"); + // poolDbService->createOneIOV(globalPositions, poolDbService->endOfTime(), "GlobalPositionRcd"); // } else { - // poolDbService->appendSinceTime(&(*globalPositions), poolDbService->currentTime(), "GlobalPositionRcd"); + // poolDbService->appendOneIOV(globalPositions, poolDbService->currentTime(), "GlobalPositionRcd"); // } poolDbService->writeOneIOV(globalPositions, poolDbService->currentTime(), "GlobalPositionRcd"); std::cout << "done!" << std::endl; diff --git a/Alignment/LaserAlignment/plugins/LaserAlignment.cc b/Alignment/LaserAlignment/plugins/LaserAlignment.cc index 00c548364fabd..3dbb91c404054 100644 --- a/Alignment/LaserAlignment/plugins/LaserAlignment.cc +++ b/Alignment/LaserAlignment/plugins/LaserAlignment.cc @@ -909,18 +909,18 @@ void LaserAlignment::endRunProduce(edm::Run& theRun, const edm::EventSetup& theS // Store // if ( poolDbService->isNewTagRequest(theAlignRecordName) ) { - // poolDbService->createNewIOV( alignments, poolDbService->currentTime(), poolDbService->endOfTime(), theAlignRecordName ); + // poolDbService->createOneIOV( alignments, poolDbService->currentTime(), theAlignRecordName ); // } // else { - // poolDbService->appendSinceTime( alignments, poolDbService->currentTime(), theAlignRecordName ); + // poolDbService->appendOneIOV( alignments, poolDbService->currentTime(), theAlignRecordName ); // } poolDbService->writeOneIOV(alignments, poolDbService->beginOfTime(), theAlignRecordName); // if ( poolDbService->isNewTagRequest(theErrorRecordName) ) { - // poolDbService->createNewIOV( alignmentErrors, poolDbService->currentTime(), poolDbService->endOfTime(), theErrorRecordName ); + // poolDbService->createOneIOV( alignmentErrors, poolDbService->currentTime(), poolDbService->endOfTime(), theErrorRecordName ); // } // else { - // poolDbService->appendSinceTime( alignmentErrors, poolDbService->currentTime(), theErrorRecordName ); + // poolDbService->appendOneIOV( alignmentErrors, poolDbService->currentTime(), theErrorRecordName ); // } poolDbService->writeOneIOV( alignmentErrors, poolDbService->beginOfTime(), theErrorRecordName); diff --git a/Alignment/TrackerAlignment/src/TrackerAlignment.cc b/Alignment/TrackerAlignment/src/TrackerAlignment.cc index d53b2a8fab5aa..4adc03a0f0c9b 100644 --- a/Alignment/TrackerAlignment/src/TrackerAlignment.cc +++ b/Alignment/TrackerAlignment/src/TrackerAlignment.cc @@ -242,19 +242,19 @@ void TrackerAlignment::saveToDB(void) { AlignmentErrorsExtended alignmentErrors = *(theAlignableTracker->alignmentErrors()); // if ( poolDbService->isNewTagRequest(theAlignRecordName) ) - // poolDbService->createNewIOV( alignments, poolDbService->endOfTime(), + // poolDbService->createOneIOV( alignments, poolDbService->endOfTime(), // theAlignRecordName ); // else - // poolDbService->appendSinceTime( alignments, poolDbService->currentTime(), + // poolDbService->appendOneIOV( alignments, poolDbService->currentTime(), // theAlignRecordName ); // In the two calls below it is assumed that the delete of "theAlignableTracker" is also deleting the two concerned payloads... poolDbService->writeOneIOV(alignments, poolDbService->currentTime(), theAlignRecordName); // if ( poolDbService->isNewTagRequest(theErrorRecordName) ) - // poolDbService->createNewIOV( alignmentErrors, + // poolDbService->createOneIOV( alignmentErrors, // poolDbService->endOfTime(), // theErrorRecordName ); // else - // poolDbService->appendSinceTime( alignmentErrors, + // poolDbService->appendOneIOV( alignmentErrors, // poolDbService->currentTime(), // theErrorRecordName ); poolDbService->writeOneIOV( diff --git a/CondTools/SiStrip/plugins/SiStripPedestalsBuilder.cc b/CondTools/SiStrip/plugins/SiStripPedestalsBuilder.cc index de0d86309cb5d..6a4138dfc8b8e 100644 --- a/CondTools/SiStrip/plugins/SiStripPedestalsBuilder.cc +++ b/CondTools/SiStrip/plugins/SiStripPedestalsBuilder.cc @@ -75,7 +75,6 @@ void SiStripPedestalsBuilder::analyze(const edm::Event& evt, const edm::EventSet if (mydbservice->isNewTagRequest("SiStripPedestalsRcd")) { mydbservice->createOneIOV(obj, mydbservice->beginOfTime(), "SiStripPedestalsRcd"); } else { - //mydbservice->createNewIOV(obj,mydbservice->currentTime(),"SiStripPedestalsRcd"); mydbservice->appendOneIOV(obj, mydbservice->currentTime(), "SiStripPedestalsRcd"); } } else { From b2f4479cafcabeb70934c876261065ad2764139c Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 17 Dec 2021 10:25:17 +0100 Subject: [PATCH 25/32] Run testBuildersReaders unit test in its own directory --- CondTools/SiStrip/test/testBuildersReaders.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CondTools/SiStrip/test/testBuildersReaders.sh b/CondTools/SiStrip/test/testBuildersReaders.sh index 66a5db7c4c2c6..adfe0b87e2114 100755 --- a/CondTools/SiStrip/test/testBuildersReaders.sh +++ b/CondTools/SiStrip/test/testBuildersReaders.sh @@ -2,12 +2,16 @@ function die { echo $1: status $2 ; exit $2; } +if [ "${SCRAM_TEST_NAME}" != "" ] ; then + mkdir ${SCRAM_TEST_NAME} + cd ${SCRAM_TEST_NAME} +fi if test -f "SiStripConditionsDBFile.db"; then echo "cleaning the local test area" rm -fr SiStripConditionsDBFile.db # builders test rm -fr modifiedSiStrip*.db # miscalibrator tests fi - +pwd echo " testing CondTools/SiStrip" ## do the builders first (need the input db file) From 3a9deef2fa3ab9b564145b93e859cf369190262b Mon Sep 17 00:00:00 2001 From: Andrea Date: Fri, 17 Dec 2021 11:15:41 +0100 Subject: [PATCH 26/32] Fix for DTMapGenerato and cleanup for DTTTrigCorrectionFirst --- CalibMuon/DTCalibration/plugins/DTMapGenerator.cc | 5 +---- CalibMuon/DTCalibration/plugins/DTMapGenerator.h | 2 +- CalibMuon/DTCalibration/plugins/DTTTrigCorrectionFirst.cc | 3 --- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/CalibMuon/DTCalibration/plugins/DTMapGenerator.cc b/CalibMuon/DTCalibration/plugins/DTMapGenerator.cc index e6b305bf2698f..6c6353bccabc8 100644 --- a/CalibMuon/DTCalibration/plugins/DTMapGenerator.cc +++ b/CalibMuon/DTCalibration/plugins/DTMapGenerator.cc @@ -28,8 +28,6 @@ DTMapGenerator::DTMapGenerator(const ParameterSet& pset) { } } -DTMapGenerator::~DTMapGenerator() {} - void DTMapGenerator::endJob() { cout << "DTMapGenerator: Output Map: " << outputMapName << " ROS Type: " << rosType << endl; @@ -130,8 +128,7 @@ void DTMapGenerator::endJob() { } else { outRob = robCounter + 21; } - } - if (sector == 4) { + } else if (sector == 4) { if (robCounter == 3 || robCounter == 4) { continue; } diff --git a/CalibMuon/DTCalibration/plugins/DTMapGenerator.h b/CalibMuon/DTCalibration/plugins/DTMapGenerator.h index fca806f6105c2..da3b8fdf07bf0 100644 --- a/CalibMuon/DTCalibration/plugins/DTMapGenerator.h +++ b/CalibMuon/DTCalibration/plugins/DTMapGenerator.h @@ -20,7 +20,7 @@ class DTMapGenerator : public edm::one::EDAnalyzer<> { DTMapGenerator(const edm::ParameterSet& pset); /// Destructor - ~DTMapGenerator() override; + ~DTMapGenerator() override = default; // Operations diff --git a/CalibMuon/DTCalibration/plugins/DTTTrigCorrectionFirst.cc b/CalibMuon/DTCalibration/plugins/DTTTrigCorrectionFirst.cc index 5dd80b0ab82b8..8f925d8a7ce84 100644 --- a/CalibMuon/DTCalibration/plugins/DTTTrigCorrectionFirst.cc +++ b/CalibMuon/DTCalibration/plugins/DTTTrigCorrectionFirst.cc @@ -57,7 +57,6 @@ void DTTTrigCorrectionFirst::endJob() { double rms = 0.; double averageSigma = 0.; double average2Sigma = 0.; - double rmsSigma = 0.; double counter = 0.; double averagekfactor = 0; float kfactor = 0; @@ -92,9 +91,7 @@ void DTTTrigCorrectionFirst::endJob() { } //End of loop on superlayers rms = average2 / (counter - 1); - rmsSigma = average2Sigma / (counter - 1); rms = sqrt(rms); - rmsSigma = sqrt(rmsSigma); cout << "average averageSigma counter rms " << average << " " << averageSigma << " " << counter << " " << rms << endl; for (auto sl = dtSupLylist.begin(); sl != dtSupLylist.end(); sl++) { From c0fd7e849bf28e7d36d9157948eda23509b08feb Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 17 Dec 2021 14:28:30 +0100 Subject: [PATCH 27/32] fix warning message --- .../SiPixelObjects/src/SiPixelDynamicInefficiency.cc | 10 +++++----- CondFormats/SiPixelObjects/src/SiPixelLorentzAngle.cc | 2 +- CondFormats/SiPixelObjects/src/SiPixelVCal.cc | 2 +- CondFormats/SiStripObjects/src/SiStripApvGain.cc | 2 +- .../SiStripObjects/src/SiStripBackPlaneCorrection.cc | 2 +- CondFormats/SiStripObjects/src/SiStripBadStrip.cc | 2 +- CondFormats/SiStripObjects/src/SiStripLorentzAngle.cc | 2 +- CondFormats/SiStripObjects/src/SiStripThreshold.cc | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CondFormats/SiPixelObjects/src/SiPixelDynamicInefficiency.cc b/CondFormats/SiPixelObjects/src/SiPixelDynamicInefficiency.cc index 5e3c465b41e60..1f96e506a1acc 100644 --- a/CondFormats/SiPixelObjects/src/SiPixelDynamicInefficiency.cc +++ b/CondFormats/SiPixelObjects/src/SiPixelDynamicInefficiency.cc @@ -7,7 +7,7 @@ bool SiPixelDynamicInefficiency::putPixelGeomFactor(const uint32_t& detid, doubl std::map::const_iterator id = m_PixelGeomFactors.find(detid); if (id != m_PixelGeomFactors.end()) { edm::LogError("SiPixelDynamicInefficiency") << "SiPixelDynamicInefficiency PixelGeomFactor for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_PixelGeomFactors[detid] = value; @@ -29,7 +29,7 @@ bool SiPixelDynamicInefficiency::putColGeomFactor(const uint32_t& detid, double& std::map::const_iterator id = m_ColGeomFactors.find(detid); if (id != m_ColGeomFactors.end()) { edm::LogError("SiPixelDynamicInefficiency") << "SiPixelDynamicInefficiency ColGeomFactor for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_ColGeomFactors[detid] = value; @@ -51,7 +51,7 @@ bool SiPixelDynamicInefficiency::putChipGeomFactor(const uint32_t& detid, double std::map::const_iterator id = m_ChipGeomFactors.find(detid); if (id != m_ChipGeomFactors.end()) { edm::LogError("SiPixelDynamicInefficiency") << "SiPixelDynamicInefficiency ChipGeomFactor for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_ChipGeomFactors[detid] = value; @@ -73,7 +73,7 @@ bool SiPixelDynamicInefficiency::putPUFactor(const uint32_t& detid, std::vector< std::map >::const_iterator id = m_PUFactors.find(detid); if (id != m_PUFactors.end()) { edm::LogError("SiPixelDynamicInefficiency") << "SiPixelDynamicInefficiency PUFactor for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_PUFactors[detid] = v_value; @@ -111,7 +111,7 @@ uint32_t SiPixelDynamicInefficiency::getDetIdmask(unsigned int& i) const { bool SiPixelDynamicInefficiency::puttheInstLumiScaleFactor(double& theInstLumiScaleFactor) { if (theInstLumiScaleFactor_ != -9999) { edm::LogError("SiPixelDynamicInefficiency") - << "SiPixelDynamicInefficiency theInstLumiScaleFactor is already stored! Skippig this put!" << std::endl; + << "SiPixelDynamicInefficiency theInstLumiScaleFactor is already stored! Skipping this put!" << std::endl; return false; } else { theInstLumiScaleFactor_ = theInstLumiScaleFactor; diff --git a/CondFormats/SiPixelObjects/src/SiPixelLorentzAngle.cc b/CondFormats/SiPixelObjects/src/SiPixelLorentzAngle.cc index a21026a0d6eca..877f79fc2ec92 100644 --- a/CondFormats/SiPixelObjects/src/SiPixelLorentzAngle.cc +++ b/CondFormats/SiPixelObjects/src/SiPixelLorentzAngle.cc @@ -5,7 +5,7 @@ bool SiPixelLorentzAngle::putLorentzAngle(const uint32_t& detid, float& value) { std::map::const_iterator id = m_LA.find(detid); if (id != m_LA.end()) { edm::LogError("SiPixelLorentzAngle") << "SiPixelLorentzAngle for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_LA[detid] = value; diff --git a/CondFormats/SiPixelObjects/src/SiPixelVCal.cc b/CondFormats/SiPixelObjects/src/SiPixelVCal.cc index da083bd629a84..a864a335196c2 100644 --- a/CondFormats/SiPixelObjects/src/SiPixelVCal.cc +++ b/CondFormats/SiPixelObjects/src/SiPixelVCal.cc @@ -6,7 +6,7 @@ bool SiPixelVCal::putSlopeAndOffset(const uint32_t& pixid, float& slopeValue, float& offsetValue) { std::map::const_iterator id = m_vcal.find(pixid); if (id != m_vcal.end()) { - edm::LogError("SiPixelVCal") << "SiPixelVCal for pixid " << pixid << " is already stored. Skippig this put" + edm::LogError("SiPixelVCal") << "SiPixelVCal for pixid " << pixid << " is already stored. Skipping this put" << std::endl; return false; } else { diff --git a/CondFormats/SiStripObjects/src/SiStripApvGain.cc b/CondFormats/SiStripObjects/src/SiStripApvGain.cc index 6537db780a4b9..e8866bfa223cd 100644 --- a/CondFormats/SiStripObjects/src/SiStripApvGain.cc +++ b/CondFormats/SiStripObjects/src/SiStripApvGain.cc @@ -10,7 +10,7 @@ bool SiStripApvGain::put(const uint32_t& DetId, Range input) { RegistryIterator p = std::lower_bound(v_detids.begin(), v_detids.end(), DetId); if (p != v_detids.end() && *p == DetId) { edm::LogError("SiStripApvGain") << "[" << __PRETTY_FUNCTION__ << "] SiStripApvGain for DetID " << DetId - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } diff --git a/CondFormats/SiStripObjects/src/SiStripBackPlaneCorrection.cc b/CondFormats/SiStripObjects/src/SiStripBackPlaneCorrection.cc index 6bab032848531..b7933740adb1b 100644 --- a/CondFormats/SiStripObjects/src/SiStripBackPlaneCorrection.cc +++ b/CondFormats/SiStripObjects/src/SiStripBackPlaneCorrection.cc @@ -6,7 +6,7 @@ bool SiStripBackPlaneCorrection::putBackPlaneCorrection(const uint32_t& detid, f std::map::const_iterator id = m_BPC.find(detid); if (id != m_BPC.end()) { edm::LogError("SiStripBackPlaneCorrection") - << "SiStripBackPlaneCorrection for DetID " << detid << " is already stored. Skippig this put" << std::endl; + << "SiStripBackPlaneCorrection for DetID " << detid << " is already stored. Skipping this put" << std::endl; return false; } else m_BPC[detid] = value; diff --git a/CondFormats/SiStripObjects/src/SiStripBadStrip.cc b/CondFormats/SiStripObjects/src/SiStripBadStrip.cc index ff871b6a9033f..177205b3042b5 100644 --- a/CondFormats/SiStripObjects/src/SiStripBadStrip.cc +++ b/CondFormats/SiStripObjects/src/SiStripBadStrip.cc @@ -9,7 +9,7 @@ bool SiStripBadStrip::put(const uint32_t& DetId, Range input) { Registry::iterator p = std::lower_bound(indexes.begin(), indexes.end(), DetId, SiStripBadStrip::StrictWeakOrdering()); if (p != indexes.end() && p->detid == DetId) { edm::LogError("SiStripBadStrip") << "[" << __PRETTY_FUNCTION__ << "] SiStripBadStrip for DetID " << DetId - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } diff --git a/CondFormats/SiStripObjects/src/SiStripLorentzAngle.cc b/CondFormats/SiStripObjects/src/SiStripLorentzAngle.cc index 62ba91f53dd7a..e866ee451f953 100644 --- a/CondFormats/SiStripObjects/src/SiStripLorentzAngle.cc +++ b/CondFormats/SiStripObjects/src/SiStripLorentzAngle.cc @@ -6,7 +6,7 @@ bool SiStripLorentzAngle::putLorentzAngle(const uint32_t& detid, float value) { std::map::const_iterator id = m_LA.find(detid); if (id != m_LA.end()) { edm::LogError("SiStripLorentzAngle") << "SiStripLorentzAngle for DetID " << detid - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } else m_LA[detid] = value; diff --git a/CondFormats/SiStripObjects/src/SiStripThreshold.cc b/CondFormats/SiStripObjects/src/SiStripThreshold.cc index a94fe2bf69477..27cd1ecc3b525 100644 --- a/CondFormats/SiStripObjects/src/SiStripThreshold.cc +++ b/CondFormats/SiStripObjects/src/SiStripThreshold.cc @@ -12,7 +12,7 @@ bool SiStripThreshold::put(const uint32_t& DetId, const InputVector& _vect) { std::lower_bound(indexes.begin(), indexes.end(), DetId, SiStripThreshold::StrictWeakOrdering()); if (p != indexes.end() && p->detid == DetId) { edm::LogError("SiStripThreshold") << "[" << __PRETTY_FUNCTION__ << "] SiStripThreshold for DetID " << DetId - << " is already stored. Skippig this put" << std::endl; + << " is already stored. Skipping this put" << std::endl; return false; } From 36866f86c31e91213f2725b65a34fc7105a77400 Mon Sep 17 00:00:00 2001 From: idas Date: Fri, 17 Dec 2021 15:54:54 +0100 Subject: [PATCH 28/32] File update following PR discussion to reduce memory footprint --- .../plugins/HGCalSimHitValidation.cc | 301 +++++++----------- 1 file changed, 122 insertions(+), 179 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc index ff4ea5ec0b21f..d95f5b7d831fc 100644 --- a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc @@ -84,19 +84,9 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { bool defineGeometry(const DDCompactView* ddViewH); bool defineGeometry(const cms::DDCompactView* ddViewH); - TH1F* createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX = true); - void histoSetting(TH1F*& histo, - const char* xTitle, - const char* yTitle = "", - Color_t lineColor = kBlack, - Color_t markerColor = kBlack, - int linewidth = 1); - void histoSetting(TH2F*& histo, - const char* xTitle, - const char* yTitle = "", - Color_t lineColor = kBlack, - Color_t markerColor = kBlack, - int linewidth = 1); + TH1F *createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX = true); + void histoSetting(TH1F*& histo, const char *xTitle, const char *yTitle = "", Color_t lineColor = kBlack, Color_t markerColor = kBlack, int linewidth = 1); + void histoSetting(TH2F*& histo, const char *xTitle, const char *yTitle = "", Color_t lineColor = kBlack, Color_t markerColor = kBlack, int linewidth = 1); void fillMuonTomoHistos(int partialType, std::pair hit_); // ----------member data --------------------------- @@ -120,10 +110,9 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { MonitorElement *MeanHitOccupancy_Plus_, *MeanHitOccupancy_Minus_; static const unsigned int maxTime_ = 6; std::vector energy_[maxTime_]; - std::vector energyFWF_, energyFWCN_, energyFWCK_; - std::vector energyPWF_, energyPWCN_, energyPWCK_; - std::vector hitXYFWF_, hitXYFWCN_, hitXYFWCK_, hitXYB_; - std::vector hitXYPWF_, hitXYPWCN_, hitXYPWCK_; + std::vector energyFWF_ , energyFWCN_ , energyFWCK_ ; + std::vector energyPWF_ , energyPWCN_ , energyPWCK_ ; + std::vector hitXYFWF_ , hitXYFWCN_ , hitXYFWCK_ , hitXYB_ ; unsigned int nTimes_; }; @@ -285,7 +274,7 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << nameDetector_ << " with " << map_hits.size() << " detector elements being hit"; - + std::map >::iterator itr; for (itr = map_hits.begin(); itr != map_hits.end(); ++itr) { hitsinfo hinfo = (*itr).second.first; @@ -294,22 +283,23 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { double eta = hinfo.eta; int type, part, orient; int partialType = -1; - if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ HGCSiliconDetId detId = HGCSiliconDetId((*itr).first); - std::tie(type, part, orient) = hgcons_->waferType(detId); - partialType = part; + std::tie(type, part, orient) = hgcons_->waferType(detId) ; + partialType = part ; } - + for (unsigned int itimeslice = 0; itimeslice < nTimes_; itimeslice++) { fillHitsInfo((*itr).second, itimeslice, esum.eTime[itimeslice]); } - + if (eta > 0.0) fillOccupancyMap(OccupancyMap_plus, layer); else fillOccupancyMap(OccupancyMap_minus, layer); - + fillMuonTomoHistos(partialType, (*itr).second); + } if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << "With map:used:total " << hits.size() << "|" << nused << "|" @@ -353,64 +343,48 @@ void HGCalSimHitValidation::fillHitsInfo(std::pair hits, un } void HGCalSimHitValidation::fillMuonTomoHistos(int partialType, std::pair hits) { + hitsinfo hinfo = hits.first; energysum esum = hits.second; - double edep = - esum.eTime[0] * CLHEP::GeV / - CLHEP::keV; //index 0 and 1 corresponds to 25 ns and 1000 ns, respectively. In addititon, chaging energy loss unit to keV. - + double edep = esum.eTime[0] * CLHEP::GeV / CLHEP::keV; //index 0 and 1 corresponds to 25 ns and 1000 ns, respectively. In addititon, chaging energy loss unit to keV. + unsigned int ilayer = hinfo.layer; - double x = hinfo.x * CLHEP::mm / CLHEP::cm; // chaging length unit to cm. + double x = hinfo.x * CLHEP::mm / CLHEP::cm; // chaging length unit to cm. double y = hinfo.y * CLHEP::mm / CLHEP::cm; if (ilayer < layers_) { - if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ + // Fill the energy loss histograms for MIP - if (!TMath::AreEqualAbs(edep, 0.0, 1.e-5)) { //to avoid peak at zero due Eloss less than 10 mili eV. - if (hinfo.type == HGCSiliconDetId::HGCalFine) { - if (partialType == 0) - energyFWF_.at(ilayer)->Fill(edep); - if (partialType > 0) - energyPWF_.at(ilayer)->Fill(edep); - } - if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) { - if (partialType == 0) - energyFWCN_.at(ilayer)->Fill(edep); - if (partialType > 0) - energyPWCN_.at(ilayer)->Fill(edep); - } - if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) { - if (partialType == 0) - energyFWCK_.at(ilayer)->Fill(edep); - if (partialType > 0) - energyPWCK_.at(ilayer)->Fill(edep); - } + if(!TMath::AreEqualAbs(edep, 0.0, 1.e-5)) { //to avoid peak at zero due Eloss less than 10 mili eV. + if(hinfo.type==HGCSiliconDetId::HGCalFine){ + if(partialType==0) energyFWF_.at(ilayer)->Fill(edep); + if(partialType > 0) energyPWF_.at(ilayer)->Fill(edep); + } + if(hinfo.type==HGCSiliconDetId::HGCalCoarseThin){ + if(partialType==0) energyFWCN_.at(ilayer)->Fill(edep); + if(partialType > 0) energyPWCN_.at(ilayer)->Fill(edep); + } + if(hinfo.type==HGCSiliconDetId::HGCalCoarseThick){ + if(partialType==0) energyFWCK_.at(ilayer)->Fill(edep); + if(partialType > 0) energyPWCK_.at(ilayer)->Fill(edep); + } } - + // Fill the XY distribution of detector hits - if (hinfo.type == HGCSiliconDetId::HGCalFine) { - if (partialType == 0) - hitXYFWF_.at(ilayer)->Fill(x, y); - if (partialType > 0) - hitXYPWF_.at(ilayer)->Fill(x, y); - } - if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) { - if (partialType == 0) - hitXYFWCN_.at(ilayer)->Fill(x, y); - if (partialType > 0) - hitXYPWCN_.at(ilayer)->Fill(x, y); - } - if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) { - if (partialType == 0) - hitXYFWCK_.at(ilayer)->Fill(x, y); - if (partialType > 0) - hitXYPWCK_.at(ilayer)->Fill(x, y); - } - - } //is Silicon - if (nameDetector_ == "HGCalHEScintillatorSensitive") { - hitXYB_.at(ilayer)->Fill(x, y); - } //is Scintillator - } //layer condition + if(hinfo.type==HGCSiliconDetId::HGCalFine) + hitXYFWF_.at(ilayer)->Fill(x,y); + + if(hinfo.type==HGCSiliconDetId::HGCalCoarseThin) + hitXYFWCN_.at(ilayer)->Fill(x,y); + + if(hinfo.type==HGCSiliconDetId::HGCalCoarseThick) + hitXYFWCK_.at(ilayer)->Fill(x,y); + + }//is Silicon + if(nameDetector_ == "HGCalHEScintillatorSensitive"){ + hitXYB_.at(ilayer)->Fill(x,y); + }//is Scintillator + }//layer condition } bool HGCalSimHitValidation::defineGeometry(const DDCompactView* ddViewH) { @@ -545,172 +519,141 @@ void HGCalSimHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const histoname << "EtaPhi_Minus_" << "layer_" << istr1; EtaPhi_Minus_.push_back( - iB.book2D(histoname.str().c_str(), "Occupancy", 31, -3.0, -1.45, 72, -CLHEP::pi, CLHEP::pi)); - + iB.book2D(histoname.str().c_str(), "Occupancy", 31, -3.0, -1.45, 72, -CLHEP::pi, CLHEP::pi)); + for (unsigned int itimeslice = 0; itimeslice < nTimes_; itimeslice++) { histoname.str(""); histoname << "energy_time_" << itimeslice << "_layer_" << istr1; energy_[itimeslice].push_back(iB.book1D(histoname.str().c_str(), "energy_", 100, 0, 0.1)); - // TH1F *hEdep = createHisto(histoname.str(), 1000, -3, 6, true); - // histoSetting(hEdep, "Eloss (keV)"); - // energy_[itimeslice].push_back(iB.book1D(histoname.str().c_str(), hEdep)); - // hEdep->Delete(); } - + ///////////// Histograms for Energy loss in full wafers//////////// - if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ histoname.str(""); histoname << "energy_FullWafer_Fine_layer_" << istr1; - TH1F* hEdepFWF = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepFWF, "Eloss (keV)", "", kRed, kRed, 2); - energyFWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWF)); + TH1F *hEdepFWF = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWF, "Eloss (keV)","",kRed,kRed,2); + energyFWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWF )); hEdepFWF->Delete(); - + histoname.str(""); histoname << "energy_FullWafer_CoarseThin_layer_" << istr1; - TH1F* hEdepFWCN = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepFWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); - energyFWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCN)); + TH1F *hEdepFWCN = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWCN, "Eloss (keV)","",kGreen+1,kGreen+1,2); + energyFWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCN )); hEdepFWCN->Delete(); histoname.str(""); histoname << "energy_FullWafer_CoarseThick_layer_" << istr1; - TH1F* hEdepFWCK = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepFWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); - energyFWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCK)); + TH1F *hEdepFWCK = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWCK, "Eloss (keV)","",kMagenta,kMagenta,2); + energyFWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCK )); hEdepFWCK->Delete(); } - + /////////////////////////////////////////////////////////////////// - + ///////////// Histograms for Energy loss in partial wafers//////////// - if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ histoname.str(""); histoname << "energy_PartialWafer_Fine_layer_" << istr1; - TH1F* hEdepPWF = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepPWF, "Eloss (keV)", "", kRed, kRed, 2); - energyPWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWF)); + TH1F *hEdepPWF = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWF, "Eloss (keV)","",kRed,kRed,2); + energyPWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWF )); hEdepPWF->Delete(); histoname.str(""); histoname << "energy_PartialWafer_CoarseThin_layer_" << istr1; - TH1F* hEdepPWCN = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepPWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); - energyPWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCN)); + TH1F *hEdepPWCN = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWCN, "Eloss (keV)","",kGreen+1,kGreen+1,2); + energyPWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCN )); hEdepPWCN->Delete(); - + histoname.str(""); histoname << "energy_PartialWafer_CoarseThick_layer_" << istr1; - TH1F* hEdepPWCK = createHisto(histoname.str(), 1000, -3, 6); - histoSetting(hEdepPWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); - energyPWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCK)); + TH1F *hEdepPWCK = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWCK, "Eloss (keV)","",kMagenta,kMagenta,2); + energyPWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCK )); hEdepPWCK->Delete(); } /////////////////////////////////////////////////////////////////// - ///////////// Histograms for the XY distribution of fired cells/scintillator tiles /////////////// - //Please note that TH2F is placeholder till TGraph Option available in DQMStore.h" - if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { + // ///////////// Histograms for the XY distribution of fired cells/scintillator tiles /////////////// + if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ histoname.str(""); histoname << "hitXY_FullWafer_Fine_layer_" << istr1; - TH2F* hitXYFWF = new TH2F( - Form("hitXYFWF_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYFWF, "x (cm)", "y (cm)", kRed, kRed); + TH2F *hitXYFWF = new TH2F(Form("hitXYFWF_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWF, "x (cm)","y (cm)",kRed,kRed); hitXYFWF_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWF)); hitXYFWF->Delete(); - + histoname.str(""); histoname << "hitXY_FullWafer_CoarseThin_layer_" << istr1; - TH2F* hitXYFWCN = new TH2F( - Form("hitXYFWCN_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYFWCN, "x (cm)", "y (cm)", kGreen + 1, kGreen + 1); + TH2F *hitXYFWCN = new TH2F(Form("hitXYFWCN_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWCN, "x (cm)","y (cm)",kGreen+1,kGreen+1); hitXYFWCN_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCN)); hitXYFWCN->Delete(); - + histoname.str(""); histoname << "hitXY_FullWafer_CoarseThick_layer_" << istr1; - TH2F* hitXYFWCK = new TH2F( - Form("hitXYFWCK_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYFWCK, "x (cm)", "y (cm)", kMagenta, kMagenta); + TH2F *hitXYFWCK = new TH2F(Form("hitXYFWCK_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWCK, "x (cm)","y (cm)",kMagenta,kMagenta); hitXYFWCK_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCK)); hitXYFWCK->Delete(); - - histoname.str(""); - histoname << "hitXY_PartialWafer_Fine_layer_" << istr1; - TH2F* hitXYPWF = new TH2F( - Form("hitXYPWF_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYPWF, "x (cm)", "y (cm)", kRed, kRed); - hitXYPWF_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWF)); - hitXYPWF->Delete(); - - histoname.str(""); - histoname << "hitXY_PartialWafer_CoarseThin_layer_" << istr1; - TH2F* hitXYPWCN = new TH2F( - Form("hitXYPWCN_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYPWCN, "x (cm)", "y (cm)", kGreen + 1, kGreen + 1); - hitXYPWCN_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWCN)); - hitXYPWCN->Delete(); - - histoname.str(""); - histoname << "hitXY_PartialWafer_CoarseThick_layer_" << istr1; - TH2F* hitXYPWCK = new TH2F( - Form("hitXYPWCK_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYPWCK, "x (cm)", "y (cm)", kMagenta, kMagenta); - hitXYPWCK_.push_back(iB.book2D(histoname.str().c_str(), hitXYPWCK)); - hitXYPWCK->Delete(); + } - - if (nameDetector_ == "HGCalHEScintillatorSensitive") { + + if(nameDetector_ == "HGCalHEScintillatorSensitive"){ histoname.str(""); histoname << "hitXY_Scintillator_layer_" << istr1; - TH2F* hitXYB = new TH2F( - Form("hitXYB_%s", histoname.str().c_str()), histoname.str().c_str(), 600, -300., 300., 600, -300., 300.); - histoSetting(hitXYB, "x (cm)", "y (cm)", kBlue, kBlue); + TH2F *hitXYB = new TH2F(Form("hitXYB_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYB, "x (cm)","y (cm)",kBlue,kBlue); hitXYB_.push_back(iB.book2D(histoname.str().c_str(), hitXYB)); hitXYB->Delete(); } ////////////////////////////////////////////////////////////////////////////////////////////////// + } MeanHitOccupancy_Plus_ = iB.book1D("MeanHitOccupancy_Plus", "MeanHitOccupancy_Plus", layers_, 0.5, layers_ + 0.5); MeanHitOccupancy_Minus_ = iB.book1D("MeanHitOccupancy_Minus", "MeanHitOccupancy_Minus", layers_, 0.5, layers_ + 0.5); } -TH1F* HGCalSimHitValidation::createHisto( - std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX) { - TH1F* hist = nullptr; - if (isLogX) { - Double_t xbins[nbins + 1]; - double dx = (maxIndexX - minIndexX) / nbins; - for (int i = 0; i <= nbins; i++) { - xbins[i] = TMath::Power(10, (minIndexX + i * dx)); +TH1F * HGCalSimHitValidation::createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX) +{ + TH1F *hist = 0x0; + if(isLogX){ + Double_t xbins[nbins+1]; + double dx = (maxIndexX - minIndexX)/nbins; + for (int i=0;i<=nbins;i++) { + xbins[i] = TMath::Power(10, (minIndexX + i*dx)); } - hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, xbins); - } else { - hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, minIndexX, maxIndexX); + hist = new TH1F(Form("hEdep_%s",histname.c_str()), histname.c_str(),nbins,xbins); + }else{ + hist = new TH1F(Form("hEdep_%s",histname.c_str()), histname.c_str(),nbins, minIndexX, maxIndexX); } return hist; +} + +void HGCalSimHitValidation::histoSetting(TH1F*& histo, const char *xTitle, const char *yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) +{ + histo->SetStats(); + histo->SetLineColor(lineColor) ; + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor) ; + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); } -void HGCalSimHitValidation::histoSetting( - TH1F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { - histo->SetStats(); - histo->SetLineColor(lineColor); - histo->SetLineWidth(lineWidth); - histo->SetMarkerColor(markerColor); - histo->GetXaxis()->SetTitle(xTitle); - histo->GetYaxis()->SetTitle(yTitle); -} - -void HGCalSimHitValidation::histoSetting( - TH2F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { - histo->SetStats(); - histo->SetLineColor(lineColor); - histo->SetLineWidth(lineWidth); - histo->SetMarkerColor(markerColor); - histo->SetMarkerStyle(kFullCircle); - histo->SetMarkerSize(0.6); - histo->GetXaxis()->SetTitle(xTitle); - histo->GetYaxis()->SetTitle(yTitle); +void HGCalSimHitValidation::histoSetting(TH2F*& histo, const char *xTitle, const char *yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) +{ + histo->SetStats(); + histo->SetLineColor(lineColor) ; + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor) ; + histo->SetMarkerStyle(kFullCircle) ; + histo->SetMarkerSize(0.6) ; + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); } #include "FWCore/Framework/interface/MakerMacros.h" //define this as a plug-in From 684c80a0496e67c58b0286adc69fa0fdc8cf0342 Mon Sep 17 00:00:00 2001 From: Marino Missiroli Date: Fri, 17 Dec 2021 17:03:55 +0100 Subject: [PATCH 29/32] HLT menu development for 12_3_X + migration to 12_3_0_pre2 template --- .../Configuration/python/HLT_FULL_cff.py | 225 ++++++++++------- .../Configuration/python/HLT_Fake1_cff.py | 4 +- .../Configuration/python/HLT_Fake2_cff.py | 6 +- .../Configuration/python/HLT_Fake_cff.py | 4 +- .../Configuration/python/HLT_GRun_cff.py | 225 ++++++++++------- .../Configuration/python/HLT_HIon_cff.py | 199 +++++++++------ .../Configuration/python/HLT_PIon_cff.py | 6 +- .../Configuration/python/HLT_PRef_cff.py | 215 ++++++++++------ .../python/HLTrigger_EventContent_cff.py | 8 +- .../Configuration/test/OnLine_HLT_FULL.py | 230 +++++++++++------- .../Configuration/test/OnLine_HLT_Fake.py | 4 +- .../Configuration/test/OnLine_HLT_Fake1.py | 4 +- .../Configuration/test/OnLine_HLT_Fake2.py | 6 +- .../Configuration/test/OnLine_HLT_GRun.py | 230 +++++++++++------- .../Configuration/test/OnLine_HLT_HIon.py | 200 +++++++++------ .../Configuration/test/OnLine_HLT_PIon.py | 6 +- .../Configuration/test/OnLine_HLT_PRef.py | 215 ++++++++++------ 17 files changed, 1105 insertions(+), 682 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_FULL_cff.py b/HLTrigger/Configuration/python/HLT_FULL_cff.py index b0ec661f66374..8fa2c65570f64 100644 --- a/HLTrigger/Configuration/python/HLT_FULL_cff.py +++ b/HLTrigger/Configuration/python/HLT_FULL_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/HLT --type FULL -# /dev/CMSSW_12_3_0/HLT/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/HLT/V5 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/HLT/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/HLT/V5') ) fragment.transferSystem = cms.PSet( @@ -8313,6 +8313,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -8323,6 +8324,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -9353,84 +9355,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -9457,6 +9457,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +fragment.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +fragment.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +fragment.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) fragment.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -9596,7 +9641,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -9617,7 +9664,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -9972,7 +10021,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -10797,7 +10848,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -11640,7 +11693,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -11684,6 +11739,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -11883,8 +11940,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -99074,7 +99131,7 @@ do_express = cms.bool( True ), triggerType = cms.int32( 91 ) ) -fragment.hltPPSExpCalibrationRaw = cms.EDProducer( "EvFFEDSelector", +fragment.hltPPSCalibrationRaw = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) ) @@ -99089,10 +99146,6 @@ do_express = cms.bool( False ), triggerType = cms.int32( 91 ) ) -fragment.hltPPSPrCalibrationRaw = cms.EDProducer( "EvFFEDSelector", - inputTag = cms.InputTag( "rawDataCollector" ), - fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) -) fragment.hltL1sDoubleMu = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0_OQ OR L1_DoubleMu0" ), @@ -123309,7 +123362,7 @@ fragment.HLTDoCaloSequencePF = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForAll ) fragment.HLTAK8CaloJetsPrePFRecoSequence = cms.Sequence( fragment.HLTDoCaloSequencePF + fragment.hltAK8CaloJetsPF + fragment.hltAK4CaloJetsPF ) fragment.HLTPreAK8PFJetsRecoSequence = cms.Sequence( fragment.HLTAK8CaloJetsPrePFRecoSequence + fragment.hltAK8CaloJetsPFEt5 + fragment.hltAK4CaloJetsPFEt5 ) -fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits ) +fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits + fragment.hltMuonGEMDigis + fragment.hltGemRecHits + fragment.hltGemSegments ) fragment.HLTL2muonrecoNocandSequence = cms.Sequence( fragment.HLTMuonLocalRecoSequence + fragment.hltL2OfflineMuonSeeds + fragment.hltL2MuonSeeds + fragment.hltL2Muons ) fragment.HLTL2muonrecoSequence = cms.Sequence( fragment.HLTL2muonrecoNocandSequence + fragment.hltL2MuonCandidates ) fragment.HLTDoLocalPixelSequence = cms.Sequence( fragment.hltSiPixelDigis + fragment.hltSiPixelClusters + fragment.hltSiPixelClustersCache + fragment.hltSiPixelRecHits ) @@ -125043,8 +125096,8 @@ fragment.HLT_L1RomanPot_part1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1RomanPot + fragment.hltPreL1RomanPotpart1 + fragment.HLTEndSequence ) fragment.HLT_L1RomanPot_part2_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1RomanPot + fragment.hltPreL1RomanPotpart2 + fragment.HLTEndSequence ) fragment.HLT_L1RomanPot_part3_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1RomanPot + fragment.hltPreL1RomanPotpart3 + fragment.HLTEndSequence ) -fragment.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerArm1 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSExpCalFilter + fragment.hltPPSExpCalibrationRaw + fragment.HLTEndSequence ) -fragment.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerRP4 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSPrCalFilter + fragment.hltPPSPrCalibrationRaw + fragment.HLTEndSequence ) +fragment.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerArm1 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSExpCalFilter + fragment.hltPPSCalibrationRaw + fragment.HLTEndSequence ) +fragment.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerRP4 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSPrCalFilter + fragment.hltPPSCalibrationRaw + fragment.HLTEndSequence ) fragment.HLT_L1DoubleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu + fragment.hltPreL1DoubleMu + fragment.HLTEndSequence ) fragment.HLT_L1SingleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1SingleMu + fragment.hltPreL1SingleMu + fragment.HLTEndSequence ) fragment.HLT_L1DoubleJet_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1DoubleJet + fragment.hltPreL1DoubleJet + fragment.HLTEndSequence ) diff --git a/HLTrigger/Configuration/python/HLT_Fake1_cff.py b/HLTrigger/Configuration/python/HLT_Fake1_cff.py index 99a057584ebe3..daf494b1f08a2 100644 --- a/HLTrigger/Configuration/python/HLT_Fake1_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake1_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/Fake1 --type Fake1 -# /dev/CMSSW_12_3_0/Fake1/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake1/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake1/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake1/V3') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake2_cff.py b/HLTrigger/Configuration/python/HLT_Fake2_cff.py index bceb565d243f3..4af3807bdfb65 100644 --- a/HLTrigger/Configuration/python/HLT_Fake2_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake2_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/Fake2 --type Fake2 -# /dev/CMSSW_12_3_0/Fake2/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake2/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake2/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake2/V3') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) @@ -95,6 +95,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -105,6 +106,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), diff --git a/HLTrigger/Configuration/python/HLT_Fake_cff.py b/HLTrigger/Configuration/python/HLT_Fake_cff.py index 60e882ea27c35..d81fc8a10f13e 100644 --- a/HLTrigger/Configuration/python/HLT_Fake_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/Fake --type Fake -# /dev/CMSSW_12_3_0/Fake/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake/V3') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_GRun_cff.py b/HLTrigger/Configuration/python/HLT_GRun_cff.py index a30676350a148..41d03942ca65c 100644 --- a/HLTrigger/Configuration/python/HLT_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLT_GRun_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/GRun --type GRun -# /dev/CMSSW_12_3_0/GRun/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/GRun/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/GRun/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/GRun/V4') ) fragment.transferSystem = cms.PSet( @@ -6953,6 +6953,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -6963,6 +6964,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -7993,84 +7995,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -8097,6 +8097,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +fragment.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +fragment.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +fragment.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) fragment.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -8236,7 +8281,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -8257,7 +8304,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -8612,7 +8661,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -9437,7 +9488,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -10280,7 +10333,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -10324,6 +10379,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -10523,8 +10580,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -88478,7 +88535,7 @@ do_express = cms.bool( True ), triggerType = cms.int32( 91 ) ) -fragment.hltPPSExpCalibrationRaw = cms.EDProducer( "EvFFEDSelector", +fragment.hltPPSCalibrationRaw = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) ) @@ -88493,10 +88550,6 @@ do_express = cms.bool( False ), triggerType = cms.int32( 91 ) ) -fragment.hltPPSPrCalibrationRaw = cms.EDProducer( "EvFFEDSelector", - inputTag = cms.InputTag( "rawDataCollector" ), - fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) -) fragment.hltFEDSelector = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 1023, 1024 ) @@ -88616,7 +88669,7 @@ fragment.HLTDoCaloSequencePF = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForAll ) fragment.HLTAK8CaloJetsPrePFRecoSequence = cms.Sequence( fragment.HLTDoCaloSequencePF + fragment.hltAK8CaloJetsPF + fragment.hltAK4CaloJetsPF ) fragment.HLTPreAK8PFJetsRecoSequence = cms.Sequence( fragment.HLTAK8CaloJetsPrePFRecoSequence + fragment.hltAK8CaloJetsPFEt5 + fragment.hltAK4CaloJetsPFEt5 ) -fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits ) +fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits + fragment.hltMuonGEMDigis + fragment.hltGemRecHits + fragment.hltGemSegments ) fragment.HLTL2muonrecoNocandSequence = cms.Sequence( fragment.HLTMuonLocalRecoSequence + fragment.hltL2OfflineMuonSeeds + fragment.hltL2MuonSeeds + fragment.hltL2Muons ) fragment.HLTL2muonrecoSequence = cms.Sequence( fragment.HLTL2muonrecoNocandSequence + fragment.hltL2MuonCandidates ) fragment.HLTDoLocalPixelSequence = cms.Sequence( fragment.hltSiPixelDigis + fragment.hltSiPixelClusters + fragment.hltSiPixelClustersCache + fragment.hltSiPixelRecHits ) @@ -89824,8 +89877,8 @@ fragment.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu3 + fragment.hltPreTrkMu6NoFiltersNoVtx + fragment.hltL1fL1sSingleMu3L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered6NoVtx + fragment.HLTEndSequence ) fragment.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu7 + fragment.hltPreTrkMu16NoFiltersNoVtx + fragment.hltL1fL1sSingleMu7L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0SQ + fragment.hltPreDoubleTrkMu166NoFiltersNoVtx + fragment.hltL1fL1sDoubleMu0SQL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(fragment.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + fragment.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltDoubleTrkMuFiltered6NoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) -fragment.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerArm1 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSExpCalFilter + fragment.hltPPSExpCalibrationRaw + fragment.HLTEndSequence ) -fragment.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerRP4 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSPrCalFilter + fragment.hltPPSPrCalibrationRaw + fragment.HLTEndSequence ) +fragment.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerArm1 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSExpCalFilter + fragment.hltPPSCalibrationRaw + fragment.HLTEndSequence ) +fragment.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBias + fragment.hltPrePPSMaxTracksPerRP4 + fragment.HLTPPSPixelRecoSequence + fragment.hltPPSPrCalFilter + fragment.hltPPSCalibrationRaw + fragment.HLTEndSequence ) fragment.HLTriggerFinalPath = cms.Path( fragment.hltGtStage2Digis + fragment.hltScalersRawToDigi + fragment.hltFEDSelector + fragment.hltTriggerSummaryAOD + fragment.hltTriggerSummaryRAW + fragment.hltBoolFalse ) fragment.HLTAnalyzerEndpath = cms.EndPath( fragment.hltGtStage2Digis + fragment.hltPreHLTAnalyzerEndpath + fragment.hltL1TGlobalSummary + fragment.hltTrigReport ) fragment.ScoutingPFOutput = cms.Path( fragment.hltGtStage2Digis + fragment.hltPreScoutingPFOutput + fragment.hltFEDSelectorL1 + fragment.HLTPixelOnlyPFScoutingPackingSequence + fragment.hltScoutingPrimaryVertexPacker + fragment.hltScoutingTrackPacker ) diff --git a/HLTrigger/Configuration/python/HLT_HIon_cff.py b/HLTrigger/Configuration/python/HLT_HIon_cff.py index 4495aae991223..9a4ccb15f60a5 100644 --- a/HLTrigger/Configuration/python/HLT_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_HIon_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/HIon --type HIon -# /dev/CMSSW_12_3_0/HIon/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/HIon/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/HIon/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/HIon/V4') ) fragment.transferSystem = cms.PSet( @@ -6113,6 +6113,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -6123,6 +6124,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -6749,84 +6751,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -6853,6 +6853,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +fragment.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +fragment.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +fragment.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) fragment.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), @@ -32113,7 +32158,7 @@ fragment.HLTBeginSequenceRandom = cms.Sequence( fragment.hltRandomEventsFilter + fragment.hltGtStage2Digis ) fragment.HLTDoFullUnpackingEgammaEcalSequence = cms.Sequence( fragment.hltEcalDigis + fragment.hltEcalPreshowerDigis + fragment.hltEcalUncalibRecHit + fragment.hltEcalDetIdToBeRecovered + fragment.hltEcalRecHit + fragment.hltEcalPreshowerRecHit ) fragment.HLTBeginSequenceNZS = cms.Sequence( fragment.hltTriggerType + fragment.hltL1EventNumberNZS + fragment.HLTL1UnpackerSequence + fragment.HLTBeamSpot ) -fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits ) +fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits + fragment.hltMuonGEMDigis + fragment.hltGemRecHits + fragment.hltGemSegments ) fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence = cms.Sequence( fragment.hltEcalDigis + fragment.hltEcalUncalibRecHit + fragment.hltEcalDetIdToBeRecovered + fragment.hltEcalRecHit ) fragment.HLTDoLocalHcalSequence = cms.Sequence( fragment.hltHcalDigis + fragment.hltHbhereco + fragment.hltHfprereco + fragment.hltHfreco + fragment.hltHoreco ) fragment.HLTDoCaloSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForAll ) diff --git a/HLTrigger/Configuration/python/HLT_PIon_cff.py b/HLTrigger/Configuration/python/HLT_PIon_cff.py index f3653e85f352b..2b8540a91c404 100644 --- a/HLTrigger/Configuration/python/HLT_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_PIon_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/PIon --type PIon -# /dev/CMSSW_12_3_0/PIon/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/PIon/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/PIon/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/PIon/V4') ) fragment.transferSystem = cms.PSet( @@ -5591,6 +5591,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -5601,6 +5602,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), diff --git a/HLTrigger/Configuration/python/HLT_PRef_cff.py b/HLTrigger/Configuration/python/HLT_PRef_cff.py index 61770d7b093b3..1d4480248e7d0 100644 --- a/HLTrigger/Configuration/python/HLT_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLT_PRef_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_3_0/PRef --type PRef -# /dev/CMSSW_12_3_0/PRef/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/PRef/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/PRef/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/PRef/V4') ) fragment.transferSystem = cms.PSet( @@ -5663,6 +5663,7 @@ ) fragment.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -5673,6 +5674,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -6468,84 +6470,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -6572,6 +6572,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +fragment.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +fragment.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +fragment.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) fragment.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -6711,7 +6756,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -6732,7 +6779,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -7087,7 +7136,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -7912,7 +7963,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -8755,7 +8808,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -8799,6 +8854,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -8998,8 +9055,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -11134,7 +11191,7 @@ fragment.HLTDoCaloSequencePF = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForAll ) fragment.HLTAK4CaloJetsPrePFRecoSequence = cms.Sequence( fragment.HLTDoCaloSequencePF + fragment.hltAK4CaloJetsPF ) fragment.HLTPreAK4PFJetsRecoSequence = cms.Sequence( fragment.HLTAK4CaloJetsPrePFRecoSequence + fragment.hltAK4CaloJetsPFEt5 ) -fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits ) +fragment.HLTMuonLocalRecoSequence = cms.Sequence( fragment.hltMuonDTDigis + fragment.hltDt1DRecHits + fragment.hltDt4DSegments + fragment.hltMuonCSCDigis + fragment.hltCsc2DRecHits + fragment.hltCscSegments + fragment.hltMuonRPCDigis + fragment.hltRpcRecHits + fragment.hltMuonGEMDigis + fragment.hltGemRecHits + fragment.hltGemSegments ) fragment.HLTL2muonrecoNocandSequence = cms.Sequence( fragment.HLTMuonLocalRecoSequence + fragment.hltL2OfflineMuonSeeds + fragment.hltL2MuonSeeds + fragment.hltL2Muons ) fragment.HLTL2muonrecoSequence = cms.Sequence( fragment.HLTL2muonrecoNocandSequence + fragment.hltL2MuonCandidates ) fragment.HLTDoLocalPixelSequence = cms.Sequence( fragment.hltSiPixelDigis + fragment.hltSiPixelClusters + fragment.hltSiPixelClustersCache + fragment.hltSiPixelRecHits ) diff --git a/HLTrigger/Configuration/python/HLTrigger_EventContent_cff.py b/HLTrigger/Configuration/python/HLTrigger_EventContent_cff.py index daa7b19b8b8ad..71496ffca2745 100644 --- a/HLTrigger/Configuration/python/HLTrigger_EventContent_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_EventContent_cff.py @@ -179,6 +179,7 @@ 'keep *_hltGmtStage2Digis_*_*', 'keep *_hltGoodOnlinePVs_*_*', 'keep *_hltGtStage2Digis_*_*', + 'keep *_hltGtStage2ObjectMap_*_*', 'keep *_hltHICaloJetCorrected_*_*', 'keep *_hltHICaloJetIDPassed_*_*', 'keep *_hltHIGoodLooseTracks_*_*', @@ -315,8 +316,7 @@ 'keep *_hltPFTauTightIso20Track_*_*', 'keep *_hltPFTauTightIso20_*_*', 'keep *_hltPFlowTrackSelectionHighPurity_*_*', - 'keep *_hltPPSExpCalibrationRaw_*_*', - 'keep *_hltPPSPrCalibrationRaw_*_*', + 'keep *_hltPPSCalibrationRaw_*_*', 'keep *_hltParticleFlowForTaus_*_*', 'keep *_hltParticleFlow_*_*', 'keep *_hltPixelMatch3HitElectronsActivity_*_*', @@ -528,6 +528,7 @@ 'keep *_hltGmtStage2Digis_*_*', 'keep *_hltGoodOnlinePVs_*_*', 'keep *_hltGtStage2Digis_*_*', + 'keep *_hltGtStage2ObjectMap_*_*', 'keep *_hltHICaloJetCorrected_*_*', 'keep *_hltHICaloJetIDPassed_*_*', 'keep *_hltHIGoodLooseTracks_*_*', @@ -664,8 +665,7 @@ 'keep *_hltPFTauTightIso20Track_*_*', 'keep *_hltPFTauTightIso20_*_*', 'keep *_hltPFlowTrackSelectionHighPurity_*_*', - 'keep *_hltPPSExpCalibrationRaw_*_*', - 'keep *_hltPPSPrCalibrationRaw_*_*', + 'keep *_hltPPSCalibrationRaw_*_*', 'keep *_hltParticleFlowForTaus_*_*', 'keep *_hltParticleFlow_*_*', 'keep *_hltPixelMatch3HitElectronsActivity_*_*', diff --git a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py index 48978f81c7228..a170573c392b4 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/HLT --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root -# /dev/CMSSW_12_3_0/HLT/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/HLT/V5 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFULL" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/HLT/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/HLT/V5') ) process.transferSystem = cms.PSet( @@ -8577,6 +8577,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -8587,6 +8588,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -9617,84 +9619,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -9721,6 +9721,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +process.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +process.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +process.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) process.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -9860,7 +9905,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -9881,7 +9928,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -10236,7 +10285,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -11061,7 +11112,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -11904,7 +11957,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -11948,6 +12003,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -12147,8 +12204,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -99338,7 +99395,7 @@ do_express = cms.bool( True ), triggerType = cms.int32( 91 ) ) -process.hltPPSExpCalibrationRaw = cms.EDProducer( "EvFFEDSelector", +process.hltPPSCalibrationRaw = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) ) @@ -99353,10 +99410,6 @@ do_express = cms.bool( False ), triggerType = cms.int32( 91 ) ) -process.hltPPSPrCalibrationRaw = cms.EDProducer( "EvFFEDSelector", - inputTag = cms.InputTag( "rawDataCollector" ), - fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) -) process.hltL1sDoubleMu = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0_OQ OR L1_DoubleMu0" ), @@ -127619,9 +127672,8 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'HLT_PPSMaxTracksPerArm1_v1', 'HLT_PPSMaxTracksPerRP4_v1' ) ), - outputCommands = cms.untracked.vstring( 'keep *_hltPPSExpCalibrationRaw_*_*', - 'keep *_hltPPSPrCalibrationRaw_*_*', - 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + outputCommands = cms.untracked.vstring( 'keep *_hltGtStage2ObjectMap_*_*', + 'keep *_hltPPSCalibrationRaw_*_*', 'keep edmTriggerResults_*_*_*', 'keep triggerTriggerEvent_*_*_*' ) ) @@ -130036,7 +130088,7 @@ process.HLTDoCaloSequencePF = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + process.HLTDoLocalHcalSequence + process.hltTowerMakerForAll ) process.HLTAK8CaloJetsPrePFRecoSequence = cms.Sequence( process.HLTDoCaloSequencePF + process.hltAK8CaloJetsPF + process.hltAK4CaloJetsPF ) process.HLTPreAK8PFJetsRecoSequence = cms.Sequence( process.HLTAK8CaloJetsPrePFRecoSequence + process.hltAK8CaloJetsPFEt5 + process.hltAK4CaloJetsPFEt5 ) -process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits ) +process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits + process.hltMuonGEMDigis + process.hltGemRecHits + process.hltGemSegments ) process.HLTL2muonrecoNocandSequence = cms.Sequence( process.HLTMuonLocalRecoSequence + process.hltL2OfflineMuonSeeds + process.hltL2MuonSeeds + process.hltL2Muons ) process.HLTL2muonrecoSequence = cms.Sequence( process.HLTL2muonrecoNocandSequence + process.hltL2MuonCandidates ) process.HLTDoLocalPixelSequence = cms.Sequence( process.hltSiPixelDigis + process.hltSiPixelClusters + process.hltSiPixelClustersCache + process.hltSiPixelRecHits ) @@ -131771,8 +131823,8 @@ process.HLT_L1RomanPot_part1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1RomanPot + process.hltPreL1RomanPotpart1 + process.HLTEndSequence ) process.HLT_L1RomanPot_part2_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1RomanPot + process.hltPreL1RomanPotpart2 + process.HLTEndSequence ) process.HLT_L1RomanPot_part3_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1RomanPot + process.hltPreL1RomanPotpart3 + process.HLTEndSequence ) -process.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerArm1 + process.HLTPPSPixelRecoSequence + process.hltPPSExpCalFilter + process.hltPPSExpCalibrationRaw + process.HLTEndSequence ) -process.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerRP4 + process.HLTPPSPixelRecoSequence + process.hltPPSPrCalFilter + process.hltPPSPrCalibrationRaw + process.HLTEndSequence ) +process.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerArm1 + process.HLTPPSPixelRecoSequence + process.hltPPSExpCalFilter + process.hltPPSCalibrationRaw + process.HLTEndSequence ) +process.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerRP4 + process.HLTPPSPixelRecoSequence + process.hltPPSPrCalFilter + process.hltPPSCalibrationRaw + process.HLTEndSequence ) process.HLT_L1DoubleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu + process.hltPreL1DoubleMu + process.HLTEndSequence ) process.HLT_L1SingleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1SingleMu + process.hltPreL1SingleMu + process.HLTEndSequence ) process.HLT_L1DoubleJet_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1DoubleJet + process.hltPreL1DoubleJet + process.HLTEndSequence ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py index 34e731b8b04bb..15bb4000a60ea 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/Fake --type Fake --unprescale --process HLTFake --globaltag auto:run1_hlt_Fake --input file:RelVal_Raw_Fake_DATA.root -# /dev/CMSSW_12_3_0/Fake/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake/V3') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py index 805b44e661baa..f0f8455cb790c 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/Fake1 --type Fake1 --unprescale --process HLTFake1 --globaltag auto:run2_hlt_Fake1 --input file:RelVal_Raw_Fake1_DATA.root -# /dev/CMSSW_12_3_0/Fake1/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake1/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake1" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake1/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake1/V3') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py index 3bac4816920e7..4a1919bcafdb5 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/Fake2 --type Fake2 --unprescale --process HLTFake2 --globaltag auto:run2_hlt_Fake2 --input file:RelVal_Raw_Fake2_DATA.root -# /dev/CMSSW_12_3_0/Fake2/V2 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/Fake2/V3 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake2" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/Fake2/V2') + tableName = cms.string('/dev/CMSSW_12_3_0/Fake2/V3') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) @@ -199,6 +199,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -209,6 +210,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py index 19ce343d6e8f0..7adc6e444cc32 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/GRun --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root -# /dev/CMSSW_12_3_0/GRun/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/GRun/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTGRun" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/GRun/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/GRun/V4') ) process.transferSystem = cms.PSet( @@ -7217,6 +7217,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -7227,6 +7228,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -8257,84 +8259,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -8361,6 +8361,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +process.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +process.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +process.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) process.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -8500,7 +8545,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -8521,7 +8568,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -8876,7 +8925,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -9701,7 +9752,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -10544,7 +10597,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -10588,6 +10643,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -10787,8 +10844,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -88742,7 +88799,7 @@ do_express = cms.bool( True ), triggerType = cms.int32( 91 ) ) -process.hltPPSExpCalibrationRaw = cms.EDProducer( "EvFFEDSelector", +process.hltPPSCalibrationRaw = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) ) @@ -88757,10 +88814,6 @@ do_express = cms.bool( False ), triggerType = cms.int32( 91 ) ) -process.hltPPSPrCalibrationRaw = cms.EDProducer( "EvFFEDSelector", - inputTag = cms.InputTag( "rawDataCollector" ), - fedList = cms.vuint32( 579, 581, 582, 583, 586, 587, 1462, 1463 ) -) process.hltFEDSelector = cms.EDProducer( "EvFFEDSelector", inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 1023, 1024 ) @@ -91351,9 +91404,8 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'HLT_PPSMaxTracksPerArm1_v1', 'HLT_PPSMaxTracksPerRP4_v1' ) ), - outputCommands = cms.untracked.vstring( 'keep *_hltPPSExpCalibrationRaw_*_*', - 'keep *_hltPPSPrCalibrationRaw_*_*', - 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + outputCommands = cms.untracked.vstring( 'keep *_hltGtStage2ObjectMap_*_*', + 'keep *_hltPPSCalibrationRaw_*_*', 'keep edmTriggerResults_*_*_*', 'keep triggerTriggerEvent_*_*_*' ) ) @@ -91600,7 +91652,7 @@ process.HLTDoCaloSequencePF = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + process.HLTDoLocalHcalSequence + process.hltTowerMakerForAll ) process.HLTAK8CaloJetsPrePFRecoSequence = cms.Sequence( process.HLTDoCaloSequencePF + process.hltAK8CaloJetsPF + process.hltAK4CaloJetsPF ) process.HLTPreAK8PFJetsRecoSequence = cms.Sequence( process.HLTAK8CaloJetsPrePFRecoSequence + process.hltAK8CaloJetsPFEt5 + process.hltAK4CaloJetsPFEt5 ) -process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits ) +process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits + process.hltMuonGEMDigis + process.hltGemRecHits + process.hltGemSegments ) process.HLTL2muonrecoNocandSequence = cms.Sequence( process.HLTMuonLocalRecoSequence + process.hltL2OfflineMuonSeeds + process.hltL2MuonSeeds + process.hltL2Muons ) process.HLTL2muonrecoSequence = cms.Sequence( process.HLTL2muonrecoNocandSequence + process.hltL2MuonCandidates ) process.HLTDoLocalPixelSequence = cms.Sequence( process.hltSiPixelDigis + process.hltSiPixelClusters + process.hltSiPixelClustersCache + process.hltSiPixelRecHits ) @@ -92809,8 +92861,8 @@ process.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu3 + process.hltPreTrkMu6NoFiltersNoVtx + process.hltL1fL1sSingleMu3L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered6NoVtx + process.HLTEndSequence ) process.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu7 + process.hltPreTrkMu16NoFiltersNoVtx + process.hltL1fL1sSingleMu7L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0SQ + process.hltPreDoubleTrkMu166NoFiltersNoVtx + process.hltL1fL1sDoubleMu0SQL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(process.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + process.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltDoubleTrkMuFiltered6NoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) -process.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerArm1 + process.HLTPPSPixelRecoSequence + process.hltPPSExpCalFilter + process.hltPPSExpCalibrationRaw + process.HLTEndSequence ) -process.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerRP4 + process.HLTPPSPixelRecoSequence + process.hltPPSPrCalFilter + process.hltPPSPrCalibrationRaw + process.HLTEndSequence ) +process.HLT_PPSMaxTracksPerArm1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerArm1 + process.HLTPPSPixelRecoSequence + process.hltPPSExpCalFilter + process.hltPPSCalibrationRaw + process.HLTEndSequence ) +process.HLT_PPSMaxTracksPerRP4_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBias + process.hltPrePPSMaxTracksPerRP4 + process.HLTPPSPixelRecoSequence + process.hltPPSPrCalFilter + process.hltPPSCalibrationRaw + process.HLTEndSequence ) process.HLTriggerFinalPath = cms.Path( process.hltGtStage2Digis + process.hltScalersRawToDigi + process.hltFEDSelector + process.hltTriggerSummaryAOD + process.hltTriggerSummaryRAW + process.hltBoolFalse ) process.HLTAnalyzerEndpath = cms.EndPath( process.hltGtStage2Digis + process.hltPreHLTAnalyzerEndpath + process.hltL1TGlobalSummary + process.hltTrigReport ) process.ParkingHLTPhysicsOutput = cms.EndPath( process.hltGtStage2Digis + process.hltPreParkingHLTPhysicsOutput ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py index 7fb9004d0b305..ac75a2091eda1 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/HIon --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root -# /dev/CMSSW_12_3_0/HIon/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/HIon/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTHIon" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/HIon/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/HIon/V4') ) process.transferSystem = cms.PSet( @@ -6377,6 +6377,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -6387,6 +6388,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -7013,84 +7015,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -7117,6 +7117,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +process.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataRepacker" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +process.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +process.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) process.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), @@ -33971,7 +34016,7 @@ process.HLTBeginSequenceRandom = cms.Sequence( process.hltRandomEventsFilter + process.hltGtStage2Digis ) process.HLTDoFullUnpackingEgammaEcalSequence = cms.Sequence( process.hltEcalDigis + process.hltEcalPreshowerDigis + process.hltEcalUncalibRecHit + process.hltEcalDetIdToBeRecovered + process.hltEcalRecHit + process.hltEcalPreshowerRecHit ) process.HLTBeginSequenceNZS = cms.Sequence( process.hltTriggerType + process.hltL1EventNumberNZS + process.HLTL1UnpackerSequence + process.HLTBeamSpot ) -process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits ) +process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits + process.hltMuonGEMDigis + process.hltGemRecHits + process.hltGemSegments ) process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence = cms.Sequence( process.hltEcalDigis + process.hltEcalUncalibRecHit + process.hltEcalDetIdToBeRecovered + process.hltEcalRecHit ) process.HLTDoLocalHcalSequence = cms.Sequence( process.hltHcalDigis + process.hltHbhereco + process.hltHfprereco + process.hltHfreco + process.hltHoreco ) process.HLTDoCaloSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + process.HLTDoLocalHcalSequence + process.hltTowerMakerForAll ) @@ -34667,6 +34712,7 @@ ) process.DQMOutput = cms.EndPath( process.dqmOutput ) +process.schedule.append( process.DQMOutput ) # add specific customizations _customInfo = {} diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py index a1ad99bebb22a..e7d1e61aa0558 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/PIon --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root -# /dev/CMSSW_12_3_0/PIon/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/PIon/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTPIon" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/PIon/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/PIon/V4') ) process.transferSystem = cms.PSet( @@ -5855,6 +5855,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -5865,6 +5866,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py index 54ccd18448f45..e5137c55acc2e 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/PRef --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root -# /dev/CMSSW_12_3_0/PRef/V1 (CMSSW_12_3_0_pre1) +# /dev/CMSSW_12_3_0/PRef/V4 (CMSSW_12_3_0_pre2) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTPRef" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_3_0/PRef/V1') + tableName = cms.string('/dev/CMSSW_12_3_0/PRef/V4') ) process.transferSystem = cms.PSet( @@ -5927,6 +5927,7 @@ ) process.hltGtStage2ObjectMap = cms.EDProducer( "L1TGlobalProducer", MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + MuonShowerInputTag = cms.InputTag( "" ), EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), @@ -5937,6 +5938,7 @@ AlgorithmTriggersUnprescaled = cms.bool( True ), RequireMenuToMatchAlgoBlkInput = cms.bool( True ), AlgorithmTriggersUnmasked = cms.bool( True ), + useMuonShowers = cms.bool( False ), ProduceL1GtDaqRecord = cms.bool( True ), ProduceL1GtObjectMapRecord = cms.bool( True ), EmulateBxInEvent = cms.int32( 1 ), @@ -6732,84 +6734,82 @@ inputObjects = cms.InputTag( "hltCsc2DRecHits" ), algo_type = cms.int32( 1 ), algo_psets = cms.VPSet( - cms.PSet( parameters_per_chamber_type = cms.vint32( 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), + cms.PSet( parameters_per_chamber_type = cms.vint32( 1, 2, 3, 4, 5, 6, 5, 6, 5, 6 ), algo_psets = cms.VPSet( - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 20 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ), - cms.PSet( dYclusBoxMax = cms.double( 8.0 ), - hitDropLimit4Hits = cms.double( 0.6 ), - maxRatioResidualPrune = cms.double( 3.0 ), - curvePenaltyThreshold = cms.double( 0.85 ), - maxRecHitsInCluster = cms.int32( 24 ), - useShowering = cms.bool( False ), - BPMinImprovement = cms.double( 10000.0 ), - curvePenalty = cms.double( 2.0 ), - ForceCovariance = cms.bool( False ), - yweightPenalty = cms.double( 1.5 ), - dPhiFineMax = cms.double( 0.025 ), - SeedBig = cms.double( 0.0015 ), - NormChi2Cut3D = cms.double( 10.0 ), - Covariance = cms.double( 0.0 ), - CSCDebug = cms.untracked.bool( False ), - tanThetaMax = cms.double( 1.2 ), - Pruning = cms.bool( True ), - tanPhiMax = cms.double( 0.5 ), - onlyBestSegment = cms.bool( False ), - dXclusBoxMax = cms.double( 4.0 ), - maxDTheta = cms.double( 999.0 ), - preClustering = cms.bool( True ), - preClusteringUseChaining = cms.bool( True ), - yweightPenaltyThreshold = cms.double( 1.0 ), - hitDropLimit6Hits = cms.double( 0.3333 ), - prePrun = cms.bool( True ), - CorrectTheErrors = cms.bool( True ), - ForceCovarianceAll = cms.bool( False ), - NormChi2Cut2D = cms.double( 20.0 ), - SeedSmall = cms.double( 2.0E-4 ), - minHitsPerSegment = cms.int32( 3 ), - dRPhiFineMax = cms.double( 8.0 ), - maxDPhi = cms.double( 999.0 ), - hitDropLimit5Hits = cms.double( 0.8 ), - BrutePruning = cms.bool( True ), - prePrunLimit = cms.double( 3.17 ) + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.005 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.004 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.003 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 20.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.003 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.002 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 60.0 ), + chi2_str = cms.double( 30.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 60.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.007 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.005 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 180.0 ), + chi2_str = cms.double( 80.0 ), + enlarge = cms.bool( False ) + ), + cms.PSet( wideSeg = cms.double( 3.0 ), + chi2Norm_2D_ = cms.double( 35.0 ), + dRIntMax = cms.double( 2.0 ), + doCollisions = cms.bool( True ), + dPhiMax = cms.double( 0.006 ), + dRMax = cms.double( 1.5 ), + dPhiIntMax = cms.double( 0.004 ), + minLayersApart = cms.int32( 1 ), + chi2Max = cms.double( 100.0 ), + chi2_str = cms.double( 50.0 ), + enlarge = cms.bool( False ) ) ), - algo_name = cms.string( "CSCSegAlgoST" ), + algo_name = cms.string( "CSCSegAlgoRU" ), chamber_types = cms.vstring( 'ME1/a', 'ME1/b', 'ME1/2', @@ -6836,6 +6836,51 @@ deadSource = cms.string( "File" ), deadvecfile = cms.FileInPath( "RecoLocalMuon/RPCRecHit/data/RPCDeadVec.dat" ) ) +process.hltMuonGEMDigis = cms.EDProducer( "GEMRawToDigiModule", + InputLabel = cms.InputTag( "rawDataCollector" ), + useDBEMap = cms.bool( False ), + keepDAQStatus = cms.bool( False ), + readMultiBX = cms.bool( False ), + fedIdStart = cms.uint32( 1467 ), + fedIdEnd = cms.uint32( 1478 ) +) +process.hltGemRecHits = cms.EDProducer( "GEMRecHitProducer", + recAlgoConfig = cms.PSet( ), + recAlgo = cms.string( "GEMRecHitStandardAlgo" ), + gemDigiLabel = cms.InputTag( "hltMuonGEMDigis" ), + applyMasking = cms.bool( False ) +) +process.hltGemSegments = cms.EDProducer( "GEMSegmentProducer", + gemRecHitLabel = cms.InputTag( "hltGemRecHits" ), + ge0_name = cms.string( "GE0SegAlgoRU" ), + algo_name = cms.string( "GEMSegmentAlgorithm" ), + ge0_pset = cms.PSet( + maxChi2GoodSeg = cms.double( 50.0 ), + maxChi2Prune = cms.double( 50.0 ), + maxNumberOfHitsPerLayer = cms.uint32( 100 ), + maxETASeeds = cms.double( 0.1 ), + maxPhiAdditional = cms.double( 0.001096605744 ), + minNumberOfHits = cms.uint32( 4 ), + doCollisions = cms.bool( True ), + maxPhiSeeds = cms.double( 0.001096605744 ), + requireCentralBX = cms.bool( True ), + maxChi2Additional = cms.double( 100.0 ), + allowWideSegments = cms.bool( True ), + maxNumberOfHits = cms.uint32( 300 ), + maxTOFDiff = cms.double( 25.0 ) + ), + algo_pset = cms.PSet( + dYclusBoxMax = cms.double( 5.0 ), + dXclusBoxMax = cms.double( 1.0 ), + maxRecHitsInCluster = cms.int32( 4 ), + preClustering = cms.bool( True ), + preClusteringUseChaining = cms.bool( True ), + dEtaChainBoxMax = cms.double( 0.05 ), + clusterOnlySameBXRecHits = cms.bool( True ), + minHitsPerSegment = cms.uint32( 2 ), + dPhiChainBoxMax = cms.double( 0.02 ) + ) +) process.hltL2OfflineMuonSeeds = cms.EDProducer( "MuonSeedGenerator", beamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), scaleDT = cms.bool( True ), @@ -6975,7 +7020,9 @@ DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), BWSeedType = cms.string( "fromGenerator" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -6996,7 +7043,9 @@ FilterParameters = cms.PSet( DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecSegmentLabel = cms.InputTag( "hltGemRecHits" ), RPCRecSegmentLabel = cms.InputTag( "hltRpcRecHits" ), + EnableGEMMeasurement = cms.bool( True ), EnableRPCMeasurement = cms.bool( True ), MuonTrajectoryUpdatorParameters = cms.PSet( ExcludeRPCFromFit = cms.bool( False ), @@ -7351,7 +7400,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -8176,7 +8227,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -9019,7 +9072,9 @@ Chi2CutRPC = cms.double( 1.0 ), PropDirForCosmics = cms.bool( False ), CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + GEMRecHitLabel = cms.InputTag( "hltGemRecHits" ), HitThreshold = cms.int32( 1 ), + Chi2CutGEM = cms.double( 1.0 ), DYTthrs = cms.vint32( 30, 15 ), TrackerSkipSystem = cms.int32( -1 ), RefitDirection = cms.string( "insideOut" ), @@ -9063,6 +9118,8 @@ CSCSegmentCollectionLabel = cms.InputTag( "hltCscSegments" ), DTRecSegment4DCollectionLabel = cms.InputTag( "hltDt4DSegments" ), EBRecHitCollectionLabel = cms.InputTag( "Notused" ), + useGEM = cms.bool( True ), + GEMSegmentCollectionLabel = cms.InputTag( "hltGemSegments" ), CaloTowerCollectionLabel = cms.InputTag( "Notused" ), propagateAllDirections = cms.bool( True ), muonMaxDistanceY = cms.double( 5.0 ), @@ -9262,8 +9319,8 @@ ), ShowerDigiFillerParameters = cms.PSet( cscDigiCollectionLabel = cms.InputTag( 'muonCSCDigis','MuonCSCStripDigi' ), - dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ), - digiMaxDistanceX = cms.double( 25.0 ) + digiMaxDistanceX = cms.double( 25.0 ), + dtDigiCollectionLabel = cms.InputTag( "muonDTDigis" ) ), TrackerKinkFinderParameters = cms.PSet( usePosition = cms.bool( False ), @@ -11959,7 +12016,7 @@ process.HLTDoCaloSequencePF = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + process.HLTDoLocalHcalSequence + process.hltTowerMakerForAll ) process.HLTAK4CaloJetsPrePFRecoSequence = cms.Sequence( process.HLTDoCaloSequencePF + process.hltAK4CaloJetsPF ) process.HLTPreAK4PFJetsRecoSequence = cms.Sequence( process.HLTAK4CaloJetsPrePFRecoSequence + process.hltAK4CaloJetsPFEt5 ) -process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits ) +process.HLTMuonLocalRecoSequence = cms.Sequence( process.hltMuonDTDigis + process.hltDt1DRecHits + process.hltDt4DSegments + process.hltMuonCSCDigis + process.hltCsc2DRecHits + process.hltCscSegments + process.hltMuonRPCDigis + process.hltRpcRecHits + process.hltMuonGEMDigis + process.hltGemRecHits + process.hltGemSegments ) process.HLTL2muonrecoNocandSequence = cms.Sequence( process.HLTMuonLocalRecoSequence + process.hltL2OfflineMuonSeeds + process.hltL2MuonSeeds + process.hltL2Muons ) process.HLTL2muonrecoSequence = cms.Sequence( process.HLTL2muonrecoNocandSequence + process.hltL2MuonCandidates ) process.HLTDoLocalPixelSequence = cms.Sequence( process.hltSiPixelDigis + process.hltSiPixelClusters + process.hltSiPixelClustersCache + process.hltSiPixelRecHits ) From 5993f5099ab11a29864cc4ff41f67782c4e99e3a Mon Sep 17 00:00:00 2001 From: idas Date: Fri, 17 Dec 2021 17:35:46 +0100 Subject: [PATCH 30/32] Updated with code checking --- .../plugins/HGCalSimHitValidation.cc | 259 ++++++++++-------- 1 file changed, 138 insertions(+), 121 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc index d95f5b7d831fc..9a0e9d75779d4 100644 --- a/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc +++ b/Validation/HGCalValidation/plugins/HGCalSimHitValidation.cc @@ -84,9 +84,19 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { bool defineGeometry(const DDCompactView* ddViewH); bool defineGeometry(const cms::DDCompactView* ddViewH); - TH1F *createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX = true); - void histoSetting(TH1F*& histo, const char *xTitle, const char *yTitle = "", Color_t lineColor = kBlack, Color_t markerColor = kBlack, int linewidth = 1); - void histoSetting(TH2F*& histo, const char *xTitle, const char *yTitle = "", Color_t lineColor = kBlack, Color_t markerColor = kBlack, int linewidth = 1); + TH1F* createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX = true); + void histoSetting(TH1F*& histo, + const char* xTitle, + const char* yTitle = "", + Color_t lineColor = kBlack, + Color_t markerColor = kBlack, + int linewidth = 1); + void histoSetting(TH2F*& histo, + const char* xTitle, + const char* yTitle = "", + Color_t lineColor = kBlack, + Color_t markerColor = kBlack, + int linewidth = 1); void fillMuonTomoHistos(int partialType, std::pair hit_); // ----------member data --------------------------- @@ -110,9 +120,9 @@ class HGCalSimHitValidation : public DQMEDAnalyzer { MonitorElement *MeanHitOccupancy_Plus_, *MeanHitOccupancy_Minus_; static const unsigned int maxTime_ = 6; std::vector energy_[maxTime_]; - std::vector energyFWF_ , energyFWCN_ , energyFWCK_ ; - std::vector energyPWF_ , energyPWCN_ , energyPWCK_ ; - std::vector hitXYFWF_ , hitXYFWCN_ , hitXYFWCK_ , hitXYB_ ; + std::vector energyFWF_, energyFWCN_, energyFWCK_; + std::vector energyPWF_, energyPWCN_, energyPWCK_; + std::vector hitXYFWF_, hitXYFWCN_, hitXYFWCK_, hitXYB_; unsigned int nTimes_; }; @@ -274,7 +284,7 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << nameDetector_ << " with " << map_hits.size() << " detector elements being hit"; - + std::map >::iterator itr; for (itr = map_hits.begin(); itr != map_hits.end(); ++itr) { hitsinfo hinfo = (*itr).second.first; @@ -283,23 +293,22 @@ void HGCalSimHitValidation::analyzeHits(std::vector& hits) { double eta = hinfo.eta; int type, part, orient; int partialType = -1; - if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { HGCSiliconDetId detId = HGCSiliconDetId((*itr).first); - std::tie(type, part, orient) = hgcons_->waferType(detId) ; - partialType = part ; + std::tie(type, part, orient) = hgcons_->waferType(detId); + partialType = part; } - + for (unsigned int itimeslice = 0; itimeslice < nTimes_; itimeslice++) { fillHitsInfo((*itr).second, itimeslice, esum.eTime[itimeslice]); } - + if (eta > 0.0) fillOccupancyMap(OccupancyMap_plus, layer); else fillOccupancyMap(OccupancyMap_minus, layer); - - fillMuonTomoHistos(partialType, (*itr).second); + fillMuonTomoHistos(partialType, (*itr).second); } if (verbosity_ > 0) edm::LogVerbatim("HGCalValidation") << "With map:used:total " << hits.size() << "|" << nused << "|" @@ -343,48 +352,54 @@ void HGCalSimHitValidation::fillHitsInfo(std::pair hits, un } void HGCalSimHitValidation::fillMuonTomoHistos(int partialType, std::pair hits) { - hitsinfo hinfo = hits.first; energysum esum = hits.second; - double edep = esum.eTime[0] * CLHEP::GeV / CLHEP::keV; //index 0 and 1 corresponds to 25 ns and 1000 ns, respectively. In addititon, chaging energy loss unit to keV. - + double edep = + esum.eTime[0] * CLHEP::GeV / + CLHEP::keV; //index 0 and 1 corresponds to 25 ns and 1000 ns, respectively. In addititon, chaging energy loss unit to keV. + unsigned int ilayer = hinfo.layer; - double x = hinfo.x * CLHEP::mm / CLHEP::cm; // chaging length unit to cm. + double x = hinfo.x * CLHEP::mm / CLHEP::cm; // chaging length unit to cm. double y = hinfo.y * CLHEP::mm / CLHEP::cm; if (ilayer < layers_) { - if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ - + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { // Fill the energy loss histograms for MIP - if(!TMath::AreEqualAbs(edep, 0.0, 1.e-5)) { //to avoid peak at zero due Eloss less than 10 mili eV. - if(hinfo.type==HGCSiliconDetId::HGCalFine){ - if(partialType==0) energyFWF_.at(ilayer)->Fill(edep); - if(partialType > 0) energyPWF_.at(ilayer)->Fill(edep); - } - if(hinfo.type==HGCSiliconDetId::HGCalCoarseThin){ - if(partialType==0) energyFWCN_.at(ilayer)->Fill(edep); - if(partialType > 0) energyPWCN_.at(ilayer)->Fill(edep); - } - if(hinfo.type==HGCSiliconDetId::HGCalCoarseThick){ - if(partialType==0) energyFWCK_.at(ilayer)->Fill(edep); - if(partialType > 0) energyPWCK_.at(ilayer)->Fill(edep); - } + if (!TMath::AreEqualAbs(edep, 0.0, 1.e-5)) { //to avoid peak at zero due Eloss less than 10 mili eV. + if (hinfo.type == HGCSiliconDetId::HGCalFine) { + if (partialType == 0) + energyFWF_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWF_.at(ilayer)->Fill(edep); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) { + if (partialType == 0) + energyFWCN_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWCN_.at(ilayer)->Fill(edep); + } + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) { + if (partialType == 0) + energyFWCK_.at(ilayer)->Fill(edep); + if (partialType > 0) + energyPWCK_.at(ilayer)->Fill(edep); + } } - + // Fill the XY distribution of detector hits - if(hinfo.type==HGCSiliconDetId::HGCalFine) - hitXYFWF_.at(ilayer)->Fill(x,y); - - if(hinfo.type==HGCSiliconDetId::HGCalCoarseThin) - hitXYFWCN_.at(ilayer)->Fill(x,y); - - if(hinfo.type==HGCSiliconDetId::HGCalCoarseThick) - hitXYFWCK_.at(ilayer)->Fill(x,y); - - }//is Silicon - if(nameDetector_ == "HGCalHEScintillatorSensitive"){ - hitXYB_.at(ilayer)->Fill(x,y); - }//is Scintillator - }//layer condition + if (hinfo.type == HGCSiliconDetId::HGCalFine) + hitXYFWF_.at(ilayer)->Fill(x, y); + + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThin) + hitXYFWCN_.at(ilayer)->Fill(x, y); + + if (hinfo.type == HGCSiliconDetId::HGCalCoarseThick) + hitXYFWCK_.at(ilayer)->Fill(x, y); + + } //is Silicon + if (nameDetector_ == "HGCalHEScintillatorSensitive") { + hitXYB_.at(ilayer)->Fill(x, y); + } //is Scintillator + } //layer condition } bool HGCalSimHitValidation::defineGeometry(const DDCompactView* ddViewH) { @@ -519,141 +534,143 @@ void HGCalSimHitValidation::bookHistograms(DQMStore::IBooker& iB, edm::Run const histoname << "EtaPhi_Minus_" << "layer_" << istr1; EtaPhi_Minus_.push_back( - iB.book2D(histoname.str().c_str(), "Occupancy", 31, -3.0, -1.45, 72, -CLHEP::pi, CLHEP::pi)); - + iB.book2D(histoname.str().c_str(), "Occupancy", 31, -3.0, -1.45, 72, -CLHEP::pi, CLHEP::pi)); + for (unsigned int itimeslice = 0; itimeslice < nTimes_; itimeslice++) { histoname.str(""); histoname << "energy_time_" << itimeslice << "_layer_" << istr1; energy_[itimeslice].push_back(iB.book1D(histoname.str().c_str(), "energy_", 100, 0, 0.1)); } - + ///////////// Histograms for Energy loss in full wafers//////////// - if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { histoname.str(""); histoname << "energy_FullWafer_Fine_layer_" << istr1; - TH1F *hEdepFWF = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepFWF, "Eloss (keV)","",kRed,kRed,2); - energyFWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWF )); + TH1F* hEdepFWF = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWF, "Eloss (keV)", "", kRed, kRed, 2); + energyFWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWF)); hEdepFWF->Delete(); - + histoname.str(""); histoname << "energy_FullWafer_CoarseThin_layer_" << istr1; - TH1F *hEdepFWCN = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepFWCN, "Eloss (keV)","",kGreen+1,kGreen+1,2); - energyFWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCN )); + TH1F* hEdepFWCN = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); + energyFWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCN)); hEdepFWCN->Delete(); histoname.str(""); histoname << "energy_FullWafer_CoarseThick_layer_" << istr1; - TH1F *hEdepFWCK = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepFWCK, "Eloss (keV)","",kMagenta,kMagenta,2); - energyFWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCK )); + TH1F* hEdepFWCK = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepFWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); + energyFWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepFWCK)); hEdepFWCK->Delete(); } - + /////////////////////////////////////////////////////////////////// - + ///////////// Histograms for Energy loss in partial wafers//////////// - if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { histoname.str(""); histoname << "energy_PartialWafer_Fine_layer_" << istr1; - TH1F *hEdepPWF = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepPWF, "Eloss (keV)","",kRed,kRed,2); - energyPWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWF )); + TH1F* hEdepPWF = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWF, "Eloss (keV)", "", kRed, kRed, 2); + energyPWF_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWF)); hEdepPWF->Delete(); histoname.str(""); histoname << "energy_PartialWafer_CoarseThin_layer_" << istr1; - TH1F *hEdepPWCN = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepPWCN, "Eloss (keV)","",kGreen+1,kGreen+1,2); - energyPWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCN )); + TH1F* hEdepPWCN = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWCN, "Eloss (keV)", "", kGreen + 1, kGreen + 1, 2); + energyPWCN_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCN)); hEdepPWCN->Delete(); - + histoname.str(""); histoname << "energy_PartialWafer_CoarseThick_layer_" << istr1; - TH1F *hEdepPWCK = createHisto(histoname.str(), 100, 0., 400., false); - histoSetting(hEdepPWCK, "Eloss (keV)","",kMagenta,kMagenta,2); - energyPWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCK )); + TH1F* hEdepPWCK = createHisto(histoname.str(), 100, 0., 400., false); + histoSetting(hEdepPWCK, "Eloss (keV)", "", kMagenta, kMagenta, 2); + energyPWCK_.push_back(iB.book1D(histoname.str().c_str(), hEdepPWCK)); hEdepPWCK->Delete(); } /////////////////////////////////////////////////////////////////// // ///////////// Histograms for the XY distribution of fired cells/scintillator tiles /////////////// - if(nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive"){ + if (nameDetector_ == "HGCalEESensitive" or nameDetector_ == "HGCalHESiliconSensitive") { histoname.str(""); histoname << "hitXY_FullWafer_Fine_layer_" << istr1; - TH2F *hitXYFWF = new TH2F(Form("hitXYFWF_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); - histoSetting(hitXYFWF, "x (cm)","y (cm)",kRed,kRed); + TH2F* hitXYFWF = new TH2F( + Form("hitXYFWF_%s", histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWF, "x (cm)", "y (cm)", kRed, kRed); hitXYFWF_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWF)); hitXYFWF->Delete(); - + histoname.str(""); histoname << "hitXY_FullWafer_CoarseThin_layer_" << istr1; - TH2F *hitXYFWCN = new TH2F(Form("hitXYFWCN_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); - histoSetting(hitXYFWCN, "x (cm)","y (cm)",kGreen+1,kGreen+1); + TH2F* hitXYFWCN = new TH2F( + Form("hitXYFWCN_%s", histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWCN, "x (cm)", "y (cm)", kGreen + 1, kGreen + 1); hitXYFWCN_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCN)); hitXYFWCN->Delete(); - + histoname.str(""); histoname << "hitXY_FullWafer_CoarseThick_layer_" << istr1; - TH2F *hitXYFWCK = new TH2F(Form("hitXYFWCK_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); - histoSetting(hitXYFWCK, "x (cm)","y (cm)",kMagenta,kMagenta); + TH2F* hitXYFWCK = new TH2F( + Form("hitXYFWCK_%s", histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYFWCK, "x (cm)", "y (cm)", kMagenta, kMagenta); hitXYFWCK_.push_back(iB.book2D(histoname.str().c_str(), hitXYFWCK)); hitXYFWCK->Delete(); - } - - if(nameDetector_ == "HGCalHEScintillatorSensitive"){ + + if (nameDetector_ == "HGCalHEScintillatorSensitive") { histoname.str(""); histoname << "hitXY_Scintillator_layer_" << istr1; - TH2F *hitXYB = new TH2F(Form("hitXYB_%s",histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); - histoSetting(hitXYB, "x (cm)","y (cm)",kBlue,kBlue); + TH2F* hitXYB = new TH2F( + Form("hitXYB_%s", histoname.str().c_str()), histoname.str().c_str(), 100, -300., 300., 100, -300., 300.); + histoSetting(hitXYB, "x (cm)", "y (cm)", kBlue, kBlue); hitXYB_.push_back(iB.book2D(histoname.str().c_str(), hitXYB)); hitXYB->Delete(); } ////////////////////////////////////////////////////////////////////////////////////////////////// - } MeanHitOccupancy_Plus_ = iB.book1D("MeanHitOccupancy_Plus", "MeanHitOccupancy_Plus", layers_, 0.5, layers_ + 0.5); MeanHitOccupancy_Minus_ = iB.book1D("MeanHitOccupancy_Minus", "MeanHitOccupancy_Minus", layers_, 0.5, layers_ + 0.5); } -TH1F * HGCalSimHitValidation::createHisto(std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX) -{ - TH1F *hist = 0x0; - if(isLogX){ - Double_t xbins[nbins+1]; - double dx = (maxIndexX - minIndexX)/nbins; - for (int i=0;i<=nbins;i++) { - xbins[i] = TMath::Power(10, (minIndexX + i*dx)); +TH1F* HGCalSimHitValidation::createHisto( + std::string histname, const int nbins, float minIndexX, float maxIndexX, bool isLogX) { + TH1F* hist = nullptr; + if (isLogX) { + Double_t xbins[nbins + 1]; + double dx = (maxIndexX - minIndexX) / nbins; + for (int i = 0; i <= nbins; i++) { + xbins[i] = TMath::Power(10, (minIndexX + i * dx)); } - hist = new TH1F(Form("hEdep_%s",histname.c_str()), histname.c_str(),nbins,xbins); - }else{ - hist = new TH1F(Form("hEdep_%s",histname.c_str()), histname.c_str(),nbins, minIndexX, maxIndexX); + hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, xbins); + } else { + hist = new TH1F(Form("hEdep_%s", histname.c_str()), histname.c_str(), nbins, minIndexX, maxIndexX); } return hist; -} - -void HGCalSimHitValidation::histoSetting(TH1F*& histo, const char *xTitle, const char *yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) -{ - histo->SetStats(); - histo->SetLineColor(lineColor) ; - histo->SetLineWidth(lineWidth); - histo->SetMarkerColor(markerColor) ; - histo->GetXaxis()->SetTitle(xTitle); - histo->GetYaxis()->SetTitle(yTitle); } -void HGCalSimHitValidation::histoSetting(TH2F*& histo, const char *xTitle, const char *yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) -{ - histo->SetStats(); - histo->SetLineColor(lineColor) ; - histo->SetLineWidth(lineWidth); - histo->SetMarkerColor(markerColor) ; - histo->SetMarkerStyle(kFullCircle) ; - histo->SetMarkerSize(0.6) ; - histo->GetXaxis()->SetTitle(xTitle); - histo->GetYaxis()->SetTitle(yTitle); +void HGCalSimHitValidation::histoSetting( + TH1F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { + histo->SetStats(); + histo->SetLineColor(lineColor); + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor); + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); +} + +void HGCalSimHitValidation::histoSetting( + TH2F*& histo, const char* xTitle, const char* yTitle, Color_t lineColor, Color_t markerColor, int lineWidth) { + histo->SetStats(); + histo->SetLineColor(lineColor); + histo->SetLineWidth(lineWidth); + histo->SetMarkerColor(markerColor); + histo->SetMarkerStyle(kFullCircle); + histo->SetMarkerSize(0.6); + histo->GetXaxis()->SetTitle(xTitle); + histo->GetYaxis()->SetTitle(yTitle); } #include "FWCore/Framework/interface/MakerMacros.h" //define this as a plug-in From 2597d4a5fa2c05d77384b9b18e4d804be9db7567 Mon Sep 17 00:00:00 2001 From: Helena Date: Fri, 17 Dec 2021 18:01:42 +0100 Subject: [PATCH 31/32] update MuonDQM AlCaRecoTriggerBits in mcRun3 and mcRun4 GTs --- Configuration/AlCa/python/autoCond.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 9c3c823e8d06d..787efeb084cff 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -64,19 +64,19 @@ # GlobalTag for MC production (cosmics) with realistic conditions for full Phase1 2018 detector, Strip tracker in PEAK mode 'phase1_2018_cosmics_peak' : '122X_upgrade2018cosmics_realistic_peak_v1', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2021 - 'phase1_2021_design' : '122X_mcRun3_2021_design_v5', + 'phase1_2021_design' : '123X_mcRun3_2021_design_v1', # GlobalTag for MC production with realistic conditions for Phase1 2021 - 'phase1_2021_realistic' : '122X_mcRun3_2021_realistic_v5', + 'phase1_2021_realistic' : '123X_mcRun3_2021_realistic_v1', # GlobalTag for MC production (cosmics) with realistic conditions for Phase1 2021, Strip tracker in DECO mode - 'phase1_2021_cosmics' : '122X_mcRun3_2021cosmics_realistic_deco_v5', + 'phase1_2021_cosmics' : '123X_mcRun3_2021cosmics_realistic_deco_v1', # GlobalTag for MC production with realistic conditions for Phase1 2021 detector for Heavy Ion - 'phase1_2021_realistic_hi' : '122X_mcRun3_2021_realistic_HI_v5', + 'phase1_2021_realistic_hi' : '123X_mcRun3_2021_realistic_HI_v1', # GlobalTag for MC production with realistic conditions for Phase1 2023 - 'phase1_2023_realistic' : '122X_mcRun3_2023_realistic_v5', + 'phase1_2023_realistic' : '123X_mcRun3_2023_realistic_v1', # GlobalTag for MC production with realistic conditions for Phase1 2024 - 'phase1_2024_realistic' : '122X_mcRun3_2024_realistic_v5', + 'phase1_2024_realistic' : '123X_mcRun3_2024_realistic_v1', # GlobalTag for MC production with realistic conditions for Phase2 - 'phase2_realistic' : '122X_mcRun4_realistic_v4' + 'phase2_realistic' : '123X_mcRun4_realistic_v1' } aliases = { From 45ef8d9527726d35521c9bfb2874a085d0ea22ad Mon Sep 17 00:00:00 2001 From: Andrea Date: Fri, 17 Dec 2021 22:11:50 +0100 Subject: [PATCH 32/32] Temporarily disable PPS for Run3 --- SimG4Core/Application/python/g4SimHits_cfi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 33fffb466e8d5..b5f6c6e3c51bd 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -625,11 +625,11 @@ run2_HCAL_2017.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) ) ## -## Disable Castor from Run 3, enable PPS +## Disable Castor from Run 3, enable PPS (***temporarily disable PPS***) ## from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify( g4SimHits, CastorSD = dict( useShowerLibrary = False ) ) -run3_common.toModify( g4SimHits, LHCTransport = True ) +run3_common.toModify( g4SimHits, LHCTransport = False ) ## ## Disable PPS from Run 3 PbPb runs