File indexing completed on 2024-04-06 12:10:41
0001
0002
0003
0004
0005
0006 import FWCore.ParameterSet.Config as cms
0007
0008
0009
0010 import FWCore.ParameterSet.VarParsing as VarParsing
0011 options = VarParsing.VarParsing('analysis')
0012 options.register('skipEvents',
0013 0,
0014 VarParsing.VarParsing.multiplicity.singleton,
0015 VarParsing.VarParsing.varType.int,
0016 "Number of events to skip")
0017 options.register('streamer',
0018 False,
0019 VarParsing.VarParsing.multiplicity.singleton,
0020 VarParsing.VarParsing.varType.bool,
0021 "Read input from streamer file")
0022 options.register('debug',
0023 True,
0024 VarParsing.VarParsing.multiplicity.singleton,
0025 VarParsing.VarParsing.varType.bool,
0026 "Enable debug data")
0027 options.register('dumpRaw',
0028 False,
0029 VarParsing.VarParsing.multiplicity.singleton,
0030 VarParsing.VarParsing.varType.bool,
0031 "Print RAW data")
0032 options.register('dumpDigis',
0033 False,
0034 VarParsing.VarParsing.multiplicity.singleton,
0035 VarParsing.VarParsing.varType.bool,
0036 "Print digis")
0037 options.register('histos',
0038 True,
0039 VarParsing.VarParsing.multiplicity.singleton,
0040 VarParsing.VarParsing.varType.bool,
0041 "Produce standard histograms")
0042 options.register('edm',
0043 True,
0044 VarParsing.VarParsing.multiplicity.singleton,
0045 VarParsing.VarParsing.varType.bool,
0046 "Produce EDM file")
0047 options.register('json',
0048 '',
0049 VarParsing.VarParsing.multiplicity.singleton,
0050 VarParsing.VarParsing.varType.string,
0051 "JSON file with list of good lumi sections")
0052 options.register('evtDisp',
0053 False,
0054 VarParsing.VarParsing.multiplicity.singleton,
0055 VarParsing.VarParsing.varType.bool,
0056 'Produce histos for individual events')
0057 options.register('trigger',
0058 False,
0059 VarParsing.VarParsing.multiplicity.singleton,
0060 VarParsing.VarParsing.varType.bool,
0061 'Trigger the data')
0062 options.register('reconstruct',
0063 False,
0064 VarParsing.VarParsing.multiplicity.singleton,
0065 VarParsing.VarParsing.varType.bool,
0066 'Reconstruct the data')
0067 options.register('feds',
0068 [1467,1468],
0069 VarParsing.VarParsing.multiplicity.list,
0070 VarParsing.VarParsing.varType.int,
0071 "List of FEDs")
0072 options.register('unpackerLabel',
0073 'rawDataCollector',
0074 VarParsing.VarParsing.multiplicity.singleton,
0075 VarParsing.VarParsing.varType.string,
0076 "Label for the GEM unpacker RAW input collection")
0077 options.register('useB904GE11Long',
0078 False,
0079 VarParsing.VarParsing.multiplicity.singleton,
0080 VarParsing.VarParsing.varType.bool,
0081 "Set to True when using data from GE1/1 Long super chamber in B904.")
0082 options.register('useB904GE11Short',
0083 False,
0084 VarParsing.VarParsing.multiplicity.singleton,
0085 VarParsing.VarParsing.varType.bool,
0086 "Set to True when using data from GE1/1 Short super chamber in B904.")
0087
0088 options.parseArguments()
0089
0090
0091
0092 from Configuration.Eras.Era_Run3_cff import Run3
0093 process = cms.Process('RECO',Run3)
0094
0095 process.load('Configuration.StandardSequences.L1Reco_cff')
0096 process.load('Configuration.StandardSequences.Reconstruction_cff')
0097 process.load('Configuration.StandardSequences.RecoSim_cff')
0098 process.load('Configuration.StandardSequences.Services_cff')
0099 process.load('FWCore.MessageService.MessageLogger_cfi')
0100 process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
0101 process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')
0102 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0103 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0104 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0105 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0106 process.load('EventFilter.GEMRawToDigi.muonGEMDigis_cfi')
0107 process.load('L1Trigger.L1TGEM.simGEMDigis_cff')
0108 process.load('EventFilter.L1TRawToDigi.validationEventFilter_cfi')
0109 process.load("CommonTools.UtilAlgos.TFileService_cfi")
0110
0111 process.maxEvents = cms.untracked.PSet(
0112 input = cms.untracked.int32(options.maxEvents)
0113 )
0114
0115
0116 if (options.streamer) :
0117 process.source = cms.Source(
0118 "NewEventStreamFileReader",
0119 fileNames = cms.untracked.vstring(options.inputFiles),
0120 skipEvents=cms.untracked.uint32(options.skipEvents)
0121 )
0122 else :
0123 process.source = cms.Source(
0124 "PoolSource",
0125 fileNames = cms.untracked.vstring(options.inputFiles),
0126 skipEvents=cms.untracked.uint32(options.skipEvents),
0127
0128 labelRawDataLikeMC = cms.untracked.bool(False)
0129 )
0130
0131 if (options.json):
0132 import FWCore.PythonUtilities.LumiList as LumiList
0133 process.source.lumisToProcess = LumiList.LumiList(filename = options.json).getVLuminosityBlockRange()
0134
0135 process.options = cms.untracked.PSet(
0136 SkipEvent = cms.untracked.vstring('ProductNotFound')
0137 )
0138
0139
0140 if (options.dumpRaw):
0141 process.MessageLogger.files.infos = cms.untracked.PSet(INFO = cms.untracked.PSet(limit = cms.untracked.int32(0)))
0142
0143 if (options.debug):
0144 process.MessageLogger.debugModules = cms.untracked.vstring('*')
0145 process.MessageLogger.cerr.threshold = cms.untracked.string('DEBUG')
0146
0147
0148
0149 from Configuration.AlCa.GlobalTag import GlobalTag
0150 process.GlobalTag = GlobalTag(process.GlobalTag, '112X_dataRun3_Prompt_v5', '')
0151
0152
0153 if (options.useB904GE11Long or options.useB904GE11Short):
0154 process.GlobalTag.toGet = cms.VPSet(
0155 cms.PSet(record = cms.string("GEMChMapRcd"),
0156 tag = cms.string("GEMeMap_GE11_b904_v1"),
0157 connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS")
0158 )
0159 )
0160 process.muonGEMDigis.useDBEMap = True
0161
0162
0163 process.dumpRaw = cms.EDAnalyzer(
0164 "DumpFEDRawDataProduct",
0165 token = cms.untracked.InputTag(options.unpackerLabel),
0166 feds = cms.untracked.vint32(options.feds),
0167 dumpPayload = cms.untracked.bool(options.dumpRaw)
0168 )
0169
0170
0171 process.output = cms.OutputModule(
0172 "PoolOutputModule",
0173 outputCommands = cms.untracked.vstring("keep *"),
0174 fileName = cms.untracked.string('output_edm.root')
0175 )
0176
0177 process.muonGEMDigis.InputLabel = options.unpackerLabel
0178 process.muonGEMDigis.fedIdStart = options.feds[0]
0179 process.muonGEMDigis.fedIdEnd = options.feds[-1]
0180 process.simMuonGEMPadDigis.InputCollection = 'muonGEMDigis'
0181
0182
0183 process.p1 = cms.Path(process.dumpRaw)
0184 process.p2 = cms.Path(process.muonGEMDigis)
0185 process.p3 = cms.Path(process.simMuonGEMPadDigis * process.simMuonGEMPadDigiClusters)
0186 process.p4 = cms.Path(process.gemRecHits * process.gemSegments)
0187 process.out = cms.EndPath(process.output)
0188 process.endjob_step = cms.EndPath(process.endOfProcess)
0189
0190 process.schedule = cms.Schedule()
0191
0192
0193 if options.dumpRaw:
0194 process.schedule.extend([process.p1])
0195
0196
0197 process.schedule.extend([process.p2])
0198
0199
0200 if options.trigger:
0201 process.schedule.extend([process.p3])
0202
0203
0204 if options.reconstruct:
0205 process.schedule.extend([process.p4])
0206
0207 if options.edm:
0208 process.schedule.extend([process.out])
0209
0210 process.schedule.extend([process.endjob_step])