Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #
0002 # cfg file to run some technical trigger emulators/simulation, L1 Global Trigger emulator 
0003 # on a file containing the output of the  GCT system and GMT system ("digi"), followed by 
0004 # the L1 trigger report
0005 #
0006 # V M Ghete 2009-03-04
0007 
0008 
0009 import FWCore.ParameterSet.Config as cms
0010 
0011 # process
0012 process = cms.Process('TestL1Gt')
0013 
0014 ###################### user choices ######################
0015 
0016 # choose the type of sample used (True for RelVal, False for data)
0017 useRelValSample = True 
0018 #useRelValSample=False 
0019 
0020 # release to be used
0021 useRelease = 'CMSSW_3_4_X'
0022 
0023 
0024 if useRelValSample == True :
0025     
0026     if useRelease == 'CMSSW_2_2_12' :
0027         
0028         useGlobalTag = 'IDEAL_V12'
0029         #useGlobalTag='STARTUP_V11'
0030     
0031     elif useRelease == 'CMSSW_3_1_1' :
0032          useGlobalTag = 'MC_31X_V2'
0033          #useGlobalTag = 'STARTUP31X_V1'
0034 
0035     elif useRelease == 'CMSSW_3_4_X' :
0036          useGlobalTag = 'MC_3XY_V10'
0037          #useGlobalTag = 'STARTUP3X_V9'
0038 
0039     # RelVals 
0040     useSample = 'RelValTTbar'
0041     #useSample = 'RelValZTT'
0042     
0043 else :
0044     # global tag for data
0045     
0046     if useRelease == 'CMSSW_2_2_12' :
0047         useGlobalTag = 'CRAFT_ALL_V11'
0048         
0049     elif useRelease == 'CMSSW_3_1_1' :
0050         #useGlobalTag = 'CRAFT0831X_V1'
0051         useGlobalTag = 'GR09_31X_V1P'
0052 
0053 
0054 # explicit choice of the L1 menu - available choices:
0055 # use menu from global tag
0056 l1Menu =''
0057 # use selected menu
0058 #l1Menu = 'L1Menu_Commissioning2009_v5'
0059 #l1Menu = 'L1Menu_MC2009_v0'
0060 #l1Menu = 'L1Menu_startup2_v4'
0061 #l1Menu = 'L1Menu_2008MC_2E30'
0062 #l1Menu = 'myMenu'
0063 
0064 # change to True to use local files
0065 #     the type of file should match the choice of useRelValSample and useGlobalTag
0066 useLocalFiles = False 
0067 
0068 ###################### end user choices ###################
0069 
0070 
0071 # number of events to be processed and source file
0072 process.maxEvents = cms.untracked.PSet(
0073     input=cms.untracked.int32(2000)
0074 )
0075 
0076 readFiles = cms.untracked.vstring()
0077 secFiles = cms.untracked.vstring() 
0078 process.source = cms.Source ('PoolSource', fileNames=readFiles, secondaryFileNames=secFiles)
0079 
0080 # type of sample used (True for RelVal, False for data)
0081 
0082 if useRelValSample == True :
0083     if useGlobalTag.count('IDEAL') or useGlobalTag.count('MC') :
0084         
0085         if (useRelease == 'CMSSW_3_4_X') and (useSample == 'RelValTTbar') :
0086 
0087             dataset = cms.untracked.vstring('/RelValTTbar/CMSSW_3_4_0_pre2-MC_3XY_V10-v1/GEN-SIM-DIGI-RAW-HLTDEBUG')       
0088             readFiles.extend([
0089                 '/store/relval/CMSSW_3_4_0_pre2/RelValTTbar/GEN-SIM-DIGI-RAW-HLTDEBUG/MC_3XY_V10-v1/0003/F4AC0278-96BD-DE11-8687-00261894392D.root',
0090                 '/store/relval/CMSSW_3_4_0_pre2/RelValTTbar/GEN-SIM-DIGI-RAW-HLTDEBUG/MC_3XY_V10-v1/0003/E2E078D8-C0BD-DE11-A77B-0026189438E0.root',
0091                 '/store/relval/CMSSW_3_4_0_pre2/RelValTTbar/GEN-SIM-DIGI-RAW-HLTDEBUG/MC_3XY_V10-v1/0003/E0D7EB2D-90BD-DE11-9BB6-0017312B5651.root'
0092                 ]);
0093 
0094 
0095             secFiles.extend([
0096                 ])
0097 
0098         else : 
0099             print('Error: no file list defined for release ', useRelease, ' global tag ', useGlobalTag, ' data sample ',  useSample)   
0100             sys.exit()
0101             
0102     elif useGlobalTag.count('STARTUP') :
0103 
0104         if (useRelease == 'CMSSW_3_4_X') and (useSample == 'RelValBeamHalo') :
0105 
0106             dataset = cms.untracked.vstring('/RelValBeamHalo/CMSSW_3_4_0_pre2-STARTUP3XY_V9-v1/GEN-SIM-DIGI-RAW-HLTDEBUG')
0107             readFiles.extend( [
0108                 '/store/relval/CMSSW_3_4_0_pre2/RelValBeamHalo/GEN-SIM-DIGI-RAW-HLTDEBUG/STARTUP3XY_V9-v1/0003/BC5F1CA5-C0BD-DE11-B4BD-002618943982.root',
0109                 '/store/relval/CMSSW_3_4_0_pre2/RelValBeamHalo/GEN-SIM-DIGI-RAW-HLTDEBUG/STARTUP3XY_V9-v1/0003/663EED3C-89BD-DE11-97CF-001A92971B8E.root'
0110                 ]);
0111 
0112 
0113             secFiles.extend([
0114                 ])
0115         else :
0116             print('Error: no file list defined for release ', useRelease, ' global tag ', useGlobalTag, ' data sample ',  useSample)   
0117             sys.exit()
0118 
0119 else : 
0120 
0121     # CRAFT data FIXME
0122     print('Error: no file list defined for release ', useRelease, ' global tag ', useGlobalTag, ' data sample ',  useSample)   
0123     sys.exit()
0124     
0125     dataset = ''
0126     
0127     readFiles.extend([
0128         ]);
0129 
0130     secFiles.extend([
0131         ])
0132 
0133 if useLocalFiles :
0134     readFiles = 'file:/afs/cern.ch/user/g/ghete/scratch0/CmsswTestFiles/testGt_L1GtTrigReport_source.root'
0135 
0136 # technical triggers to be run and collected by GT
0137 
0138 # producers for Technical Trigger
0139 #
0140 # BSC Trigger
0141 import L1TriggerOffline.L1Analyzer.bscTrigger_cfi
0142 process.simBscDigis = L1TriggerOffline.L1Analyzer.bscTrigger_cfi.bscTrigger.clone()
0143 
0144 # RPC Technical Trigger
0145 import L1Trigger.RPCTechnicalTrigger.rpcTechnicalTrigger_cfi
0146 process.simRpcTechTrigDigis = L1Trigger.RPCTechnicalTrigger.rpcTechnicalTrigger_cfi.rpcTechnicalTrigger.clone()
0147 process.simRpcTechTrigDigis.RPCDigiLabel = 'simMuonRPCDigis'
0148 
0149 # Global Trigger emulator
0150 import L1Trigger.GlobalTrigger.gtDigis_cfi
0151 process.l1GtEmulDigis = L1Trigger.GlobalTrigger.gtDigis_cfi.gtDigis.clone()
0152 
0153 
0154 # input tag for GMT readout collection: 
0155 #     gmtDigis = GMT emulator (default)
0156 #     l1GtUnpack     = GT unpacker (common GT/GMT unpacker)
0157 process.l1GtEmulDigis.GmtInputTag = 'simGmtDigis'
0158 
0159 # input tag for GCT readout collections: 
0160 #     gctDigis = GCT emulator (default) 
0161 process.l1GtEmulDigis.GctInputTag = 'simGctDigis'
0162 
0163 # input tag for CASTOR record 
0164 #     castorL1Digis =  CASTOR
0165 #process.l1GtEmulDigis.CastorInputTag = cms.InputTag("castorL1Digis")
0166     
0167 # technical triggers: a vector of input tags, one tag per each technical 
0168 # trigger producer 
0169 # 
0170 # by default: empty vector
0171     
0172 # Example:
0173 # TechnicalTriggersInputTags = cms.VInputTag(cms.InputTag('aTechTrigDigis'), 
0174 #                                            cms.InputTag('anotherTechTriggerDigis')),
0175 process.l1GtEmulDigis.TechnicalTriggersInputTags = cms.VInputTag(cms.InputTag('simBscDigis'), 
0176                                                                  cms.InputTag('simRpcTechTrigDigis'))
0177 
0178 # logical flag to produce the L1 GT DAQ readout record
0179 #     if true, produce the record (default)
0180 #process.l1GtEmulDigis.ProduceL1GtDaqRecord = False
0181     
0182 # logical flag to produce the L1 GT EVM readout record
0183 #     if true, produce the record (default)
0184 #process.l1GtEmulDigis.ProduceL1GtEvmRecord = False
0185 
0186 # logical flag to produce the L1 GT object map record
0187 #     if true, produce the record (default)
0188 #process.l1GtEmulDigis.ProduceL1GtObjectMapRecord = False
0189 
0190 # logical flag to write the PSB content in the  L1 GT DAQ record
0191 #     if true, write the PSB content in the record (default)
0192 #process.l1GtEmulDigis.WritePsbL1GtDaqRecord = False
0193 
0194 # logical flag to read the technical trigger records
0195 #     if true, it will read via getMany the available records (default)
0196 #process.l1GtEmulDigis.ReadTechnicalTriggerRecords = False
0197 
0198 # number of "bunch crossing in the event" (BxInEvent) to be emulated
0199 # symmetric around L1Accept (BxInEvent = 0):
0200 #    1 (BxInEvent = 0); 3 (F 0 1) (standard record); 5 (E F 0 1 2) (debug record)
0201 # even numbers (except 0) "rounded" to the nearest lower odd number
0202 # negative value: emulate TotalBxInEvent as given in EventSetup  
0203 #process.l1GtEmulDigis.EmulateBxInEvent = 3
0204 
0205 # length of BST record (in bytes) from parameter set
0206 # negative value: take the value from EventSetup      
0207 #process.l1GtEmulDigis.BstLengthBytes = 52
0208 
0209 # load and configure modules via Global Tag
0210 # https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions
0211 
0212 process.load("Configuration.StandardSequences.GeometryDB_cff")
0213 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0214 
0215 process.GlobalTag.globaltag = useGlobalTag
0216 
0217 
0218 # explicit choice of the L1 menu
0219 
0220 if l1Menu == '' :
0221     print('Using menu from global tag', useGlobalTag)
0222 
0223 elif l1Menu == 'L1Menu_Commissioning2009_v5' :
0224     process.load('L1Trigger.Configuration.L1StartupConfig_cff')
0225     process.load('L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_Commissioning2009_v5_L1T_Scales_20080926_startup_Imp0_Unprescaled_cff')
0226     
0227 elif l1Menu == 'L1Menu_startup2_v4' :
0228     process.load('L1Trigger.Configuration.L1StartupConfig_cff')
0229     process.load('L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup2_v4_L1T_Scales_20080926_startup_Imp0_Unprescaled_cff')
0230     
0231 elif l1Menu == 'L1Menu_MC2009_v0' :
0232     process.load('L1TriggerConfig.L1GtConfigProducers.Luminosity.lumi1031.L1Menu_MC2009_v0_L1T_Scales_20080922_Imp0_Unprescaled_cff')
0233 
0234 elif l1Menu == 'L1Menu_2008MC_2E30' :
0235     process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.lumi1030.L1Menu_2008MC_2E30_Unprescaled_cff")
0236 
0237 elif l1Menu == 'myMenu' :
0238     #process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v3_Unprescaled_cff")
0239     #process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v4_Unprescaled_cff")
0240     #process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup_v5_Unprescaled_cff")
0241     #process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup2_v1_Unprescaled_cff")
0242     #process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup2_v2_Unprescaled_cff")
0243     process.load("L1TriggerConfig.L1GtConfigProducers.Luminosity.startup.L1Menu_startup2_v3_Unprescaled_cff")
0244 else :
0245     print('No such L1 menu: ', l1Menu)  
0246       
0247 
0248 #
0249 # l1GtTrigReport module
0250 #
0251 
0252 process.load("L1Trigger.GlobalTriggerAnalyzer.l1GtTrigReport_cfi")
0253 
0254 # boolean flag to select the input record
0255 # if true, it will use L1GlobalTriggerRecord 
0256 #process.l1GtTrigReport.UseL1GlobalTriggerRecord = True
0257 
0258 # input tag for GT record: 
0259 #   GT emulator:    gtDigis (DAQ record)
0260 #   GT unpacker:    gtDigis (DAQ record)
0261 #   GT lite record: l1GtRecord 
0262 process.l1GtTrigReport.L1GtRecordInputTag = "l1GtEmulDigis"
0263 
0264 #process.l1GtTrigReport.PrintVerbosity = 10
0265 #process.l1GtTrigReport.PrintOutput = 1
0266 
0267 # path to be run
0268 process.p = cms.Path(process.simBscDigis 
0269                      + process.simRpcTechTrigDigis 
0270                      + process.l1GtEmulDigis 
0271                      + process.l1GtTrigReport)
0272 
0273 # Message Logger
0274 process.load('FWCore.MessageService.MessageLogger_cfi')
0275 process.MessageLogger.debugModules = ['l1GtEmulDigis', 'l1GtTrigReport']
0276 
0277 process.MessageLogger.cerr.threshold = 'DEBUG'
0278 #process.MessageLogger.cerr.threshold = 'INFO'
0279 #process.MessageLogger.cerr.threshold = 'WARNING'
0280 #process.MessageLogger.cerr.threshold = 'ERROR'
0281 
0282 process.MessageLogger.cerr.DEBUG = cms.untracked.PSet( limit = cms.untracked.int32(0) )
0283 process.MessageLogger.cerr.INFO = cms.untracked.PSet( limit = cms.untracked.int32(0) )
0284 process.MessageLogger.cerr.WARNING = cms.untracked.PSet( limit = cms.untracked.int32(0) )
0285 process.MessageLogger.cerr.ERROR = cms.untracked.PSet( limit = cms.untracked.int32(0) )
0286 
0287 process.MessageLogger.cerr.L1GtTrigReport = cms.untracked.PSet( limit = cms.untracked.int32(-1) )
0288 
0289 # summary
0290 process.options = cms.untracked.PSet(
0291     wantSummary=cms.untracked.bool(True)
0292 )
0293 
0294 # output 
0295 
0296 # keep GMT, GCT and GT output records
0297 # update labels if InputTags are replaced above
0298 
0299 process.outputL1GlobalTrigger = cms.OutputModule("PoolOutputModule",
0300     fileName=cms.untracked.string('L1GtTechTrigL1GtEmulTrigReport.root'),
0301     outputCommands=cms.untracked.vstring('drop *',
0302         'keep *_simGmtDigis_*_*',
0303         'keep *_simGctDigis_*_*',
0304         'keep *_l1GtEmulDigis_*_*')
0305 )
0306 
0307 process.outpath = cms.EndPath(process.outputL1GlobalTrigger)