Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 # Auto generated configuration file
0002 # using: 
0003 # Revision: 1.19 
0004 # Source: /local/reps/CMSSW/CMSSW/Configuration/Applications/python/ConfigBuilder.py,v 
0005 # with command line options: SingleElectronPt10_cfi.py -s GEN,SIM,DIGI,L1 --pileup=NoPileUp --geometry DB --conditions=auto:startup -n 1 --no_exec
0006 #
0007 #  This was adapted from unpackBuffers-CaloStage2.py.
0008 #    -Unpacking of the uGT raw data has been added
0009 #    -uGT Emulation starting with the Demux output and/or the uGT input 
0010 #    -Analysis for uGT objects using L1TGlobalAnalyzer
0011 #
0012 #   Brian Winer, March 16, 2015
0013 #  
0014 import FWCore.ParameterSet.Config as cms
0015 
0016 
0017 # options
0018 import FWCore.ParameterSet.VarParsing as VarParsing
0019 options = VarParsing.VarParsing('analysis')
0020 options.register('skipEvents',
0021                  0,
0022                  VarParsing.VarParsing.multiplicity.singleton,
0023                  VarParsing.VarParsing.varType.int,
0024                  "Number of events to skip")
0025 options.register('mpFramesPerEvent',
0026                  40,
0027                  VarParsing.VarParsing.multiplicity.singleton,
0028                  VarParsing.VarParsing.varType.int,
0029                  "MP frames per event")
0030 options.register('mpLatency',
0031                  0,
0032                  VarParsing.VarParsing.multiplicity.singleton,
0033                  VarParsing.VarParsing.varType.int,
0034                  "MP latency (frames)")
0035 options.register('mpOffset',
0036                  0,
0037                  VarParsing.VarParsing.multiplicity.singleton,
0038                  VarParsing.VarParsing.varType.int,
0039                  "MP offset (frames)")
0040 options.register('dmFramesPerEvent',
0041                  6,
0042                  VarParsing.VarParsing.multiplicity.singleton,
0043                  VarParsing.VarParsing.varType.int,
0044                  "Demux frames per event")
0045 options.register('dmLatency',
0046                  0,
0047                  VarParsing.VarParsing.multiplicity.singleton,
0048                  VarParsing.VarParsing.varType.int,
0049                  "Demux latency (frames)")
0050 options.register('dmOffset',
0051                  0,
0052                  VarParsing.VarParsing.multiplicity.singleton,
0053                  VarParsing.VarParsing.varType.int,
0054                  "Demux offset (frames)")
0055 options.register('gtFramesPerEvent',
0056                  6,
0057                  VarParsing.VarParsing.multiplicity.singleton,
0058                  VarParsing.VarParsing.varType.int,
0059                  "GT frames per event")
0060 options.register('gtLatency',
0061                  47,
0062                  VarParsing.VarParsing.multiplicity.singleton,
0063                  VarParsing.VarParsing.varType.int,
0064                  "GT latency (frames)")
0065 options.register('gtOffset',
0066                  15,
0067                  VarParsing.VarParsing.multiplicity.singleton,
0068                  VarParsing.VarParsing.varType.int,
0069                  "GT offset (frames)")
0070 options.register('dump',
0071                  False,
0072                  VarParsing.VarParsing.multiplicity.singleton,
0073                  VarParsing.VarParsing.varType.bool,
0074                  "Print RAW data")
0075 options.register('debug',
0076                  False,
0077                  VarParsing.VarParsing.multiplicity.singleton,
0078                  VarParsing.VarParsing.varType.bool,
0079                  "Enable debug data")
0080 options.register('doMP',
0081                  True,
0082                  VarParsing.VarParsing.multiplicity.singleton,
0083                  VarParsing.VarParsing.varType.bool,
0084                  "Read MP data")
0085 options.register('doDemux',
0086                  True,
0087                  VarParsing.VarParsing.multiplicity.singleton,
0088                  VarParsing.VarParsing.varType.bool,
0089                  "Read demux data")
0090 options.register('doGT',
0091                  True,
0092                  VarParsing.VarParsing.multiplicity.singleton,
0093                  VarParsing.VarParsing.varType.bool,
0094                  "Read GT data")
0095 options.register('newXML',
0096                  False,
0097                  VarParsing.VarParsing.multiplicity.singleton,
0098                  VarParsing.VarParsing.varType.bool,
0099                  "New XML Grammar")      
0100 options.register('nMP',
0101                  11,
0102                  VarParsing.VarParsing.multiplicity.singleton,
0103                  VarParsing.VarParsing.varType.int,
0104                  "Number of MPs")
0105                  
0106 options.parseArguments()
0107 
0108 if (options.maxEvents == -1):
0109     options.maxEvents = 1
0110 
0111 
0112 process = cms.Process('Raw2Digi')
0113 
0114 # import of standard configurations
0115 process.load('Configuration.StandardSequences.Services_cff')
0116 process.load('FWCore.MessageService.MessageLogger_cfi')
0117 process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
0118 process.load('Configuration.Geometry.GeometryDB_cff')
0119 process.load('Configuration.StandardSequences.MagneticField_38T_cff')
0120 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0121 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0122 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0123 
0124 process.maxEvents = cms.untracked.PSet(
0125     input = cms.untracked.int32(options.maxEvents)
0126 )
0127 
0128 # Input source
0129 process.source = cms.Source("EmptySource")
0130 
0131 process.options = cms.untracked.PSet(
0132     SkipEvent = cms.untracked.vstring('ProductNotFound')
0133 )
0134 
0135 
0136 # Output definition
0137 process.output = cms.OutputModule(
0138     "PoolOutputModule",
0139     outputCommands = cms.untracked.vstring("keep *"),
0140     fileName = cms.untracked.string('l1tCalo_2016_EDM.root')
0141 )
0142 
0143 # Additional output definition
0144 # TTree output file
0145 process.load("CommonTools.UtilAlgos.TFileService_cfi")
0146 process.TFileService.fileName = cms.string('l1tCalo_2016_histos_'+repr(options.gtOffset)+'-'+repr(options.gtLatency)+'.root')
0147 
0148 
0149 # enable debug message logging for our modules
0150 process.MessageLogger.L1TCaloEvents=dict()
0151 process.MessageLogger.L1TGlobalEvents=dict()
0152 process.MessageLogger.Global=dict()
0153 
0154 process.MessageLogger.suppressInfo = cms.untracked.vstring('Geometry', 'AfterSource')
0155 
0156 if (options.dump):
0157     process.MessageLogger.files.infos = cms.untracked.PSet(
0158         INFO = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0159         L1TCaloEvents = cms.untracked.PSet(
0160             limit = cms.untracked.int32(10000)
0161         )
0162     )
0163 
0164 if (options.debug):
0165 #    process.MessageLogger.debugModules = cms.untracked.vstring('L1TRawToDigi:caloStage2Digis', 'MP7BufferDumpToRaw:stage2MPRaw', 'MP7BufferDumpToRaw:stage2DemuxRaw')
0166     process.MessageLogger.debugModules = cms.untracked.vstring('*')
0167     process.MessageLogger.cerr.threshold = cms.untracked.string('DEBUG')
0168 
0169 
0170 
0171 # Other statements
0172 from Configuration.AlCa.GlobalTag import GlobalTag
0173 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:startup', '')
0174 
0175 
0176 # buffer dump to RAW
0177 process.load('EventFilter.L1TRawToDigi.stage2MP7BufferRaw_cff')
0178 
0179 
0180 # skip events
0181 dmOffset = options.dmOffset + (options.skipEvents * options.dmFramesPerEvent)
0182 
0183 mpOffsets = cms.untracked.vint32()
0184 for i in range (0,options.nMP):
0185     offset = options.mpOffset + (options.skipEvents / options.nMP)
0186     if (i < options.skipEvents % options.nMP):
0187         offset = offset + 1    
0188     mpOffsets.append(offset)
0189 
0190 boardOffset = options.skipEvents % options.nMP
0191 
0192 gtOffset = options.gtOffset + (options.skipEvents * options.gtFramesPerEvent)
0193 
0194 
0195 # print some debug info
0196 print("Job config :")
0197 print("maxEvents     = ", options.maxEvents)
0198 print("skipEvents    = ", options.skipEvents)
0199 print(" ")
0200 
0201 # MP config
0202 if (options.doMP):
0203     print("MP config :")
0204     print("nBoards       = ", options.nMP)
0205     print("mpBoardOffset = ", boardOffset)
0206     print("mpOffset      = ", mpOffsets)
0207     print(" ")
0208 
0209 process.stage2MPRaw.nFramesPerEvent    = cms.untracked.int32(options.mpFramesPerEvent)
0210 process.stage2MPRaw.nFramesOffset    = cms.untracked.vuint32(mpOffsets)
0211 process.stage2MPRaw.boardOffset    = cms.untracked.int32(boardOffset)
0212 #process.stage2MPRaw.nFramesLatency   = cms.untracked.vuint32(mpLatencies)
0213 process.stage2MPRaw.rxFile = cms.untracked.string("merge/rx_summary.txt")
0214 process.stage2MPRaw.txFile = cms.untracked.string("merge/tx_summary.txt")
0215 
0216 # Demux config
0217 if (options.doDemux):
0218     print("Demux config :")
0219     print("dmOffset      = ", dmOffset)
0220     print("dmLatency     = ", options.dmLatency)
0221     print(" ")
0222 
0223 process.stage2DemuxRaw.nFramesPerEvent    = cms.untracked.int32(options.dmFramesPerEvent)
0224 process.stage2DemuxRaw.nFramesOffset    = cms.untracked.vuint32(dmOffset)
0225 process.stage2DemuxRaw.nFramesLatency   = cms.untracked.vuint32(options.dmLatency)
0226 process.stage2DemuxRaw.rxFile = cms.untracked.string("good/demux/rx_summary.txt")
0227 process.stage2DemuxRaw.txFile = cms.untracked.string("good/demux/tx_summary.txt")
0228 
0229 # GT config
0230 if (options.doGT):
0231     print("GT config :")
0232     print("gtOffset      = ", gtOffset)
0233     print("gtLatency     = ", options.gtLatency)
0234 
0235 process.stage2GTRaw.nFramesPerEvent    = cms.untracked.int32(options.gtFramesPerEvent)
0236 process.stage2GTRaw.nFramesOffset    = cms.untracked.vuint32(gtOffset)
0237 process.stage2GTRaw.nFramesLatency   = cms.untracked.vuint32(options.gtLatency)
0238 process.stage2GTRaw.rxFile = cms.untracked.string("uGT/rx_summary.txt")
0239 process.stage2GTRaw.txFile = cms.untracked.string("uGT/tx_summary.txt")
0240 
0241 
0242 process.rawDataCollector.verbose = cms.untracked.int32(2)
0243 
0244 
0245 # dump raw data
0246 process.dumpRaw = cms.EDAnalyzer( 
0247     "DumpFEDRawDataProduct",
0248     label = cms.untracked.string("rawDataCollector"),
0249     feds = cms.untracked.vint32 ( 1360, 1366, 1404 ),
0250     dumpPayload = cms.untracked.bool ( True )
0251 )
0252 
0253 # raw to digi
0254 process.load('EventFilter.L1TRawToDigi.caloStage2Digis_cfi')
0255 process.caloStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0256 
0257 process.load('EventFilter.L1TRawToDigi.gtStage2Digis_cfi')
0258 process.gtStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0259 
0260 
0261 # Setup for Emulation of uGT
0262 process.load('L1Trigger.L1TGlobal.StableParametersConfig_cff')
0263 process.load('L1Trigger.L1TGlobal.TriggerMenuXml_cfi')
0264 process.TriggerMenuXml.TriggerMenuLuminosity = 'startup'
0265 #process.TriggerMenuXml.DefXmlFile = 'L1Menu_CaloSliceTest_2015_v4.xml'
0266 process.TriggerMenuXml.DefXmlFile = 'L1Menu_Point5IntegrationTest_2015_v2.xml'
0267 process.TriggerMenuXml.newGrammar = cms.bool(options.newXML)
0268 if(options.newXML):
0269    print("Using new XML Grammar ")
0270    #process.TriggerMenuXml.DefXmlFile = 'L1Menu_Point5IntegrationTest_2015_v1a.xml'
0271    process.TriggerMenuXml.DefXmlFile = 'MuonTest.xml'
0272 
0273 process.load('L1Trigger.L1TGlobal.TriggerMenuConfig_cff')
0274 process.es_prefer_l1GtParameters = cms.ESPrefer('l1t::TriggerMenuXmlProducer','TriggerMenuXml')
0275 
0276 process.emL1uGtFromGtInput = cms.EDProducer("L1TGlobalProducer",
0277     ProduceL1GtObjectMapRecord = cms.bool(False),
0278     AlgorithmTriggersUnmasked = cms.bool(False),
0279     EmulateBxInEvent = cms.int32(1),
0280     L1DataBxInEvent = cms.int32(1),
0281     AlgorithmTriggersUnprescaled = cms.bool(False),
0282     ProduceL1GtDaqRecord = cms.bool(True),
0283     GmtInputTag = cms.InputTag("gtStage2Digis","GT"),
0284     caloInputTag = cms.InputTag("gtStage2Digis","GT"),
0285     AlternativeNrBxBoardDaq = cms.uint32(0),
0286     BstLengthBytes = cms.int32(-1),
0287     Verbosity = cms.untracked.int32(5)
0288 )
0289 
0290 process.emL1uGtFromDemuxOutput = cms.EDProducer("L1TGlobalProducer",
0291     ProduceL1GtObjectMapRecord = cms.bool(False),
0292     AlgorithmTriggersUnmasked = cms.bool(False),
0293     EmulateBxInEvent = cms.int32(1),
0294     L1DataBxInEvent = cms.int32(1),
0295     AlgorithmTriggersUnprescaled = cms.bool(False),
0296     ProduceL1GtDaqRecord = cms.bool(True),
0297     GmtInputTag = cms.InputTag(""),
0298     caloInputTag = cms.InputTag("caloStage2Digis"),
0299     AlternativeNrBxBoardDaq = cms.uint32(0),
0300     BstLengthBytes = cms.int32(-1),
0301     Verbosity = cms.untracked.int32(5)
0302 )
0303 
0304 
0305 
0306 # object analyser
0307 process.load('L1Trigger.L1TCalorimeter.l1tStage2CaloAnalyzer_cfi')
0308 process.l1tStage2CaloAnalyzer.doText = cms.untracked.bool(options.debug)
0309 process.l1tStage2CaloAnalyzer.towerToken = cms.InputTag("caloStage2Digis")
0310 process.l1tStage2CaloAnalyzer.clusterToken = cms.InputTag("None")
0311 process.l1tStage2CaloAnalyzer.mpEGToken = cms.InputTag("None")
0312 process.l1tStage2CaloAnalyzer.mpTauToken = cms.InputTag("None")
0313 
0314 
0315 # gt analyzer
0316 process.l1tGlobalAnalyzer = cms.EDAnalyzer('L1TGlobalAnalyzer',
0317     doText = cms.untracked.bool(options.debug),
0318     dmxEGToken = cms.InputTag("caloStage2Digis"),
0319     dmxTauToken = cms.InputTag("None"),
0320     dmxJetToken = cms.InputTag("caloStage2Digis"),
0321     dmxEtSumToken = cms.InputTag("caloStage2Digis"),
0322     muToken = cms.InputTag("gtStage2Digis","GT"),
0323     egToken = cms.InputTag("gtStage2Digis","GT"),
0324     tauToken = cms.InputTag("None"),
0325     jetToken = cms.InputTag("gtStage2Digis","GT"),
0326     etSumToken = cms.InputTag("gtStage2Digis","GT"),
0327     gtAlgToken = cms.InputTag("gtStage2Digis"),
0328     emulDxAlgToken = cms.InputTag("emL1uGtFromDemuxOutput"),
0329     emulGtAlgToken = cms.InputTag("emL1uGtFromGtInput")
0330 )
0331 
0332 
0333 # dump records
0334 process.dumpGTRecord = cms.EDAnalyzer("l1t::GtRecordDump",
0335                 egInputTag    = cms.InputTag("gtStage2Digis","GT"),
0336         muInputTag    = cms.InputTag("gtStage2Digis","GT"),
0337         tauInputTag   = cms.InputTag(""),
0338         jetInputTag   = cms.InputTag("gtStage2Digis","GT"),
0339         etsumInputTag = cms.InputTag("gtStage2Digis","GT"),
0340         uGtRecInputTag = cms.InputTag(""),
0341         uGtAlgInputTag = cms.InputTag("emL1uGtFromGtInput"),
0342         uGtExtInputTag = cms.InputTag(""),
0343         bxOffset       = cms.int32(0),
0344         minBx          = cms.int32(0),
0345         maxBx          = cms.int32(0),
0346         minBxVec       = cms.int32(0),
0347         maxBxVec       = cms.int32(0),      
0348         dumpGTRecord   = cms.bool(True),
0349         dumpVectors    = cms.bool(True),
0350         tvFileName     = cms.string( "TestVector.txt" )
0351          )
0352          
0353 
0354 
0355 
0356 
0357 # Path and EndPath definitions
0358 process.path = cms.Path(
0359 #    process.stage2MPRaw
0360      process.stage2DemuxRaw
0361     +process.stage2GTRaw
0362     +process.rawDataCollector
0363     +process.dumpRaw
0364     +process.caloStage2Digis
0365     +process.gtStage2Digis
0366     +process.emL1uGtFromGtInput
0367 #    +process.emL1uGtFromDemuxOutput
0368 #    +process.l1tStage2CaloAnalyzer
0369 #    +process.l1tGlobalAnalyzer
0370 #    +process.dumpGTRecord
0371 )
0372 
0373 if (not options.doMP):
0374     process.path.remove(process.stage2MPRaw)
0375 
0376 if (not options.doDemux):
0377     process.path.remove(process.stage2DemuxRaw)
0378 
0379 if (not options.doGT):
0380     process.path.remove(process.stage2GTRaw)
0381 
0382 process.out = cms.EndPath(
0383     process.output
0384 )
0385