cms.InputTag('g4SimHits','HGCHitsEE'), cms.InputTag('g4SimHits','HGCHitsHEfront'), cms.InputTag('g4SimHits','HcalHits') ), # hcal = cms.VInputTag(cms.InputTag('g4SimHits','HcalHits')), # ecal = cms.VInputTag( # cms.InputTag('g4SimHits','EcalHitsEE'), # cms.InputTag('g4SimHits','EcalHitsEB'), # cms.InputTag('g4SimHits','EcalHitsES') # ) ), simTrackCollection = cms.InputTag('g4SimHits'), simVertexCollection = cms.InputTag('g4SimHits'), genParticleCollection = cms.InputTag('genParticles'), allowDifferentSimHitProcesses = cms.bool(False), # should be True for FastSim, False for FullSim HepMCProductLabel = cms.InputTag('generatorSmeared'), ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 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')} ), ) from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toReplaceWith(caloParticles, cms.PSet()) # don't allow this to run in fastsim
calotruth=dict(premixStage1=True)) phase2_timing.toModify(theDigitizersValid.mergedtruth, createInitialVertexCollection=cms.bool(True)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 def _customizePremixStage1(mod): # To avoid this if-else structure we'd need an "_InverseModifier" # to customize pixel/strip for everything else than fastSim. if hasattr(mod, "pixel"): if hasattr(mod.pixel, "AlgorithmCommon"): mod.pixel.AlgorithmCommon.makeDigiSimLinks = True else: mod.pixel.makeDigiSimLinks = True if hasattr(mod, "strip"): mod.strip.makeDigiSimLinks = True mod.mergedtruth.select.signalOnlyTP = False premix_stage1.toModify(theDigitizersValid, _customizePremixStage1) def _loadPremixStage2Aliases(process): process.load("SimGeneral.MixingModule.aliases_PreMix_cfi") modifyDigitizers_loadPremixStage2Aliases = premix_stage2.makeProcessModifier( _loadPremixStage2Aliases)
from CalibTracker.SiPixelESProducers.SiPixelQualityESProducer_cfi import siPixelQualityESProducer from Configuration.Eras.Modifier_run2_SiPixel_2018_cff import run2_SiPixel_2018 run2_SiPixel_2018.toModify( siPixelQualityESProducer, siPixelQualityLabel='forDigitizer', ) run2_SiPixel_2018.toModify( SiPixelSimBlock, SiPixelQualityLabel='forDigitizer', ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify( SiPixelSimBlock, AddNoise=True, AddNoisyPixels=False, AddPixelInefficiency=False, #done in second step KillBadFEDChannels=False, #done in second step ) # Threshold in electrons are the Official CRAFT09 numbers: # FPix(smearing)/BPix(smearing) = 2480(160)/2730(200) #DEAD MODULES LIST: NEW LIST AFTER 2009 PIXEL REPAIRS # https://twiki.cern.ch/twiki/bin/view/CMS/SiPixelQualityHistory ######Barrel #Bad Module: 302055940 errorType 2 BadRocs=ff00 #Bad Module: 302059800 errorType 0 BadRocs=ffff #BmI_SEC3_LYR2_LDR5F_MOD3 -- 302121992, "TBM-A" #####Forward #Bad Module: 352453892 errorType 0 BadRocs=ffff
import FWCore.ParameterSet.Config as cms es_electronics_sim = cms.PSet( doFast = cms.bool(True), doESNoise = cms.bool(True) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(es_electronics_sim, doESNoise = False)
# cms.InputTag('g4SimHits','EcalHitsEE'), # cms.InputTag('g4SimHits','EcalHitsEB'), # cms.InputTag('g4SimHits','EcalHitsES') # ) ), simTrackCollection=cms.InputTag('g4SimHits'), simVertexCollection=cms.InputTag('g4SimHits'), genParticleCollection=cms.InputTag('genParticles'), allowDifferentSimHitProcesses=cms.bool( False), # should be True for FastSim, False for FullSim HepMCProductLabel=cms.InputTag('generatorSmeared'), ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 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 +
import FWCore.ParameterSet.Config as cms esDigiToRaw = cms.EDProducer( "ESDigiToRaw", debugMode=cms.untracked.bool(False), InstanceES=cms.string(''), Label=cms.string('simEcalPreshowerDigis'), LookupTable=cms.untracked.FileInPath( 'EventFilter/ESDigiToRaw/data/ES_lookup_table.dat')) # bypass zero suppression from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(esDigiToRaw, Label='mix')
from EventFilter.RawDataCollector.rawDataCollector_cfi import * from L1Trigger.Configuration.L1TDigiToRaw_cff import * from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 #DigiToRaw = cms.Sequence(L1TDigiToRaw*siPixelRawData*SiStripDigiToRaw*ecalPacker*esDigiToRaw*hcalRawData*cscpacker*dtpacker*rpcpacker*rawDataCollector) DigiToRaw = cms.Sequence(L1TDigiToRaw*siPixelRawData*SiStripDigiToRaw*ecalPacker*esDigiToRaw*hcalRawData*cscpacker*dtpacker*rpcpacker*castorRawData*rawDataCollector) # no L1 DigiToRaw in first PreMixing step premix_stage1.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([L1TDigiToRaw])) ecalPacker.Label = 'simEcalDigis' ecalPacker.InstanceEB = 'ebDigis' ecalPacker.InstanceEE = 'eeDigis' ecalPacker.labelEBSRFlags = "simEcalDigis:ebSrFlags" ecalPacker.labelEESRFlags = "simEcalDigis:eeSrFlags" premix_stage1.toModify(hcalRawDatauHTR, premix = True) from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([castorRawData])) #if we don't have hcal raw data from Configuration.Eras.Modifier_hcalSkipPacker_cff import hcalSkipPacker hcalSkipPacker.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([hcalRawData])) # Remove siPixelRawData until we have phase1 pixel digis from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([siPixelRawData])) # FIXME # GEM settings _gem_DigiToRaw = DigiToRaw.copy() _gem_DigiToRaw.insert(-2,gemPacker)
import FWCore.ParameterSet.Config as cms ecal_digi_parameters = cms.PSet( EEdigiCollection=cms.string(''), EBdigiCollection=cms.string(''), ESdigiCollection=cms.string(''), UseLCcorrection=cms.untracked.bool(True), EBCorrNoiseMatrixG12=cms.vdouble(1.00000, 0.71073, 0.55721, 0.46089, 0.40449, 0.35931, 0.33924, 0.32439, 0.31581, 0.30481), EECorrNoiseMatrixG12=cms.vdouble(1.00000, 0.71373, 0.44825, 0.30152, 0.21609, 0.14786, 0.11772, 0.10165, 0.09465, 0.08098), EBCorrNoiseMatrixG06=cms.vdouble(1.00000, 0.70946, 0.58021, 0.49846, 0.45006, 0.41366, 0.39699, 0.38478, 0.37847, 0.37055), EECorrNoiseMatrixG06=cms.vdouble(1.00000, 0.71217, 0.47464, 0.34056, 0.26282, 0.20287, 0.17734, 0.16256, 0.15618, 0.14443), EBCorrNoiseMatrixG01=cms.vdouble(1.00000, 0.73354, 0.64442, 0.58851, 0.55425, 0.53082, 0.51916, 0.51097, 0.50732, 0.50409), EECorrNoiseMatrixG01=cms.vdouble(1.00000, 0.72698, 0.62048, 0.55691, 0.51848, 0.49147, 0.47813, 0.47007, 0.46621, 0.46265), EcalPreMixStage1=cms.bool(False), EcalPreMixStage2=cms.bool(False)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(ecal_digi_parameters, EcalPreMixStage1=True)
################################################# # activate APV simulation for 2016 Strip detector (UL 2016) # According to this document https://indico.cern.ch/event/560226/contributions/2277448/attachments/1324704/1988050/wgm_vfp_change_ebutz.pdf # the first LHC fill taken with vfp=0 settings is https://cmswbm.cern.ch/cmsdb/servlet/FillReport?FILL=5198 (run 278801) # cf Prompt-Reco DQM: https://tinyurl.com/y2gybwx7 # pre-VFP runs: 273150-278800 lumi: 19480.4566773 /pb # post-VFP runs: 278801-284044 lumi: 16755.0362868 /pb # ~53.8% of luminosity is affected by APV saturation ################################################# from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 tracker_apv_vfp30_2016.toModify(SiStripSimBlock, includeAPVSimulation = True, fracOfEventsToSimAPV = 1.0 ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(SiStripSimBlock, Noise = False, PreMixingMode = True, FedAlgorithm = 5, # special ZS mode: accept adc>0 includeAPVSimulation = False # APV simulation is off for premix stage1 ) from Configuration.Eras.Modifier_run2_common_cff import run2_common run2_common.toModify(SiStripSimBlock, CouplingConstantsRunIIDecB = True, #for TIB and TOB CouplingConstantsRunIIDecW = True, #for TID and TEC APVShapeDecoFile =cms.FileInPath("SimTracker/SiStripDigitizer/data/APVShapeDeco_320.txt") )
EfficiencyFactors_Endcap = cms.vdouble(0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999 ),#Efficiencies kept as Side2Disk1,Side1Disk1 and so on CellsToKill = cms.VPSet() ) ) # TODO: values are copied from phase0/1 pixel configuration, they can be wrong from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(phase2TrackerDigitizer, PixelDigitizerAlgorithm = dict( AddNoise = True, AddNoisyPixels = False, makeDigiSimLinks = False, ), PSPDigitizerAlgorithm = dict( AddNoise = True, AddNoisyPixels = False, makeDigiSimLinks = False, ), PSSDigitizerAlgorithm = dict( AddNoise = True, AddNoisyPixels = False, makeDigiSimLinks = False, ), SSDigitizerAlgorithm = dict( AddNoise = True, AddNoisyPixels = False, makeDigiSimLinks = False, ), )
0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 0.999), #Efficiencies kept as Side2Disk1,Side1Disk1 and so on CellsToKill=cms.VPSet())) # TODO: values are copied from phase0/1 pixel configuration, they can be wrong from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify( phase2TrackerDigitizer, PixelDigitizerAlgorithm=dict( AddNoise=True, AddNoisyPixels=False, makeDigiSimLinks=False, ), PSPDigitizerAlgorithm=dict( AddNoise=True, AddNoisyPixels=False, makeDigiSimLinks=False, ), PSSDigitizerAlgorithm=dict( AddNoise=True, AddNoisyPixels=False, makeDigiSimLinks=False, ), SSDigitizerAlgorithm=dict( AddNoise=True, AddNoisyPixels=False, makeDigiSimLinks=False, ), )
1.00000, 0.71073, 0.55721, 0.46089, 0.40449, 0.35931, 0.33924, 0.32439, 0.31581, 0.30481 ) , EECorrNoiseMatrixG12 = cms.vdouble ( 1.00000, 0.71373, 0.44825, 0.30152, 0.21609, 0.14786, 0.11772, 0.10165, 0.09465, 0.08098 ) , EBCorrNoiseMatrixG06 = cms.vdouble ( 1.00000, 0.70946, 0.58021, 0.49846, 0.45006, 0.41366, 0.39699, 0.38478, 0.37847, 0.37055 ) , EECorrNoiseMatrixG06 = cms.vdouble ( 1.00000, 0.71217, 0.47464, 0.34056, 0.26282, 0.20287, 0.17734, 0.16256, 0.15618, 0.14443 ), EBCorrNoiseMatrixG01 = cms.vdouble ( 1.00000, 0.73354, 0.64442, 0.58851, 0.55425, 0.53082, 0.51916, 0.51097, 0.50732, 0.50409 ) , EECorrNoiseMatrixG01 = cms.vdouble ( 1.00000, 0.72698, 0.62048, 0.55691, 0.51848, 0.49147, 0.47813, 0.47007, 0.46621, 0.46265 ) , EcalPreMixStage1 = cms.bool(False), EcalPreMixStage2 = cms.bool(False) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(ecal_digi_parameters, EcalPreMixStage1 = True)
import FWCore.ParameterSet.Config as cms ecal_electronics_sim = cms.PSet( doENoise = cms.bool(True), ConstantTerm = cms.double(0.003), applyConstantTerm = cms.bool(True) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(ecal_electronics_sim, doENoise = False, applyConstantTerm = False, )
digiIRPCModelConfig = cms.PSet( signalPropagationSpeed = cms.double(0.66), timingRPCOffset = cms.double(50.0), Frate = cms.double(1.0), printOutDigitizer = cms.bool(False), cosmics = cms.bool(False), deltatimeAdjacentStrip = cms.double(3.0), linkGateWidth = cms.double(20.0), Rate = cms.double(0.0), timeResolution = cms.double(1.0), averageClusterSize = cms.double(1.5), Gate = cms.double(25.0), averageEfficiency = cms.double(0.95), Nbxing = cms.int32(9), BX_range = cms.int32(5), timeJitter = cms.double(0.1), IRPC_time_resolution = cms.double(1),# resolution of 1 ns IRPC_electronics_jitter = cms.double(0.1),# resolution of 100 ps sigmaY = cms.double(2.), # resolution of 2 cm do_Y_coordinate = cms.bool(True), digitizeElectrons = cms.bool(True), ), digiIRPCModel = cms.string('RPCSimModelTiming') ) from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon phase2_muon.toReplaceWith( simMuonRPCDigis, _simMuonRPCDigisPhaseII ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(simMuonRPCDigis, doBkgNoise = False)
# NOTE: It is currently assumed that all sub-digitizers have the same ElectronPerAdc. from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 _premixStage1ModifyDict = dict( premixStage1=True, PixelDigitizerAlgorithm=dict( AddNoisyPixels=False, AddInefficiency=False, AddThresholdSmearing=False, ElectronPerAdc=phase2TrackerDigitizer.PSPDigitizerAlgorithm. ElectronPerAdc.value(), AdcFullScale=phase2TrackerDigitizer.PSPDigitizerAlgorithm.AdcFullScale. value(), ), PSPDigitizerAlgorithm=dict( AddNoisyPixels=False, AddInefficiency=False, AddThresholdSmearing=False, ), PSSDigitizerAlgorithm=dict( AddNoisyPixels=False, AddInefficiency=False, AddThresholdSmearing=False, ), SSDigitizerAlgorithm=dict( AddNoisyPixels=False, AddInefficiency=False, AddThresholdSmearing=False, ), ) premix_stage1.toModify(phase2TrackerDigitizer, **_premixStage1ModifyDict)
from EventFilter.RawDataCollector.rawDataCollector_cfi import * from L1Trigger.Configuration.L1TDigiToRaw_cff import * from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 #DigiToRaw = cms.Sequence(L1TDigiToRaw*siPixelRawData*SiStripDigiToRaw*ecalPacker*esDigiToRaw*hcalRawData*cscpacker*dtpacker*rpcpacker*rawDataCollector) DigiToRaw = cms.Sequence(L1TDigiToRaw*siPixelRawData*SiStripDigiToRaw*ecalPacker*esDigiToRaw*hcalRawData*cscpacker*dtpacker*rpcpacker*castorRawData*rawDataCollector) # no L1 DigiToRaw in first PreMixing step premix_stage1.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([L1TDigiToRaw])) ecalPacker.Label = 'simEcalDigis' ecalPacker.InstanceEB = 'ebDigis' ecalPacker.InstanceEE = 'eeDigis' ecalPacker.labelEBSRFlags = "simEcalDigis:ebSrFlags" ecalPacker.labelEESRFlags = "simEcalDigis:eeSrFlags" premix_stage1.toModify(hcalRawDatauHTR, premix = True) from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([castorRawData])) #if we don't have hcal raw data from Configuration.Eras.Modifier_hcalSkipPacker_cff import hcalSkipPacker hcalSkipPacker.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([hcalRawData])) # Remove siPixelRawData until we have phase1 pixel digis from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([siPixelRawData])) # FIXME from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon phase2_muon.toReplaceWith(DigiToRaw, DigiToRaw.copyAndExclude([rpcpacker]))
import FWCore.ParameterSet.Config as cms from CalibTracker.SiStripESProducers.SiStripGainSimESProducer_cfi import * from SimGeneral.MixingModule.SiStripSimParameters_cfi import SiStripSimBlock stripDigitizer = cms.PSet(SiStripSimBlock, accumulatorType=cms.string("SiStripDigitizer"), hitsProducer=cms.string('g4SimHits'), makeDigiSimLinks=cms.untracked.bool(True)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(stripDigitizer, makeDigiSimLinks=False) # Customize here instead of SiStripSimBlock as the latter is imported # also to DataMixer configuration, and the original version is needed # there. Customize before phase2_tracker because this customization # applies only to phase0 strips, and at the moment it is unclear what # needs to be done for phase2 tracker in premixing stage2. from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify( stripDigitizer, Noise=False, # will be added in DataMixer PreMixingMode=True, #Special mode to save all hit strips FedAlgorithm=5, # special ZS mode: accept adc>0 includeAPVSimulation= False # APV simulation is off for the MixingModule configuration in premix stage2 ) from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(stripDigitizer, ROUList=[
HOregion = cms.vint32(1,8), HFregion = cms.vint32(2,3), useConfigZSvalues = cms.int32(0) ) from Configuration.Eras.Modifier_run2_HF_2017_cff import run2_HF_2017 run2_HF_2017.toModify( simHcalDigis, HFregion = cms.vint32(1,2) ) from Configuration.Eras.Modifier_run2_HB_2018_cff import run2_HB_2018 run2_HB_2018.toModify( simHcalDigis, HBregion = cms.vint32(2,5) ) from Configuration.Eras.Modifier_run2_HE_2018_cff import run2_HE_2018 run2_HE_2018.toModify( simHcalDigis, HEregion = cms.vint32(2,5) ) # Switch off HCAL ZS in digi for premixing stage1 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(simHcalDigis, markAndPass = True, HBlevel = -999, HElevel = -999, HOlevel = -999, HFlevel = -999, useConfigZSvalues = 1 )
# - force analog readout to get the ADCs # # NOTE: It is currently assumed that all sub-digitizers have the same ElectronPerAdc. from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 _premixStage1ModifyDict = dict( premixStage1 = True, PixelDigitizerAlgorithm = dict( AddNoisyPixels = False, AddInefficiency = False, AddThresholdSmearing = False, ElectronPerAdc = phase2TrackerDigitizer.PSPDigitizerAlgorithm.ElectronPerAdc.value(), AdcFullScale = phase2TrackerDigitizer.PSPDigitizerAlgorithm.AdcFullScale.value(), ), PSPDigitizerAlgorithm = dict( AddNoisyPixels = False, AddInefficiency = False, AddThresholdSmearing = False, ), PSSDigitizerAlgorithm = dict( AddNoisyPixels = False, AddInefficiency = False, AddThresholdSmearing = False, ), SSDigitizerAlgorithm = dict( AddNoisyPixels = False, AddInefficiency = False, AddThresholdSmearing = False, ), ) premix_stage1.toModify(phase2TrackerDigitizer, **_premixStage1ModifyDict)
# Modify the Raw Data Collection Raw collection List to include upgrade collections where appropriate: from EventFilter.RawDataCollector.rawDataCollector_cfi import * _RawCollectionListOrig = rawDataCollector.RawCollectionList[:] from Configuration.Eras.Modifier_stage1L1Trigger_cff import stage1L1Trigger stage1L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.append(cms.InputTag("caloStage1Raw")) ) from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger stage2L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.extend([cms.InputTag("caloLayer1RawFed1354"), cms.InputTag("caloLayer1RawFed1356"), cms.InputTag("caloLayer1RawFed1358")]) ) stage2L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.append(cms.InputTag("bmtfStage2Raw")) ) stage2L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.append(cms.InputTag("caloStage2Raw")) ) stage2L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.append(cms.InputTag("gmtStage2Raw")) ) stage2L1Trigger.toModify( rawDataCollector.RawCollectionList, func = lambda list: list.append(cms.InputTag("gtStage2Raw")) ) # no L1 DigiToRaw in first PreMixing step from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(rawDataCollector, RawCollectionList = _RawCollectionListOrig) # # Legacy Trigger: # if not (stage1L1Trigger.isChosen() or stage2L1Trigger.isChosen()): # legacy L1 packages: from EventFilter.CSCTFRawToDigi.csctfpacker_cfi import * from EventFilter.DTTFRawToDigi.dttfpacker_cfi import * from EventFilter.GctRawToDigi.gctDigiToRaw_cfi import * from EventFilter.L1GlobalTriggerRawToDigi.l1GtPack_cfi import * from EventFilter.L1GlobalTriggerRawToDigi.l1GtEvmPack_cfi import * csctfpacker.lctProducer = "simCscTriggerPrimitiveDigis:MPCSORTED" csctfpacker.trackProducer = 'simCsctfTrackDigis' dttfpacker.DTDigi_Source = 'simDtTriggerPrimitiveDigis' dttfpacker.DTTracks_Source = "simDttfDigis:DTTF"
# otherwise, need 1 time value per energy value injectTestHitsEnergy = cms.vdouble(), injectTestHitsTime = cms.vdouble(), # format for cells: subdet, ieta, iphi, depth # multiple quadruplets can be specified # if instead only 1 value is given, # it will be interpreted as an entire subdetector injectTestHitsCells = cms.vint32(), HFRecalParameterBlock = HFRecalParameterBlock, ) from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toModify( hcalSimBlock, hitsProducer=cms.string('fastSimProducer') ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(hcalSimBlock, doNoise = False, doEmpty = False, doIonFeedback = False, doThermalNoise = False, doTimeSlew = False, HcalPreMixStage1 = True, ) from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017 run2_HCAL_2017.toModify( hcalSimBlock, TestNumbering = cms.bool(True) ) # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify(hcalSimBlock, killHE = cms.bool(True) )
run2_HF_2017.toModify( simHcalDigis, HFregion = cms.vint32(1,2) ) from Configuration.Eras.Modifier_run2_HB_2018_cff import run2_HB_2018 run2_HB_2018.toModify( simHcalDigis, HBregion = cms.vint32(2,5) ) from Configuration.Eras.Modifier_run2_HE_2018_cff import run2_HE_2018 run2_HE_2018.toModify( simHcalDigis, HEregion = cms.vint32(2,5) ) from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify( simHcalDigis, use1ts = cms.bool(True) ) # Switch off HCAL ZS in digi for premixing stage1 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(simHcalDigis, markAndPass = True, HBlevel = -999, HElevel = -999, HOlevel = -999, HFlevel = -999, useConfigZSvalues = 1 )
#for debug mode only: trigPrimBypassLTH=cms.double(1.0), #for debug mode only: trigPrimBypassHTH=cms.double(1.0), #for debug mode only trigPrimBypassWithPeakFinder=cms.bool(True), #number of events whose TT and SR flags must be dumped (for debug purpose): dumpFlags=cms.untracked.int32(0), #logical flag to write out SrFlags writeSrFlags=cms.untracked.bool(True), #switch to apply selective readout decision on the digis and produce #the "suppressed" digis produceDigis=cms.untracked.bool(True), #Trigger Tower Flag to use when a flag is not found from the input #Trigger Primitive collection. Must be one of the following values: # 0: low interest, 1: mid interest, 3: high interest # 4: forced low interest, 5: forced mid interest, 7: forced high interest defaultTtf=cms.int32(4)) # Turn off SR in Ecal for premixing stage1 from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(simEcalDigis, UseFullReadout=True) _simEcalDigisPh2 = simEcalDigis.clone(trigPrimBypass=True, )
import FWCore.ParameterSet.Config as cms SiStripDigiToRaw = cms.EDProducer( "SiStripDigiToRawModule", InputModuleLabel = cms.string('simSiStripDigis'), InputDigiLabel = cms.string('ZeroSuppressed'), FedReadoutMode = cms.string('ZERO_SUPPRESSED'), UseFedKey = cms.bool(False), UseWrongDigiType = cms.bool(False), CopyBufferHeader = cms.bool(False), RawDataTag = cms.InputTag('rawDataCollector') ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(SiStripDigiToRaw, FedReadoutMode = 'PREMIX_RAW')
# 'BCM1FHits', # 'PLTHits' # 'FP420SI', # 'MuonCSCHits', # 'MuonDTHits', # 'MuonRPCHits', # 'TotemHitsRP', # 'TotemHitsT1', # 'TotemHitsT2Gem') pcrossingFrames = cms.untracked.vstring() ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(mixSimHits, pcrossingFrames = [ 'MuonCSCHits', 'MuonDTHits', 'MuonRPCHits', ] ) # fastsim customs from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toModify(mixSimHits, input = ["MuonSimHits:MuonCSCHits", "MuonSimHits:MuonDTHits", "MuonSimHits:MuonRPCHits", "fastSimProducer:TrackerHits"], subdets = ['MuonCSCHits', 'MuonDTHits', 'MuonRPCHits', 'TrackerHits']
killModules = cms.bool(True), NumPixelBarrel = cms.int32(3), NumPixelEndcap = cms.int32(2), ### DeadModules = cms.VPSet() ) # # Apply the changes for the different Run 2 running scenarios # from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel phase1Pixel.toModify( SiPixelSimBlock, func=_modifyPixelDigitizerForPhase1Pixel ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(SiPixelSimBlock, AddNoise = True, AddNoisyPixels = False, AddPixelInefficiency = False, #done in second step ) # Threshold in electrons are the Official CRAFT09 numbers: # FPix(smearing)/BPix(smearing) = 2480(160)/2730(200) #DEAD MODULES LIST: NEW LIST AFTER 2009 PIXEL REPAIRS # https://twiki.cern.ch/twiki/bin/view/CMS/SiPixelQualityHistory ######Barrel #Bad Module: 302055940 errorType 2 BadRocs=ff00 #Bad Module: 302059800 errorType 0 BadRocs=ffff #BmI_SEC3_LYR2_LDR5F_MOD3 -- 302121992, "TBM-A" #####Forward #Bad Module: 352453892 errorType 0 BadRocs=ffff #BmO_DISK1_BLD9_PNL2 -- 344014340, 344014344, 344014348
theDigitizersValid = cms.PSet(theDigitizers) theDigitizers.mergedtruth.select.signalOnlyTP = True phase2_hgcal.toModify( theDigitizersValid, calotruth = cms.PSet( caloParticles ) ) # Doesn't HGCal need these also without validation? (premix_stage2 & phase2_hgcal).toModify(theDigitizersValid, calotruth = dict(premixStage1 = True)) phase2_timing.toModify( theDigitizersValid.mergedtruth, createInitialVertexCollection = cms.bool(True) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 def _customizePremixStage1(mod): # To avoid this if-else structure we'd need an "_InverseModifier" # to customize pixel/strip for everything else than fastSim. if hasattr(mod, "pixel"): if hasattr(mod.pixel, "AlgorithmCommon"): mod.pixel.AlgorithmCommon.makeDigiSimLinks = True else: mod.pixel.makeDigiSimLinks = True if hasattr(mod, "strip"): mod.strip.makeDigiSimLinks = True mod.mergedtruth.select.signalOnlyTP = False premix_stage1.toModify(theDigitizersValid, _customizePremixStage1) def _loadPremixStage2Aliases(process): process.load("SimGeneral.MixingModule.aliases_PreMix_cfi") modifyDigitizers_loadPremixStage2Aliases = premix_stage2.makeProcessModifier(_loadPremixStage2Aliases)
import FWCore.ParameterSet.Config as cms from SimGeneral.MixingModule.SiPixelSimParameters_cfi import SiPixelSimBlock pixelDigitizer = cms.PSet(SiPixelSimBlock, accumulatorType=cms.string("SiPixelDigitizer"), hitsProducer=cms.string('g4SimHits'), makeDigiSimLinks=cms.untracked.bool(True)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(pixelDigitizer, makeDigiSimLinks=False) # Customize here instead of SiPixelSimBlock as the latter is imported # also to DataMixer configuration, and the original version is needed # there in stage2. Customize before phase2_tracker because this # customization applies only to phase0/1 pixel. from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify( pixelDigitizer, AddPixelInefficiency=False # will be added in DataMixer ) from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import phase2TrackerDigitizer as _phase2TrackerDigitizer, _premixStage1ModifyDict from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toReplaceWith( pixelDigitizer, _phase2TrackerDigitizer.clone() ) # have to clone here in order to not change the original with further customizations # Customize here instead of phase2TrackerDigitizer as the latter is # imported also to DataMixer configuration, and the original version # is needed there in stage2. (premix_stage2 & phase2_tracker).toModify(pixelDigitizer,
#Parameters valid only if Noise = True and ZeroSuppression = False RealPedestals=cms.bool( True ), #The pedestal for each stip is read from the Db. if False it is added to all the strips the cnetral strip pedestal value SingleStripNoise=cms.bool( True ), #The noise RMS is read from the Db. If false it is considered the central strip noise CommonModeNoise=cms.bool(True), BaselineShift=cms.bool(True), APVSaturationFromHIP=cms.bool(False), APVSaturationProbScaling=cms.double(1.0), APVProbabilityFile=cms.FileInPath( "SimTracker/SiStripDigitizer/data/APVProbaList.txt"), cmnRMStib=cms.double(5.92), cmnRMStob=cms.double(1.08), cmnRMStid=cms.double(3.08), cmnRMStec=cms.double(2.44), PedestalsOffset=cms.double(128), # TOFCutForDeconvolution=cms.double(50.0), TOFCutForPeak=cms.double(100.0), Inefficiency=cms.double(0.0)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify( SiStripSimBlock, Noise=False, PreMixingMode=True, FedAlgorithm=5, # special ZS mode: accept adc>0 )
# 'BCM1FHits', # 'PLTHits' # 'FP420SI', # 'MuonCSCHits', # 'MuonDTHits', # 'MuonRPCHits', # 'TotemHitsRP', # 'TotemHitsT1', # 'TotemHitsT2Gem') pcrossingFrames = cms.untracked.vstring() ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(mixSimHits, pcrossingFrames = [ 'MuonCSCHits', 'MuonDTHits', 'MuonRPCHits', ] ) # fastsim customs from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toModify(mixSimHits, input = ["MuonSimHits:MuonCSCHits", "MuonSimHits:MuonDTHits", "MuonSimHits:MuonRPCHits", "fastSimProducer:TrackerHits"], subdets = ['MuonCSCHits', 'MuonDTHits', 'MuonRPCHits', 'TrackerHits']
# format for cells: subdet, ieta, iphi, depth # multiple quadruplets can be specified # if instead only 1 value is given, # it will be interpreted as an entire subdetector injectTestHitsCells=cms.vint32(), HFRecalParameterBlock=HFRecalParameterBlock, ) from Configuration.Eras.Modifier_fastSim_cff import fastSim fastSim.toModify(hcalSimBlock, hitsProducer=cms.string('fastSimProducer')) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify( hcalSimBlock, doNoise=False, doEmpty=False, doIonFeedback=False, doThermalNoise=False, doTimeSlew=False, HcalPreMixStage1=True, ) # test numbering not used in fastsim from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017 (run2_HCAL_2017 & ~fastSim).toModify(hcalSimBlock, TestNumbering=cms.bool(True)) # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify(hcalSimBlock, killHE=cms.bool(True))
#toa computation mode (0=by weighted energy, 1=simple threshold) toaMode = cms.uint32(1), # TDC charge drain parameterisation (from J. Kaplon) tdcChargeDrainParameterisation = cms.vdouble( -919.13, 365.36, -14.10, 0.2, -21.85, 49.39, 22.21, 0.8, -0.28, 27.14, 43.95, 3.89048 ) ) ) ) # this bypasses the noise simulation from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 for _m in [hgceeDigitizer, hgchefrontDigitizer, hgchebackDigitizer, hfnoseDigitizer]: premix_stage1.toModify(_m, premixStage1 = True) #function to set noise to aged HGCal endOfLifeCCEs = [0.5, 0.5, 0.7] endOfLifeNoises = [2400.0,2250.0,1750.0] def HGCal_setEndOfLifeNoise(process): process.HGCAL_noise_fC = cms.PSet( values = cms.vdouble( [x*fC_per_ele for x in endOfLifeNoises] ), #100,200,300 um ) process.HGCAL_chargeCollectionEfficiencies = cms.PSet( values = cms.vdouble(endOfLifeCCEs) ) process.HGCAL_noise_MIP = cms.PSet( value = cms.double( 1.0/5.0 ) ) process.HGCAL_noises = cms.PSet(
import FWCore.ParameterSet.Config as cms from SimGeneral.MixingModule.SiPixelSimParameters_cfi import SiPixelSimBlock pixelDigitizer = cms.PSet( SiPixelSimBlock, accumulatorType = cms.string("SiPixelDigitizer"), hitsProducer = cms.string('g4SimHits'), makeDigiSimLinks = cms.untracked.bool(True) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(pixelDigitizer, makeDigiSimLinks = False) # Customize here instead of SiPixelSimBlock as the latter is imported # also to DataMixer configuration, and the original version is needed # there in stage2. Customize before phase2_tracker because this # customization applies only to phase0/1 pixel. from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify(pixelDigitizer, AddPixelInefficiency = False # will be added in DataMixer ) from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import phase2TrackerDigitizer as _phase2TrackerDigitizer, _premixStage1ModifyDict from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toReplaceWith(pixelDigitizer, _phase2TrackerDigitizer.clone()) # have to clone here in order to not change the original with further customizations # Customize here instead of phase2TrackerDigitizer as the latter is # imported also to DataMixer configuration, and the original version # is needed there in stage2. (premix_stage2 & phase2_tracker).toModify(pixelDigitizer, **_premixStage1ModifyDict) from CalibTracker.SiPixelESProducers.PixelFEDChannelCollectionProducer_cfi import *
SingleStripNoise = cms.bool(True), #The noise RMS is read from the Db. If false it is considered the central strip noise CommonModeNoise = cms.bool(True), BaselineShift = cms.bool(True), APVSaturationFromHIP = cms.bool(False), APVSaturationProbScaling = cms.double(1.0), APVProbabilityFile = cms.FileInPath("SimTracker/SiStripDigitizer/data/APVProbaList.txt"), cmnRMStib = cms.double(5.92), cmnRMStob = cms.double(1.08), cmnRMStid = cms.double(3.08), cmnRMStec = cms.double(2.44), PedestalsOffset = cms.double(128), # TOFCutForDeconvolution = cms.double(50.0), TOFCutForPeak = cms.double(100.0), Inefficiency = cms.double(0.0) ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(SiStripSimBlock, Noise = False, PreMixingMode = True, FedAlgorithm = 5, # special ZS mode: accept adc>0 ) from Configuration.Eras.Modifier_run2_common_cff import run2_common run2_common.toModify(SiStripSimBlock, CouplingConstantsRunIIDecB = True, #for TIB and TOB CouplingConstantsRunIIDecW = True, #for TID and TEC APVShapeDecoFile =cms.FileInPath("SimTracker/SiStripDigitizer/data/APVShapeDeco_320.txt") )
digiCfg = cms.PSet( keV2fC = cms.double(0.044259), #1000 eV/3.62 (eV per e) / 6.24150934e3 (e per fC) ileakParam = cms.PSet(refToPSet_ = cms.string("HGCAL_ileakParam_toUse")), cceParams = cms.PSet(refToPSet_ = cms.string("HGCAL_cceParams_toUse")), chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string("HGCAL_chargeCollectionEfficiencies")), noise_fC = cms.PSet(refToPSet_ = cms.string("HGCAL_noise_fC")), doTimeSamples = cms.bool(False), thresholdFollowsMIP = cms.bool(thresholdTracksMIP), feCfg = hgcROCSettings.clone() ) ) # this bypasses the noise simulation from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 for _m in [hgceeDigitizer, hgchefrontDigitizer, hgchebackDigitizer, hfnoseDigitizer]: premix_stage1.toModify(_m, premixStage1 = True) #function to set noise to aged HGCal endOfLifeCCEs = [0.5, 0.5, 0.7] endOfLifeNoises = [2400.0,2250.0,1750.0] def HGCal_setEndOfLifeNoise(process,byDose=True,byDoseAlgo=0,byDoseFactor=1): """includes all effects from radiation and gain choice""" # byDoseAlgo is used as a collection of bits to toggle: FLUENCE, CCE, NOISE, PULSEPERGAIN, CACHEDOP (from lsb to Msb) process=HGCal_setRealisticNoiseSi(process,byDose=byDose,byDoseAlgo=byDoseAlgo,byDoseFactor=byDoseFactor) process=HGCal_setRealisticNoiseSci(process,byDose=byDose,byDoseAlgo=byDoseAlgo,byDoseFactor=byDoseFactor) return process def HGCal_setEndOfLifeNoise_4000(process): process.HGCAL_cceParams_toUse = cms.PSet( cceParamFine = cms.vdouble(cceParamFine_epi800), cceParamThin = cms.vdouble(cceParamThin_tdr800),
import FWCore.ParameterSet.Config as cms ecal_electronics_sim = cms.PSet(doENoise=cms.bool(True), ConstantTerm=cms.double(0.003), applyConstantTerm=cms.bool(True)) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify( ecal_electronics_sim, doENoise=False, applyConstantTerm=False, )