workerType=cms.string("PreMixingHGCalWorker"), digiTagSig=cms.InputTag("mix", "HGCDigisHEback"), pileInputTag=cms.InputTag("simHGCalUnsuppressedDigis", "HEback"), ), caloTruth=cms.PSet( workerType=cms.string("PreMixingCaloParticleWorker"), labelSig=cms.InputTag("mix", "MergedCaloTruth"), pileInputTag=cms.InputTag("mix", "MergedCaloTruth"), collectionDM=cms.string("MergedCaloTruth"), ))) phase2_hfnose.toModify(mixData, workers=dict(hfnose=cms.PSet( hfnoseDigitizer, workerType=cms.string("PreMixingHGCalWorker"), digiTagSig=cms.InputTag("mix", "HFNoseDigis"), pileInputTag=cms.InputTag( "simHGCalUnsuppressedDigis", "HFNose"), ), )) # Muon phase2_muon.toModify( mixData, workers=dict( dt=dict(pileInputTag="simMuonDTDigis"), rpc=dict(pileInputTag="simMuonRPCDigis"), csc=dict( strip=dict(pileInputTag="simMuonCSCDigis:MuonCSCStripDigi"), wire=dict(pileInputTag="simMuonCSCDigis:MuonCSCWireDigi"), comparator=dict( pileInputTag="simMuonCSCDigis:MuonCSCComparatorDigi"),
from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgceeDigitizer, hgchebackDigitizer, hgchefrontDigitizer, HGCAL_noise_fC, HGCAL_noise_MIP, HGCAL_chargeCollectionEfficiencies, HGCAL_noises from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( theDigitizers, hgceeDigitizer = cms.PSet(hgceeDigitizer), hgchebackDigitizer = cms.PSet(hgchebackDigitizer), hgchefrontDigitizer = cms.PSet(hgchefrontDigitizer), ) from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hfnoseDigitizer from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( theDigitizers, hfnoseDigitizer = cms.PSet(hfnoseDigitizer), ) from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify( theDigitizers, castor = None ) from SimGeneral.MixingModule.ecalTimeDigitizer_cfi import ecalTimeDigitizer from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer phase2_timing.toModify( theDigitizers, ecalTime = ecalTimeDigitizer.clone() ) from SimFastTiming.Configuration.SimFastTiming_cff import fastTimeDigitizer phase2_timing_layer.toModify( theDigitizers, fastTimingLayer = fastTimeDigitizer.clone() )
# adc information adcNbits=hfnoseDigitizer.digiCfg.feCfg.adcNbits, adcSaturation=hfnoseDigitizer.digiCfg.feCfg.adcSaturation_fC, #tdc information tdcNbits=hfnoseDigitizer.digiCfg.feCfg.tdcNbits, tdcSaturation=hfnoseDigitizer.digiCfg.feCfg.tdcSaturation_fC, tdcOnset=hfnoseDigitizer.digiCfg.feCfg.tdcOnset_fC, toaLSB_ns=hfnoseDigitizer.digiCfg.feCfg.toaLSB_ns, fCPerMIP=fCPerMIP_mpv), algo=cms.string("HGCalUncalibRecHitWorkerWeights")) from Configuration.Eras.Modifier_phase2_hgcalV10_cff import phase2_hgcalV10 phase2_hgcalV10.toModify(HGCalUncalibRecHit.HGCEEConfig, fCPerMIP=fCPerMIP_mean) phase2_hgcalV10.toModify(HGCalUncalibRecHit.HGCHEFConfig, fCPerMIP=fCPerMIP_mean) from Configuration.Eras.Modifier_phase2_hgcalV16_cff import phase2_hgcalV16 phase2_hgcalV16.toModify(HGCalUncalibRecHit.HGCEEConfig, fCPerMIP=fCPerMIP_mean) phase2_hgcalV16.toModify(HGCalUncalibRecHit.HGCHEFConfig, fCPerMIP=fCPerMIP_mean) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify(HGCalUncalibRecHit.HGCHFNoseConfig, isSiFE=True, fCPerMIP=fCPerMIP_mean)
) from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( theMixObjects, mixCH = dict( input = theMixObjects.mixCH.input + [ cms.InputTag("g4SimHits",hgceeDigitizer.hitCollection.value()), cms.InputTag("g4SimHits",hgchefrontDigitizer.hitCollection.value()), cms.InputTag("g4SimHits",hgchebackDigitizer.hitCollection.value()) ], subdets = theMixObjects.mixCH.subdets + [ hgceeDigitizer.hitCollection.value(), hgchefrontDigitizer.hitCollection.value(), hgchebackDigitizer.hitCollection.value() ], ) ) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( theMixObjects, mixCH = dict( input = theMixObjects.mixCH.input + [ cms.InputTag("g4SimHits",hfnoseDigitizer.hitCollection.value()) ], subdets = theMixObjects.mixCH.subdets + [ hfnoseDigitizer.hitCollection.value() ], ) ) from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer phase2_timing_layer.toModify( theMixObjects, mixSH = dict( input = theMixObjects.mixSH.input + [ cms.InputTag("g4SimHits","FastTimerHitsBarrel"), cms.InputTag("g4SimHits","FastTimerHitsEndcap") ], subdets = theMixObjects.mixSH.subdets + [ 'FastTimerHitsBarrel','FastTimerHitsEndcap' ], crossingFrames = theMixObjects.mixSH.crossingFrames + [ 'FastTimerHitsBarrel','FastTimerHitsEndcap' ] ) ) from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 ctpps_2021.toModify( theMixObjects, mixSH = dict(
from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgceeDigitizer, hgchebackDigitizer, hgchefrontDigitizer, HGCAL_noise_fC, HGCAL_noise_heback, HGCAL_chargeCollectionEfficiencies, HGCAL_ileakParam_toUse, HGCAL_cceParams_toUse, HGCAL_noises from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( theDigitizers, hgceeDigitizer=cms.PSet(hgceeDigitizer), hgchebackDigitizer=cms.PSet(hgchebackDigitizer), hgchefrontDigitizer=cms.PSet(hgchefrontDigitizer), ) from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hfnoseDigitizer from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( theDigitizers, hfnoseDigitizer=cms.PSet(hfnoseDigitizer), ) from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify(theDigitizers, castor=None) from SimGeneral.MixingModule.ecalTimeDigitizer_cfi import ecalTimeDigitizer from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing phase2_timing.toModify(theDigitizers, ecalTime=ecalTimeDigitizer.clone()) from SimFastTiming.Configuration.SimFastTiming_cff import mtdDigitizer from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer phase2_timing_layer.toModify(theDigitizers, fastTimingLayer=mtdDigitizer.clone()) premix_stage2.toModify(
'keep *_mix_MergedCaloTruth_*'), ) # For phase2 premixing switch the sim digi collections to the ones including pileup from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify(_phase2_hgc_extraCommands, v=[ 'keep *_mixData_HGCDigisEE_*', 'keep *_mixData_HGCDigisHEfront_*', 'keep *_mixData_HGCDigisHEback_*', 'keep *_mixData_MergedCaloTruth_*' ]) phase2_hgcal.toModify(SimCalorimetryRAW, outputCommands=SimCalorimetryRAW.outputCommands + _phase2_hgc_extraCommands.v) phase2_hgcal.toModify(SimCalorimetryFEVTDEBUG, outputCommands=SimCalorimetryFEVTDEBUG.outputCommands + _phase2_hgc_extraCommands.v) phase2_hgcal.toModify(SimCalorimetryRECO, outputCommands=SimCalorimetryRECO.outputCommands + _phase2_hgc_extraCommands.v) phase2_hgcal.toModify(SimCalorimetryPREMIX, outputCommands=SimCalorimetryPREMIX.outputCommands + _phase2_hgc_extraCommands.v) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify(SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append( 'keep *_simHFNoseUnsuppressedDigis_*_*')) phase2_hfnose.toModify(SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append( 'keep *_simHFNoseUnsuppressedDigis_*_*'))
premix_stage1.toModify(caloParticles, premixStage1=True) from Configuration.Eras.Modifier_phase2_hgcalV9_cff import phase2_hgcalV9 phase2_hgcalV9.toModify( caloParticles, simHitCollections=dict( hgc={2: cms.InputTag('g4SimHits', 'HGCHitsHEback')}), ) # Uncommented the following block before part 2 as per Maria's instruction from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( caloParticles, simHitCollections=dict(hgc=caloParticles.simHitCollections.hgc + [cms.InputTag('g4SimHits', 'HFNoseHits')], hcal=cms.VInputTag( cms.InputTag('g4SimHits', 'HcalHits')))) from Configuration.ProcessModifiers.run3_ecalclustering_cff import run3_ecalclustering run3_ecalclustering.toModify( caloParticles, simHitCollections=cms.PSet( ecal=cms.VInputTag(cms.InputTag('g4SimHits', 'EcalHitsEE'), cms.InputTag('g4SimHits', 'EcalHitsEB'), cms.InputTag('g4SimHits', 'EcalHitsES')))) from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toReplaceWith(caloParticles,
isSiFE=cms.bool(False), adcNbits=hgchebackDigitizer.digiCfg.feCfg.adcNbits, adcSaturation=hgchebackDigitizer.digiCfg.feCfg.adcSaturation_fC, fCPerMIP=cms.vdouble(1.0, 1.0, 1.0) #dummy values, it's scintillator ), HGCHFNoseConfig=cms.PSet( isSiFE=cms.bool(False), # adc information adcNbits=hfnoseDigitizer.digiCfg.feCfg.adcNbits, adcSaturation=hfnoseDigitizer.digiCfg.feCfg.adcSaturation_fC, #tdc information tdcNbits=hfnoseDigitizer.digiCfg.feCfg.tdcNbits, tdcSaturation=hfnoseDigitizer.digiCfg.feCfg.tdcSaturation_fC, tdcOnset=hfnoseDigitizer.digiCfg.feCfg.tdcOnset_fC, toaLSB_ns=hfnoseDigitizer.digiCfg.feCfg.toaLSB_ns, fCPerMIP=cms.vdouble(1.25, 2.57, 3.88) #100um, 200um, 300um ), algo=cms.string("HGCalUncalibRecHitWorkerWeights")) from Configuration.Eras.Modifier_phase2_hgcalV9_cff import phase2_hgcalV9 phase2_hgcalV9.toModify(HGCalUncalibRecHit.HGCEEConfig, fCPerMIP=fCPerMIP_v9) phase2_hgcalV9.toModify(HGCalUncalibRecHit.HGCHEFConfig, fCPerMIP=fCPerMIP_v9) from Configuration.Eras.Modifier_phase2_hgcalV10_cff import phase2_hgcalV10 phase2_hgcalV10.toModify(HGCalUncalibRecHit.HGCEEConfig, fCPerMIP=fCPerMIP_v10) phase2_hgcalV10.toModify(HGCalUncalibRecHit.HGCHEFConfig, fCPerMIP=fCPerMIP_v10) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify(HGCalUncalibRecHit.HGCHFNoseConfig, isSiFE=True)
pileInputTag = cms.InputTag("simHGCalUnsuppressedDigis", "HEback"), ), caloTruth = cms.PSet( workerType = cms.string("PreMixingCaloParticleWorker"), labelSig = cms.InputTag("mix", "MergedCaloTruth"), pileInputTag = cms.InputTag("mix", "MergedCaloTruth"), collectionDM = cms.string("MergedCaloTruth"), ) ) ) phase2_hfnose.toModify(mixData, workers = dict( hfnose = cms.PSet( hfnoseDigitizer, workerType = cms.string("PreMixingHGCalWorker"), digiTagSig = cms.InputTag("mix", "HFNoseDigis"), pileInputTag = cms.InputTag("simHGCalUnsuppressedDigis", "HFNose"), ), ) ) # Muon phase2_muon.toModify(mixData, workers = dict( gem = cms.PSet( workerType = cms.string("PreMixingGEMWorker"), digiTagSig = cms.InputTag("simMuonGEMDigis"), pileInputTag = cms.InputTag("simMuonGEMDigis",""), collectionDM = cms.string(''), ),
(premix_stage1 & phase2_muon).toModify(theMixObjects, mixSH = dict( pcrossingFrames = theMixObjects.mixSH.pcrossingFrames + [ 'MuonME0Hits' ] ) ) from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( theMixObjects, mixCH = dict( input = theMixObjects.mixCH.input + [ cms.InputTag("g4SimHits",hgceeDigitizer.hitCollection.value()), cms.InputTag("g4SimHits",hgchefrontDigitizer.hitCollection.value()) ], subdets = theMixObjects.mixCH.subdets + [ hgceeDigitizer.hitCollection.value(), hgchefrontDigitizer.hitCollection.value() ], ) ) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( theMixObjects, mixCH = dict( input = theMixObjects.mixCH.input + [ cms.InputTag("g4SimHits",hfnoseDigitizer.hitCollection.value()) ], subdets = theMixObjects.mixCH.subdets + [ hfnoseDigitizer.hitCollection.value() ], ) ) from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer phase2_timing_layer.toModify( theMixObjects, mixSH = dict( input = theMixObjects.mixSH.input + [ cms.InputTag("g4SimHits","FastTimerHitsBarrel"), cms.InputTag("g4SimHits","FastTimerHitsEndcap") ], subdets = theMixObjects.mixSH.subdets + [ 'FastTimerHitsBarrel','FastTimerHitsEndcap' ], crossingFrames = theMixObjects.mixSH.crossingFrames + [ 'FastTimerHitsBarrel','FastTimerHitsEndcap' ] ) )
from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose from Configuration.Eras.Modifier_pA_2016_cff import pA_2016 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018 # don't modify AOD for HGCal yet, need "reduced" rechits collection first (i.e. requires reconstruction) phase2_hgcal.toModify( RecoLocalCaloAOD, outputCommands=RecoLocalCaloAOD.outputCommands + [ 'keep *_HGCalRecHit_*_*', 'keep recoCaloClusters_hgcalLayerClusters_*_*', 'keep *_hgcalLayerClusters_timeLayerCluster_*', 'keep *_hgcalLayerClusters_InitialLayerClustersMask_*' ]) phase2_hfnose.toModify( RecoLocalCaloAOD, outputCommands=RecoLocalCaloAOD.outputCommands + [ 'keep recoCaloClusters_hgcalLayerClustersHFNose_*_*', 'keep *_hgcalLayerClustersHFNose_timeLayerCluster_*', 'keep *_hgcalLayerClustersHFNose_InitialLayerClustersMask_*' ]) (pA_2016 | pp_on_AA_2018).toModify( RecoLocalCaloAOD.outputCommands, func=lambda outputCommands: outputCommands.extend([ 'keep *_zdcreco_*_*', 'keep ZDCDataFramesSorted_hcalDigis_*_*', 'keep ZDCDataFramesSorted_castorDigis_*_*', 'keep QIE10DataFrameHcalDataFrameContainer_hcalDigis_ZDC_*' ])) from Configuration.ProcessModifiers.egamma_lowPt_exclusive_cff import egamma_lowPt_exclusive egamma_lowPt_exclusive.toModify( RecoLocalCaloAOD, outputCommands=RecoLocalCaloAOD.outputCommands + [ 'keep *_towerMaker_*_*', 'keep *_zdcreco_*_*',
outputCommands = RecoLocalCaloRECO.outputCommands + ['keep *_HGCalRecHit_*_*', 'keep *_hgcalLayerClusters_*_*', 'drop DetIdfloatstdmap_hgcalLayerClusters_*_*', 'keep *_hgcalMultiClusters_*_*', 'keep *_iterHGCalMultiClusters_*_*'] ) # don't modify AOD for HGCal yet, need "reduced" rechits collection first (i.e. requires reconstruction) phase2_hgcal.toModify( RecoLocalCaloAOD, outputCommands = RecoLocalCaloAOD.outputCommands + ['keep *_HGCalRecHit_*_*', 'keep *_hgcalLayerClusters_*_*', 'drop DetIdfloatstdmap_hgcalLayerClusters_*_*']) # mods for HFNOSE from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( RecoLocalCaloRECO, outputCommands = RecoLocalCaloRECO.outputCommands + ['keep *_hgcalLayerClustersHFNose_*_*', 'drop DetIdfloatstdmap_hgcalLayerClustersHFNose_*_*', ] ) phase2_hfnose.toModify( RecoLocalCaloFEVT, outputCommands = RecoLocalCaloFEVT.outputCommands + ['keep *_hgcalLayerClustersHFNose_*_*', 'drop DetIdfloatstdmap_hgcalLayerClustersHFNose_*_*'] ) phase2_hfnose.toModify( RecoLocalCaloAOD, outputCommands = RecoLocalCaloAOD.outputCommands + ['keep *_hgcalLayerClustersHFNose_*_*', 'drop DetIdfloatstdmap_hgcalLayerClustersHFNose_*_*'] ) from Configuration.Eras.Modifier_pA_2016_cff import pA_2016 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018 (pA_2016|pp_on_AA_2018).toModify( RecoLocalCaloAOD.outputCommands, func=lambda outputCommands: outputCommands.extend(['keep *_zdcreco_*_*', 'keep ZDCDataFramesSorted_hcalDigis_*_*',
phase2_timing.toModify(SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_EETimeDigi_*') ) phase2_timing.toModify(SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_EBTimeDigi_*') ) from Configuration.Eras.Modifier_phase2_common_cff import phase2_common phase2_common.toModify( SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simEcalUnsuppressedDigis_*_*') ) phase2_common.toModify( SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simEcalUnsuppressedDigis_*_*') ) phase2_common.toModify( SimCalorimetryPREMIX.outputCommands, func=lambda outputCommands: outputCommands.append('drop ESDigiCollection_simEcalUnsuppressedDigis_*_*') ) from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( SimCalorimetryPREMIX.outputCommands, func=lambda outputCommands: outputCommands.append('drop EEDigiCollection_simEcalDigis_*_*') ) # mods for HGCAL _phase2_hgc_extraCommands = cms.PSet( # using PSet in order to customize with Modifier v = cms.vstring('keep *_simHGCalUnsuppressedDigis_EE_*', 'keep *_simHGCalUnsuppressedDigis_HEfront_*', 'keep *_simHGCalUnsuppressedDigis_HEback_*', 'keep *_mix_MergedCaloTruth_*'), ) # For phase2 premixing switch the sim digi collections to the ones including pileup from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify(_phase2_hgc_extraCommands, v = ['keep *_mixData_HGCDigisEE_*', 'keep *_mixData_HGCDigisHEfront_*', 'keep *_mixData_HGCDigisHEback_*', 'keep *_mixData_MergedCaloTruth_*'] ) phase2_hgcal.toModify( SimCalorimetryRAW, outputCommands = SimCalorimetryRAW.outputCommands + _phase2_hgc_extraCommands.v ) phase2_hgcal.toModify( SimCalorimetryFEVTDEBUG, outputCommands = SimCalorimetryFEVTDEBUG.outputCommands + _phase2_hgc_extraCommands.v ) phase2_hgcal.toModify( SimCalorimetryRECO, outputCommands = SimCalorimetryRECO.outputCommands + _phase2_hgc_extraCommands.v ) phase2_hgcal.toModify( SimCalorimetryPREMIX, outputCommands = SimCalorimetryPREMIX.outputCommands + _phase2_hgc_extraCommands.v ) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose phase2_hfnose.toModify( SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simHFNoseUnsuppressedDigis_*_*') ) phase2_hfnose.toModify( SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simHFNoseUnsuppressedDigis_*_*') )
binSumsHisto=binSums, kROverZMin=cms.double(0.076), kROverZMax=cms.double(0.58), threshold_histo_multicluster=cms.double(10.), neighbour_weights=neighbour_weights_1stOrder, seed_position=cms.string("TCWeighted"), #BinCentre, TCWeighted seeding_space=cms.string("RPhi"), # RPhi, XY seed_smoothing_ecal=seed_smoothing_ecal, seed_smoothing_hcal=seed_smoothing_hcal, ) ## Note: this customization change both HGC and HFnose, to be revised phase2_hfnose.toModify( histoMax_C3d_seeding_params, nBins_X1_histo_multicluster=cms.uint32(43), binSumsHisto=binSumsNose, kROverZMin=cms.double(0.025), kROverZMax=cms.double(0.58), ) histoMax_C3d_clustering_params = cms.PSet( dR_multicluster=cms.double(0.03), dR_multicluster_byLayer_coefficientA=cms.vdouble(), dR_multicluster_byLayer_coefficientB=cms.vdouble(), shape_threshold=cms.double(1.), shape_distance=cms.double(0.015), minPt_multicluster=cms.double(0.5), # minimum pt of the multicluster (GeV) cluster_association=cms.string("NearestNeighbour"), EGIdentification=egamma_identification_histomax.clone(), )