Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-18 03:42:28

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun rechitValidation_cfg.py geometry=D110
0004 #
0005 #   Options for geometry D98, D99, D103, D104, D105, D106, D107, D108, D109
0006 #                        D110, D111, D112, D113, D114, D115
0007 #
0008 ###############################################################################
0009 import FWCore.ParameterSet.Config as cms
0010 import os, sys, importlib, re
0011 import FWCore.ParameterSet.VarParsing as VarParsing
0012 
0013 ####################################################################
0014 ### SETUP OPTIONS
0015 options = VarParsing.VarParsing('standard')
0016 options.register('geometry',
0017                  "D110",
0018                   VarParsing.VarParsing.multiplicity.singleton,
0019                   VarParsing.VarParsing.varType.string,
0020                   "geometry of operations: D98, D99, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115")
0021 
0022 ### get and parse the command line arguments
0023 options.parseArguments()
0024 
0025 print(options)
0026 
0027 ####################################################################
0028 # Use the options
0029 
0030 geomName = "Run4" + options.geometry
0031 print("Geometry Name:   ", geomName)
0032 import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings
0033 GLOBAL_TAG, ERA = _settings.get_era_and_conditions(geomName)
0034 print("Global Tag Name: ", GLOBAL_TAG)
0035 print("Era Name:        ", ERA)
0036 
0037 process = cms.Process('RecHitValidation',ERA)
0038 
0039 geomFile = "Configuration.Geometry.GeometryExtendedRun4" + options.geometry + "Reco_cff"
0040 fileName = "file:RecHitVal" + options.geometry + ".root"
0041 outFile = "file:step3" + options.geometry + ".root"
0042 
0043 print("Geometry file:          ", geomFile)
0044 print("Reco Output file:       ", outFile)
0045 print("Validation Output file: ", fileName)
0046 
0047 # import of standard configurations
0048 process.load(geomFile)
0049 process.load('Configuration.StandardSequences.Services_cff')
0050 process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0051 process.load('FWCore.MessageService.MessageLogger_cfi')
0052 process.load('Configuration.EventContent.EventContent_cff')
0053 process.load('FWCore.MessageService.MessageLogger_cfi')
0054 process.load('Configuration.EventContent.EventContent_cff')
0055 process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0056 process.load('Configuration.StandardSequences.MagneticField_cff')
0057 process.load('Configuration.StandardSequences.Generator_cff')
0058 process.load('IOMC.EventVertexGenerators.VtxSmearedGauss_cfi')
0059 process.load('GeneratorInterface.Core.genFilterSummary_cff')
0060 process.load('Configuration.StandardSequences.SimIdeal_cff')
0061 process.load('Configuration.StandardSequences.Digi_cff')
0062 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0063 process.load('Configuration.StandardSequences.DigiToRaw_cff')##
0064 process.load('Configuration.StandardSequences.RawToDigi_cff')
0065 process.load('Configuration.StandardSequences.L1Reco_cff')
0066 process.load('Configuration.StandardSequences.Reconstruction_cff')
0067 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0068 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0069 
0070 process.maxEvents = cms.untracked.PSet(
0071         input = cms.untracked.int32(10)
0072 )
0073 
0074 # Input source
0075 process.source = cms.Source("EmptySource")
0076 
0077 process.options = cms.untracked.PSet(
0078 
0079 )
0080 
0081 # Production Info
0082 process.configurationMetadata = cms.untracked.PSet(
0083     version = cms.untracked.string('$Revision: 1.20 $'),
0084     annotation = cms.untracked.string('SingleElectronPt10_cfi nevts:10'),
0085     name = cms.untracked.string('Applications')
0086 )
0087 
0088 # Output definition
0089 
0090 process.FEVTDEBUGHLToutput = cms.OutputModule("PoolOutputModule",
0091     splitLevel = cms.untracked.int32(0),
0092     eventAutoFlushCompressedSize = cms.untracked.int32(5242880),
0093     outputCommands = process.FEVTDEBUGHLTEventContent.outputCommands,
0094     fileName = cms.untracked.string(outFile),
0095     dataset = cms.untracked.PSet(
0096         filterName = cms.untracked.string(''),
0097         dataTier = cms.untracked.string('GEN-SIM-DIGI-RECO')
0098     ),
0099     SelectEvents = cms.untracked.PSet(
0100         SelectEvents = cms.vstring('generation_step')
0101     )
0102 )
0103 
0104 # Additional output definition
0105 
0106 # Other statements
0107 process.genstepfilter.triggerConditions=cms.vstring("generation_step")
0108 from Configuration.AlCa.GlobalTag import GlobalTag
0109 process.GlobalTag = GlobalTag(process.GlobalTag, GLOBAL_TAG, '')
0110 
0111 process.generator = cms.EDProducer("FlatRandomPtGunProducer",
0112     PGunParameters = cms.PSet(
0113         MaxPt = cms.double(10.01),
0114         MinPt = cms.double(9.99),
0115         PartID = cms.vint32(11),
0116         MaxEta = cms.double(2.5),
0117         MaxPhi = cms.double(3.14159265359),
0118         MinEta = cms.double(-2.5),
0119         MinPhi = cms.double(-3.14159265359)
0120     ),
0121     Verbosity = cms.untracked.int32(0),
0122     psethack = cms.string('single electron pt 10'),
0123     AddAntiParticle = cms.bool(True),
0124     firstRun = cms.untracked.uint32(1)
0125 )
0126 
0127 process.mix.digitizers = cms.PSet(process.theDigitizersValid)
0128 
0129 # Path and EndPath definitions
0130 process.generation_step = cms.Path(process.pgen)
0131 process.simulation_step = cms.Path(process.psim)
0132 process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
0133 process.digitisation_step = cms.Path(process.pdigi_valid)
0134 process.L1simulation_step = cms.Path(process.SimL1Emulator)
0135 process.digi2raw_step = cms.Path(process.DigiToRaw)
0136 process.raw2digi_step = cms.Path(process.RawToDigi)
0137 process.L1Reco_step = cms.Path(process.L1Reco)
0138 process.reconstruction_step = cms.Path(process.reconstruction)
0139 process.endjob_step = cms.EndPath(process.endOfProcess)
0140 process.FEVTDEBUGHLToutput_step = cms.EndPath(process.FEVTDEBUGHLToutput)
0141 
0142 #################################################################################################
0143 #################################################################################################
0144 # Output definition
0145 process.ValidationOutput = cms.OutputModule("PoolOutputModule",
0146                             outputCommands = cms.untracked.vstring('drop *', 'keep *_MEtoEDMConverter_*_*'),
0147                             fileName = cms.untracked.string(fileName),
0148                     )
0149 
0150 process.load("DQMServices.Core.DQM_cfg")
0151 process.load("DQMServices.Components.MEtoEDMConverter_cfi")
0152 process.load("Validation.HGCalValidation.rechitValidation_cff")
0153 
0154 ## path and endpath deffinition 
0155 process.p1 = cms.Path(process.hgcalRecHitValidationEE+process.hgcalRecHitValidationHEF+process.hgcalRecHitValidationHEB)
0156 process.p2 = cms.Path(process.MEtoEDMConverter)
0157 process.output_step = cms.EndPath(process.ValidationOutput)
0158 ################################################################################################
0159 ################################################################################################
0160 
0161 # Schedule definition
0162 process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,
0163                                process.simulation_step,process.digitisation_step,
0164                                process.L1simulation_step,process.digi2raw_step,
0165                                process.raw2digi_step,process.L1Reco_step,process.reconstruction_step,
0166                                process.endjob_step,process.p1,process.p2,process.output_step)
0167 
0168 #process.schedule = cms.Schedule(process.p1,process.p2,process.output_step)
0169 
0170 # filter all path with the production filter sequence
0171 for path in process.paths:
0172         getattr(process,path)._seq = process.generator * getattr(process,path)._seq
0173 
0174 # End of customisation functions
0175 for label, prod in process.producers_().items():
0176         if prod.type_() == "OscarMTProducer":
0177             # ugly hack
0178             prod.__dict__['_TypedParameterizable__type'] = "OscarProducer"