Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-12 02:41:52

0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 import sys
0004 
0005 options = VarParsing.VarParsing ('analysis')
0006 
0007 options.register ("numOrbits",
0008                   -1,
0009                   VarParsing.VarParsing.multiplicity.singleton,
0010                   VarParsing.VarParsing.varType.int,
0011                   "Number of orbits/events to process")
0012 
0013 options.register ("inFile",
0014                   "file:",
0015                   VarParsing.VarParsing.multiplicity.singleton,
0016                   VarParsing.VarParsing.varType.string,
0017                   "Path to the input file")
0018 
0019 options.register ("outFile",
0020                   "file:/tmp/out.root",
0021                   VarParsing.VarParsing.multiplicity.singleton,
0022                   VarParsing.VarParsing.varType.string,
0023                   "Path of the output file")
0024 
0025 options.register ("nThreads",
0026                   4,
0027                   VarParsing.VarParsing.multiplicity.singleton,
0028                   VarParsing.VarParsing.varType.int,
0029                   "Number of threads")
0030 
0031 options.register ("nStreams",
0032                   4,
0033                   VarParsing.VarParsing.multiplicity.singleton,
0034                   VarParsing.VarParsing.varType.int,
0035                   "Number of streams")
0036 
0037 options.register ("debug",
0038                   False,
0039                   VarParsing.VarParsing.multiplicity.singleton,
0040                   VarParsing.VarParsing.varType.bool,
0041                   "Run in debug mode")
0042 
0043 options.parseArguments()
0044 
0045 process = cms.Process( "SCRATES" )
0046 
0047 process.maxEvents = cms.untracked.PSet(
0048     input = cms.untracked.int32(options.numOrbits)
0049 )
0050 
0051 process.load("FWCore.MessageService.MessageLogger_cfi")
0052 process.MessageLogger.cerr.threshold = "WARNING"
0053 process.MessageLogger.cerr.FwkReport.reportEvery = 100
0054 
0055 process.Timing = cms.Service("Timing",
0056     summaryOnly = cms.untracked.bool(True),
0057     useJobReport = cms.untracked.bool(True)
0058 )
0059 
0060 process.source = cms.Source("PoolSource",
0061     fileNames = cms.untracked.vstring(options.inFile)
0062 )
0063 
0064 process.DijetEt30 = cms.EDProducer("JetBxSelector",
0065     jetsTag          = cms.InputTag("l1ScCaloUnpacker", "Jet"),
0066     minNJet          = cms.int32(2),
0067     minJetEt         = cms.vdouble(30, 30),
0068     maxJetEta        = cms.vdouble(99.9, 99.9)
0069 )
0070 
0071 process.HMJetMult4Et20 = cms.EDProducer("JetBxSelector",
0072     jetsTag          = cms.InputTag("l1ScCaloUnpacker", "Jet"),
0073     minNJet          = cms.int32(4),
0074     minJetEt         = cms.vdouble(20, 20, 20, 20),
0075     maxJetEta        = cms.vdouble(99.9, 99.9, 99.9, 99.9),
0076 )
0077 
0078 process.SingleMuPt0BMTF = cms.EDProducer("MuBxSelector",
0079     muonsTag         = cms.InputTag("l1ScGmtUnpacker",  "Muon"),
0080     minNMu           = cms.int32(1),
0081     minMuPt          = cms.vdouble(0.0),
0082     maxMuEta         = cms.vdouble(99.9),
0083     minMuTfIndex     = cms.vint32(36),
0084     maxMuTfIndex     = cms.vint32(71),
0085     minMuHwQual    = cms.vint32(0),
0086 )
0087 
0088 process.DoubleMuPt0Qual8 = cms.EDProducer("MuBxSelector",
0089     muonsTag         = cms.InputTag("l1ScGmtUnpacker",  "Muon"),
0090     minNMu           = cms.int32(2),
0091     minMuPt        = cms.vdouble(0, 0),
0092     maxMuEta       = cms.vdouble(99.9, 99.9),
0093     minMuTfIndex     = cms.vint32(0, 0),
0094     maxMuTfIndex     = cms.vint32(107, 107),
0095     minMuHwQual      = cms.vint32(8, 8),
0096 )
0097 
0098 process.MuTagJetEt30Dr0p4 = cms.EDProducer("MuTagJetBxSelector",
0099     muonsTag         = cms.InputTag("l1ScGmtUnpacker",  "Muon"),
0100     jetsTag          = cms.InputTag("l1ScCaloUnpacker", "Jet"),
0101     minNJet          = cms.int32(1),
0102     minJetEt         = cms.vdouble(30),
0103     maxJetEta        = cms.vdouble(99.9),
0104     minMuPt          = cms.vdouble(0),
0105     maxMuEta         = cms.vdouble(99.9),
0106     minMuTfIndex     = cms.vint32(0),
0107     maxMuTfIndex     = cms.vint32(107),
0108     minMuHwQual      = cms.vint32(8),
0109     maxDR            = cms.vdouble(0.4),
0110 )
0111 
0112 process.FinalBxSelector = cms.EDFilter("FinalBxSelector",
0113     analysisLabels   = cms.VInputTag(
0114         cms.InputTag("DijetEt30", "SelBx"),
0115         cms.InputTag("SingleMuPt0BMTF", "SelBx"),
0116         cms.InputTag("DoubleMuPt0Qual8", "SelBx"),
0117         cms.InputTag("HMJetMult4Et20", "SelBx"),
0118         cms.InputTag("MuTagJetEt30Dr0p4", "SelBx")
0119     ),
0120 )
0121 
0122 process.bxSelectors = cms.Sequence(
0123     process.DijetEt30 +
0124     process.HMJetMult4Et20 +
0125     process.SingleMuPt0BMTF +
0126     process.DoubleMuPt0Qual8 +
0127     process.MuTagJetEt30Dr0p4
0128 )
0129 
0130 # Final collection producers
0131 process.FinalBxSelectorMuon = cms.EDProducer("MaskOrbitBxScoutingMuon",
0132     dataTag = cms.InputTag("l1ScGmtUnpacker",  "Muon"),
0133     selectBxs = cms.InputTag("FinalBxSelector", "SelBx"),
0134     productLabel = cms.string("Muon")
0135 )
0136 
0137 process.FinalBxSelectorJet = cms.EDProducer("MaskOrbitBxScoutingJet",
0138     dataTag = cms.InputTag("l1ScCaloUnpacker",  "Jet"),
0139     selectBxs = cms.InputTag("FinalBxSelector", "SelBx"),
0140     productLabel = cms.string("Jet")
0141 )
0142 
0143 process.FinalBxSelectorEGamma = cms.EDProducer("MaskOrbitBxScoutingEGamma",
0144     dataTag = cms.InputTag("l1ScCaloUnpacker",  "EGamma"),
0145     selectBxs = cms.InputTag("FinalBxSelector", "SelBx"),
0146     productLabel = cms.string("EGamma")
0147 )
0148 
0149 process.FinalBxSelectorTau = cms.EDProducer("MaskOrbitBxScoutingTau",
0150     dataTag = cms.InputTag("l1ScCaloUnpacker",  "Tau"),
0151     selectBxs = cms.InputTag("FinalBxSelector", "SelBx"),
0152     productLabel = cms.string("Tau")
0153 )
0154 
0155 process.FinalBxSelectorBxSums = cms.EDProducer("MaskOrbitBxScoutingBxSums",
0156     dataTag = cms.InputTag("l1ScCaloUnpacker",  "EtSum"),
0157     selectBxs = cms.InputTag("FinalBxSelector", "SelBx"),
0158     productLabel = cms.string("EtSum")
0159 )
0160 
0161 process.MaskedCollections = cms.Sequence(
0162     process.FinalBxSelectorMuon +
0163     process.FinalBxSelectorJet +
0164     process.FinalBxSelectorEGamma +
0165     process.FinalBxSelectorTau +
0166     process.FinalBxSelectorBxSums
0167 )
0168 
0169 process.pL1ScoutingSelected = cms.Path(process.bxSelectors + process.FinalBxSelector+process.MaskedCollections)
0170 
0171 process.hltOutputL1ScoutingSelection = cms.OutputModule("PoolOutputModule",
0172     fileName = cms.untracked.string(options.outFile),
0173     SelectEvents = cms.untracked.PSet(
0174         SelectEvents = cms.vstring("pL1ScoutingSelected")
0175     ),
0176     outputCommands = cms.untracked.vstring(
0177         'drop *',
0178         'keep *_DijetEt30_*_*',
0179         'keep *_HMJetMult4Et20_*_*',
0180         'keep *_SingleMuPt0BMTF_*_*',
0181         'keep *_DoubleMuPt0Qual8_*_*',
0182         'keep *_MuTagJetEt30Dr0p4_*_*',
0183         'keep *_FinalBxSelector*_*_*',
0184     )
0185 )
0186 
0187 process.options.numberOfThreads = options.nThreads
0188 process.options.numberOfStreams = options.nStreams
0189 
0190 #options to override compression algorithm and level for the streamer output
0191 C_LEVEL_UNDEFINED = -1
0192 C_ALGO_UNDEFINED = ""
0193 for moduleName in process.__dict__['_Process__outputmodules']:
0194     modified_module = getattr(process,moduleName)
0195     if -1 != C_LEVEL_UNDEFINED:
0196         modified_module.compression_level=cms.untracked.int32(-1)
0197     if "" != C_ALGO_UNDEFINED:
0198         modified_module.compression_algorithm=cms.untracked.string("")
0199 
0200 process.options.numberOfThreads = options.nThreads
0201 process.options.numberOfStreams = options.nStreams
0202 
0203 process.epL1ScoutingSelection = cms.EndPath(process.hltOutputL1ScoutingSelection)
0204 process.HLTSchedule = cms.Schedule(process.epL1ScoutingSelection)
0205