Пример #1
0
                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

Пример #2
0
                                        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)
Пример #3
0
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
Пример #4
0
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)
Пример #5
0
        #                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 +
Пример #6
0
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')
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
#################################################
# 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,
    ),
)
Пример #11
0
            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,
    ),
)
Пример #12
0
    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)
Пример #13
0
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,
)
Пример #14
0
    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)
Пример #15
0
# 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)
Пример #16
0
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]))
Пример #17
0
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=[
Пример #18
0
    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
)
Пример #19
0
# - 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)
Пример #20
0
# 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"
Пример #21
0
    # 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) )
Пример #22
0
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
)
Пример #23
0
    #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, )
Пример #24
0
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')
Пример #25
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']
Пример #26
0
    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
Пример #27
0
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)
Пример #28
0
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,
Пример #29
0
    #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
)
Пример #30
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']
Пример #31
0
    # 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))
Пример #32
0
            #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(
Пример #33
0
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 *
Пример #34
0
    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")
                     )
Пример #35
0
    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),
Пример #36
0
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,
)