예제 #1
0
        layerView=cms.bool(True),
        ringView=cms.bool(False),
    ),
    TH1ClusterSymmEtaCC=cms.PSet(Nbinx=cms.int32(120),
                                 xmin=cms.double(-0.1),
                                 xmax=cms.double(1.1)),
    TH1ClusterWidthCC=cms.PSet(Nbinx=cms.int32(10),
                               xmin=cms.double(-0.5),
                               xmax=cms.double(9.5)),
    TH1ClusterEstimatorCC=cms.PSet(Nbinx=cms.int32(120),
                                   xmin=cms.double(-0.1),
                                   xmax=cms.double(1.1)),
    TProfileClusterPGV=cms.PSet(Nbinx=cms.int32(20),
                                xmin=cms.double(-10.0),
                                xmax=cms.double(10.0),
                                Nbiny=cms.int32(20),
                                ymin=cms.double(-0.1),
                                ymax=cms.double(1.2)),
    Trending=cms.PSet(Nbins=cms.int32(2400),
                      xmin=cms.double(0.0),
                      xmax=cms.double(150)),
    TH1ClusterChargePerCM=cms.PSet(layerView=cms.bool(False),
                                   ringView=cms.bool(True),
                                   Nbinx=cms.int32(100),
                                   xmin=cms.double(-0.5),
                                   xmax=cms.double(9999.5)),
    UseDCSFiltering=cms.bool(True))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(SiStripMonitorTrack, TH1nClustersOn=dict(xmax=5999.5))
예제 #2
0
from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
phase2_hgcal.toModify( theDigitizers,
                       hgceeDigitizer = cms.PSet(hgceeDigitizer),
                       hgchebackDigitizer = cms.PSet(hgchebackDigitizer),
                       hgchefrontDigitizer = cms.PSet(hgchefrontDigitizer),
)

from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hfnoseDigitizer

from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose
phase2_hfnose.toModify( theDigitizers,
                        hfnoseDigitizer = cms.PSet(hfnoseDigitizer),
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( theDigitizers, castor = None )

from SimGeneral.MixingModule.ecalTimeDigitizer_cfi import ecalTimeDigitizer
from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
phase2_timing.toModify( theDigitizers,
                        ecalTime = ecalTimeDigitizer.clone() )

from SimFastTiming.Configuration.SimFastTiming_cff import fastTimeDigitizer
phase2_timing_layer.toModify( theDigitizers,
                        fastTimingLayer = fastTimeDigitizer.clone() )

from SimFastTiming.Configuration.SimFastTiming_cff import mtdDigitizer
from Configuration.Eras.Modifier_phase2_timing_layer_tile_cff import phase2_timing_layer_tile
from Configuration.Eras.Modifier_phase2_timing_layer_bar_cff import phase2_timing_layer_bar
(phase2_timing_layer_tile | phase2_timing_layer_bar).toModify( theDigitizers,
# Lookup tables for the CSC TP emulator
from CalibMuon.CSCCalibration.CSCL1TPLookupTableEP_cff import *
# CSC TPG
from L1Trigger.CSCTriggerPrimitives.cscTriggerPrimitiveDigis_cfi import *
valCscStage2Digis = cscTriggerPrimitiveDigis.clone(
    CSCComparatorDigiProducer="muonCSCDigis:MuonCSCComparatorDigi",
    CSCWireDigiProducer="muonCSCDigis:MuonCSCWireDigi",
    GEMPadDigiClusterProducer="",
    commonParam=dict(runME11ILT=False))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(valCscStage2Digis,
                     keepShowers=True,
                     commonParam=dict(run3=True,
                                      runCCLUT_OTMB=True,
                                      runPhase2=True,
                                      runME11Up=True,
                                      runME21Up=True,
                                      runME31Up=True,
                                      runME41Up=True))

from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
run3_GEM.toModify(valCscStage2Digis,
                  GEMPadDigiClusterProducer="valMuonGEMPadDigiClusters",
                  commonParam=dict(runME11ILT=True))

# EMTF
from L1Trigger.L1TMuonEndCap.simEmtfDigis_cfi import *
valEmtfStage2Digis = simEmtfDigis.clone(CSCInput="emtfStage2Digis",
                                        RPCInput="muonRPCDigis",
                                        GEMInput='valMuonGEMPadDigiClusters')
예제 #4
0
# --- Only for 2018 data & MC
_run2_HCAL_2018_extraCommands = [
    "keep *_packedPFCandidates_hcalDepthEnergyFractions_*"
]
from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
run2_HCAL_2018.toModify(MicroEventContent,
                        outputCommands=MicroEventContent.outputCommands +
                        _run2_HCAL_2018_extraCommands)

_run3_common_extraCommands = [
    "drop *_packedPFCandidates_hcalDepthEnergyFractions_*"
]
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(MicroEventContent,
                     outputCommands=MicroEventContent.outputCommands +
                     _run3_common_extraCommands)
# ---

_pp_on_AA_extraCommands = [
    'keep patPackedCandidates_hiPixelTracks_*_*',
    'keep patPackedCandidates_packedPFCandidatesRemoved_*_*',
    'keep *_packedCandidateMuonID_*_*',
    'keep *_slimmedJets_pfCandidates_*',
    'keep floatedmValueMap_packedPFCandidateTrackChi2_*_*',
    'keep floatedmValueMap_lostTrackChi2_*_*',
    'keep recoCentrality_hiCentrality_*_*',
    'keep int_centralityBin_*_*',
    'keep recoHFFilterInfo_hiHFfilters_*_*',
    'keep recoClusterCompatibility_hiClusterCompatibility_*_*',
    'keep *_offlineSlimmedPrimaryVerticesRecovery_*_*',
예제 #5
0
## no sorting/selecting in MPC
from Configuration.Eras.Modifier_run2_common_cff import run2_common
run2_common.toModify(cscTriggerPrimitiveDigis,
                     debugParameters=True,
                     checkBadChambers=False,
                     commonParam=dict(gangedME1a=False),
                     mpcParam=auxPSets.mpcParamRun2.clone())

## turn on upgrade CSC algorithm without GEMs
## originally intended for Phase-2, but moved up to Run-3
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(cscTriggerPrimitiveDigis,
                     keepShowers=True,
                     commonParam=dict(run3=True,
                                      runCCLUT_OTMB=True,
                                      runPhase2=True,
                                      runME11Up=True,
                                      runME21Up=True,
                                      runME31Up=True,
                                      runME41Up=True))

## GEM-CSC integrated local trigger in ME1/1
from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
run3_GEM.toModify(
    cscTriggerPrimitiveDigis,
    GEMPadDigiClusterProducer=cms.InputTag("simMuonGEMPadDigiClusters"),
    commonParam=dict(runME11ILT=True))

## GEM-CSC integrated local trigger in ME2/1
## enable the Phase-2 ALCT processors
from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon
# AlCaReco for track based alignment using MinBias events
OutALCARECOTkAlMinBias_noDrop = cms.PSet(
    SelectEvents=cms.untracked.PSet(
        SelectEvents=cms.vstring('pathALCARECOTkAlMinBias')),
    outputCommands=cms.untracked.vstring(
        'keep *_ALCARECOTkAlMinBias_*_*', 'keep L1AcceptBunchCrossings_*_*_*',
        'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*',
        'keep *_TriggerResults_*_*', 'keep DcsStatuss_scalersRawToDigi_*_*',
        'keep *_offlinePrimaryVertices_*_*', 'keep *_offlineBeamSpot_*_*'))

import copy

OutALCARECOTkAlMinBias = copy.deepcopy(OutALCARECOTkAlMinBias_noDrop)
OutALCARECOTkAlMinBias.outputCommands.insert(0, "drop *")

# in Run3, SCAL digis replaced by onlineMetaDataDigis
_run3_common_removedCommands = OutALCARECOTkAlMinBias.outputCommands
_run3_common_removedCommands.remove('keep DcsStatuss_scalersRawToDigi_*_*')

_run3_common_extraCommands = [
    'keep DCSRecord_onlineMetaDataDigis_*_*',
    'keep OnlineLuminosityRecord_onlineMetaDataDigis_*_*'
]

from Configuration.Eras.Modifier_run3_common_cff import run3_common

run3_common.toModify(OutALCARECOTkAlMinBias,
                     outputCommands=_run3_common_removedCommands +
                     _run3_common_extraCommands)
예제 #7
0
    ClusWidthVsAmpTH2=cms.PSet(Nbinsx=cms.int32(2000),
                               xmin=cms.double(0.),
                               xmax=cms.double(2000.),
                               Nbinsy=cms.int32(100),
                               ymin=cms.double(0.),
                               ymax=cms.double(100.),
                               globalswitchon=cms.bool(True),
                               subdetswitchon=cms.bool(False),
                               layerswitchon=cms.bool(False),
                               moduleswitchon=cms.bool(False)),
    Mod_On=cms.bool(True),
    ClusterHisto=cms.bool(False),
    HistoryProducer=cms.InputTag("consecutiveHEs"),
    ApvPhaseProducer=cms.InputTag("APVPhases"),
    UseDCSFiltering=cms.bool(True),
    ShowControlView=cms.bool(False),
    ShowReadoutView=cms.bool(False))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(SiStripMonitorCluster, TH1NClusPx=dict(xmax=39999.5))
run3_common.toModify(SiStripMonitorCluster, TH1NClusStrip=dict(xmax=299999.5))
run3_common.toModify(SiStripMonitorCluster,
                     TProfNClusStrip=dict(ymax=299999.5))
run3_common.toModify(SiStripMonitorCluster, TProfNClusPixel=dict(ymax=39999.5))
run3_common.toModify(SiStripMonitorCluster,
                     TProfNClustersFED=dict(ymax=299999.5))
run3_common.toModify(SiStripMonitorCluster,
                     TH2CStripVsCpixel=dict(xmax=299999.5, ymax=39999.5))
run3_common.toModify(SiStripMonitorCluster,
                     TH1TotalNumberOfClusters=dict(xmax=44999.5))
예제 #8
0
  castor  = cms.PSet(
    castorDigitizer
  ),
  puVtx = cms.PSet(
    pileupVtxDigitizer
  ),
  mergedtruth = cms.PSet(
    trackingParticles
  )
)

theDigitizersMixPreMix.strip.Noise = cms.bool(False) # will be added in DataMixer
theDigitizersMixPreMix.strip.PreMixingMode = cms.bool(True) #Special mode to save all hit strips
theDigitizersMixPreMix.strip.FedAlgorithm = cms.int32(5) # special ZS mode: accept adc>0
theDigitizersMixPreMix.pixel.AddPixelInefficiency = cms.bool(False) # will be added in DataMixer    

from Configuration.Eras.Modifier_fastSim_cff import fastSim
if fastSim.isChosen():
    # fastsim does not model castor
    delattr(theDigitizersMixPreMix,"castor")
    # fastsim does not digitize pixel and strip hits
    delattr(theDigitizersMixPreMix,"pixel")
    delattr(theDigitizersMixPreMix,"strip")

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( theDigitizersMixPreMix, castor = None )
    
theDigitizersMixPreMixValid = cms.PSet( theDigitizersMixPreMix )
theDigitizersMixPreMix.mergedtruth.select.signalOnlyTP = cms.bool(True)

예제 #9
0
def customisePixelLocalReconstruction(process):

    if not 'HLTDoLocalPixelSequence' in process.__dict__:
        return process

    # FIXME replace the Sequences with empty ones to avoid expanding them during the (re)definition of Modules and EDAliases

    process.HLTDoLocalPixelSequence = cms.Sequence()

    # Event Setup

    process.load(
        "CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi"
    )  # this should be used only on GPUs, will crash otherwise
    process.load(
        "CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi"
    )  # this should be used only on GPUs, will crash otherwise
    process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEFastESProducer_cfi")

    # Modules and EDAliases

    # referenced in HLTDoLocalPixelTask

    # transfer the beamspot to the gpu
    from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA as _offlineBeamSpotToCUDA
    process.hltOnlineBeamSpotToCUDA = _offlineBeamSpotToCUDA.clone(
        src="hltOnlineBeamSpot")

    # reconstruct the pixel digis and clusters on the gpu
    from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDA_cfi import siPixelRawToClusterCUDA as _siPixelRawToClusterCUDA
    process.hltSiPixelClustersCUDA = _siPixelRawToClusterCUDA.clone(
        # use the same thresholds as the legacy module
        clusterThreshold_layer1=process.hltSiPixelClusters.ClusterThreshold_L1,
        clusterThreshold_otherLayers=process.hltSiPixelClusters.
        ClusterThreshold)
    # use the pixel channel calibrations scheme for Run 3
    run3_common.toModify(process.hltSiPixelClustersCUDA, isRun2=False)

    # copy the pixel digis errors to the host
    from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA
    process.hltSiPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone(
        src="hltSiPixelClustersCUDA")

    # copy the pixel digis (except errors) and clusters to the host
    from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA
    process.hltSiPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone(
        src="hltSiPixelClustersCUDA")

    # reconstruct the pixel digis on the cpu
    process.hltSiPixelDigisLegacy = process.hltSiPixelDigis.clone()

    # SwitchProducer wrapping a subset of the legacy pixel digis producer, or the conversion of the pixel digis errors to the legacy format
    from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA
    process.hltSiPixelDigis = SwitchProducerCUDA(
        # legacy producer
        cpu=cms.EDAlias(hltSiPixelDigisLegacy=cms.VPSet(
            cms.PSet(type=cms.string("DetIdedmEDCollection")),
            cms.PSet(type=cms.string("SiPixelRawDataErroredmDetSetVector")),
            cms.PSet(type=cms.string("PixelFEDChanneledmNewDetSetVector")))),
        # conversion from SoA to legacy format
        cuda=_siPixelDigiErrorsFromSoA.clone(
            digiErrorSoASrc="hltSiPixelDigiErrorsSoA", UsePhase1=True))

    # reconstruct the pixel clusters on the cpu
    process.hltSiPixelClustersLegacy = process.hltSiPixelClusters.clone(
        src="hltSiPixelDigisLegacy")

    # SwitchProducer wrapping a subset of the legacy pixel cluster producer, or the conversion of the pixel digis (except errors) and clusters to the legacy format
    from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi import siPixelDigisClustersFromSoA as _siPixelDigisClustersFromSoA
    process.hltSiPixelClusters = SwitchProducerCUDA(
        # legacy producer
        cpu=cms.EDAlias(hltSiPixelClustersLegacy=cms.VPSet(
            cms.PSet(type=cms.string("SiPixelClusteredmNewDetSetVector")))),
        # conversion from SoA to legacy format
        cuda=_siPixelDigisClustersFromSoA.clone(
            src="hltSiPixelDigisSoA",
            produceDigis=False,
            storeDigis=False,
            # use the same thresholds as the legacy module
            clusterThreshold_layer1=process.hltSiPixelClusters.
            ClusterThreshold_L1,
            clusterThreshold_otherLayers=process.hltSiPixelClusters.
            ClusterThreshold))

    # reconstruct the pixel rechits on the gpu
    from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDA_cfi import siPixelRecHitCUDA as _siPixelRecHitCUDA
    process.hltSiPixelRecHitsCUDA = _siPixelRecHitCUDA.clone(
        src="hltSiPixelClustersCUDA", beamSpot="hltOnlineBeamSpotToCUDA")

    # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA
    from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDA_cfi import siPixelRecHitFromCUDA as _siPixelRecHitFromCUDA
    process.hltSiPixelRecHits = SwitchProducerCUDA(
        # legacy producer
        cpu=process.hltSiPixelRecHits,
        # conversion from SoA to legacy format
        cuda=_siPixelRecHitFromCUDA.clone(
            pixelRecHitSrc="hltSiPixelRecHitsCUDA", src="hltSiPixelClusters"))

    # Tasks and Sequences

    process.HLTDoLocalPixelTask = cms.Task(
        process.hltOnlineBeamSpotToCUDA,  # transfer the beamspot to the gpu
        process.
        hltSiPixelClustersCUDA,  # reconstruct the pixel digis and clusters on the gpu
        process.
        hltSiPixelRecHitsCUDA,  # reconstruct the pixel rechits on the gpu
        process.
        hltSiPixelDigisSoA,  # copy the pixel digis (except errors) and clusters to the host
        process.
        hltSiPixelDigiErrorsSoA,  # copy the pixel digis errors to the host
        process.hltSiPixelDigisLegacy,  # legacy pixel digis producer
        process.
        hltSiPixelDigis,  # SwitchProducer wrapping a subset of the legacy pixel digis producer, or the conversion of the pixel digis errors from SoA
        process.hltSiPixelClustersLegacy,  # legacy pixel cluster producer
        process.
        hltSiPixelClusters,  # SwitchProducer wrapping a subset of the legacy pixel cluster producer, or the conversion of the pixel digis (except errors) and clusters from SoA
        process.
        hltSiPixelClustersCache,  # legacy module, used by the legacy pixel quadruplet producer
        process.hltSiPixelRecHits
    )  # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA

    process.HLTDoLocalPixelSequence = cms.Sequence(process.HLTDoLocalPixelTask)

    # workaround for AlCa paths

    if 'AlCa_LumiPixelsCounts_Random_v1' in process.__dict__:
        if "HLTSchedule" in process.__dict__:
            ind = process.HLTSchedule.index(
                process.AlCa_LumiPixelsCounts_Random_v1)
            process.HLTSchedule.remove(process.AlCa_LumiPixelsCounts_Random_v1)
        # redefine the path to use the HLTDoLocalPixelSequence
        process.AlCa_LumiPixelsCounts_Random_v1 = cms.Path(
            process.HLTBeginSequenceRandom + process.hltScalersRawToDigi +
            process.hltPreAlCaLumiPixelsCountsRandom +
            process.hltPixelTrackerHVOn + process.HLTDoLocalPixelSequence +
            process.hltAlcaPixelClusterCounts + process.HLTEndSequence)
        if "HLTSchedule" in process.__dict__:
            process.HLTSchedule.insert(ind,
                                       process.AlCa_LumiPixelsCounts_Random_v1)

    if 'AlCa_LumiPixelsCounts_ZeroBias_v1' in process.__dict__:
        if "HLTSchedule" in process.__dict__:
            ind = process.HLTSchedule.index(
                process.AlCa_LumiPixelsCounts_ZeroBias_v1)
            process.HLTSchedule.remove(
                process.AlCa_LumiPixelsCounts_ZeroBias_v1)
        # redefine the path to use the HLTDoLocalPixelSequence
        process.AlCa_LumiPixelsCounts_ZeroBias_v1 = cms.Path(
            process.HLTBeginSequence + process.hltScalersRawToDigi +
            process.hltL1sZeroBias +
            process.hltPreAlCaLumiPixelsCountsZeroBias +
            process.hltPixelTrackerHVOn + process.HLTDoLocalPixelSequence +
            process.hltAlcaPixelClusterCounts + process.HLTEndSequence)
        if "HLTSchedule" in process.__dict__:
            process.HLTSchedule.insert(
                ind, process.AlCa_LumiPixelsCounts_ZeroBias_v1)

    # done
    return process
예제 #10
0
        etaPSet=cms.PSet(
            nbins=cms.int32(60),
            xmin=cms.double(-3.),
            xmax=cms.double(3.),
        ),
        LxyPSet=cms.PSet(
            nbins=cms.int32(350),
            xmin=cms.double(0.),
            xmax=cms.double(70.),
        ),
        chi2oNDFPSet=cms.PSet(
            nbins=cms.int32(100),
            xmin=cms.double(0.),
            xmax=cms.double(30.),
        ),
        puPSet=cms.PSet(
            nbins=cms.int32(100),
            xmin=cms.double(-0.5),
            xmax=cms.double(99.5),
        ),
        lsPSet=cms.PSet(
            nbins=cms.int32(2000),
            xmin=cms.double(0.),
            xmax=cms.double(2000.),
        ),
    ),
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(v0Monitor, forceSCAL=False)
예제 #11
0
        #                         .groupBy("PXBarrel/FED", "EXTEND_X").save(),
        Specification(PerReadout).groupBy("PXForward/FED/Channel").groupBy(
            "PXForward/FED", "EXTEND_X").save(),

        #Specification(PerReadout).groupBy("PXForward/FED/Channel/RocInLink")
        #                         .groupBy("PXForward/FED/Channel", "EXTEND_Y")
        #                         .groupBy("PXForward/FED", "EXTEND_X").save(),
        Specification(PerReadout).groupBy("PXBarrel/FED").groupBy(
            "PXBarrel", "EXTEND_X").save(),
        Specification(PerReadout).groupBy("PXForward/FED").groupBy(
            "PXForward", "EXTEND_X").save(),
    ))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(SiPixelPhase1ClustersNdigisInclusive,
                     range_max=150000,
                     range_nbins=150)

# This has to match the order of the names in the C++ enum.
SiPixelPhase1DigisConf = cms.VPSet(
    SiPixelPhase1DigisADC,
    SiPixelPhase1DigisNdigis,
    SiPixelPhase1ClustersNdigisInclusive,
    SiPixelPhase1DigisNdigisPerFED,
    SiPixelPhase1DigisNdigisPerFEDtrend,
    SiPixelPhase1DigisEvents,
    SiPixelPhase1DigisHitmap,
    SiPixelPhase1DigisOccupancy,
)

from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
예제 #12
0
    # Reconstruction algorithm configuration data to fetch from DB, if any
    algoConfigClass=cms.string(""),

    # Turn rechit status bit setters on/off
    setNegativeFlagsQIE8=cms.bool(True),
    setNegativeFlagsQIE11=cms.bool(False),
    setNoiseFlagsQIE8=cms.bool(True),
    setNoiseFlagsQIE11=cms.bool(False),
    setPulseShapeFlagsQIE8=cms.bool(True),
    setPulseShapeFlagsQIE11=cms.bool(False),
    setLegacyFlagsQIE8=cms.bool(True),
    setLegacyFlagsQIE11=cms.bool(False),

    # Parameter sets configuring rechit status bit setters
    flagParametersQIE8=cms.PSet(hbheStatusFlag.qie8Config),
    flagParametersQIE11=cms.PSet(),
    pulseShapeParametersQIE8=cms.PSet(pulseShapeFlag.qie8Parameters),
    pulseShapeParametersQIE11=cms.PSet())

# Disable the "triangle peak fit" and the corresponding HBHETriangleNoise flag
hbheprereco.pulseShapeParametersQIE8.TrianglePeakTS = 10000

from Configuration.Eras.Modifier_run2_HE_2017_cff import run2_HE_2017
run2_HE_2017.toModify(hbheprereco, saveEffectivePedestal=True)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(hbheprereco,
                     algorithm=dict(applyLegacyHBMCorrection=False,
                                    useM3=False))
예제 #13
0
import FWCore.ParameterSet.Config as cms

# Turn on the PCC update which synchronize timePhase in PCC as in SIM
PCCUpdate = cms.PSet(applyFixPCC=cms.bool(False))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(PCCUpdate, applyFixPCC=True)
예제 #14
0
    hb = dict(
        doSiPMSmearing = cms.bool(True),
        threshold_currentTDC = cms.double(18.7),
        sipmTau = cms.double(10.),
    )
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( hcalSimParameters, 
    hb = dict(
               readoutFrameSize = cms.int32(10), 
               binOfMaximum     = cms.int32(6)
              ),
    he = dict(
               readoutFrameSize = cms.int32(10), 
               binOfMaximum     = cms.int32(6)
              ),
    hf1 = dict( samplingFactor = 0.35,
                timePhase = -6.0 
               ),
    hf2 = dict( samplingFactor = 0.35,
                timePhase = -7.0
               )
) 


_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,
예제 #15
0
dedxTruncated40 = dedxHarmonic2.clone(estimator='truncated')

dedxMedian = dedxHarmonic2.clone(estimator='median')

dedxUnbinned = dedxHarmonic2.clone(estimator='unbinnedFit')

dedxDiscrimProd = dedxHarmonic2.clone(estimator='productDiscrim')

dedxDiscrimBTag = dedxHarmonic2.clone(estimator='btagDiscrim')

dedxDiscrimSmi = dedxHarmonic2.clone(estimator='smirnovDiscrim')

dedxDiscrimASmi = dedxHarmonic2.clone(estimator='asmirnovDiscrim')

doAlldEdXEstimatorsTask = cms.Task(dedxTruncated40, dedxHarmonic2,
                                   dedxPixelHarmonic2,
                                   dedxPixelAndStripHarmonic2T085, dedxHitInfo)
doAlldEdXEstimators = cms.Sequence(doAlldEdXEstimatorsTask)

fastSim.toReplaceWith(doAlldEdXEstimatorsTask,
                      cms.Task(dedxHarmonic2, dedxPixelHarmonic2))

# use only the strips for Run-3
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(dedxHitInfo,
                     lowPtTracksEstimatorParameters=dict(fraction=0.,
                                                         exponent=-2.0,
                                                         truncate=False),
                     usePixelForPrescales=False)
예제 #16
0
    covarianceVersion = cms.int32(0), #so far: 0 is Phase0, 1 is Phase1   
#    covariancePackingSchemas = cms.vint32(1,257,513,769,0),  # a cheaper schema in kb/ev 
    covariancePackingSchemas = cms.vint32(8,264,520,776,0),   # more accurate schema +0.6kb/ev
    pfCandidateTypesForHcalDepth = cms.vint32(),
    storeHcalDepthEndcapOnly = cms.bool(False), # switch to store info only for endcap 
    storeTiming = cms.bool(False)
)

from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
phase1Pixel.toModify(packedPFCandidates, covarianceVersion =1 )

from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy
run2_miniAOD_80XLegacy.toModify(packedPFCandidates, chargedHadronIsolation = "" )

from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
run2_HCAL_2018.toModify(packedPFCandidates,
    pfCandidateTypesForHcalDepth = [130,11,22,211,13],  # PF cand types for adding Hcal depth energy frac information
                        # (130: neutral h, 11: ele, 22: photon, 211: charged h, 13: mu) # excluding e.g. 1:h_HF, 2:egamma_HF
    storeHcalDepthEndcapOnly = True
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(packedPFCandidates,
    pfCandidateTypesForHcalDepth = [], # For now, no PF cand type is considered for addition of Hcal depth energy frac 
    storeHcalDepthEndcapOnly = False
)

from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
phase2_timing.toModify(packedPFCandidates, storeTiming = cms.bool(True))

예제 #17
0
import FWCore.ParameterSet.Config as cms

# AlCaReco for track based alignment using MuonIsolated events
OutALCARECOTkAlMuonIsolated_noDrop = cms.PSet(
    SelectEvents=cms.untracked.PSet(
        SelectEvents=cms.vstring('pathALCARECOTkAlMuonIsolated')),
    outputCommands=cms.untracked.vstring(
        'keep *_ALCARECOTkAlMuonIsolated_*_*',
        'keep L1AcceptBunchCrossings_*_*_*',
        'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*',
        'keep *_TriggerResults_*_*', 'keep DcsStatuss_scalersRawToDigi_*_*',
        'keep *_offlinePrimaryVertices_*_*'))

import copy
OutALCARECOTkAlMuonIsolated = copy.deepcopy(OutALCARECOTkAlMuonIsolated_noDrop)
OutALCARECOTkAlMuonIsolated.outputCommands.insert(0, "drop *")

# in Run3, SCAL digis replaced by onlineMetaDataDigis
_run3_common_removedCommands = OutALCARECOTkAlMuonIsolated.outputCommands
_run3_common_removedCommands.remove('keep DcsStatuss_scalersRawToDigi_*_*')

_run3_common_extraCommands = ['keep DCSRecord_onlineMetaDataDigis_*_*']

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(OutALCARECOTkAlMuonIsolated,
                     outputCommands=_run3_common_removedCommands +
                     _run3_common_extraCommands)
예제 #18
0
import FWCore.ParameterSet.Config as cms

from RecoLocalTracker.SiPixelRecHits._generic_default_cfi import _generic_default
PixelCPEGenericESProducer = _generic_default.clone()

# This customizes the Run3 Pixel CPE generic reconstruction in order to activate the IrradiationBiasCorrection
# because of the expected resolution loss due to radiation damage
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(PixelCPEGenericESProducer, IrradiationBiasCorrection=True)

# customize the Pixel CPE generic producer for phase2
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toModify(
    PixelCPEGenericESProducer,
    UseErrorsFromTemplates=True,
    LoadTemplatesFromDB=True,
    NoTemplateErrorsWhenNoTrkAngles=True,
    TruncatePixelCharge=False,
    IrradiationBiasCorrection=False,  # set IBC off
    DoCosmics=False,
    Upgrade=True  # use 'upgrade' version of hardcoded CPE errors
)

# customize the Pixel CPE generic producer in order not to use any  template information
from Configuration.ProcessModifiers.phase2_PixelCPEGeneric_cff import phase2_PixelCPEGeneric
phase2_PixelCPEGeneric.toModify(
    PixelCPEGenericESProducer,
    UseErrorsFromTemplates=False,  # no GenErrors
    LoadTemplatesFromDB=False,  # do not load templates
)
예제 #19
0
    #     FGThreshold=cms.uint32(12)
    # ),

    #vdouble weights = { -1, -1, 1, 1} //low lumi algo
    # Input digi label (_must_ be without zero-suppression!)
    inputLabel=cms.VInputTag(cms.InputTag('simHcalUnsuppressedDigis'),
                             cms.InputTag('simHcalUnsuppressedDigis')),
    inputUpgradeLabel=cms.VInputTag(
        cms.InputTag('simHcalUnsuppressedDigis:HBHEQIE11DigiCollection'),
        cms.InputTag('simHcalUnsuppressedDigis:HFQIE10DigiCollection')),
    InputTagFEDRaw=cms.InputTag("rawDataCollector"),
    overrideDBweightsAndFilterHB=cms.bool(False),
    overrideDBweightsAndFilterHE=cms.bool(False),
    RunZS=cms.bool(False),
    FrontEndFormatError=cms.bool(
        False),  # Front End Format Error, for real data only
    PeakFinderAlgorithm=cms.int32(2),
    tpScales=tpScales,
)

run2_HE_2017.toModify(simHcalTriggerPrimitiveDigis, upgradeHE=cms.bool(True))
run2_HF_2017.toModify(simHcalTriggerPrimitiveDigis,
                      upgradeHF=cms.bool(True),
                      numberOfSamplesHF=cms.int32(2),
                      numberOfPresamplesHF=cms.int32(1))
run2_HF_2017.toModify(tpScales.HF, NCTShift=cms.int32(2))
run3_HB.toModify(simHcalTriggerPrimitiveDigis, upgradeHB=cms.bool(True))
run3_common.toModify(simHcalTriggerPrimitiveDigis,
                     applySaturationFix=cms.bool(True))
run3_HB.toModify(tpScales.HBHE, LSBQIE11Overlap=cms.double(1 / 16.))
예제 #20
0
                      he=dict(readoutFrameSize=cms.int32(8),
                              binOfMaximum=cms.int32(4),
                              threshold_currentTDC=cms.double(18.7)))

from Configuration.Eras.Modifier_run3_HB_cff import run3_HB
run3_HB.toModify(hcalSimParameters,
                 hb=dict(
                     doSiPMSmearing=cms.bool(True),
                     threshold_currentTDC=cms.double(18.7),
                     sipmTau=cms.double(10.),
                 ))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(hcalSimParameters,
                     hb=dict(readoutFrameSize=cms.int32(10),
                             binOfMaximum=cms.int32(6)),
                     he=dict(readoutFrameSize=cms.int32(10),
                             binOfMaximum=cms.int32(6)))

_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, 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,
    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)
예제 #21
0
        "gedelectron_EEUncertainty_offline_v1"
    ],
    combinationRegressionWeightLabels=["gedelectron_p4combination_offline"],

    #Activate the evaluation of Egamma PFID DNN
    EleDNNPFid=
    dict(modelsFiles=[
        "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/lowpT/lowpT_modelDNN.pb",
        "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/highpTEB/highpTEB_modelDNN.pb",
        "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/highpTEE/highpTEE_modelDNN.pb"
    ],
         scalersFiles=[
             "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/lowpT/lowpT_scaler.txt",
             "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/highpTEB/highpTEB_scaler.txt",
             "RecoEgamma/ElectronIdentification/data/Ele_PFID_dnn/highpTEE/highpTEE_scaler.txt"
         ]))

from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
pp_on_AA.toModify(gedGsfElectronsTmp.preselection, minSCEtBarrel=15.0)
pp_on_AA.toModify(gedGsfElectronsTmp.preselection, minSCEtEndcaps=15.0)

from Configuration.ProcessModifiers.egamma_lowPt_exclusive_cff import egamma_lowPt_exclusive
egamma_lowPt_exclusive.toModify(gedGsfElectronsTmp.preselection,
                                minSCEtBarrel=1.0,
                                minSCEtEndcaps=1.0)
egamma_lowPt_exclusive.toModify(gedGsfElectronsTmp, applyPreselection=False)

# Activate the Egamma PFID dnn only for Run3
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(gedGsfElectronsTmp.EleDNNPFid, enabled=True)
SiPixelPhase1TrackEfficiencyVertices = DefaultHistoTrack.clone(
    name="num_vertices",
    title="PrimaryVertices",
    xlabel="# Vertices",
    dimensions=1,
    range_min=-0.5,
    range_max=100.5,
    range_nbins=101,
    specs=VPSet(
        Specification().groupBy("").save(),
        Specification().groupBy("/Lumisection").reduce("MEAN").groupBy(
            "", "EXTEND_X").save()))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(SiPixelPhase1TrackEfficiencyVertices,
                     range_max=150.5,
                     range_nbins=151)

SiPixelPhase1TrackEfficiencyConf = cms.VPSet(
    SiPixelPhase1TrackEfficiencyValid, SiPixelPhase1TrackEfficiencyMissing,
    SiPixelPhase1TrackEfficiencyInactive,
    SiPixelPhase1TrackEfficiencyEfficiency,
    SiPixelPhase1TrackEfficiencyVertices)

from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
SiPixelPhase1TrackEfficiencyAnalyzer = DQMEDAnalyzer(
    'SiPixelPhase1TrackEfficiency',
    clusters=cms.InputTag("siPixelClusters"),
    tracks=cms.InputTag("generalTracks"),
    trajectoryInput=cms.InputTag("refittedForPixelDQM"),
    primaryvertices=cms.InputTag("offlinePrimaryVertices"),
예제 #23
0
##
## Change the HFShowerLibrary file from Run 2
##
from Configuration.Eras.Modifier_run2_common_cff import run2_common

##
## Change HCAL numbering scheme in 2017
##
from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
run2_HCAL_2017.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) )

##
## Disable Castor from Run 3
##
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( g4SimHits, CastorSD = dict( useShowerLibrary = False ) ) 

##
## Change ECAL time slices
##
from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
phase2_timing.toModify( g4SimHits.ECalSD,
                             StoreLayerTimeSim = cms.untracked.bool(True),
                             TimeSliceUnit = cms.double(0.001) )
##
## Change CALO Thresholds
##
from Configuration.Eras.Modifier_h2tb_cff import h2tb
h2tb.toModify(g4SimHits.CaloSD,
              EminHits  = cms.vdouble(0.0,0.0,0.0,0.0,0.0),
              TmaxHits  = cms.vdouble(1000.0,1000.0,1000.0,1000.0,2000.0) )
예제 #24
0
OutALCARECOSiStripCalCosmics_noDrop = cms.PSet(
    SelectEvents = cms.untracked.PSet(
        SelectEvents = cms.vstring('pathALCARECOSiStripCalCosmics')
    ),
    outputCommands = cms.untracked.vstring( 
        'keep *_ALCARECOSiStripCalCosmics_*_*', 
        'keep *_siStripClusters_*_*', 
        'keep *_siPixelClusters_*_*',
        'keep DetIdedmEDCollection_siStripDigis_*_*',
        'keep L1AcceptBunchCrossings_*_*_*',
        'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*',
        'keep LumiScalerss_scalersRawToDigi_*_*',
        'keep DcsStatuss_scalersRawToDigi_*_*',
        'keep *_TriggerResults_*_*')
    )

# in Run3, SCAL digis replaced by onlineMetaDataDigis
import copy
_run3_common_removedCommands = OutALCARECOSiStripCalCosmics_noDrop.outputCommands.copy()
_run3_common_removedCommands.remove('keep LumiScalerss_scalersRawToDigi_*_*')
_run3_common_removedCommands.remove('keep DcsStatuss_scalersRawToDigi_*_*')

_run3_common_extraCommands = ['keep DCSRecord_onlineMetaDataDigis_*_*',
                              'keep OnlineLuminosityRecord_onlineMetaDataDigis_*_*']

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(OutALCARECOSiStripCalCosmics_noDrop, outputCommands = _run3_common_removedCommands + _run3_common_extraCommands)

OutALCARECOSiStripCalCosmics=OutALCARECOSiStripCalCosmics_noDrop.clone()
OutALCARECOSiStripCalCosmics.outputCommands.insert(0,"drop *")
예제 #25
0
    name="cluster_ratio",
    title="Pixel to Strip clusters ratio",
    xlabel="ratio",
    dimensions=1,
    specs=VPSet(
        Specification().groupBy("PXAll").save(100, 0, 1),
        Specification().groupBy("PXAll/LumiBlock").reduce("MEAN").groupBy(
            "PXAll", "EXTEND_X").save(),
        Specification().groupBy("PXAll/BX").reduce("MEAN").groupBy(
            "PXAll", "EXTEND_X").save(),
    ))

from Configuration.Eras.Modifier_run3_common_cff import run3_common

run3_common.toModify(SiPixelPhase1ClustersNClustersInclusive,
                     range_max=40000,
                     range_nbins=200)

SiPixelPhase1ClustersConf = cms.VPSet(
    SiPixelPhase1ClustersCharge, SiPixelPhase1ClustersBigPixelCharge,
    SiPixelPhase1ClustersNotBigPixelCharge, SiPixelPhase1ClustersSize,
    SiPixelPhase1ClustersSizeX, SiPixelPhase1ClustersSizeY,
    SiPixelPhase1ClustersNClusters, SiPixelPhase1ClustersNClustersInclusive,
    SiPixelPhase1ClustersEventrate, SiPixelPhase1ClustersPositionB,
    SiPixelPhase1ClustersPositionF, SiPixelPhase1ClustersPositionXZ,
    SiPixelPhase1ClustersPositionYZ, SiPixelPhase1ClustersSizeVsEta,
    SiPixelPhase1ClustersReadoutCharge, SiPixelPhase1ClustersReadoutNClusters,
    SiPixelPhase1ClustersPixelToStripRatio)

from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
예제 #26
0
    theDigitizers,
    hgceeDigitizer=cms.PSet(hgceeDigitizer),
    hgchebackDigitizer=cms.PSet(hgchebackDigitizer),
    hgchefrontDigitizer=cms.PSet(hgchefrontDigitizer),
)

from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hfnoseDigitizer

from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose
phase2_hfnose.toModify(
    theDigitizers,
    hfnoseDigitizer=cms.PSet(hfnoseDigitizer),
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(theDigitizers, castor=None)

from SimGeneral.MixingModule.ecalTimeDigitizer_cfi import ecalTimeDigitizer
from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
phase2_timing.toModify(theDigitizers, ecalTime=ecalTimeDigitizer.clone())

from SimFastTiming.Configuration.SimFastTiming_cff import mtdDigitizer
from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
phase2_timing_layer.toModify(theDigitizers,
                             fastTimingLayer=mtdDigitizer.clone())

premix_stage2.toModify(
    theDigitizers,
    ecal=None,
    hcal=None,
)
예제 #27
0
def customisePixelTrackReconstruction(process):

    if not 'HLTRecoPixelTracksSequence' in process.__dict__:
        return process

    hasHLTPixelVertexReco = 'HLTRecopixelvertexingSequence' in process.__dict__

    # FIXME replace the Sequences with empty ones to avoid expanding them during the (re)definition of Modules and EDAliases

    process.HLTRecoPixelTracksSequence = cms.Sequence()
    if hasHLTPixelVertexReco:
        process.HLTRecopixelvertexingSequence = cms.Sequence()

    # Modules and EDAliases

    # referenced in process.HLTRecoPixelTracksTask

    # cpu only: convert the pixel rechits from legacy to SoA format
    from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacy_cfi import siPixelRecHitSoAFromLegacy as _siPixelRecHitSoAFromLegacy
    process.hltSiPixelRecHitSoA = _siPixelRecHitSoAFromLegacy.clone(
        src="hltSiPixelClusters",
        beamSpot="hltOnlineBeamSpot",
        convertToLegacy=True)

    # build pixel ntuplets and pixel tracks in SoA format on gpu
    from RecoPixelVertexing.PixelTriplets.pixelTracksCUDA_cfi import pixelTracksCUDA as _pixelTracksCUDA
    process.hltPixelTracksCUDA = _pixelTracksCUDA.clone(
        idealConditions=False,
        pixelRecHitSrc="hltSiPixelRecHitsCUDA",
        onGPU=True)
    # use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows
    run3_common.toModify(process.hltPixelTracksCUDA, idealConditions=True)

    # SwitchProducer providing the pixel tracks in SoA format on cpu
    from RecoPixelVertexing.PixelTrackFitting.pixelTracksSoA_cfi import pixelTracksSoA as _pixelTracksSoA
    process.hltPixelTracksSoA = SwitchProducerCUDA(
        # build pixel ntuplets and pixel tracks in SoA format on cpu
        cpu=_pixelTracksCUDA.clone(idealConditions=False,
                                   pixelRecHitSrc="hltSiPixelRecHitSoA",
                                   onGPU=False),
        # transfer the pixel tracks in SoA format to the host
        cuda=_pixelTracksSoA.clone(src="hltPixelTracksCUDA"))
    # use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows
    run3_common.toModify(process.hltPixelTracksSoA.cpu, idealConditions=True)

    # convert the pixel tracks from SoA to legacy format
    from RecoPixelVertexing.PixelTrackFitting.pixelTrackProducerFromSoA_cfi import pixelTrackProducerFromSoA as _pixelTrackProducerFromSoA
    process.hltPixelTracks = _pixelTrackProducerFromSoA.clone(
        beamSpot="hltOnlineBeamSpot",
        pixelRecHitLegacySrc="hltSiPixelRecHits",
        trackSrc="hltPixelTracksSoA")

    # referenced in process.HLTRecopixelvertexingTask
    if hasHLTPixelVertexReco:

        # build pixel vertices in SoA format on gpu
        from RecoPixelVertexing.PixelVertexFinding.pixelVerticesCUDA_cfi import pixelVerticesCUDA as _pixelVerticesCUDA
        process.hltPixelVerticesCUDA = _pixelVerticesCUDA.clone(
            pixelTrackSrc="hltPixelTracksCUDA", onGPU=True)

        # build or transfer pixel vertices in SoA format on cpu
        from RecoPixelVertexing.PixelVertexFinding.pixelVerticesSoA_cfi import pixelVerticesSoA as _pixelVerticesSoA
        process.hltPixelVerticesSoA = SwitchProducerCUDA(
            # build pixel vertices in SoA format on cpu
            cpu=_pixelVerticesCUDA.clone(pixelTrackSrc="hltPixelTracksSoA",
                                         onGPU=False),
            # transfer the pixel vertices in SoA format to cpu
            cuda=_pixelVerticesSoA.clone(src="hltPixelVerticesCUDA"))

        # convert the pixel vertices from SoA to legacy format
        from RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA
        process.hltPixelVertices = _pixelVertexFromSoA.clone(
            src="hltPixelVerticesSoA",
            TrackCollection="hltPixelTracks",
            beamSpot="hltOnlineBeamSpot")

    # Tasks and Sequences

    process.HLTRecoPixelTracksTask = cms.Task(
        process.hltPixelTracksTrackingRegions,  # from the original sequence
        process.hltSiPixelRecHitSoA,  # pixel rechits on cpu, converted to SoA
        process.hltPixelTracksCUDA,  # pixel ntuplets on gpu, in SoA format
        process.hltPixelTracksSoA,  # pixel ntuplets on cpu, in SoA format
        process.hltPixelTracks)  # pixel tracks on cpu, in legacy format

    process.HLTRecoPixelTracksSequence = cms.Sequence(
        process.HLTRecoPixelTracksTask)

    if hasHLTPixelVertexReco:
        process.HLTRecopixelvertexingTask = cms.Task(
            process.HLTRecoPixelTracksTask,
            process.
            hltPixelVerticesCUDA,  # pixel vertices on gpu, in SoA format
            process.
            hltPixelVerticesSoA,  # pixel vertices on cpu, in SoA format
            process.
            hltPixelVertices,  # pixel vertices on cpu, in legacy format
            process.hltTrimmedPixelVertices)  # from the original sequence

        process.HLTRecopixelvertexingSequence = cms.Sequence(
            process.hltPixelTracksFitter
            +  # not used here, kept for compatibility with legacy sequences
            process.
            hltPixelTracksFilter,  # not used here, kept for compatibility with legacy sequences
            process.HLTRecopixelvertexingTask)

    # done
    return process
예제 #28
0
    cms.PSet(type=cms.string('PixelDigiSimLinkedmDetSetVector')))
simSiPixelDigis = cms.EDAlias(
    mix=_pixelCommon +
    [cms.PSet(type=cms.string('PixelFEDChanneledmNewDetSetVector'))])
simSiStripDigis = cms.EDAlias(
    mix=cms.VPSet(cms.PSet(type=cms.string('SiStripDigiedmDetSetVector')),
                  cms.PSet(type=cms.string('SiStripRawDigiedmDetSetVector')),
                  cms.PSet(
                      type=cms.string('StripDigiSimLinkedmDetSetVector'))))
#mergedtruth = cms.EDAlias(
#    mix = cms.VPSet(
#      cms.PSet(type = cms.string('TrackingParticles')),
#      cms.PSet(type = cms.string('TrackingVertexs'))
#    )
#)

genPUProtons = cms.EDAlias(
    mixData=cms.VPSet(cms.PSet(type=cms.string('recoGenParticles'))))

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(simCastorDigis, mix=None)

from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toModify(simSiPixelDigis, mix=_pixelCommon)

# no castor,pixel,strip digis in fastsim
from Configuration.Eras.Modifier_fastSim_cff import fastSim
fastSim.toModify(simCastorDigis, mix=None)
fastSim.toModify(simSiPixelDigis, mix=None)
fastSim.toModify(simSiStripDigis, mix=None)
예제 #29
0
def customisePixelLocalReconstruction(process):

    if not 'HLTDoLocalPixelSequence' in process.__dict__:
        return process

    # FIXME replace the Sequences with empty ones to avoid expanding them during the (re)definition of Modules and EDAliases

    process.HLTDoLocalPixelSequence = cms.Sequence()

    # Event Setup

    process.load(
        "CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi"
    )  # this should be used only on GPUs, will crash otherwise
    process.load(
        "CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi"
    )  # this should be used only on GPUs, will crash otherwise
    process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEFastESProducer_cfi")

    # Modules and EDAliases

    # referenced in HLTDoLocalPixelTask

    # transfer the beamspot to the gpu
    from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA as _offlineBeamSpotToCUDA
    process.hltOnlineBeamSpotToCUDA = _offlineBeamSpotToCUDA.clone(
        src="hltOnlineBeamSpot")

    # reconstruct the pixel digis and clusters on the gpu
    from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDA_cfi import siPixelRawToClusterCUDA as _siPixelRawToClusterCUDA
    process.hltSiPixelClustersCUDA = _siPixelRawToClusterCUDA.clone()
    # use the pixel channel calibrations scheme for Run 3
    run3_common.toModify(process.hltSiPixelClustersCUDA, isRun2=False)

    # copy the pixel digis errors to the host
    from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA
    process.hltSiPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone(
        src="hltSiPixelClustersCUDA")

    # convert the pixel digis errors to the legacy format
    from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA
    process.hltSiPixelDigiErrors = _siPixelDigiErrorsFromSoA.clone(
        digiErrorSoASrc="hltSiPixelDigiErrorsSoA", UsePhase1=True)

    # copy the pixel digis (except errors) and clusters to the host
    from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA
    process.hltSiPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone(
        src="hltSiPixelClustersCUDA")

    # convert the pixel digis (except errors) and clusters to the legacy format
    from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi import siPixelDigisClustersFromSoA as _siPixelDigisClustersFromSoA
    process.hltSiPixelDigisClusters = _siPixelDigisClustersFromSoA.clone(
        src="hltSiPixelDigisSoA")

    # SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA
    process.hltSiPixelDigis = SwitchProducerCUDA(
        # legacy producer
        cpu=process.hltSiPixelDigis,
        # alias used to access products from multiple conversion modules
        cuda=cms.EDAlias(
            hltSiPixelDigisClusters=cms.VPSet(
                cms.PSet(type=cms.string("PixelDigiedmDetSetVector"))),
            hltSiPixelDigiErrors=cms.VPSet(
                cms.PSet(type=cms.string("DetIdedmEDCollection")),
                cms.PSet(
                    type=cms.string("SiPixelRawDataErroredmDetSetVector")),
                cms.PSet(
                    type=cms.string("PixelFEDChanneledmNewDetSetVector")))))

    # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA
    process.hltSiPixelClusters = SwitchProducerCUDA(
        # legacy producer
        cpu=process.hltSiPixelClusters,
        # alias used to access products from multiple conversion modules
        cuda=cms.EDAlias(hltSiPixelDigisClusters=cms.VPSet(
            cms.PSet(type=cms.string("SiPixelClusteredmNewDetSetVector")))))

    # reconstruct the pixel rechits on the gpu
    from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDA_cfi import siPixelRecHitCUDA as _siPixelRecHitCUDA
    process.hltSiPixelRecHitsCUDA = _siPixelRecHitCUDA.clone(
        src="hltSiPixelClustersCUDA", beamSpot="hltOnlineBeamSpotToCUDA")

    # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA
    from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDA_cfi import siPixelRecHitFromCUDA as _siPixelRecHitFromCUDA
    process.hltSiPixelRecHits = SwitchProducerCUDA(
        # legacy producer
        cpu=process.hltSiPixelRecHits,
        # converter to legacy format
        cuda=_siPixelRecHitFromCUDA.clone(
            pixelRecHitSrc="hltSiPixelRecHitsCUDA", src="hltSiPixelClusters"))

    # Tasks and Sequences

    process.HLTDoLocalPixelTask = cms.Task(
        process.hltOnlineBeamSpotToCUDA,  # transfer the beamspot to the gpu
        process.
        hltSiPixelClustersCUDA,  # reconstruct the pixel digis and clusters on the gpu
        process.
        hltSiPixelRecHitsCUDA,  # reconstruct the pixel rechits on the gpu
        process.
        hltSiPixelDigisSoA,  # copy the pixel digis (except errors) and clusters to the host
        process.
        hltSiPixelDigisClusters,  # convert the pixel digis (except errors) and clusters to the legacy format
        process.
        hltSiPixelDigiErrorsSoA,  # copy the pixel digis errors to the host
        process.
        hltSiPixelDigiErrors,  # convert the pixel digis errors to the legacy format
        process.
        hltSiPixelDigis,  # SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA
        process.
        hltSiPixelClusters,  # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA
        process.
        hltSiPixelClustersCache,  # legacy module, used by the legacy pixel quadruplet producer
        process.hltSiPixelRecHits
    )  # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA

    process.HLTDoLocalPixelSequence = cms.Sequence(process.HLTDoLocalPixelTask)

    # done
    return process
예제 #30
0
import FWCore.ParameterSet.Config as cms

from SimMuon.GEMDigitizer.simMuonGEMDigisDef_cfi import *
simMuonGEMDigis = simMuonGEMDigisDef.clone()

from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2
premix_stage2.toModify(simMuonGEMDigis, mixLabel="mixData")

from Configuration.Eras.Modifier_run2_common_cff import run2_common
run2_common.toModify(simMuonGEMDigis, instLumi=1.5, bx0filter=True)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(simMuonGEMDigis, instLumi=2.0, bx0filter=True)

from Configuration.Eras.Modifier_phase2_common_cff import phase2_common
phase2_common.toModify(simMuonGEMDigis, instLumi=5, bx0filter=False)
예제 #31
0
def customisePixelLocalReconstruction(process):

    if not 'HLTDoLocalPixelSequence' in process.__dict__:
        return process


    # FIXME replace the Sequences with empty ones to avoid expanding them during the (re)definition of Modules and EDAliases
    process.HLTDoLocalPixelSequence = cms.Sequence()


    # Event Setup

    _load_if_missing(process, 'PixelCPEFastESProducer', 'RecoLocalTracker.SiPixelRecHits.PixelCPEFastESProducer_cfi')
    # these 2 modules should be used only on GPUs, will crash otherwise
    _load_if_missing(process, 'siPixelGainCalibrationForHLTGPU', 'CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi')
    _load_if_missing(process, 'siPixelROCsStatusAndMappingWrapperESProducer', 'CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi')


    # Modules and EDAliases
    # referenced in HLTDoLocalPixelTask

    # transfer the beamspot to the gpu
    _clone_if_missing(process, 'hltOnlineBeamSpotToCUDA', 'RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi', 'offlineBeamSpotToCUDA',
        src = 'hltOnlineBeamSpot'
    )

    if 'hltSiPixelClustersCUDA' not in process.__dict__:
        # reconstruct the pixel digis and clusters on the gpu
        _hltSiPixelClustersLegacyLabel = 'hltSiPixelClustersLegacy' if 'hltSiPixelClustersLegacy' in process.__dict__ else 'hltSiPixelClusters'

        _clone(process, 'hltSiPixelClustersCUDA', 'RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDA_cfi', 'siPixelRawToClusterCUDA',
            # use the same thresholds as the legacy module
            clusterThreshold_layer1 = getattr(process, _hltSiPixelClustersLegacyLabel).ClusterThreshold_L1,
            clusterThreshold_otherLayers = getattr(process, _hltSiPixelClustersLegacyLabel).ClusterThreshold,
        )
        # use the pixel channel calibrations scheme for Run 3
        run3_common.toModify(process.hltSiPixelClustersCUDA, isRun2 = False)

    # copy the pixel digis errors to the host
    _clone_if_missing(process, 'hltSiPixelDigiErrorsSoA', 'EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi', 'siPixelDigiErrorsSoAFromCUDA',
        src = 'hltSiPixelClustersCUDA'
    )

    # copy the pixel digis (except errors) and clusters to the host
    _clone_if_missing(process, 'hltSiPixelDigisSoA', 'EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi', 'siPixelDigisSoAFromCUDA',
        src = 'hltSiPixelClustersCUDA'
    )

    # SwitchProducer: hltSiPixelDigis
    if not isinstance(process.hltSiPixelDigis, SwitchProducerCUDA):

        if 'hltSiPixelDigisLegacy' not in process.__dict__:
            # reconstruct the pixel digis on the cpu
            process.hltSiPixelDigisLegacy = process.hltSiPixelDigis.clone()

        # SwitchProducer wrapping a subset of the legacy pixel digis producer, or the conversion of the pixel digis errors to the legacy format
        process.hltSiPixelDigis = SwitchProducerCUDA(
            # legacy producer
            cpu = cms.EDAlias(
                hltSiPixelDigisLegacy = cms.VPSet(
                    cms.PSet(type = cms.string("DetIdedmEDCollection")),
                    cms.PSet(type = cms.string("SiPixelRawDataErroredmDetSetVector")),
                    cms.PSet(type = cms.string("PixelFEDChanneledmNewDetSetVector"))
                )
            )
        )

    elif not hasattr(process.hltSiPixelDigis, 'cpu'):
        raise Exception('unsupported configuration: "process.hltSiPixelDigis" is a SwitchProducerCUDA, but does not have a "cpu" branch')

    # conversion from SoA to legacy format
    _clone_if_missing(process.hltSiPixelDigis, 'cuda', 'EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi', 'siPixelDigiErrorsFromSoA',
        digiErrorSoASrc = "hltSiPixelDigiErrorsSoA",
        UsePhase1 = True
    )


    # SwitchProducer: hltSiPixelClusters
    if not isinstance(process.hltSiPixelClusters, SwitchProducerCUDA):

        if 'hltSiPixelClustersLegacy' not in process.__dict__:
            # reconstruct the pixel clusters on the cpu
            process.hltSiPixelClustersLegacy = process.hltSiPixelClusters.clone(
                src = "hltSiPixelDigisLegacy"
            )

        # SwitchProducer wrapping a subset of the legacy pixel cluster producer, or the conversion of the pixel digis (except errors) and clusters to the legacy format
        process.hltSiPixelClusters = SwitchProducerCUDA(
            # legacy producer
            cpu = cms.EDAlias(
                hltSiPixelClustersLegacy = cms.VPSet(
                    cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector"))
                )
            )
        )

    elif not hasattr(process.hltSiPixelClusters, 'cpu'):
        raise Exception('unsupported configuration: "process.hltSiPixelClusters" is a SwitchProducerCUDA, but does not have a "cpu" branch')

    # conversion from SoA to legacy format
    _clone_if_missing(process.hltSiPixelClusters, 'cuda', 'RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi', 'siPixelDigisClustersFromSoA',
        src = 'hltSiPixelDigisSoA',
        produceDigis = False,
        storeDigis = False,
        # use the same thresholds as the legacy module
        clusterThreshold_layer1 = process.hltSiPixelClustersLegacy.ClusterThreshold_L1,
        clusterThreshold_otherLayers = process.hltSiPixelClustersLegacy.ClusterThreshold
    )

    # reconstruct the pixel rechits on the gpu
    _clone_if_missing(process, 'hltSiPixelRecHitsCUDA', 'RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDA_cfi', 'siPixelRecHitCUDA',
        src = 'hltSiPixelClustersCUDA',
        beamSpot = 'hltOnlineBeamSpotToCUDA'
    )

    # cpu only: produce the pixel rechits in SoA and legacy format, from the legacy clusters
    _clone_if_missing(process, 'hltSiPixelRecHitSoA', 'RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacy_cfi', 'siPixelRecHitSoAFromLegacy',
        src = 'hltSiPixelClusters',
        beamSpot = 'hltOnlineBeamSpot',
        convertToLegacy = True
    )

    # SwitchProducer: hltSiPixelRecHits
    if not isinstance(process.hltSiPixelRecHits, SwitchProducerCUDA):
        # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA
        process.hltSiPixelRecHits = SwitchProducerCUDA(
            # legacy producer
            cpu = cms.EDAlias(
                hltSiPixelRecHitSoA = cms.VPSet(
                    cms.PSet(type = cms.string("SiPixelRecHitedmNewDetSetVector")),
                    cms.PSet(type = cms.string("uintAsHostProduct"))
                )
            )
        )

    elif not hasattr(process.hltSiPixelRecHits, 'cpu'):
        raise Exception('unsupported configuration: "process.hltSiPixelRecHits" is a SwitchProducerCUDA, but does not have a "cpu" branch')

    # conversion from SoA to legacy format
    _clone_if_missing(process.hltSiPixelRecHits, 'cuda', 'RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDA_cfi', 'siPixelRecHitFromCUDA',
        pixelRecHitSrc = 'hltSiPixelRecHitsCUDA',
        src = 'hltSiPixelClusters'
    )


    # Tasks and Sequences

    if 'HLTDoLocalPixelTask' not in process.__dict__:
        process.HLTDoLocalPixelTask = cms.Task(
            process.hltOnlineBeamSpotToCUDA,   # transfer the beamspot to the gpu
            process.hltSiPixelClustersCUDA,    # reconstruct the pixel digis and clusters on the gpu
            process.hltSiPixelRecHitsCUDA,     # reconstruct the pixel rechits on the gpu
            process.hltSiPixelDigisSoA,        # copy the pixel digis (except errors) and clusters to the host
            process.hltSiPixelDigiErrorsSoA,   # copy the pixel digis errors to the host
            process.hltSiPixelDigisLegacy,     # legacy pixel digis producer
            process.hltSiPixelDigis,           # SwitchProducer wrapping a subset of the legacy pixel digis producer, or the conversion of the pixel digis errors from SoA
            process.hltSiPixelClustersLegacy,  # legacy pixel cluster producer
            process.hltSiPixelClusters,        # SwitchProducer wrapping a subset of the legacy pixel cluster producer, or the conversion of the pixel digis (except errors) and clusters from SoA
            process.hltSiPixelClustersCache,   # legacy module, used by the legacy pixel quadruplet producer
            process.hltSiPixelRecHitSoA,       # pixel rechits on cpu, in SoA & legacy format
            process.hltSiPixelRecHits,         # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA
        )

    elif not isinstance(process.HLTDoLocalPixelTask, cms.Task):
        raise Exception('unsupported configuration: "process.HLTDoLocalPixelTask" already exists, but it is not a Task')

    # redefine HLTDoLocalPixelSequence (it was emptied at the start of this function)
    process.HLTDoLocalPixelSequence = cms.Sequence(process.HLTDoLocalPixelTask)


    # workaround for old version of AlCa_LumiPixelsCounts paths
    for AlCaPathName in ['AlCa_LumiPixelsCounts_Random_v1', 'AlCa_LumiPixelsCounts_ZeroBias_v1']:
        if AlCaPathName in process.__dict__:
            AlCaPath = getattr(process, AlCaPathName)
            # replace hltSiPixelDigis+hltSiPixelClusters with HLTDoLocalPixelSequence
            hasSiPixelDigis, hasSiPixelClusters = False, False
            for (itemLabel, itemName) in AlCaPath.directDependencies():
                if itemLabel != 'modules': continue
                if itemName == 'hltSiPixelDigis': hasSiPixelDigis = True
                elif itemName == 'hltSiPixelClusters': hasSiPixelClusters = True
            if hasSiPixelDigis and hasSiPixelClusters:
                AlCaPath.remove(process.hltSiPixelClusters)
                AlCaPath.replace(process.hltSiPixelDigis, process.HLTDoLocalPixelSequence)


    # done
    return process
예제 #32
0
##
## Change the HFShowerLibrary file from Run 2
##
from Configuration.Eras.Modifier_run2_common_cff import run2_common

##
## Change HCAL numbering scheme in 2017
##
from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
run2_HCAL_2017.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) )

##
## Disable Castor from Run 3, enable PPS (***temporarily disable PPS***)
##
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( g4SimHits, CastorSD = dict( useShowerLibrary = False ) ) 
run3_common.toModify( g4SimHits, LHCTransport = True )

##
## Disable PPS from Run 3 PbPb runs
##
from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3
pp_on_PbPb_run3.toModify( g4SimHits, LHCTransport = False )

##
## Change ECAL time slices
##
from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
phase2_timing.toModify( g4SimHits, ECalSD = dict(
                             StoreLayerTimeSim = True,
                             TimeSliceUnit = 0.001 )
예제 #33
0
def customisePixelTrackReconstruction(process):

    if not 'HLTRecoPixelTracksSequence' in process.__dict__:
        return process

    hasHLTPixelVertexReco = 'HLTRecopixelvertexingSequence' in process.__dict__

    # FIXME replace the Sequences with empty ones to avoid expanding them during the (re)definition of Modules and EDAliases
    process.HLTRecoPixelTracksSequence = cms.Sequence()
    if hasHLTPixelVertexReco:
        process.HLTRecopixelvertexingSequence = cms.Sequence()


    # Modules and EDAliases
    # referenced in process.HLTRecoPixelTracksTask

    # SwitchProducer: hltPixelTracksSoA
    if not ('hltPixelTracksSoA' in process.__dict__ and isinstance(process.hltPixelTracksSoA, SwitchProducerCUDA)):
        # build pixel ntuplets and pixel tracks in SoA format on gpu
        _clone(process, 'hltPixelTracksCUDA', 'RecoPixelVertexing.PixelTriplets.pixelTracksCUDA_cfi', 'pixelTracksCUDA',
            pixelRecHitSrc = 'hltSiPixelRecHitsCUDA',
            onGPU = True,
            idealConditions = False
        )
        # use quality cuts tuned for Run-2 ideal conditions for all Run-3 workflows
        run3_common.toModify(process.hltPixelTracksCUDA, idealConditions = True)

        process.hltPixelTracksSoA = SwitchProducerCUDA(
            # build pixel ntuplets and pixel tracks in SoA format on cpu
            cpu = process.hltPixelTracksCUDA.clone(
                pixelRecHitSrc = 'hltSiPixelRecHitSoA',
                onGPU = False
            )
        )

    elif hasattr(process.hltPixelTracksSoA, 'cpu'):
        # if cpu branch of SwitchProducerCUDA exists, take hltPixelTracksCUDA (gpu)
        # from hltPixelTracksSoA.cpu (cpu) to enforce same configuration parameters
        process.hltPixelTracksCUDA = process.hltPixelTracksSoA.cpu.clone(
            pixelRecHitSrc = "hltSiPixelRecHitsCUDA",
            onGPU = True
        )

    else:
        raise Exception('unsupported configuration: "process.hltPixelTracksSoA" is a SwitchProducerCUDA, but does not have a "cpu" branch')

    # transfer the pixel tracks in SoA format to cpu
    _clone_if_missing(process.hltPixelTracksSoA, 'cuda', 'RecoPixelVertexing.PixelTrackFitting.pixelTracksSoA_cfi', 'pixelTracksSoA',
        src = 'hltPixelTracksCUDA'
    )


    # convert the pixel tracks from SoA to legacy format
    if process.hltPixelTracks.type_() != 'PixelTrackProducerFromSoA':
        _clone(process, 'hltPixelTracks', 'RecoPixelVertexing.PixelTrackFitting.pixelTrackProducerFromSoA_cfi', 'pixelTrackProducerFromSoA',
            beamSpot = 'hltOnlineBeamSpot',
            pixelRecHitLegacySrc = 'hltSiPixelRecHits',
            trackSrc = 'hltPixelTracksSoA'
        )


    # referenced in process.HLTRecopixelvertexingTask
    if hasHLTPixelVertexReco:

        # SwitchProducer: hltPixelVerticesSoA
        if not ('hltPixelVerticesSoA' in process.__dict__ and isinstance(process.hltPixelVerticesSoA, SwitchProducerCUDA)):
            # build pixel vertices in SoA format on gpu
            _clone(process, 'hltPixelVerticesCUDA', 'RecoPixelVertexing.PixelVertexFinding.pixelVerticesCUDA_cfi', 'pixelVerticesCUDA',
                pixelTrackSrc = 'hltPixelTracksCUDA',
                onGPU = True
            )

            # build or transfer pixel vertices in SoA format on cpu
            process.hltPixelVerticesSoA = SwitchProducerCUDA(
                # build pixel vertices in SoA format on cpu
                cpu = process.hltPixelVerticesCUDA.clone(
                    pixelTrackSrc = 'hltPixelTracksSoA',
                    onGPU = False
                )
            )

        elif hasattr(process.hltPixelVerticesSoA, 'cpu'):
            # if cpu branch of SwitchProducerCUDA exists, take hltPixelVerticesCUDA (gpu)
            # from hltPixelVerticesSoA.cpu (cpu) to enforce same configuration parameters
            process.hltPixelVerticesCUDA = process.hltPixelVerticesSoA.cpu.clone(
                pixelTrackSrc = 'hltPixelTracksCUDA',
                onGPU = True
            )

        else:
            raise Exception('unsupported configuration: "process.hltPixelVerticesSoA" is a SwitchProducerCUDA, but does not have a "cpu" branch')

        # transfer the pixel vertices in SoA format to cpu
        _clone_if_missing(process.hltPixelVerticesSoA, 'cuda', 'RecoPixelVertexing.PixelVertexFinding.pixelVerticesSoA_cfi', 'pixelVerticesSoA',
            src = 'hltPixelVerticesCUDA'
        )


        # convert the pixel vertices from SoA to legacy format
        if process.hltPixelVertices.type_() != 'PixelVertexProducerFromSoA':
            _clone(process, 'hltPixelVertices', 'RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi', 'pixelVertexFromSoA',
                src = 'hltPixelVerticesSoA',
                TrackCollection = 'hltPixelTracks',
                beamSpot = 'hltOnlineBeamSpot'
            )


    # Tasks and Sequences

    if 'HLTRecoPixelTracksTask' not in process.__dict__:
        process.HLTRecoPixelTracksTask = cms.Task(
            process.hltPixelTracksTrackingRegions,         # from the original sequence
            process.hltPixelTracksCUDA,                    # pixel ntuplets on gpu, in SoA format
            process.hltPixelTracksSoA,                     # pixel ntuplets on cpu, in SoA format
            process.hltPixelTracks,                        # pixel tracks on cpu, in legacy format
        )

    elif not isinstance(process.HLTRecoPixelTracksTask, cms.Task):
        raise Exception('unsupported configuration: "process.HLTRecoPixelTracksTask" already exists, but it is not a Task')

    # redefine HLTRecoPixelTracksSequence (it was emptied at the start of this function)
    process.HLTRecoPixelTracksSequence = cms.Sequence(process.HLTRecoPixelTracksTask)

    if hasHLTPixelVertexReco:

        if 'HLTRecopixelvertexingTask' not in process.__dict__:
            process.HLTRecopixelvertexingTask = cms.Task(
                process.HLTRecoPixelTracksTask,
                process.hltPixelVerticesCUDA,              # pixel vertices on gpu, in SoA format
                process.hltPixelVerticesSoA,               # pixel vertices on cpu, in SoA format
                process.hltPixelVertices,                  # pixel vertices on cpu, in legacy format
                process.hltTrimmedPixelVertices,           # from the original sequence
            )

        elif not isinstance(process.HLTRecopixelvertexingTask, cms.Task):
            raise Exception('unsupported configuration: "process.HLTRecopixelvertexingTask" already exists, but it is not a Task')

        # redefine HLTRecopixelvertexingSequence (it was emptied at the start of this function)
        process.HLTRecopixelvertexingSequence = cms.Sequence(
            process.hltPixelTracksFitter +             # not used here, kept for compatibility with legacy sequences
            process.hltPixelTracksFilter,              # not used here, kept for compatibility with legacy sequences
            process.HLTRecopixelvertexingTask,
        )


    # done
    return process
예제 #34
0
    )
)
simSiStripDigis = cms.EDAlias(
    mix = cms.VPSet(
      cms.PSet(type = cms.string('SiStripDigiedmDetSetVector')),
      cms.PSet(type = cms.string('SiStripRawDigiedmDetSetVector')),
      cms.PSet(type = cms.string('StripDigiSimLinkedmDetSetVector'))
    )
)
#mergedtruth = cms.EDAlias(
#    mix = cms.VPSet(
#      cms.PSet(type = cms.string('TrackingParticles')),
#      cms.PSet(type = cms.string('TrackingVertexs'))
#    )
#)

genPUProtons = cms.EDAlias(
    mixData = cms.VPSet(
        cms.PSet( type = cms.string('recoGenParticles') )
    )
)

# no castor,pixel,strip digis in fastsim
from Configuration.Eras.Modifier_fastSim_cff import fastSim
fastSim.toModify(simCastorDigis, mix = None)
fastSim.toModify(simSiPixelDigis, mix = None)
fastSim.toModify(simSiStripDigis, mix = None)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(simCastorDigis, mix = None)
예제 #35
0
                           'keep recoGsfTracks_lowPtGsfEleGsfTracks_*_*',
                           'keep floatedmValueMap_lowPtGsfElectronSeedValueMaps_*_*',
                           'keep floatedmValueMap_lowPtGsfElectronID_*_*',
                           'keep *_lowPtGsfLinks_*_*',
                           'keep *_gsfTracksOpenConversions_*_*',
                           ]
bParking.toModify(MicroEventContent, outputCommands = MicroEventContent.outputCommands + _bParking_extraCommands)

# --- Only for 2018 data & MC
_run2_HCAL_2018_extraCommands = ["keep *_packedPFCandidates_hcalDepthEnergyFractions_*"]
from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
run2_HCAL_2018.toModify(MicroEventContent, outputCommands = MicroEventContent.outputCommands + _run2_HCAL_2018_extraCommands)

_run3_common_extraCommands = ["drop *_packedPFCandidates_hcalDepthEnergyFractions_*"]
from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify(MicroEventContent, outputCommands = MicroEventContent.outputCommands + _run3_common_extraCommands)
# --- 

MicroEventContentMC = cms.PSet(
    outputCommands = cms.untracked.vstring(MicroEventContent.outputCommands)
)
MicroEventContentMC.outputCommands += MicroEventContentGEN.outputCommands
MicroEventContentMC.outputCommands += [
                                        'keep PileupSummaryInfos_slimmedAddPileupInfo_*_*',
                                        # RUN
                                        'keep L1GtTriggerMenuLite_l1GtTriggerMenuLite__*'
                                      ]


MiniAODOverrideBranchesSplitLevel = cms.untracked.VPSet( [
cms.untracked.PSet(branch = cms.untracked.string("patPackedCandidates_packedPFCandidates__*"),splitLevel=cms.untracked.int32(99)),