Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-18 00:48:12

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun protoSimValid_cfg.py geometry=D110 type=hgcalBHValidation
0004 #
0005 #   Options for geometry D98, D99, D103, D104, D105, D106, D107, D108, D109
0006 #                        D110, D111, D112, D113, D114, D115
0007 #               type hgcalBHValidation, hgcalSiliconValidation
0008 #
0009 ###############################################################################
0010 import FWCore.ParameterSet.Config as cms
0011 import os, sys, importlib, re
0012 import FWCore.ParameterSet.VarParsing as VarParsing
0013 
0014 ############################################################
0015 ### SETUP OPTIONS
0016 options = VarParsing.VarParsing('standard')
0017 options.register('geometry',
0018                  "D110",
0019                   VarParsing.VarParsing.multiplicity.singleton,
0020                   VarParsing.VarParsing.varType.string,
0021                   "geometry of operations: D98, D99, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115")
0022 options.register ('type',
0023                   "hgcalBHValidation",
0024                   VarParsing.VarParsing.multiplicity.singleton,
0025                   VarParsing.VarParsing.varType.string,
0026                   "type of operations: hgcalBHValidation, hgcalSiliconValidation")
0027 
0028 ### get and parse the command line arguments
0029 options.parseArguments()
0030 
0031 print(options)
0032 
0033 ############################################################
0034 # Use the options
0035 
0036 if (options.geometry == "D115"):
0037     from Configuration.Eras.Era_Phase2C20I13M9_cff import Phase2C20I13M9
0038     process = cms.Process('Client',Phase2C20I13M9)
0039 elif (options.geometry == "D104"):
0040     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0041     process = cms.Process('Client',PhaseC22I13M9)
0042 elif (options.geometry == "D106"):
0043     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0044     process = cms.Process('Client',PhaseC22I13M9)
0045 elif (options.geometry == "D109"):
0046     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0047     process = cms.Process('Client',PhaseC22I13M9)
0048 elif (options.geometry == "D111"):
0049     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0050     process = cms.Process('Client',PhaseC22I13M9)
0051 elif (options.geometry == "D112"):
0052     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0053     process = cms.Process('Client',PhaseC22I13M9)
0054 elif (options.geometry == "D113"):
0055     from Configuration.Eras.Era_Phase2C22I13M9_cff import Phase2C22I13M9
0056     process = cms.Process('Client',PhaseC22I13M9)
0057 else:
0058     from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0059     process = cms.Process('PROD',Phase2C17I13M9)
0060 
0061 geomFile = "Configuration.Geometry.GeometryExtended2026" + options.geometry + "Reco_cff"
0062 if (options.type == "hgcalSiliconValidation"):
0063     fileName = "hgcSilValid" + options.geometry + ".root"
0064 else:
0065     fileName = "hgcBHValid" + options.geometry + ".root"
0066 
0067 print("Geometry file: ", geomFile)
0068 print("Output file:   ", fileName)
0069 
0070 # import of standard configurations
0071 process.load(geomFile)
0072 process.load('Configuration.StandardSequences.Services_cff')
0073 process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0074 process.load('FWCore.MessageService.MessageLogger_cfi')
0075 process.load('Configuration.EventContent.EventContent_cff')
0076 process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0077 process.load('Configuration.StandardSequences.MagneticField_cff')
0078 process.load('Configuration.StandardSequences.Generator_cff')
0079 process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic50ns13TeVCollision_cfi')
0080 process.load('GeneratorInterface.Core.genFilterSummary_cff')
0081 process.load('Configuration.StandardSequences.SimIdeal_cff')
0082 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0083 process.load('Configuration.StandardSequences.Digi_cff')
0084 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0085 process.load('Configuration.StandardSequences.L1TrackTrigger_cff')
0086 process.load('Configuration.StandardSequences.DigiToRaw_cff')
0087 process.load('HLTrigger.Configuration.HLT_Fake2_cff')
0088 process.load('Configuration.StandardSequences.RawToDigi_cff')
0089 process.load('Configuration.StandardSequences.L1Reco_cff')
0090 process.load('Configuration.StandardSequences.Reconstruction_cff')
0091 process.load('Configuration.StandardSequences.RecoSim_cff')
0092 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0093 
0094 process.maxEvents = cms.untracked.PSet(
0095     input = cms.untracked.int32(2000)
0096 )
0097 
0098 process.MessageLogger.cerr.FwkReport.reportEvery = 5
0099 if hasattr(process,'MessageLogger'):
0100     process.MessageLogger.HGCalGeom=dict()
0101 
0102 # Input source
0103 process.source = cms.Source("EmptySource")
0104 
0105 process.generator = cms.EDProducer("FlatRandomPtGunProducer",
0106     PGunParameters = cms.PSet(
0107         MaxPt = cms.double(35.0),
0108         MinPt = cms.double(35.0),
0109         PartID = cms.vint32(13), #--->muon
0110         MinPhi = cms.double(-3.14159265359),
0111         MaxPhi = cms.double(3.14159265359),
0112         MinEta = cms.double(1.2),
0113         MaxEta = cms.double(3.0)
0114     ),
0115     Verbosity = cms.untracked.int32(0),
0116     psethack = cms.string('single muon pt 35'),
0117     AddAntiParticle = cms.bool(True),
0118     firstRun = cms.untracked.uint32(1)
0119 )
0120 
0121 process.options = cms.untracked.PSet(
0122     wantSummary = cms.untracked.bool(True)
0123 )
0124 
0125 # Production Info
0126 process.configurationMetadata = cms.untracked.PSet(
0127     version = cms.untracked.string(''),
0128     annotation = cms.untracked.string(''),
0129     name = cms.untracked.string('Applications')
0130 )
0131 
0132 # Other statements
0133 process.genstepfilter.triggerConditions=cms.vstring("generation_step")
0134 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0135 from Configuration.AlCa.GlobalTag import GlobalTag
0136 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '')
0137 
0138 # Additional output definition
0139 process.TFileService = cms.Service("TFileService",
0140                                    fileName = cms.string(fileName),
0141                                    closeFileFast = cms.untracked.bool(True) )
0142 
0143 #Modified to produce hgceedigis
0144 process.mix.digitizers = cms.PSet(process.theDigitizersValid)
0145 process.ProductionFilterSequence = cms.Sequence(process.generator)
0146 
0147 #Following Removes Mag Field
0148 process.g4SimHits.UseMagneticField = False
0149 process.g4SimHits.Physics.bField = cms.double(0.0)
0150 
0151 # Path and EndPath definitions
0152 process.generation_step = cms.Path(process.pgen)
0153 process.simulation_step = cms.Path(process.psim)
0154 process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
0155 process.digitisation_step = cms.Path(process.pdigi_valid)
0156 process.L1simulation_step = cms.Path(process.SimL1Emulator)
0157 process.L1TrackTrigger_step = cms.Path(process.L1TrackTrigger)
0158 process.digi2raw_step = cms.Path(process.DigiToRaw)
0159 process.raw2digi_step = cms.Path(process.RawToDigi)
0160 process.L1Reco_step = cms.Path(process.L1Reco)
0161 process.reconstruction_step = cms.Path(process.localreco)
0162 process.recosim_step = cms.Path(process.recosim)
0163 
0164 if (options.type == "hgcalSiliconValidation"):
0165     process.load('Validation.HGCalValidation.hgcalSiliconValidation_cfi')
0166     process.analysis_step = cms.Path(process.hgcalSiliconAnalysisEE+process.hgcalSiliconAnalysisHEF)
0167 else:
0168     process.load('Validation.HGCalValidation.hgcalBHValidation_cfi')
0169     process.analysis_step = cms.Path(process.hgcalBHAnalysis)
0170 
0171 # Schedule definition
0172 process.schedule = cms.Schedule(process.generation_step,
0173                 process.simulation_step,
0174                 process.digitisation_step,
0175                                 process.L1simulation_step,
0176                                 process.L1TrackTrigger_step,
0177                                 process.digi2raw_step,
0178                                 process.raw2digi_step,
0179                                 process.L1Reco_step,
0180                                 process.reconstruction_step,
0181                                 process.recosim_step,
0182                                 process.analysis_step,
0183                 )
0184 
0185 # filter all path with the production filter sequence
0186 for path in process.paths:
0187         if getattr(process,path)._seq is not None: getattr(process,path)._seq = process.ProductionFilterSequence * getattr(process,path)._seq