text: # hltGetConfiguration --full --data /dev/CMSSW_12_3_0/Fake1 --type Fake1 --unprescale --process HLTFake1 --globaltag auto:run2_hlt_Fake1 --input file:RelVal_Raw_Fake1_DATA.root
  
  # /dev/CMSSW_12_3_0/Fake1/V8 (CMSSW_12_3_0)
  
  import FWCore.ParameterSet.Config as cms
  
  process = cms.Process( "HLTFake1" )
  
  process.HLTConfigVersion = cms.PSet(
    tableName = cms.string('/dev/CMSSW_12_3_0/Fake1/V8')
  )
  
  process.streams = cms.PSet(  A = cms.vstring( 'InitialPD' ) )
  process.datasets = cms.PSet(  InitialPD = cms.vstring( 'HLT_Physics_v1',
    'HLT_Random_v1',
    'HLT_ZeroBias_v1' ) )
  
  process.GlobalTag = cms.ESSource( "PoolDBESSource",
      DBParameters = cms.PSet( 
        authenticationPath = cms.untracked.string( "." ),
        connectionRetrialTimeOut = cms.untracked.int32( 60 ),
        idleConnectionCleanupPeriod = cms.untracked.int32( 10 ),
        messageLevel = cms.untracked.int32( 0 ),
        enablePoolAutomaticCleanUp = cms.untracked.bool( False ),
        enableConnectionSharing = cms.untracked.bool( True ),
        enableReadOnlySessionOnUpdateConnection = cms.untracked.bool( False ),
        connectionTimeOut = cms.untracked.int32( 0 ),
        connectionRetrialPeriod = cms.untracked.int32( 10 )
      ),
      connect = cms.string( "frontier://FrontierProd/CMS_CONDITIONS" ),
      globaltag = cms.string( "GR_H_V39" ),
      snapshotTime = cms.string( "" ),
      toGet = cms.VPSet( 
      ),
      DumpStat = cms.untracked.bool( False ),
      ReconnectEachRun = cms.untracked.bool( True ),
      RefreshAlways = cms.untracked.bool( False ),
      RefreshEachRun = cms.untracked.bool( True ),
      RefreshOpenIOVs = cms.untracked.bool( False )
  )
  
  process.CastorDbProducer = cms.ESProducer( "CastorDbProducer",
    appendToDataLabel = cms.string( "" )
  )
  process.HcalTopologyIdealEP = cms.ESProducer( "HcalTopologyIdealEP",
    Exclude = cms.untracked.string( "" ),
    MergePosition = cms.untracked.bool( True ),
    appendToDataLabel = cms.string( "" )
  )
  process.hcalDDDRecConstants = cms.ESProducer( "HcalDDDRecConstantsESModule",
    appendToDataLabel = cms.string( "" )
  )
  process.hcalDDDSimConstants = cms.ESProducer( "HcalDDDSimConstantsESModule",
    appendToDataLabel = cms.string( "" )
  )
  
  process.FastTimerService = cms.Service( "FastTimerService",
      printEventSummary = cms.untracked.bool( False ),
      printRunSummary = cms.untracked.bool( True ),
      printJobSummary = cms.untracked.bool( True ),
      writeJSONSummary = cms.untracked.bool( False ),
      jsonFileName = cms.untracked.string( "resources.json" ),
      enableDQM = cms.untracked.bool( True ),
      enableDQMbyModule = cms.untracked.bool( False ),
      enableDQMbyPath = cms.untracked.bool( False ),
      enableDQMbyLumiSection = cms.untracked.bool( True ),
      enableDQMbyProcesses = cms.untracked.bool( True ),
      enableDQMTransitions = cms.untracked.bool( False ),
      dqmTimeRange = cms.untracked.double( 1000.0 ),
      dqmTimeResolution = cms.untracked.double( 5.0 ),
      dqmMemoryRange = cms.untracked.double( 1000000.0 ),
      dqmMemoryResolution = cms.untracked.double( 5000.0 ),
      dqmPathTimeRange = cms.untracked.double( 100.0 ),
      dqmPathTimeResolution = cms.untracked.double( 0.5 ),
      dqmPathMemoryRange = cms.untracked.double( 1000000.0 ),
      dqmPathMemoryResolution = cms.untracked.double( 5000.0 ),
      dqmModuleTimeRange = cms.untracked.double( 40.0 ),
      dqmModuleTimeResolution = cms.untracked.double( 0.2 ),
      dqmModuleMemoryRange = cms.untracked.double( 100000.0 ),
      dqmModuleMemoryResolution = cms.untracked.double( 500.0 ),
      dqmLumiSectionsRange = cms.untracked.uint32( 2500 ),
      dqmPath = cms.untracked.string( "HLT/TimerService" ),
  )
  process.MessageLogger = cms.Service( "MessageLogger",
      suppressWarning = cms.untracked.vstring( 'hltOnlineBeamSpot',
        'hltCtf3HitL1SeededWithMaterialTracks',
        'hltL3MuonsOIState',
        'hltPixelTracksForHighMult',
        'hltHITPixelTracksHE',
        'hltHITPixelTracksHB',
        'hltCtfL1SeededWithMaterialTracks',
        'hltRegionalTracksForL3MuonIsolation',
        'hltSiPixelClusters',
        'hltActivityStartUpElectronPixelSeeds',
        'hltLightPFTracks',
        'hltPixelVertices3DbbPhi',
        'hltL3MuonsIOHit',
        'hltPixelTracks',
        'hltSiPixelDigis',
        'hltL3MuonsOIHit',
        'hltL1SeededElectronGsfTracks',
        'hltL1SeededStartUpElectronPixelSeeds',
        'hltBLifetimeRegionalCtfWithMaterialTracksbbPhiL1FastJetFastPV',
        'hltCtfActivityWithMaterialTracks' ),
      suppressFwkInfo = cms.untracked.vstring(  ),
      suppressInfo = cms.untracked.vstring(  ),
      suppressDebug = cms.untracked.vstring(  ),
      debugModules = cms.untracked.vstring(  ),
      cerr = cms.untracked.PSet( 
        INFO = cms.untracked.PSet(  limit = cms.untracked.int32( 0 ) ),
        noTimeStamps = cms.untracked.bool( False ),
        FwkReport = cms.untracked.PSet( 
          reportEvery = cms.untracked.int32( 1 ),
          limit = cms.untracked.int32( 0 )
        ),
        default = cms.untracked.PSet(  limit = cms.untracked.int32( 10000000 ) ),
        Root_NoDictionary = cms.untracked.PSet(  limit = cms.untracked.int32( 0 ) ),
        FwkJob = cms.untracked.PSet(  limit = cms.untracked.int32( 0 ) ),
        FwkSummary = cms.untracked.PSet( 
          reportEvery = cms.untracked.int32( 1 ),
          limit = cms.untracked.int32( 10000000 )
        ),
        threshold = cms.untracked.string( "INFO" ),
      ),
      suppressError = cms.untracked.vstring( 'hltOnlineBeamSpot',
        'hltL3MuonCandidates',
        'hltL3TkTracksFromL2OIState',
        'hltPFJetCtfWithMaterialTracks',
        'hltL3TkTracksFromL2IOHit',
        'hltL3TkTracksFromL2OIHit' )
  )
  
  process.hltGetConditions = cms.EDAnalyzer( "EventSetupRecordDataGetter",
      verbose = cms.untracked.bool( False ),
      toGet = cms.VPSet( 
      )
  )
  process.hltGetRaw = cms.EDAnalyzer( "HLTGetRaw",
      RawDataCollection = cms.InputTag( "rawDataCollector" )
  )
  process.hltBoolFalse = cms.EDFilter( "HLTBool",
      result = cms.bool( False )
  )
  process.hltTriggerType = cms.EDFilter( "HLTTriggerTypeFilter",
      SelectedTriggerType = cms.int32( 1 )
  )
  process.hltGtDigis = cms.EDProducer( "L1GlobalTriggerRawToDigi",
      DaqGtInputTag = cms.InputTag( "rawDataCollector" ),
      DaqGtFedId = cms.untracked.int32( 813 ),
      ActiveBoardsMask = cms.uint32( 0xffff ),
      UnpackBxInEvent = cms.int32( 5 ),
      Verbosity = cms.untracked.int32( 0 )
  )
  process.hltCaloStage1Digis = cms.EDProducer( "L1TRawToDigi",
      FedIds = cms.vint32( 1352 ),
      Setup = cms.string( "stage1::CaloSetup" ),
      FWId = cms.uint32( 4294967295 ),
      DmxFWId = cms.uint32( 0 ),
      FWOverride = cms.bool( False ),
      TMTCheck = cms.bool( True ),
      CTP7 = cms.untracked.bool( False ),
      MTF7 = cms.untracked.bool( False ),
      InputLabel = cms.InputTag( "rawDataCollector" ),
      lenSlinkHeader = cms.untracked.int32( 8 ),
      lenSlinkTrailer = cms.untracked.int32( 8 ),
      lenAMCHeader = cms.untracked.int32( 8 ),
      lenAMCTrailer = cms.untracked.int32( 0 ),
      lenAMC13Header = cms.untracked.int32( 8 ),
      lenAMC13Trailer = cms.untracked.int32( 8 ),
      debug = cms.untracked.bool( False ),
      MinFeds = cms.uint32( 0 )
  )
  process.hltCaloStage1LegacyFormatDigis = cms.EDProducer( "L1TCaloUpgradeToGCTConverter",
      bxMin = cms.int32( 0 ),
      bxMax = cms.int32( 0 ),
      InputCollection = cms.InputTag( "hltCaloStage1Digis" ),
      InputRlxTauCollection = cms.InputTag( 'hltCaloStage1Digis','rlxTaus' ),
      InputIsoTauCollection = cms.InputTag( 'hltCaloStage1Digis','isoTaus' ),
      InputHFSumsCollection = cms.InputTag( 'hltCaloStage1Digis','HFRingSums' ),
      InputHFCountsCollection = cms.InputTag( 'hltCaloStage1Digis','HFBitCounts' )
  )
  process.hltL1GtObjectMap = cms.EDProducer( "L1GlobalTrigger",
      GmtInputTag = cms.InputTag( "hltGtDigis" ),
      GctInputTag = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      CastorInputTag = cms.InputTag( "castorL1Digis" ),
      TechnicalTriggersInputTags = cms.VInputTag( 'simBscDigis' ),
      ProduceL1GtDaqRecord = cms.bool( False ),
      ProduceL1GtEvmRecord = cms.bool( False ),
      ProduceL1GtObjectMapRecord = cms.bool( True ),
      WritePsbL1GtDaqRecord = cms.bool( False ),
      ReadTechnicalTriggerRecords = cms.bool( True ),
      EmulateBxInEvent = cms.int32( 1 ),
      RecordLength = cms.vint32( 3, 0 ),
      AlternativeNrBxBoardDaq = cms.uint32( 0 ),
      AlternativeNrBxBoardEvm = cms.uint32( 0 ),
      BstLengthBytes = cms.int32( -1 ),
      AlgorithmTriggersUnprescaled = cms.bool( True ),
      AlgorithmTriggersUnmasked = cms.bool( False ),
      TechnicalTriggersUnprescaled = cms.bool( True ),
      TechnicalTriggersUnmasked = cms.bool( False ),
      TechnicalTriggersVetoUnmasked = cms.bool( True )
  )
  process.hltL1extraParticles = cms.EDProducer( "L1ExtraParticlesProd",
      muonSource = cms.InputTag( "hltGtDigis" ),
      etTotalSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      nonIsolatedEmSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','nonIsoEm' ),
      etMissSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      htMissSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      produceMuonParticles = cms.bool( True ),
      forwardJetSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','forJets' ),
      centralJetSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','cenJets' ),
      produceCaloParticles = cms.bool( True ),
      tauJetSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','tauJets' ),
      isoTauJetSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','isoTauJets' ),
      isolatedEmSource = cms.InputTag( 'hltCaloStage1LegacyFormatDigis','isoEm' ),
      etHadSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      hfRingEtSumsSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      hfRingBitCountsSource = cms.InputTag( "hltCaloStage1LegacyFormatDigis" ),
      centralBxOnly = cms.bool( True ),
      ignoreHtMiss = cms.bool( False )
  )
  process.hltScalersRawToDigi = cms.EDProducer( "ScalersRawToDigi",
      scalersInputTag = cms.InputTag( "rawDataCollector" )
  )
  process.hltOnlineBeamSpot = cms.EDProducer( "BeamSpotOnlineProducer",
      changeToCMSCoordinates = cms.bool( False ),
      maxZ = cms.double( 40.0 ),
      setSigmaZ = cms.double( 0.0 ),
      beamMode = cms.untracked.uint32( 11 ),
      src = cms.InputTag( "hltScalersRawToDigi" ),
      gtEvmLabel = cms.InputTag( "" ),
      maxRadius = cms.double( 2.0 ),
      useTransientRecord = cms.bool( False )
  )
  process.hltPrePhysics = cms.EDFilter( "HLTPrescaler",
      offset = cms.uint32( 0 ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
  )
  process.hltBoolEnd = cms.EDFilter( "HLTBool",
      result = cms.bool( True )
  )
  process.hltRandomEventsFilter = cms.EDFilter( "HLTTriggerTypeFilter",
      SelectedTriggerType = cms.int32( 3 )
  )
  process.hltPreRandom = cms.EDFilter( "HLTPrescaler",
      offset = cms.uint32( 0 ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
  )
  process.hltL1sL1ZeroBias = cms.EDFilter( "HLTLevel1GTSeed",
      saveTags = cms.bool( True ),
      L1UseL1TriggerObjectMaps = cms.bool( True ),
      L1NrBxInEvent = cms.int32( 3 ),
      L1TechTriggerSeeding = cms.bool( False ),
      L1UseAliasesForSeeding = cms.bool( True ),
      L1SeedsLogicalExpression = cms.string( "L1_ZeroBias" ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" ),
      L1GtObjectMapTag = cms.InputTag( "hltL1GtObjectMap" ),
      L1CollectionsTag = cms.InputTag( "hltL1extraParticles" ),
      L1MuonCollectionTag = cms.InputTag( "hltL1extraParticles" )
  )
  process.hltPreZeroBias = cms.EDFilter( "HLTPrescaler",
      offset = cms.uint32( 0 ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
  )
  process.hltFEDSelector = cms.EDProducer( "EvFFEDSelector",
      inputTag = cms.InputTag( "rawDataCollector" ),
      fedList = cms.vuint32( 1023 )
  )
  process.hltTriggerSummaryAOD = cms.EDProducer( "TriggerSummaryProducerAOD",
      throw = cms.bool( False ),
      processName = cms.string( "@" ),
      moduleLabelPatternsToMatch = cms.vstring( 'hlt*' ),
      moduleLabelPatternsToSkip = cms.vstring(  )
  )
  process.hltTriggerSummaryRAW = cms.EDProducer( "TriggerSummaryProducerRAW",
      processName = cms.string( "@" )
  )
  process.hltPreHLTAnalyzerEndpath = cms.EDFilter( "HLTPrescaler",
      offset = cms.uint32( 0 ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
  )
  process.hltL1GtTrigReport = cms.EDAnalyzer( "L1GtTrigReport",
      UseL1GlobalTriggerRecord = cms.bool( False ),
      L1GtRecordInputTag = cms.InputTag( "hltGtDigis" ),
      PrintVerbosity = cms.untracked.int32( 10 ),
      PrintOutput = cms.untracked.int32( 3 )
  )
  process.hltTrigReport = cms.EDAnalyzer( "HLTrigReport",
      HLTriggerResults = cms.InputTag( 'TriggerResults','','@currentProcess' ),
      reportBy = cms.untracked.string( "job" ),
      resetBy = cms.untracked.string( "never" ),
      serviceBy = cms.untracked.string( "never" ),
      ReferencePath = cms.untracked.string( "HLTriggerFinalPath" ),
      ReferenceRate = cms.untracked.double( 100.0 )
  )
  process.hltPreAOutput = cms.EDFilter( "HLTPrescaler",
      offset = cms.uint32( 0 ),
      L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
  )
  
  process.hltOutputA = cms.OutputModule( "PoolOutputModule",
      fileName = cms.untracked.string( "outputA.root" ),
      fastCloning = cms.untracked.bool( False ),
      dataset = cms.untracked.PSet(
          filterName = cms.untracked.string( "" ),
          dataTier = cms.untracked.string( "RAW" )
      ),
      SelectEvents = cms.untracked.PSet(  SelectEvents = cms.vstring( 'HLT_Physics_v1',
    'HLT_Random_v1',
    'HLT_ZeroBias_v1' ) ),
      outputCommands = cms.untracked.vstring( 'drop *',
        'keep *_hltL1GtObjectMap_*_*',
        'keep FEDRawDataCollection_rawDataCollector_*_*',
        'keep FEDRawDataCollection_source_*_*',
        'keep edmTriggerResults_*_*_*',
        'keep triggerTriggerEvent_*_*_*' )
  )
  
  process.HLTL1UnpackerSequence = cms.Sequence( process.hltGtDigis + process.hltCaloStage1Digis + process.hltCaloStage1LegacyFormatDigis + process.hltL1GtObjectMap + process.hltL1extraParticles )
  process.HLTBeamSpot = cms.Sequence( process.hltScalersRawToDigi + process.hltOnlineBeamSpot )
  process.HLTBeginSequence = cms.Sequence( process.hltTriggerType + process.HLTL1UnpackerSequence + process.HLTBeamSpot )
  process.HLTEndSequence = cms.Sequence( process.hltBoolEnd )
  
  process.HLTriggerFirstPath = cms.Path( process.hltGetConditions + process.hltGetRaw + process.hltBoolFalse )
  process.HLT_Physics_v1 = cms.Path( process.HLTBeginSequence + process.hltPrePhysics + process.HLTEndSequence )
  process.HLT_Random_v1 = cms.Path( process.hltRandomEventsFilter + process.hltGtDigis + process.hltPreRandom + process.HLTEndSequence )
  process.HLT_ZeroBias_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1ZeroBias + process.hltPreZeroBias + process.HLTEndSequence )
  process.HLTriggerFinalPath = cms.Path( process.hltGtDigis + process.hltScalersRawToDigi + process.hltFEDSelector + process.hltTriggerSummaryAOD + process.hltTriggerSummaryRAW + process.hltBoolFalse )
  process.HLTAnalyzerEndpath = cms.EndPath( process.hltGtDigis + process.hltPreHLTAnalyzerEndpath + process.hltL1GtTrigReport + process.hltTrigReport )
  process.AOutput = cms.EndPath( process.hltPreAOutput + process.hltOutputA )
  
  # load the DQMStore and DQMRootOutputModule
  process.load( "DQMServices.Core.DQMStore_cfi" )
  
  process.dqmOutput = cms.OutputModule("DQMRootOutputModule",
      fileName = cms.untracked.string("DQMIO.root")
  )
  
  process.DQMOutput = cms.FinalPath( process.dqmOutput )
  
  
  
  process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.HLT_Physics_v1, process.HLT_Random_v1, process.HLT_ZeroBias_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.AOutput, process.DQMOutput, ))
  
  
  # source module (EDM inputs)
  process.source = cms.Source( "PoolSource",
      fileNames = cms.untracked.vstring(
          'file:RelVal_Raw_Fake1_DATA.root',
      ),
      inputCommands = cms.untracked.vstring(
          'keep *'
      )
  )
  
  # limit the number of events to be processed
  process.maxEvents = cms.untracked.PSet(
      input = cms.untracked.int32( 100 )
  )
  
  # enable TrigReport, TimeReport and MultiThreading
  process.options = cms.untracked.PSet(
      wantSummary = cms.untracked.bool( True ),
      numberOfThreads = cms.untracked.uint32( 4 ),
      numberOfStreams = cms.untracked.uint32( 0 ),
  )
  
  # override the GlobalTag, connection string and pfnPrefix
  if 'GlobalTag' in process.__dict__:
      from Configuration.AlCa.GlobalTag import GlobalTag as customiseGlobalTag
      process.GlobalTag = customiseGlobalTag(process.GlobalTag, globaltag = 'auto:run2_hlt_Fake1')
  
  # show summaries from trigger analysers used at HLT
  if 'MessageLogger' in process.__dict__:
      process.MessageLogger.TriggerSummaryProducerAOD = cms.untracked.PSet()
      process.MessageLogger.L1GtTrigReport = cms.untracked.PSet()
      process.MessageLogger.L1TGlobalSummary = cms.untracked.PSet()
      process.MessageLogger.HLTrigReport = cms.untracked.PSet()
      process.MessageLogger.FastReport = cms.untracked.PSet()
      process.MessageLogger.ThroughputService = cms.untracked.PSet()
  
  # add specific customizations
  _customInfo = {}
  _customInfo['menuType'  ]= "Fake1"
  _customInfo['globalTags']= {}
  _customInfo['globalTags'][True ] = "auto:run2_hlt_Fake1"
  _customInfo['globalTags'][False] = "auto:run2_mc_Fake1"
  _customInfo['inputFiles']={}
  _customInfo['inputFiles'][True]  = "file:RelVal_Raw_Fake1_DATA.root"
  _customInfo['inputFiles'][False] = "file:RelVal_Raw_Fake1_MC.root"
  _customInfo['maxEvents' ]=  100
  _customInfo['globalTag' ]= "auto:run2_hlt_Fake1"
  _customInfo['inputFile' ]=  ['file:RelVal_Raw_Fake1_DATA.root']
  _customInfo['realData'  ]=  True
  
  from HLTrigger.Configuration.customizeHLTforALL import customizeHLTforAll
  process = customizeHLTforAll(process,"Fake1",_customInfo)
  
  from HLTrigger.Configuration.customizeHLTforCMSSW import customizeHLTforCMSSW
  process = customizeHLTforCMSSW(process,"Fake1")
  
  # Eras-based customisations
  from HLTrigger.Configuration.Eras import modifyHLTforEras
  modifyHLTforEras(process)
  
  