예제 #1
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)
예제 #2
0
simMuonDTDigis.onlyMuHits = True
simMuonRPCDigis.Noise = False

# remove unnecessary modules from 'pdigi' sequence - run after DataMixing
# standard mixing module now makes unsuppressed digis for calorimeter
pdigi.remove(simEcalTriggerPrimitiveDigis)
pdigi.remove(simEcalDigis)  # does zero suppression
pdigi.remove(simEcalPreshowerDigis)  # does zero suppression
pdigi.remove(simHcalDigis)
pdigi.remove(simHcalTTPDigis)

from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2
# for PreMixing, to first approximation, allow noise in Muon system
premix_stage2.toReplaceWith(simMuonCSCDigis, _simMuonCSCDigis_orig)
premix_stage2.toReplaceWith(simMuonDTDigis , _simMuonDTDigis_orig )
premix_stage2.toReplaceWith(simMuonRPCDigis, _simMuonRPCDigis_orig)

# premixing stage2 runs addPileupInfo after DataMixer (configured in DataMixerPreMix_cff)
premix_stage2.toReplaceWith(pdigi, pdigi.copyAndExclude([addPileupInfo, genPUProtons]))

# genPUProtons, on the other hand, is an EDAlias. In principle it is
# already loaded with digitizers_cfi, but in practice that gets
# overwritten by the EDProducer by loading this file. So we hack
# around by adding a ProcessModifier with overwrites it back to
# EDAlias (because we can't toReplaceWith() an EDProducer with an
# EDAlias).
def _loadPremixStage2Alias(process):
    import SimGeneral.MixingModule.aliases_PreMix_cfi as _aliases
    process.genPUProtons = _aliases.genPUProtons
modifyDigiDM_loadPremixStage2Alias = premix_stage2.makeProcessModifier(_loadPremixStage2Alias)
예제 #3
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)
예제 #4
0
pdigi.remove(simEcalTriggerPrimitiveDigis)
pdigi.remove(simEcalDigis)  # does zero suppression
pdigi.remove(simEcalPreshowerDigis)  # does zero suppression
pdigi.remove(simHcalDigis)
pdigi.remove(simHcalTTPDigis)

from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2
# for PreMixing, to first approximation, allow noise in Muon system
premix_stage2.toReplaceWith(simMuonCSCDigis, _simMuonCSCDigis_orig)
premix_stage2.toReplaceWith(simMuonDTDigis, _simMuonDTDigis_orig)
premix_stage2.toReplaceWith(simMuonRPCDigis, _simMuonRPCDigis_orig)

# premixing stage2 runs addPileupInfo after DataMixer (configured in DataMixerPreMix_cff)
premix_stage2.toReplaceWith(
    pdigi, pdigi.copyAndExclude([addPileupInfo, genPUProtons]))


# genPUProtons, on the other hand, is an EDAlias. In principle it is
# already loaded with digitizers_cfi, but in practice that gets
# overwritten by the EDProducer by loading this file. So we hack
# around by adding a ProcessModifier with overwrites it back to
# EDAlias (because we can't toReplaceWith() an EDProducer with an
# EDAlias).
def _loadPremixStage2Alias(process):
    import SimGeneral.MixingModule.aliases_PreMix_cfi as _aliases
    process.genPUProtons = _aliases.genPUProtons


modifyDigiDM_loadPremixStage2Alias = premix_stage2.makeProcessModifier(
    _loadPremixStage2Alias)