diff --git a/CondFormats/EcalCorrections/interface/EcalShowerContainmentCorrections.h b/CondFormats/EcalCorrections/interface/EcalShowerContainmentCorrections.h index fc42492634c60..57bbda93ffdae 100644 --- a/CondFormats/EcalCorrections/interface/EcalShowerContainmentCorrections.h +++ b/CondFormats/EcalCorrections/interface/EcalShowerContainmentCorrections.h @@ -39,8 +39,7 @@ #include #include - -class EBDetId; +#include "DataFormats/EcalDetId/interface/EBDetIdFwd.h" class EcalShowerContainmentCorrections { public: diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index d3afa18b838aa..d7d5157183876 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -31,12 +31,12 @@ 'run2_data_promptlike_hi' : '140X_dataRun2_PromptLike_HI_v1', # GlobalTag with fixed snapshot time for Run2 HLT RelVals: customizations to run with fixed L1 Menu 'run2_hlt_relval' : '140X_dataRun2_HLT_relval_v1', - # GlobalTag for Run3 HLT: identical the online GT 150X_dataRun3_HLT_v1 but with snapshot at 2025-06-13 05:00:25 (UTC) - 'run3_hlt' : '150X_dataRun3_HLT_frozen250613_v1', - # GlobalTag for Run3 data relvals (express GT): same as 150X_dataRun3_Express_v1 but with snapshot at 2025-06-13 05:03:22 (UTC) - 'run3_data_express' : '150X_dataRun3_Express_frozen250613_v1', - # GlobalTag for Run3 data relvals (prompt GT): same as 150X_dataRun3_Prompt_v1 but with snapshot at 2025-06-13 05:06:05 (UTC) - 'run3_data_prompt' : '150X_dataRun3_Prompt_frozen250613_v1', + # GlobalTag for Run3 HLT: identical the online GT 160X_dataRun3_HLT_v1 but with snapshot at 2026-02-23 14:53:19 (UTC) + 'run3_hlt' : '160X_dataRun3_HLT_frozen260223_v1', + # GlobalTag for Run3 data relvals (express GT): same as 160X_dataRun3_Express_v1 but with snapshot at 2026-02-23 14:53:19 (UTC) + 'run3_data_express' : '160X_dataRun3_Express_frozen260223_v1', + # GlobalTag for Run3 data relvals (prompt GT): same as 160X_dataRun3_Prompt_v1 but with snapshot at 2026-02-23 14:53:19 (UTC) + 'run3_data_prompt' : '160X_dataRun3_Prompt_frozen260223_v1', # GlobalTag for Run3 offline data reprocessing - snapshot at 2025-11-11 14:11:48 (UTC) 'run3_data' : '150X_dataRun3_v6', # GlobalTag for Run3 offline data reprocessing with Prompt GT, currently for 2022FG - snapshot at 2024-05-31 08:53:25 (UTC) diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index ec75767805e86..64ec0a05a692c 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -56,6 +56,7 @@ The offsets currently in use are: * 0.713: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on GPU (if available), CPU vs. GPU * 0.75: HLT phase-2 timing menu * 0.7501: HLT phase-2 tracking-only menu +* 0.7502: HLT phase-2 menu, with tracking ntuple * 0.751: HLT phase-2 timing menu Alpaka variant * 0.7511: HLT phase-2 timing menu, with PixelTracks CA Extension * 0.752: HLT phase-2 timing menu ticl_v5 variant diff --git a/Configuration/PyReleaseValidation/python/relval_Run4.py b/Configuration/PyReleaseValidation/python/relval_Run4.py index ed332e0a66078..6640132c6b823 100644 --- a/Configuration/PyReleaseValidation/python/relval_Run4.py +++ b/Configuration/PyReleaseValidation/python/relval_Run4.py @@ -54,6 +54,7 @@ # Phase-2 HLT tests numWFIB.extend([prefixDet+34.7501])# HLTTrackingOnly75e33 +numWFIB.extend([prefixDet+34.7502])# HLTTrackingNtuple75e33 numWFIB.extend([prefixDet+34.751]) # HLTTiming75e33, alpaka numWFIB.extend([prefixDet+34.7511])# HLTTiming75e33, phase2CAExtension numWFIB.extend([prefixDet+34.752]) # HLTTiming75e33, ticl_v5 diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 8f83e2285bc2a..91af5ee4952b4 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1953,6 +1953,63 @@ def condition(self, fragment, stepList, key, hasHarvest): '--eventcontent':'FEVTDEBUGHLT,DQMIO' } +class UpgradeWorkflow_HLT75e33TrackingNtuple(UpgradeWorkflow): + def setup_(self, step, stepName, stepDict, k, properties): + # skip RECO, ALCA and HLT + if ('ALCA' in step) or ('Reco' in step) or ('HLT' in step): + stepDict[stepName][k] = None + elif 'DigiTrigger' in step: + # Add the aging customization + mergedStep = merge([self.step2, stepDict[step][k]]) + if '--customise' in mergedStep: + mergedStep['--customise'] += ',SLHCUpgradeSimulations/Configuration/aging.customise_aging_1000' + else: + mergedStep['--customise'] = 'SLHCUpgradeSimulations/Configuration/aging.customise_aging_1000' + stepDict[stepName][k] = mergedStep + elif 'HARVEST' in step: + stepDict[stepName][k] = None + else: + stepDict[stepName][k] = merge([stepDict[step][k]]) + def condition(self, fragment, stepList, key, hasHarvest): + fragments = ["TTbar_14","ZMM_14","ZEE_14","NuGun","SingleMu"] + return any(f in fragment for f in fragments) and 'Run4' in key + +upgradeWFs['HLTTrackingNtuple75e33'] = UpgradeWorkflow_HLT75e33TrackingNtuple( + steps = [ + 'Reco', + 'RecoGlobal', + 'RecoNano', + 'DigiTrigger', + 'ALCA', + 'ALCAPhase2', + 'RecoGlobalFakeHLT', + 'HLT75e33', + 'HARVESTGlobal', + 'HARVESTGlobalFakeHLT', + ], + PU = [ + 'Reco', + 'RecoGlobal', + 'RecoNano', + 'DigiTrigger', + 'ALCA', + 'ALCAPhase2', + 'HARVESTGlobal', + 'RecoGlobalFakeHLT', + 'HLT75e33', + 'HARVESTGlobal', + 'HARVESTGlobalFakeHLT', + ], + suffix = '_HLT75e33TrackingNtuple', + offset = 0.7502, +) +upgradeWFs['HLTTrackingNtuple75e33'].step2 = { + '-s':'DIGI:pdigi_valid,DIGI2RAW,L1TrackTrigger,L1,L1P2GT,HLT:75e33,VALIDATION:@hltValidation', + '--datatier':'GEN-SIM-DIGI-RAW,DQMIO', + '--eventcontent':'FEVTDEBUGHLT,DQMIO', + '--customise' : 'Validation/RecoTrack/customiseTrackingNtuple.customiseTrackingNtupleHLT,Validation/RecoTrack/customiseTrackingNtuple.extendedContent' +} + upgradeWFs['HLTTiming75e33TiclV5'] = deepcopy(upgradeWFs['HLTTiming75e33']) upgradeWFs['HLTTiming75e33TiclV5'].suffix = '_HLT75e33TimingTiclV5' upgradeWFs['HLTTiming75e33TiclV5'].offset = 0.752 diff --git a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py index b2ea134ccf618..1d4e00b482b1f 100755 --- a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py +++ b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py @@ -160,6 +160,7 @@ def runSelected(opt): 'ph2_hlt' : [prefixDet+34.75, # HLT phase-2 timing menu prefixDet+34.7501, # HLT phase-2 tracking-only menu + prefixDet+34.7502, # HLT phase-2 tracking menu with tracking ntuple prefixDet+34.751, # HLT phase-2 timing menu Alpaka variant prefixDet+34.7511, # HLT phase-2 timing menu Phase2CAExtension variant prefixDet+34.752, # HLT phase-2 timing menu ticl_v5 variant diff --git a/DQM/DTMonitorModule/interface/DTDataIntegrityTask.h b/DQM/DTMonitorModule/interface/DTDataIntegrityTask.h index 15086221bf4ac..c333c8d113dd3 100644 --- a/DQM/DTMonitorModule/interface/DTDataIntegrityTask.h +++ b/DQM/DTMonitorModule/interface/DTDataIntegrityTask.h @@ -22,6 +22,7 @@ #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h" #include "DataFormats/DTDigi/interface/DTuROSControlData.h" +#include "DataFormats/DTDigi/interface/DTuROSFEDDataFwd.h" #include #include @@ -36,7 +37,6 @@ namespace dtdi { } // namespace dtdi class DTuROSROSData; -class DTuROSFEDData; class DTTimeEvolutionHisto; class DTDataIntegrityTask : public DQMOneEDAnalyzer> { diff --git a/DataFormats/DTDigi/interface/DTuROSFEDDataFwd.h b/DataFormats/DTDigi/interface/DTuROSFEDDataFwd.h new file mode 100644 index 0000000000000..be27d9c2b9e20 --- /dev/null +++ b/DataFormats/DTDigi/interface/DTuROSFEDDataFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_DTDigi_DTuROSFEDDataFwd_h +#define DataFormats_DTDigi_DTuROSFEDDataFwd_h + +class DTuROSFEDData; + +#endif diff --git a/DataFormats/EcalDetId/interface/EBDetIdFwd.h b/DataFormats/EcalDetId/interface/EBDetIdFwd.h new file mode 100644 index 0000000000000..110da07788984 --- /dev/null +++ b/DataFormats/EcalDetId/interface/EBDetIdFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_EcalDetId_EBDetIdFwd_h +#define DataFormats_EcalDetId_EBDetIdFwd_h + +class EBDetId; + +#endif diff --git a/DataFormats/EcalDetId/interface/EEDetIdFwd.h b/DataFormats/EcalDetId/interface/EEDetIdFwd.h new file mode 100644 index 0000000000000..b66eceaa0add6 --- /dev/null +++ b/DataFormats/EcalDetId/interface/EEDetIdFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_EcalDetId_EEDetIdFwd_h +#define DataFormats_EcalDetId_EEDetIdFwd_h + +class EEDetId; + +#endif diff --git a/DataFormats/HcalDigi/interface/HBHEDataFrameFwd.h b/DataFormats/HcalDigi/interface/HBHEDataFrameFwd.h new file mode 100644 index 0000000000000..b35111146c1fb --- /dev/null +++ b/DataFormats/HcalDigi/interface/HBHEDataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_HBHEDataFrameFwd_h +#define DataFormats_HcalDigi_HBHEDataFrameFwd_h + +class HBHEDataFrame; + +#endif diff --git a/DataFormats/HcalDigi/interface/HFDataFrameFwd.h b/DataFormats/HcalDigi/interface/HFDataFrameFwd.h new file mode 100644 index 0000000000000..0365b03775c87 --- /dev/null +++ b/DataFormats/HcalDigi/interface/HFDataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_HFDataFrameFwd_h +#define DataFormats_HcalDigi_HFDataFrameFwd_h + +class HFDataFrame; + +#endif diff --git a/DataFormats/HcalDigi/interface/HODataFrameFwd.h b/DataFormats/HcalDigi/interface/HODataFrameFwd.h new file mode 100644 index 0000000000000..e037c8db34a86 --- /dev/null +++ b/DataFormats/HcalDigi/interface/HODataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_HODataFrameFwd_h +#define DataFormats_HcalDigi_HODataFrameFwd_h + +class HODataFrame; + +#endif diff --git a/DataFormats/HcalDigi/interface/QIE10DataFrameFwd.h b/DataFormats/HcalDigi/interface/QIE10DataFrameFwd.h new file mode 100644 index 0000000000000..640bdc0683568 --- /dev/null +++ b/DataFormats/HcalDigi/interface/QIE10DataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_QIE10DataFrameFwd_h +#define DataFormats_HcalDigi_QIE10DataFrameFwd_h + +class QIE10DataFrame; + +#endif diff --git a/DataFormats/HcalDigi/interface/QIE11DataFrameFwd.h b/DataFormats/HcalDigi/interface/QIE11DataFrameFwd.h new file mode 100644 index 0000000000000..a67df2c7bc4dc --- /dev/null +++ b/DataFormats/HcalDigi/interface/QIE11DataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_QIE11DataFrameFwd_h +#define DataFormats_HcalDigi_QIE11DataFrameFwd_h + +class QIE11DataFrame; + +#endif diff --git a/DataFormats/HcalDigi/interface/ZDCDataFrameFwd.h b/DataFormats/HcalDigi/interface/ZDCDataFrameFwd.h new file mode 100644 index 0000000000000..becff03902464 --- /dev/null +++ b/DataFormats/HcalDigi/interface/ZDCDataFrameFwd.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_HcalDigi_ZDCDataFrameFwd_h +#define DataFormats_HcalDigi_ZDCDataFrameFwd_h + +class ZDCDataFrame; + +#endif diff --git a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h index 9ed3feb6eae07..6cf3a8b1a9e4c 100644 --- a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h +++ b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h @@ -18,6 +18,7 @@ #include "CondFormats/DataRecord/interface/DTReadOutMappingRcd.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/DTDigi/interface/DTDigiCollection.h" +#include "DataFormats/DTDigi/interface/DTuROSFEDDataFwd.h" #include "DataFormats/FEDRawData/interface/FEDNumbering.h" #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" #include "DataFormats/MuonDetId/interface/DTLayerId.h" @@ -35,7 +36,6 @@ #include class DTReadOutMapping; -class DTuROSFEDData; class DTuROSRawToDigi : public edm::stream::EDProducer<> { public: diff --git a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h index 7c16ad7aaa28f..afe42865ef795 100644 --- a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h +++ b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h @@ -186,6 +186,7 @@ class HGCalDDDConstants { inline bool v16OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8Cassette); } inline bool v17OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8CalibCell); } inline bool v18OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8FineCell); } + inline bool v18OrMore() const { return (mode_ >= HGCalGeometryMode::Hexagon8CalibCell); } inline unsigned int volumes() const { return hgpar_->moduleLayR_.size(); } inline bool waferExist(int layer, int waferU, int waferV) const { return hgpar_->waferExist(layer, waferU, waferV); } int waferFromCopy(int copy) const; diff --git a/Geometry/HGCalGeometry/src/HGCalGeometry.cc b/Geometry/HGCalGeometry/src/HGCalGeometry.cc index 5ea241818b6ed..276e905a33e9a 100644 --- a/Geometry/HGCalGeometry/src/HGCalGeometry.cc +++ b/Geometry/HGCalGeometry/src/HGCalGeometry.cc @@ -207,7 +207,7 @@ GlobalPoint HGCalGeometry::getPosition(const DetId& detid) const { return getPos GlobalPoint HGCalGeometry::getPosition(const DetId& detid, int overRideDebug) const { bool debug = ((overRideDebug % 10) > 0); - bool cog = m_topology.dddConstants().waferHexagon8Fine() ? true : false; + bool cog = m_topology.dddConstants().v18OrMore() ? true : false; if (((overRideDebug / 10) % 10) > 0) { if (cog) cog = false; diff --git a/HLTriggerOffline/Scouting/plugins/ScoutingEGammaCollectionMonitoring.cc b/HLTriggerOffline/Scouting/plugins/ScoutingEGammaCollectionMonitoring.cc index 2f0b7ba19537e..1e515a198d574 100644 --- a/HLTriggerOffline/Scouting/plugins/ScoutingEGammaCollectionMonitoring.cc +++ b/HLTriggerOffline/Scouting/plugins/ScoutingEGammaCollectionMonitoring.cc @@ -182,7 +182,7 @@ void ScoutingEGammaCollectionMonitoring::analyze(edm::Event const& iEvent, edm:: histos.patElectron.h1InvMassID->Fill( (patEls->ptrAt(tight_patElectron_index[0])->p4() + patEls->ptrAt(tight_patElectron_index[1])->p4()).mass()); } - } + } // if use useOfflineObject_ edm::Handle> sctEls; iEvent.getByToken(scoutingElectronCollection_, sctEls); @@ -281,11 +281,11 @@ void ScoutingEGammaCollectionMonitoring::analyze(edm::Event const& iEvent, edm:: double invMass = (sctElCombined0 + sctElCombined1).mass(); histos.sctElectron.h1InvMassID->Fill(invMass); - if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { + if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.h1InvMassIDEBEB->Fill(invMass); - } else if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { + } else if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.h1InvMassIDEBEE->Fill(invMass); } else { histos.sctElectron.h1InvMassIDEEEE->Fill(invMass); @@ -295,11 +295,11 @@ void ScoutingEGammaCollectionMonitoring::analyze(edm::Event const& iEvent, edm:: for (unsigned int i_selectTrig = 0; i_selectTrig < vtriggerSelection_.size(); i_selectTrig++) { if (vtrigger_result.at(i_selectTrig)) { histos.sctElectron.hInvMassID_passDST.at(i_selectTrig)[0]->Fill(invMass); - if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { + if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.hInvMassIDEBEB_passDST.at(i_selectTrig)[0]->Fill(invMass); - } else if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { + } else if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.hInvMassIDEBEE_passDST.at(i_selectTrig)[0]->Fill(invMass); } else { histos.sctElectron.hInvMassIDEEEE_passDST.at(i_selectTrig)[0]->Fill(invMass); @@ -313,11 +313,11 @@ void ScoutingEGammaCollectionMonitoring::analyze(edm::Event const& iEvent, edm:: l1GtUtils_->getPrescaleByName(l1seed, prescale); if (l1htbit == 1) { histos.sctElectron.hInvMassID_passDST.at(i_selectTrig)[i_l1seed + 1]->Fill(invMass); - if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { + if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) < scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.hInvMassIDEBEB_passDST.at(i_selectTrig)[i_l1seed + 1]->Fill(invMass); - } else if (fabs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && - fabs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { + } else if (std::abs(sctEls->at(tight_sctElectron_index[0]).eta()) < scoutingDQMUtils::ELE_etaEB && + std::abs(sctEls->at(tight_sctElectron_index[1]).eta()) > scoutingDQMUtils::ELE_etaEB) { histos.sctElectron.hInvMassIDEBEE_passDST.at(i_selectTrig)[i_l1seed + 1]->Fill(invMass); } else { histos.sctElectron.hInvMassIDEEEE_passDST.at(i_selectTrig)[i_l1seed + 1]->Fill(invMass); @@ -334,34 +334,39 @@ void ScoutingEGammaCollectionMonitoring::bookHistograms(DQMStore::IBooker& ibook edm::EventSetup const& iSetup) { ibook.setCurrentFolder(outputInternalPath_); - // PAT Electron Total Summary - histos.patElectron.h1N = ibook.book1D("all_patElectron_electrons_N", "all_patElectron_electrons_N", 20, 0., 20.); - histos.patElectron.electrons.h1Pt = - ibook.book1D("all_patElectron_electrons_Pt", "all_patElectron_electrons_Pt", 5000, 0., 500.); - histos.patElectron.electrons.h1Eta = - ibook.book1D("all_patElectron_electrons_Eta", "all_patElectron_electrons_Eta", 1000, -5., 5.); - histos.patElectron.electrons.h1Phi = - ibook.book1D("all_patElectron_electrons_Phi", "all_patElectron_electrons_Phi", 660, -3.3, 3.3); - - // Leading pT PAT Electron Summary - histos.patElectron.electron1.h1Pt = ibook.book1D("patElectron_leading_Pt", "patElectron_leading_Pt", 5000, 0., 500.); - histos.patElectron.electron1.h1Eta = - ibook.book1D("patElectron_leading_Eta", "patElectron_leading_Eta", 1000, -5., 5.); - histos.patElectron.electron1.h1Phi = - ibook.book1D("patElectron_leading_Phi", "patElectron_leading_Phi", 660, -3.3, 3.3); - - // Subleading pT PAT Electron Summary - histos.patElectron.electron2.h1Pt = - ibook.book1D("patElectron_subleading_Pt", "patElectron_subleading_Pt", 5000, 0., 500.); - histos.patElectron.electron2.h1Eta = - ibook.book1D("patElectron_subleading_Eta", "patElectron_subleading_Eta", 1000, -5., 5.); - histos.patElectron.electron2.h1Phi = - ibook.book1D("patElectron_subleading_Phi", "patElectron_subleading_Phi", 660, -3.3, 3.3); - - // Inv Mass PAT Electron Summary - histos.patElectron.h1InvMass12 = ibook.book1D("patElectron_E1E2_invMass", "patElectron_E1E2_invMass", 2000, 0., 200.); - histos.patElectron.h1InvMassID = - ibook.book1D("patElectron_appliedID_invMass", "patElectron_appliedID_invMass", 2000, 0., 200.); + if (useOfflineObject_) { + // PAT Electron Total Summary + histos.patElectron.h1N = ibook.book1D("all_patElectron_electrons_N", "all_patElectron_electrons_N", 20, 0., 20.); + histos.patElectron.electrons.h1Pt = + ibook.book1D("all_patElectron_electrons_Pt", "all_patElectron_electrons_Pt", 5000, 0., 500.); + histos.patElectron.electrons.h1Eta = + ibook.book1D("all_patElectron_electrons_Eta", "all_patElectron_electrons_Eta", 1000, -5., 5.); + histos.patElectron.electrons.h1Phi = + ibook.book1D("all_patElectron_electrons_Phi", "all_patElectron_electrons_Phi", 660, -3.3, 3.3); + + // Leading pT PAT Electron Summary + histos.patElectron.electron1.h1Pt = + ibook.book1D("patElectron_leading_Pt", "patElectron_leading_Pt", 5000, 0., 500.); + histos.patElectron.electron1.h1Eta = + ibook.book1D("patElectron_leading_Eta", "patElectron_leading_Eta", 1000, -5., 5.); + histos.patElectron.electron1.h1Phi = + ibook.book1D("patElectron_leading_Phi", "patElectron_leading_Phi", 660, -3.3, 3.3); + + // Subleading pT PAT Electron Summary + histos.patElectron.electron2.h1Pt = + ibook.book1D("patElectron_subleading_Pt", "patElectron_subleading_Pt", 5000, 0., 500.); + histos.patElectron.electron2.h1Eta = + ibook.book1D("patElectron_subleading_Eta", "patElectron_subleading_Eta", 1000, -5., 5.); + histos.patElectron.electron2.h1Phi = + ibook.book1D("patElectron_subleading_Phi", "patElectron_subleading_Phi", 660, -3.3, 3.3); + + // Inv Mass PAT Electron Summary + histos.patElectron.h1InvMass12 = + ibook.book1D("patElectron_E1E2_invMass", "patElectron_E1E2_invMass", 2000, 0., 200.); + histos.patElectron.h1InvMassID = + ibook.book1D("patElectron_appliedID_invMass", "patElectron_appliedID_invMass", 2000, 0., 200.); + } + // Scouting electron summary histos.sctElectron.h1N = ibook.book1D("all_sctElectron_electrons_N", "all_sctElectron_electrons_N", 20, 0., 20.); histos.sctElectron.electrons.h1Pt = diff --git a/HLTriggerOffline/Scouting/python/ScoutingEGammaCollectionMonitoring_cfi.py b/HLTriggerOffline/Scouting/python/ScoutingEGammaCollectionMonitoring_cfi.py index fcf9fc3068acf..0644616dfcc8f 100644 --- a/HLTriggerOffline/Scouting/python/ScoutingEGammaCollectionMonitoring_cfi.py +++ b/HLTriggerOffline/Scouting/python/ScoutingEGammaCollectionMonitoring_cfi.py @@ -40,24 +40,25 @@ ] ScoutingEGammaCollectionMonitoringOffline = DQMEDAnalyzer('ScoutingEGammaCollectionMonitoring', - OutputInternalPath = cms.string('/HLT/ScoutingOffline/EGamma/Collection'), - TriggerResultTag = cms.InputTag("TriggerResults", "", "HLT"), - AlgInputTag = cms.InputTag("gtStage2Digis"), - l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"), - l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"), - ReadPrescalesFromFile = cms.bool(False), - triggerSelection = cms.vstring(["DST_PFScouting_ZeroBias_v", "DST_PFScouting_DoubleEG_v", "DST_PFScouting_SinglePhotonEB_v"]), - L1Seeds = cms.vstring(DoubleEGL1 + SinglePhotonL1), - ElectronCollection = cms.InputTag('slimmedElectrons'), - ScoutingElectronCollection = cms.InputTag("hltScoutingEgammaPacker"), - eleIdMapTight = cms.InputTag('egmGsfElectronIDsForScoutingDQM:cutBasedElectronID-RunIIIWinter22-V1-loose'), - useOfflineObject = cms.bool(True) - ) + OutputInternalPath = cms.string('/HLT/ScoutingOffline/EGamma/Collection'), + TriggerResultTag = cms.InputTag("TriggerResults", "", "HLT"), + AlgInputTag = cms.InputTag("gtStage2Digis"), + l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"), + l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"), + ReadPrescalesFromFile = cms.bool(False), + triggerSelection = cms.vstring(["DST_PFScouting_ZeroBias_v", "DST_PFScouting_DoubleEG_v", "DST_PFScouting_SinglePhotonEB_v"]), + L1Seeds = cms.vstring(DoubleEGL1 + SinglePhotonL1), + ElectronCollection = cms.InputTag('slimmedElectrons'), + ScoutingElectronCollection = cms.InputTag("hltScoutingEgammaPacker"), + eleIdMapTight = cms.InputTag('egmGsfElectronIDsForScoutingDQM:cutBasedElectronID-RunIIIWinter22-V1-loose'), + useOfflineObject = cms.bool(True) + ) ScoutingEGammaCollectionMonitoringOnline = ScoutingEGammaCollectionMonitoringOffline.clone( - OutputInternalPath = '/HLT/ScoutingOnline/EGamma/Collection', - useOfflineObject = False - ) + OutputInternalPath = '/HLT/ScoutingOnline/EGamma/Collection', + triggerSelection = cms.vstring(["DST_PFScouting_DoubleEGMonitorZ_v", "DST_PFScouting_SinglePhotonEBMonitorJPsi_v", "DST_PFScouting_SinglePhotonEBMonitorZ_v"]), + useOfflineObject = False +) scoutingMonitoringEGMOffline= cms.Sequence(ScoutingEGammaCollectionMonitoringOffline) scoutingMonitoringEGMOnline= cms.Sequence(ScoutingEGammaCollectionMonitoringOnline) diff --git a/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h b/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h index d9e7edc1d095a..4f6d3d020c19f 100644 --- a/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h +++ b/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h @@ -141,7 +141,7 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { JetCollection shiftedJets; shiftedJets.reserve(originalJets.size()); for (auto const& originalJet : originalJets) { - reco::Candidate::LorentzVector originalJetP4 = originalJet.p4(); + const reco::Candidate::LorentzVector& originalJetP4 = originalJet.p4(); if (verbosity_) { std::cout << "originalJet: Pt = " << originalJetP4.pt() << ", eta = " << originalJetP4.eta() << ", phi = " << originalJetP4.phi() << std::endl; diff --git a/RecoEcal/EgammaCoreTools/interface/EcalClusterSeverityLevelAlgo.h b/RecoEcal/EgammaCoreTools/interface/EcalClusterSeverityLevelAlgo.h index c0d22fa4b3394..8835efd4641e5 100644 --- a/RecoEcal/EgammaCoreTools/interface/EcalClusterSeverityLevelAlgo.h +++ b/RecoEcal/EgammaCoreTools/interface/EcalClusterSeverityLevelAlgo.h @@ -4,12 +4,12 @@ #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/CaloRecHit/interface/CaloCluster.h" #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" +#include "DataFormats/EcalDetId/interface/EBDetIdFwd.h" #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" #include "FWCore/Framework/interface/EventSetup.h" class CaloTopology; -class EBDetId; class EcalClusterSeverityLevelAlgo { public: // the severity is the fraction of cluster energy diff --git a/RecoHGCal/TICL/plugins/GNNInterpretationAlgo.cc b/RecoHGCal/TICL/plugins/GNNInterpretationAlgo.cc index c59cfdce4324e..3c51142e1a421 100644 --- a/RecoHGCal/TICL/plugins/GNNInterpretationAlgo.cc +++ b/RecoHGCal/TICL/plugins/GNNInterpretationAlgo.cc @@ -379,8 +379,17 @@ void GNNInterpretationAlgo::makeCandidates(const Inputs& input, for (unsigned trkId : candidateTrackIds) { const auto& tk = tracks[trkId]; const int side = (tk.eta() > 0); + FreeTrajectoryState fts; + + // Check whether the outer state is actually valid + if (tk.outerOk()) { + // Use outer state if available + fts = trajectoryStateTransform::outerFreeState(tk, bFieldProd); + } else { + // Fallback: use PCA (reference point) + fts = trajectoryStateTransform::initialFreeState(tk, bFieldProd); + } - const auto& fts = trajectoryStateTransform::outerFreeState(tk, bFieldProd); // to the HGCal front const auto tsosFront = prop.propagate(fts, firstDisk_[side]->surface()); if (tsosFront.isValid()) { diff --git a/RecoHGCal/TICL/plugins/GeneralInterpretationAlgo.cc b/RecoHGCal/TICL/plugins/GeneralInterpretationAlgo.cc index fc9776df9a3d3..a63e8880b7703 100644 --- a/RecoHGCal/TICL/plugins/GeneralInterpretationAlgo.cc +++ b/RecoHGCal/TICL/plugins/GeneralInterpretationAlgo.cc @@ -246,7 +246,17 @@ void GeneralInterpretationAlgo::makeCandidates(const Inputs &input, for (auto const i : candidateTrackIds) { const auto &tk = tracks[i]; int iSide = int(tk.eta() > 0); - const auto &fts = trajectoryStateTransform::outerFreeState((tk), bFieldProd); + FreeTrajectoryState fts; + + // Check whether the outer state is actually valid + if (tk.outerOk()) { + // Use outer state if available + fts = trajectoryStateTransform::outerFreeState(tk, bFieldProd); + } else { + // Fallback: use PCA (reference point) + fts = trajectoryStateTransform::initialFreeState(tk, bFieldProd); + } + // to the HGCal front const auto &tsos = prop.propagate(fts, firstDisk_[iSide]->surface()); if (tsos.isValid()) { diff --git a/RecoHGCal/TICL/plugins/TICLCandidateProducer.cc b/RecoHGCal/TICL/plugins/TICLCandidateProducer.cc index dc88b0526f0f1..834ab52346e6e 100644 --- a/RecoHGCal/TICL/plugins/TICLCandidateProducer.cc +++ b/RecoHGCal/TICL/plugins/TICLCandidateProducer.cc @@ -378,6 +378,15 @@ void TICLCandidateProducer::produce(edm::Event &evt, const edm::EventSetup &es) auto getPathLength = [&](const reco::Track &track, float zVal) { + // Bail out early if inner/outer surfaces are not available + if (!track.innerOk() || !track.outerOk()) { + if (edm::isDebugEnabled()) { + LogDebug("TICLCandidateProducer") + << "Not able to use the track to compute the path length. A straight line will be used instead."; + } + return 0.f; + } + const auto &fts_inn = trajectoryStateTransform::innerFreeState(track, bFieldProd); const auto &fts_out = trajectoryStateTransform::outerFreeState(track, bFieldProd); const auto &surf_inn = trajectoryStateTransform::innerStateOnSurface(track, *trackingGeometry_, bFieldProd); diff --git a/RecoLocalCalo/HcalRecAlgos/interface/HFPreRecAlgo.h b/RecoLocalCalo/HcalRecAlgos/interface/HFPreRecAlgo.h index c67e2e607b527..6c9084bd2dbe5 100644 --- a/RecoLocalCalo/HcalRecAlgos/interface/HFPreRecAlgo.h +++ b/RecoLocalCalo/HcalRecAlgos/interface/HFPreRecAlgo.h @@ -2,8 +2,8 @@ #define RecoLocalCalo_HcalRecAlgos_HFPreRecAlgo_h_ #include "DataFormats/HcalRecHit/interface/HFQIE10Info.h" +#include "DataFormats/HcalDigi/interface/QIE10DataFrameFwd.h" -class QIE10DataFrame; class HcalCoder; struct HcalChannelProperties; diff --git a/SimCalorimetry/HcalSimAlgos/interface/HcalElectronicsSim.h b/SimCalorimetry/HcalSimAlgos/interface/HcalElectronicsSim.h index 90a3548803911..d99c9ffb1fca9 100644 --- a/SimCalorimetry/HcalSimAlgos/interface/HcalElectronicsSim.h +++ b/SimCalorimetry/HcalSimAlgos/interface/HcalElectronicsSim.h @@ -10,13 +10,12 @@ #include "SimCalorimetry/HcalSimAlgos/interface/HcalAmplifier.h" #include "SimCalorimetry/HcalSimAlgos/interface/HcalCoderFactory.h" #include "SimCalorimetry/HcalSimAlgos/interface/HcalSimParameterMap.h" - -class HBHEDataFrame; -class HODataFrame; -class HFDataFrame; -class ZDCDataFrame; -class QIE10DataFrame; -class QIE11DataFrame; +#include "DataFormats/HcalDigi/interface/HBHEDataFrameFwd.h" +#include "DataFormats/HcalDigi/interface/HODataFrameFwd.h" +#include "DataFormats/HcalDigi/interface/HFDataFrameFwd.h" +#include "DataFormats/HcalDigi/interface/ZDCDataFrameFwd.h" +#include "DataFormats/HcalDigi/interface/QIE10DataFrameFwd.h" +#include "DataFormats/HcalDigi/interface/QIE11DataFrameFwd.h" namespace CLHEP { class HepRandomEngine; diff --git a/SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLinkFwd.h b/SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLinkFwd.h new file mode 100644 index 0000000000000..831b211e01e44 --- /dev/null +++ b/SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLinkFwd.h @@ -0,0 +1,6 @@ +#ifndef SimDataFormats_TrackerDigiSimLink_StripDigiSimLinkFwd_h +#define SimDataFormats_TrackerDigiSimLink_StripDigiSimLinkFwd_h + +class StripDigiSimLink; + +#endif diff --git a/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.h b/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.h index d7449dc6c55ad..3664922caebe6 100644 --- a/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.h +++ b/SimTracker/SiStripDigitizer/plugins/SiStripDigitizerAlgorithm.h @@ -14,6 +14,7 @@ #include "SimDataFormats/TrackingHit/interface/PSimHit.h" #include "SimDataFormats/PileupSummaryInfo/interface/PileupMixingContent.h" +#include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLinkFwd.h" #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/Common/interface/DetSet.h" #include "DataFormats/SiStripDigi/interface/SiStripDigi.h" @@ -47,7 +48,6 @@ class TrackerTopology; class SiStripLorentzAngle; -class StripDigiSimLink; namespace CLHEP { class HepRandomEngine; diff --git a/TrackingTools/GsfTracking/src/classes_def.xml b/TrackingTools/GsfTracking/src/classes_def.xml index fd263496b674a..de01742f03c5e 100644 --- a/TrackingTools/GsfTracking/src/classes_def.xml +++ b/TrackingTools/GsfTracking/src/classes_def.xml @@ -8,11 +8,14 @@ - - + + + - + + + diff --git a/Validation/EcalDigis/plugins/EcalSelectiveReadoutValidation.h b/Validation/EcalDigis/plugins/EcalSelectiveReadoutValidation.h index 0c3eda3f7674d..6db9e75d92de2 100644 --- a/Validation/EcalDigis/plugins/EcalSelectiveReadoutValidation.h +++ b/Validation/EcalDigis/plugins/EcalSelectiveReadoutValidation.h @@ -19,6 +19,8 @@ #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" #include "DataFormats/EcalDetId/interface/EcalScDetId.h" #include "DataFormats/EcalDetId/interface/EcalTrigTowerDetId.h" +#include "DataFormats/EcalDetId/interface/EBDetIdFwd.h" +#include "DataFormats/EcalDetId/interface/EEDetIdFwd.h" #include "Geometry/CaloGeometry/interface/CaloGeometry.h" #include "Geometry/Records/interface/CaloGeometryRecord.h" #include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h" @@ -38,8 +40,6 @@ #include #include -class EBDetId; -class EEDetId; class EcalElectronicsMapping; class EcalTrigTowerConstituentsMap; diff --git a/Validation/RecoTrack/python/customiseTrackingNtuple.py b/Validation/RecoTrack/python/customiseTrackingNtuple.py index 440aae64f9118..e00216ac12608 100644 --- a/Validation/RecoTrack/python/customiseTrackingNtuple.py +++ b/Validation/RecoTrack/python/customiseTrackingNtuple.py @@ -32,9 +32,8 @@ def customiseTrackingNtupleTool(process, isRECO = True, mergeIters = False): if not isRECO: if not hasattr(process,"hltMultiTrackValidation"): process.load("Validation.RecoTrack.HLTmultiTrackValidator_cff") - process.trackingNtupleSequence = process.hltMultiTrackValidation.copy() + process.trackingNtupleSequence = cms.Sequence(process.hltMultiTrackValidationTask) process.trackingNtupleSequence.insert(0,process.trackingParticlesIntime+process.simHitTPAssocProducer) - process.trackingNtupleSequence.remove(process.hltTrackValidator) if hasattr(process, "HLTIterativeTrackingIter02"): if not hasattr(process, "hltSiStripRecHits"):