Beispiel #1
0
def cust_2023HGCal_common(process):
    process = customise_rpc(process)
    process = fixRPCConditions(process)
    process = customise_HcalPhase1(process)
    process = customisePhase1Tk(process)
    if hasattr(process, 'L1simulation_step'):
        process.simEcalTriggerPrimitiveDigis.BarrelOnly = cms.bool(True)
    if hasattr(process, 'digitisation_step'):
        if hasattr(process.mix.digitizers, 'ecal'):
            process.mix.digitizers.ecal.doEE = cms.bool(False)
            process.mix.digitizers.ecal.doES = cms.bool(False)
        process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi')
        process.mix.digitizers.hgceeDigitizer = process.hgceeDigitizer
        process.mix.digitizers.hgchebackDigitizer = process.hgchebackDigitizer
        process.mix.digitizers.hgchefrontDigitizer = process.hgchefrontDigitizer
        # Also need to tell the MixingModule to make the correct collections available from
        # the pileup, even if not creating CrossingFrames.
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgceeDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchebackDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchefrontDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgceeDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchebackDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchefrontDigitizer.hitCollection.value())
    return process
Beispiel #2
0
def cust_2023HGCal_common(process):
    process = customise_rpc(process)
    process = fixRPCConditions(process)
    process = customise_HcalPhase1(process)
    process = customisePhase1Tk(process)
    if hasattr(process, 'L1simulation_step'):
        process.simEcalTriggerPrimitiveDigis.BarrelOnly = cms.bool(True)
    if hasattr(process, 'digitisation_step'):
        if hasattr(process.mix.digitizers, 'ecal'):
            process.mix.digitizers.ecal.doEE = cms.bool(False)
            process.mix.digitizers.ecal.doES = cms.bool(False)
        process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi')
        process.mix.digitizers.hgceeDigitizer = process.hgceeDigitizer
        process.mix.digitizers.hgchebackDigitizer = process.hgchebackDigitizer
        process.mix.digitizers.hgchefrontDigitizer = process.hgchefrontDigitizer
        # update the HCAL Endcap for BH geom.
        newFactors = cms.vdouble(
            210.55, 197.93, 186.12, 189.64, 189.63, 189.96, 190.03, 190.11,
            190.18, 190.25, 190.32, 190.40, 190.47, 190.54, 190.61, 190.69,
            190.83, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94, 190.94)
        process.mix.digitizers.hcal.he.samplingFactors = newFactors
        process.mix.digitizers.hcal.he.photoelectronsToAnalog = cms.vdouble(
            [10.] * len(newFactors))
        # Also need to tell the MixingModule to make the correct collections available from
        # the pileup, even if not creating CrossingFrames.
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgceeDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchebackDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchefrontDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgceeDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchebackDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchefrontDigitizer.hitCollection.value())
    return process
Beispiel #3
0
def cust_2023HGCal_common(process):   
    process = customise_rpc(process)
    process = fixRPCConditions(process)
    process = customise_HcalPhase1(process)
    process = customisePhase1Tk(process)    
    if hasattr(process,'L1simulation_step'):
        process.simEcalTriggerPrimitiveDigis.BarrelOnly = cms.bool(True)
    if hasattr(process,'digitisation_step'):
        if hasattr(process.mix.digitizers,'ecal'):
            process.mix.digitizers.ecal.doEE = cms.bool(False)
            process.mix.digitizers.ecal.doES = cms.bool(False)
        process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi')
        process.mix.digitizers.hgceeDigitizer=process.hgceeDigitizer
        process.mix.digitizers.hgchebackDigitizer=process.hgchebackDigitizer
        process.mix.digitizers.hgchefrontDigitizer=process.hgchefrontDigitizer
        # update the HCAL Endcap for BH geom.
        newFactors = cms.vdouble(
            210.55, 197.93, 186.12, 189.64, 189.63,
            189.96, 190.03, 190.11, 190.18, 190.25,
            190.32, 190.40, 190.47, 190.54, 190.61,
            190.69, 190.83, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94,
            190.94, 190.94, 190.94, 190.94, 190.94)
        process.mix.digitizers.hcal.he.samplingFactors = newFactors
        process.mix.digitizers.hcal.he.photoelectronsToAnalog = cms.vdouble([10.]*len(newFactors))
        # Also need to tell the MixingModule to make the correct collections available from
        # the pileup, even if not creating CrossingFrames.
        process.mix.mixObjects.mixCH.input.append( cms.InputTag("g4SimHits",process.hgceeDigitizer.hitCollection.value()) )
        process.mix.mixObjects.mixCH.input.append( cms.InputTag("g4SimHits",process.hgchebackDigitizer.hitCollection.value()) )
        process.mix.mixObjects.mixCH.input.append( cms.InputTag("g4SimHits",process.hgchefrontDigitizer.hitCollection.value()) )
        process.mix.mixObjects.mixCH.subdets.append( process.hgceeDigitizer.hitCollection.value() )
        process.mix.mixObjects.mixCH.subdets.append( process.hgchebackDigitizer.hitCollection.value() )
        process.mix.mixObjects.mixCH.subdets.append( process.hgchefrontDigitizer.hitCollection.value() )    
    return process
Beispiel #4
0
def cust_2023MuonOnly(process):
    process = customise_gem2023(process)
    process = customise_rpc(process)
    process = fixRPCConditions(process)
    return process
def cust_2023HGCalPandora_common(process):
    process = customisePostLS1(process)
    process = customiseBE5DPixel10D(process)
    process = customise_HcalPhase2(process)
    process = customise_ev_BE5DPixel10D(process)
    process = customise_gem2023(process)
    process = customise_rpc(process)
    process = jetCustoms.customise_jets(process)
    if hasattr(process, 'L1simulation_step'):
        process.simEcalTriggerPrimitiveDigis.BarrelOnly = cms.bool(True)
    if hasattr(process, 'digitisation_step'):
        process.mix.digitizers.ecal.accumulatorType = cms.string(
            'EcalPhaseIIDigiProducer')
        process.load('SimGeneral.MixingModule.hgcalDigitizer_cfi')
        process.mix.digitizers.hgceeDigitizer = process.hgceeDigitizer
        process.mix.digitizers.hgchebackDigitizer = process.hgchebackDigitizer
        process.mix.digitizers.hgchefrontDigitizer = process.hgchefrontDigitizer
        # Also need to tell the MixingModule to make the correct collections available from
        # the pileup, even if not creating CrossingFrames.
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgceeDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchebackDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.input.append(
            cms.InputTag("g4SimHits",
                         process.hgchefrontDigitizer.hitCollection.value()))
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgceeDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchebackDigitizer.hitCollection.value())
        process.mix.mixObjects.mixCH.subdets.append(
            process.hgchefrontDigitizer.hitCollection.value())
    if hasattr(process, 'raw2digi_step'):
        process.ecalDigis.FEDs = cms.vint32(
            # EE-:
            #601, 602, 603, 604, 605,
            #606, 607, 608, 609,
            # EB-:
            610,
            611,
            612,
            613,
            614,
            615,
            616,
            617,
            618,
            619,
            620,
            621,
            622,
            623,
            624,
            625,
            626,
            627,
            # EB+:
            628,
            629,
            630,
            631,
            632,
            633,
            634,
            635,
            636,
            637,
            638,
            639,
            640,
            641,
            642,
            643,
            644,
            645,
            # EE+:
            #646, 647, 648, 649, 650,
            #651, 652, 653, 654
        )
        print "RAW2DIGI only for EB FEDs"
    if hasattr(process, 'reconstruction_step'):
        process.particleFlowRecHitHGCNoEB = cms.Sequence(
            process.particleFlowRecHitHGCEE + process.particleFlowRecHitHGCHEF)
        process.particleFlowClusterHGCNoEB = cms.Sequence(
            process.particleFlowClusterHGCEE +
            process.particleFlowClusterHGCHEF)
        process.particleFlowCluster += process.particleFlowRecHitHGCNoEB
        process.particleFlowCluster += process.particleFlowClusterHGCNoEB
        if hasattr(process, 'particleFlowSuperClusterECAL'):
            process.particleFlowSuperClusterHGCEE = process.particleFlowSuperClusterECAL.clone(
            )
            process.particleFlowSuperClusterHGCEE.useHGCEmPreID = cms.bool(
                True)
            process.particleFlowSuperClusterHGCEE.PFClusters = cms.InputTag(
                'particleFlowClusterHGCEE')
            process.particleFlowSuperClusterHGCEE.use_preshower = cms.bool(
                False)
            process.particleFlowSuperClusterHGCEE.PFSuperClusterCollectionEndcapWithPreshower = cms.string(
                '')
            process.particleFlowCluster += process.particleFlowSuperClusterHGCEE
            if hasattr(process, 'ecalDrivenElectronSeeds'):
                process.ecalDrivenElectronSeeds.endcapSuperClusters = cms.InputTag(
                    'particleFlowSuperClusterHGCEE')
                process.ecalDrivenElectronSeeds.SeedConfiguration.endcapHCALClusters = cms.InputTag(
                    'particleFlowClusterHGCHEF')
                process.ecalDrivenElectronSeeds.SeedConfiguration.hOverEMethodEndcap = cms.int32(
                    3)
                process.ecalDrivenElectronSeeds.SeedConfiguration.hOverEConeSizeEndcap = cms.double(
                    0.087)
                process.ecalDrivenElectronSeeds.SeedConfiguration.maxHOverEEndcaps = cms.double(
                    0.1)
                process.ecalDrivenElectronSeeds.SeedConfiguration.z2MinB = cms.double(
                    -0.15)
                process.ecalDrivenElectronSeeds.SeedConfiguration.z2MaxB = cms.double(
                    0.15)
                if hasattr(process, 'ecalDrivenGsfElectrons'):
                    process.ecalDrivenGsfElectrons.hOverEMethodEndcap = cms.int32(
                        3)
                    process.ecalDrivenGsfElectrons.hOverEConeSizeEndcap = cms.double(
                        0.087)
                    process.ecalDrivenGsfElectrons.maxDeltaEtaEndcaps = cms.double(
                        0.015)
                    process.ecalDrivenGsfElectrons.hcalEndcapClusters = cms.InputTag(
                        'particleFlowClusterHGCHEF')
                    if hasattr(process, 'gsfElectrons'):
                        process.gsfElectrons.hOverEMethodEndcap = cms.int32(3)
                        process.gsfElectrons.hOverEConeSizeEndcap = cms.double(
                            0.087)
                        process.gsfElectrons.maxDeltaEtaEndcaps = cms.double(
                            0.015)
                        process.gsfElectrons.hcalEndcapClusters = cms.InputTag(
                            'particleFlowClusterHGCHEF')
        # load pandora customization (note we have removed HGC clusters entirely from standard ParticleFlow
        # doing this)
        process.load(
            'RecoParticleFlow.PandoraTranslator.HGCalTrackCollection_cfi')
        process.load('RecoParticleFlow.PandoraTranslator.runPandora_cfi')
        process.pandorapfanew.pf_electron_output_col = process.particleFlowTmp.pf_electron_output_col
        process.particleFlowBlock.elementImporters[5].source = cms.InputTag(
            'HGCalTrackCollection:TracksNotInHGCal')
        process.pandoraSequence = cms.Sequence(process.HGCalTrackCollection *
                                               process.particleFlowBlock *
                                               process.pandorapfanew)
        process.particleFlowReco.replace(process.particleFlowBlock,
                                         process.pandoraSequence)
        process.particleFlowBarrel = process.particleFlowTmp.clone()
        process.particleFlowTmp = cms.EDProducer(
            "PFCandidateListMerger",
            src=cms.VInputTag("particleFlowBarrel", "pandorapfanew"),
            src1=cms.VInputTag(
                "particleFlowBarrel:" +
                str(process.particleFlowTmp.pf_electron_output_col),
                "pandorapfanew:" +
                str(process.particleFlowTmp.pf_electron_output_col)),
            label1=process.particleFlowTmp.pf_electron_output_col)
        process.mergedParticleFlowSequence = cms.Sequence(
            process.particleFlowBarrel * process.particleFlowTmp)
        process.particleFlowReco.replace(process.particleFlowTmp,
                                         process.mergedParticleFlowSequence)

    #mod event content
    process.load('RecoLocalCalo.Configuration.hgcalLocalReco_EventContent_cff')
    if hasattr(process, 'FEVTDEBUGHLTEventContent'):
        process.FEVTDEBUGHLTEventContent.outputCommands.extend(
            process.hgcalLocalRecoFEVT.outputCommands)
        process.FEVTDEBUGHLTEventContent.outputCommands.append(
            'keep *_particleFlowSuperClusterHGCEE_*_*')
        process.FEVTDEBUGHLTEventContent.outputCommands.append(
            'keep *_pandorapfanew_*_*')

    if hasattr(process, 'RECOSIMEventContent'):
        process.RECOSIMEventContent.outputCommands.extend(
            process.hgcalLocalRecoFEVT.outputCommands)
        process.RECOSIMEventContent.outputCommands.append(
            'keep *_particleFlowSuperClusterHGCEE_*_*')
        process.RECOSIMEventContent.outputCommands.append(
            'keep *_pandorapfanew_*_*')
    return process
Beispiel #6
0
def cust_2023MuonOnly(process):
    process=customise_gem2023(process)
    process=customise_rpc(process)
    process=fixRPCConditions(process)
    return process