Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:27:55

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun protoHGCalSimWatcher_cfg.py geometry=D88
0004 #
0005 #   Options for geometry D88, D92, D93
0006 #
0007 ###############################################################################
0008 import FWCore.ParameterSet.Config as cms
0009 import os, sys, imp, re
0010 import FWCore.ParameterSet.VarParsing as VarParsing
0011 
0012 ####################################################################
0013 ### SETUP OPTIONS
0014 options = VarParsing.VarParsing('standard')
0015 options.register('geometry',
0016                  "D88",
0017                   VarParsing.VarParsing.multiplicity.singleton,
0018                   VarParsing.VarParsing.varType.string,
0019                   "geometry of operations: D88, D92, D93")
0020 
0021 ### get and parse the command line arguments
0022 options.parseArguments()
0023 
0024 print(options)
0025 
0026 ####################################################################
0027 # Use the options
0028 
0029 from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9
0030 process = cms.Process('PROD',Phase2C17I13M9)
0031 
0032 geomFile = "Configuration.Geometry.GeometryExtended2026" + options.geometry + "Reco_cff"
0033 fileCheck = "testHGCalSimWatcher2026" + options.geometry + ".root"
0034 
0035 if (options.geometry == "D93"):
0036     runMode = 2
0037 else:
0038     runMode = 1
0039 
0040 print("Geometry file: ", geomFile)
0041 print("Output file: ", fileCheck)
0042 print("Run Mode:    ", runMode)
0043 
0044 # import of standard configurations
0045 process.load(geomFile)
0046 process.load('Configuration.StandardSequences.Services_cff')
0047 process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0048 process.load('FWCore.MessageService.MessageLogger_cfi')
0049 process.load('Configuration.EventContent.EventContent_cff')
0050 process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0051 process.load('Configuration.StandardSequences.MagneticField_cff')
0052 process.load('Configuration.StandardSequences.Generator_cff')
0053 process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic50ns13TeVCollision_cfi')
0054 process.load('GeneratorInterface.Core.genFilterSummary_cff')
0055 process.load('Configuration.StandardSequences.SimIdeal_cff')
0056 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0057 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0058 process.load('Configuration.StandardSequences.Digi_cff')
0059 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0060 process.load('Configuration.StandardSequences.L1TrackTrigger_cff')
0061 process.load('Configuration.StandardSequences.DigiToRaw_cff')
0062 process.load('HLTrigger.Configuration.HLT_Fake2_cff')
0063 process.load('Configuration.StandardSequences.RawToDigi_cff')
0064 process.load('Configuration.StandardSequences.L1Reco_cff')
0065 process.load('Configuration.StandardSequences.Reconstruction_cff')
0066 process.load('Configuration.StandardSequences.RecoSim_cff')
0067 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0068 
0069 process.maxEvents = cms.untracked.PSet(
0070     input = cms.untracked.int32(1000)
0071 )
0072 
0073 process.MessageLogger.cerr.FwkReport.reportEvery = 5
0074 if hasattr(process,'MessageLogger'):
0075     process.MessageLogger.ValidHGCal=dict()
0076     process.MessageLogger.HGCalGeom=dict()
0077 
0078 # Input source
0079 process.source = cms.Source("EmptySource")
0080 
0081 process.options = cms.untracked.PSet(
0082     wantSummary = cms.untracked.bool(True),
0083     numberOfConcurrentRuns = cms.untracked.uint32(1),
0084     numberOfStreams = cms.untracked.uint32(0),
0085     numberOfThreads = cms.untracked.uint32(1),
0086     printDependencies = cms.untracked.bool(False),
0087     sizeOfStackForThreadsInKB = cms.optional.untracked.uint32,
0088 )
0089 
0090 # Production Info
0091 process.configurationMetadata = cms.untracked.PSet(
0092     version = cms.untracked.string(''),
0093     annotation = cms.untracked.string(''),
0094     name = cms.untracked.string('Applications')
0095 )
0096 
0097 # Output definition
0098 process.output = cms.OutputModule("PoolOutputModule",
0099     splitLevel = cms.untracked.int32(0),
0100     eventAutoFlushCompressedSize = cms.untracked.int32(5242880),
0101     outputCommands = cms.untracked.vstring(
0102         'keep *_*hbhe*_*_*',
0103     'keep *_g4SimHits_*_*',
0104     'keep *_*HGC*_*_*',
0105         ),
0106     fileName = cms.untracked.string(fileCheck),
0107     dataset = cms.untracked.PSet(
0108         filterName = cms.untracked.string(''),
0109         dataTier = cms.untracked.string('GEN-SIM-DIGI-RAW-RECO')
0110     ),
0111     SelectEvents = cms.untracked.PSet(
0112         SelectEvents = cms.vstring('generation_step')
0113     )
0114 )
0115 
0116 # Additional output definition
0117 if (runMode == 1):
0118     process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
0119         SimG4HGCalValidation = cms.PSet(
0120             Names = cms.vstring(
0121                 'HGCalEECellSensitive',  
0122                 'HGCalHESiliconCellSensitive',
0123                 'HGCalHEScintillatorSensitive',
0124             ),
0125             Types          = cms.vint32(0,0,0),
0126             DetTypes       = cms.vint32(0,1,2),
0127             LabelLayerInfo = cms.string("HGCalInfoLayer"),
0128             Verbosity      = cms.untracked.int32(0),
0129         ),
0130         type = cms.string('SimG4HGCalValidation')
0131     ))
0132 else:
0133     process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
0134         SimG4HGCalValidation = cms.PSet(
0135             Names = cms.vstring(
0136                 'HGCalEESensitive',  
0137                 'HGCalHESensitive',
0138                 'HGCalHESiliconSensitive',
0139                 'HGCalHEScintillatorSensitive',
0140             ),
0141             Types          = cms.vint32(0,0,0,0),
0142             DetTypes       = cms.vint32(0,1,1,2),
0143             LabelLayerInfo = cms.string("HGCalInfoLayer"),
0144             Verbosity      = cms.untracked.int32(0),
0145         ),
0146         type = cms.string('SimG4HGCalValidation')
0147     ))
0148 
0149 # Other statements
0150 process.genstepfilter.triggerConditions=cms.vstring("generation_step")
0151 from Configuration.AlCa.GlobalTag import GlobalTag
0152 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic', '')
0153 
0154 process.generator = cms.EDProducer("FlatRandomPtGunProducer",
0155     PGunParameters = cms.PSet(
0156         MaxPt = cms.double(20.0),
0157         MinPt = cms.double(20.0),
0158         PartID = cms.vint32(13), #--->muon
0159         MaxEta = cms.double(3.0),
0160         MaxPhi = cms.double(3.14159265359),
0161         MinEta = cms.double(1.2),
0162         MinPhi = cms.double(-3.14159265359)
0163     ),
0164     Verbosity = cms.untracked.int32(0),
0165     psethack = cms.string('single muon pt 20'),
0166     AddAntiParticle = cms.bool(False),
0167     firstRun = cms.untracked.uint32(1)
0168 )
0169 
0170 
0171 #Modified to produce hgceedigis
0172 process.mix.digitizers = cms.PSet(process.theDigitizersValid)
0173 
0174 process.ProductionFilterSequence = cms.Sequence(process.generator)
0175 
0176 # Path and EndPath definitions
0177 process.generation_step = cms.Path(process.pgen)
0178 process.simulation_step = cms.Path(process.psim)
0179 process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
0180 process.digitisation_step = cms.Path(process.pdigi_valid)
0181 process.L1simulation_step = cms.Path(process.SimL1Emulator)
0182 process.L1TrackTrigger_step = cms.Path(process.L1TrackTrigger)
0183 process.digi2raw_step = cms.Path(process.DigiToRaw)
0184 process.raw2digi_step = cms.Path(process.RawToDigi)
0185 process.L1Reco_step = cms.Path(process.L1Reco)
0186 process.reconstruction_step = cms.Path(process.localreco)
0187 process.recosim_step = cms.Path(process.recosim)
0188 process.out_step = cms.EndPath(process.output)
0189 
0190 # Schedule definition
0191 process.schedule = cms.Schedule(process.generation_step,
0192                 process.simulation_step,
0193                 process.digitisation_step,
0194                 process.L1simulation_step,
0195                                 process.L1TrackTrigger_step,
0196                 process.digi2raw_step,
0197 #               process.raw2digi_step,
0198 #               process.L1Reco_step,
0199 #               process.reconstruction_step,
0200 #                               process.recosim_step,
0201                 process.out_step
0202                 )
0203 
0204 # filter all path with the production filter sequence
0205 for path in process.paths:
0206         if getattr(process,path)._seq is not None: getattr(process,path)._seq = process.ProductionFilterSequence * getattr(process,path)._seq