Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
import FWCore.ParameterSet.Config as cms
from argparse import ArgumentParser

parser = ArgumentParser(description='Test GlobalEvFOutputModule')
parser.add_argument("--numEvents", help="number of events to process", type=int, default=10)
parser.add_argument("--startEvent", help="start event number", type=int, default=1)
parser.add_argument("--runNumber", help="run number to use", type=int, default=100101)
parser.add_argument("--numThreads", help="number of threads to use", type=int, default=3)
parser.add_argument("--numFwkStreams", help="number of cmsRun streams", type=int, default=2)
parser.add_argument("--changeBranchIDLists", help="modify the branchIDLists", type=bool, default=False)

parser.add_argument("--buBaseDir", help="BU base directory", type=str, default="ramdisk")
parser.add_argument("--fuBaseDir", help="FU base directory", type=str, default="data")
parser.add_argument("--fffBaseDir", help="FFF base directory", type=str, default=".")

args = parser.parse_args()

#try to create 'ramdisk' directory
try:
    os.makedirs(args.fffBaseDir+"/"+args.buBaseDir+"/run"+str(args.runNumber).zfill(6))
except:pass
#try to create 'data' directory
try:
  os.makedirs(args.fffBaseDir+"/"+args.fuBaseDir+"/run"+str(args.runNumber).zfill(6))
except Exception as ex:
  print(str(ex))
  pass


process = cms.Process("WRITE")

process.source = cms.Source("EmptySource",
                            firstRun=cms.untracked.uint32(args.runNumber),
                            firstEvent=cms.untracked.uint32(args.startEvent)
)

if args.numEvents != 0:
    process.maxEvents.input = args.numEvents
else:
    process.maxEvents.input = 1

process.options = dict(numberOfThreads = args.numThreads,
                       numberOfStreams = args.numFwkStreams)

process.intprod = cms.EDProducer("BranchIDListsModifierProducer",
                                 makeExtraProduct=cms.untracked.bool(args.changeBranchIDLists))

process.thing = cms.EDProducer("ThingProducer")

process.otherThing = cms.EDProducer("OtherThingProducer",
                                   thingTag=cms.InputTag("thing"))

process.t = cms.Task(
    process.intprod,
    process.thing,
    process.otherThing
)


process.filter = cms.EDFilter("PrescaleEventFilter", offset = cms.uint32(0), prescale=cms.uint32(1))
if args.numEvents == 0:
    process.filter.offset = 2
    process.filter.prescale = 4
process.p = cms.Path(process.filter)

process.streamA = cms.OutputModule("GlobalEvFOutputModule",
                                   SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring("p")),
                                   outputCommands = cms.untracked.vstring("keep *")
)

process.ep = cms.EndPath(process.streamA, process.t)

process.EvFDaqDirector = cms.Service("EvFDaqDirector",
    useFileBroker = cms.untracked.bool(False),
    fileBrokerHostFromCfg = cms.untracked.bool(True),
    fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
    runNumber = cms.untracked.uint32(args.runNumber),
    baseDir = cms.untracked.string(args.fffBaseDir+"/"+args.fuBaseDir),
    buBaseDir = cms.untracked.string(args.fffBaseDir+"/"+args.buBaseDir),
    directorIsBU = cms.untracked.bool(False),
)

process.FastMonitoringService = cms.Service("FastMonitoringService",
    sleepTime = cms.untracked.int32(1)
)