diff --git a/Configuration/ProcessModifiers/python/enableCPfromPU_cff.py b/Configuration/ProcessModifiers/python/enableCPfromPU_cff.py new file mode 100644 index 0000000000000..b9e00007d5a1c --- /dev/null +++ b/Configuration/ProcessModifiers/python/enableCPfromPU_cff.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier enables the CaloParticles from pileup in the HGCAL associators and simulated objects. +enableCPfromPU = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 56a6db5802678..89f5c426cb4a6 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -898,6 +898,38 @@ def condition(self, fragment, stepList, key, hasHarvest): '--customise': 'RecoHGCal/TICL/customiseTICLFromReco.customiseTICLForDumper'} upgradeWFs['ticl_v5_withDumper'].step4 = {'--procModifiers': 'ticl_v5'} +class UpgradeWorkflow_CPfromPU(UpgradeWorkflow): + def setup_(self, step, stepName, stepDict, k, properties): + if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step): + stepDict[stepName][k] = merge([self.step2, stepDict[step][k]]) + if 'RecoGlobal' in step: + stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) + if 'HARVESTGlobal' in step: + stepDict[stepName][k] = merge([self.step4, stepDict[step][k]]) + def condition(self, fragment, stepList, key, hasHarvest): + return (fragment=="TTbar_14TeV" or 'CloseByP' in fragment or 'Eta1p7_2p7' in fragment) and 'Run4' in key + +upgradeWFs['CPfromPU'] = UpgradeWorkflow_CPfromPU( + steps = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + PU = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + suffix = '_withCPfromPU', + offset = 0.208, +) + +upgradeWFs['CPfromPU'].step2 = {'--procModifiers': 'enableCPfromPU'} +upgradeWFs['CPfromPU'].step3 = {'--procModifiers': 'enableCPfromPU'} +upgradeWFs['CPfromPU'].step4 = {'--procModifiers': 'enableCPfromPU'} + # Improved L2 seeding from L1Tk Muons and L3 Tracker Muon Inside-Out reconstruction first (Phase-2 Muon default) class UpgradeWorkflow_phase2L2AndL3Muons(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): diff --git a/SimCalorimetry/HGCalSimProducers/python/hgcHitAssociation_cfi.py b/SimCalorimetry/HGCalSimProducers/python/hgcHitAssociation_cfi.py index ebe7be82c5df2..21037728b61b4 100644 --- a/SimCalorimetry/HGCalSimProducers/python/hgcHitAssociation_cfi.py +++ b/SimCalorimetry/HGCalSimProducers/python/hgcHitAssociation_cfi.py @@ -1,3 +1,11 @@ -from SimCalorimetry.HGCalAssociatorProducers.hgCalLCToCPAssociatorByEnergyScoreProducer_cfi import hgCalLCToCPAssociatorByEnergyScoreProducer as lcAssocByEnergyScoreProducer +import FWCore.ParameterSet.Config as cms +from SimCalorimetry.HGCalAssociatorProducers.hgCalLCToCPAssociatorByEnergyScoreProducer_cfi import hgCalLCToCPAssociatorByEnergyScoreProducer as _lcAssocByEnergyScoreProducer +from SimCalorimetry.HGCalAssociatorProducers.hgCalLCToSCAssociatorByEnergyScoreProducer_cfi import hgCalLCToSCAssociatorByEnergyScoreProducer as _scAssocByEnergyScoreProducer -from SimCalorimetry.HGCalAssociatorProducers.hgCalLCToSCAssociatorByEnergyScoreProducer_cfi import hgCalLCToSCAssociatorByEnergyScoreProducer as scAssocByEnergyScoreProducer +lcAssocByEnergyScoreProducer = _lcAssocByEnergyScoreProducer.clone(hardScatterOnly = cms.bool(True)) +scAssocByEnergyScoreProducer = _scAssocByEnergyScoreProducer.clone(hardScatterOnly = cms.bool(True)) + +from Configuration.ProcessModifiers.enableCPfromPU_cff import enableCPfromPU + +enableCPfromPU.toModify(lcAssocByEnergyScoreProducer, hardScatterOnly = cms.bool(False)) +enableCPfromPU.toModify(scAssocByEnergyScoreProducer, hardScatterOnly = cms.bool(False)) diff --git a/SimDataFormats/Track/src/classes_def.xml b/SimDataFormats/Track/src/classes_def.xml index 09c6a03d5247e..36c55a31e5c7a 100644 --- a/SimDataFormats/Track/src/classes_def.xml +++ b/SimDataFormats/Track/src/classes_def.xml @@ -9,20 +9,14 @@ - + type(), newObj->momentum(), newObj->vertIndex(), newObj->genpartIndex(), newObj->trackerSurfacePosition(), newObj->trackerSurfaceMomentum()); - tmp.setTrackId(newObj->trackId()); - tmp.setEventId(newObj->eventId()); - tmp.setCrossedBoundaryVars( - newObj->crossedBoundary(), newObj->getIDAtBoundary(), newObj->getPositionAtBoundary(), newObj->getMomentumAtBoundary()); - if (newObj->isFromBackScattering()) { - tmp.setFromBackScattering(); - } - if (newObj->genpartIndex() != -1) { - tmp.setIsPrimary(); - } - *newObj=tmp; + // set crossedBoundary infos + newObj->setCrossedBoundaryVars(onfile.crossedBoundary_, onfile.idAtBoundary_, onfile.positionAtBoundary_, onfile.momentumAtBoundary_); + // set isPrimary info of trackInfo_ + if (onfile.igenpart != -1) + newObj->setIsPrimary(); + // it's not possible to set the isFromBackScattering info for old simTracks ]]>