Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-14 04:15:57

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun testHGCalDigi_cfg.py geometry=D111 type=DDD data=mu noise=none
0004 #                               threshold=none
0005 #
0006 #   Options for geometry: D105, D111, D114, V17Shift, D104
0007 #               type: DDD, DD4hep
0008 #               data: mu, tt
0009 #               noise: none, ok
0010 #               threshold: none, ok
0011 #
0012 ###############################################################################
0013 import FWCore.ParameterSet.Config as cms
0014 import os, sys, imp, re, random
0015 import FWCore.ParameterSet.VarParsing as VarParsing
0016 
0017 ####################################################################
0018 ### SETUP OPTIONS
0019 options = VarParsing.VarParsing('standard')
0020 options.register('geometry',
0021                  "D111",
0022                   VarParsing.VarParsing.multiplicity.singleton,
0023                   VarParsing.VarParsing.varType.string,
0024                   "geometry of operations: D105, D111, D114, V17Shift, D104")
0025 options.register('type',
0026                  "DDD",
0027                   VarParsing.VarParsing.multiplicity.singleton,
0028                   VarParsing.VarParsing.varType.string,
0029                   "type of operations: DDD, DD4hep")
0030 options.register('data',
0031                  "mu",
0032                  VarParsing.VarParsing.multiplicity.singleton,
0033                  VarParsing.VarParsing.varType.string,
0034                  "data of operations: mu, tt")
0035 options.register('noise',
0036                  "ok",
0037                   VarParsing.VarParsing.multiplicity.singleton,
0038                   VarParsing.VarParsing.varType.string,
0039                  "noise of operations: none, ok")
0040 options.register('threshold',
0041                  "ok",
0042                   VarParsing.VarParsing.multiplicity.singleton,
0043                   VarParsing.VarParsing.varType.string,
0044                  "threshold of operations: none, ok")
0045 
0046 ### get and parse the command line arguments
0047 options.parseArguments()
0048 
0049 print(options)
0050 
0051 ####################################################################
0052 # Use the options
0053 if (options.type == "DD4hep"):
0054     from Configuration.ProcessModifiers.dd4hep_cff import dd4hep
0055     if (options.geometry == "V17Shift"):
0056         from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0057         process = cms.Process('SingleMuonSim',Phase2C17I13M9,dd4hep)
0058         geomFile = "Geometry.HGCalCommonData.testHGCal" + options.type + options.geometry + "Reco_cff"
0059     elif (options.geometry == "D104"):
0060         from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0061         process = cms.Process('SingleMuonSim',Phase2C22I13M9,dd4hep)
0062         geomFile = "Configuration.Geometry.Geometry" + options.type +"ExtendedRun4" + options.geometry + "Reco_cff"
0063     else:
0064         from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0065         process = cms.Process('SingleMuonSim',Phase2C17I13M9,dd4hep)
0066         geomFile = "Configuration.Geometry.Geometry" + options.type +"ExtendedRun4" + options.geometry + "Reco_cff"
0067 else:
0068     if (options.geometry == "V17Shift"):
0069         from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0070         process = cms.Process('SingleMuonSim',Phase2C17I13M9)
0071         geomFile = "Geometry.HGCalCommonData.testHGCal" + options.geometry + "Reco_cff"
0072     elif (options.geometry == "D104"):
0073         from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0074         process = cms.Process('SingleMuonSim',Phase2C22I13M9)
0075         geomFile = "Configuration.Geometry.GeometryExtendedRun4" + options.geometry + "Reco_cff"
0076     else:
0077         from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0078         process = cms.Process('SingleMuonSim',Phase2C17I13M9)
0079         geomFile = "Configuration.Geometry.GeometryExtendedRun4" + options.geometry + "Reco_cff"
0080 
0081 globalTag = "auto:phase2_realistic_T33"
0082 inFile = "file:step1" + options.type + options.geometry + options.data + ".root"
0083 outFile = "file:step2" + options.type + options.geometry + options.data + ".root"
0084 
0085 print("Geometry file: ", geomFile)
0086 print("Global Tag:    ", globalTag)
0087 print("Input file:    ", inFile)
0088 print("Output file:   ", outFile)
0089 
0090 from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgceeDigitizer
0091 from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgchefrontDigitizer
0092 from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hgchebackDigitizer
0093 from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import hfnoseDigitizer
0094 from SimCalorimetry.HGCalSimProducers.hgcROCParameters_cfi import hgcROCSettings
0095 # import of standard configurations
0096 process.load('Configuration.StandardSequences.Services_cff')
0097 process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0098 process.load('FWCore.MessageService.MessageLogger_cfi')
0099 process.load('Configuration.EventContent.EventContent_cff')
0100 process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0101 process.load(geomFile)
0102 process.load('Configuration.StandardSequences.MagneticField_cff')
0103 process.load('Configuration.StandardSequences.Digi_cff')
0104 process.load('Configuration.StandardSequences.L1TrackTrigger_cff')
0105 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0106 process.load('Configuration.StandardSequences.DigiToRaw_cff')
0107 process.load('HLTrigger.Configuration.HLT_Fake2_cff')
0108 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0109 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0110 
0111 process.MessageLogger.cerr.FwkReport.reportEvery = 1
0112 
0113 process.maxEvents = cms.untracked.PSet(
0114     input = cms.untracked.int32(-1),
0115     output = cms.optional.untracked.allowed(cms.int32,cms.PSet)
0116 )
0117 
0118 # Input source
0119 process.source = cms.Source("PoolSource",
0120     dropDescendantsOfDroppedBranches = cms.untracked.bool(False),
0121     fileNames = cms.untracked.vstring(inFile),
0122     inputCommands = cms.untracked.vstring(
0123         'keep *',
0124         'drop *_genParticles_*_*',
0125         'drop *_genParticlesForJets_*_*',
0126         'drop *_kt4GenJets_*_*',
0127         'drop *_kt6GenJets_*_*',
0128         'drop *_iterativeCone5GenJets_*_*',
0129         'drop *_ak4GenJets_*_*',
0130         'drop *_ak7GenJets_*_*',
0131         'drop *_ak8GenJets_*_*',
0132         'drop *_ak4GenJetsNoNu_*_*',
0133         'drop *_ak8GenJetsNoNu_*_*',
0134         'drop *_genCandidatesForMET_*_*',
0135         'drop *_genParticlesForMETAllVisible_*_*',
0136         'drop *_genMetCalo_*_*',
0137         'drop *_genMetCaloAndNonPrompt_*_*',
0138         'drop *_genMetTrue_*_*',
0139         'drop *_genMetIC5GenJs_*_*'
0140     ),
0141     secondaryFileNames = cms.untracked.vstring()
0142 )
0143 
0144 process.options = cms.untracked.PSet(
0145     IgnoreCompletely = cms.untracked.vstring(),
0146     Rethrow = cms.untracked.vstring(),
0147     TryToContinue = cms.untracked.vstring(),
0148     accelerators = cms.untracked.vstring('*'),
0149     allowUnscheduled = cms.obsolete.untracked.bool,
0150     canDeleteEarly = cms.untracked.vstring(),
0151     deleteNonConsumedUnscheduledModules = cms.untracked.bool(True),
0152     dumpOptions = cms.untracked.bool(False),
0153     emptyRunLumiMode = cms.obsolete.untracked.string,
0154     eventSetup = cms.untracked.PSet(
0155         forceNumberOfConcurrentIOVs = cms.untracked.PSet(
0156             allowAnyLabel_=cms.required.untracked.uint32
0157         ),
0158         numberOfConcurrentIOVs = cms.untracked.uint32(0)
0159     ),
0160     fileMode = cms.untracked.string('FULLMERGE'),
0161     forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False),
0162     makeTriggerResults = cms.obsolete.untracked.bool,
0163     numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(0),
0164     numberOfConcurrentRuns = cms.untracked.uint32(1),
0165     numberOfStreams = cms.untracked.uint32(0),
0166     numberOfThreads = cms.untracked.uint32(1),
0167     printDependencies = cms.untracked.bool(False),
0168     sizeOfStackForThreadsInKB = cms.optional.untracked.uint32,
0169     throwIfIllegalParameter = cms.untracked.bool(True),
0170     wantSummary = cms.untracked.bool(False)
0171 )
0172 
0173 # Production Info
0174 process.configurationMetadata = cms.untracked.PSet(
0175     annotation = cms.untracked.string('step2 nevts:1000'),
0176     name = cms.untracked.string('Applications'),
0177     version = cms.untracked.string('$Revision: 1.19 $')
0178 )
0179 
0180 # Output definition
0181 
0182 process.FEVTDEBUGHLToutput = cms.OutputModule("PoolOutputModule",
0183     dataset = cms.untracked.PSet(
0184         dataTier = cms.untracked.string('GEN-SIM-DIGI-RAW'),
0185         filterName = cms.untracked.string('')
0186     ),
0187     fileName = cms.untracked.string(outFile),
0188     outputCommands = process.FEVTDEBUGHLTEventContent.outputCommands,
0189     splitLevel = cms.untracked.int32(0)
0190 )
0191 
0192 # Additional output definition
0193 
0194 # Other statements
0195 process.mix.digitizers = cms.PSet(process.theDigitizersValid)
0196 from Configuration.AlCa.GlobalTag import GlobalTag
0197 process.GlobalTag = GlobalTag(process.GlobalTag, globalTag, '')
0198 
0199 # Path and EndPath definitions
0200 process.digitisation_step = cms.Path(process.pdigi_valid)
0201 process.L1TrackTrigger_step = cms.Path(process.L1TrackTrigger)
0202 process.L1simulation_step = cms.Path(process.SimL1Emulator)
0203 process.digi2raw_step = cms.Path(process.DigiToRaw)
0204 process.endjob_step = cms.EndPath(process.endOfProcess)
0205 process.FEVTDEBUGHLToutput_step = cms.EndPath(process.FEVTDEBUGHLToutput)
0206 
0207 if (options.noise == "none"):
0208     process.HGCAL_noise_fC.values = [0,0,0]
0209 
0210 if (options.threshold == "none"):
0211     process.mix.digitizers.hgceeDigitizer.digiCfg.feCfg.adcThreshold_fC = 0.0
0212     process.mix.digitizers.hgchefrontDigitizer.digiCfg.feCfg.adcThreshold_fC = 0.0
0213     process.mix.digitizers.hgchebackDigitizer.digiCfg.feCfg.adcThreshold_fC = 0.0
0214 
0215 # Schedule definition
0216 # process.schedule imported from cff in HLTrigger.Configuration
0217 process.schedule.insert(0, process.digitisation_step)
0218 process.schedule.insert(1, process.L1TrackTrigger_step)
0219 process.schedule.insert(2, process.L1simulation_step)
0220 process.schedule.insert(3, process.digi2raw_step)
0221 process.schedule.extend([process.endjob_step,process.FEVTDEBUGHLToutput_step])
0222 
0223 from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask
0224 associatePatAlgosToolsTask(process)
0225 
0226 # customisation of the process.
0227 
0228 # Automatic addition of the customisation function from HLTrigger.Configuration.customizeHLTforMC
0229 from HLTrigger.Configuration.customizeHLTforMC import customizeHLTforMC 
0230 
0231 #call to customisation function customizeHLTforMC imported from HLTrigger.Configuration.customizeHLTforMC
0232 process = customizeHLTforMC(process)
0233 
0234 # End of customisation functions
0235 
0236 
0237 # Customisation from command line
0238 
0239 # Add early deletion of temporary data products to reduce peak memory need
0240 from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete
0241 process = customiseEarlyDelete(process)
0242 # End adding early deletion