Skip to content

Commit f213343

Browse files
committed
DIR readout configuration example
1 parent 5f76d36 commit f213343

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
import FWCore.ParameterSet.Config as cms
2+
import FWCore.ParameterSet.VarParsing as VarParsing
3+
import os
4+
5+
options = VarParsing.VarParsing ('analysis')
6+
7+
#cmsRun runNumber=X ...
8+
options.register ('runNumber',
9+
18, # default value
10+
VarParsing.VarParsing.multiplicity.singleton,
11+
VarParsing.VarParsing.varType.int,
12+
"Run Number")
13+
14+
options.register ('daqSourceMode',
15+
'DTH', # default value
16+
VarParsing.VarParsing.multiplicity.singleton,
17+
VarParsing.VarParsing.varType.string,
18+
"DAQ source data mode")
19+
20+
options.register ('buBaseDir',
21+
'ramdisk', # default value
22+
VarParsing.VarParsing.multiplicity.singleton,
23+
VarParsing.VarParsing.varType.string,
24+
"BU base directory")
25+
26+
options.register ('fuBaseDir',
27+
'data', # default value
28+
VarParsing.VarParsing.multiplicity.singleton,
29+
VarParsing.VarParsing.varType.string,
30+
"BU base directory")
31+
32+
options.register ('fffBaseDir',
33+
'.', # default value
34+
VarParsing.VarParsing.multiplicity.singleton,
35+
VarParsing.VarParsing.varType.string,
36+
"FFF base directory")
37+
38+
options.register ('numThreads',
39+
3,
40+
VarParsing.VarParsing.multiplicity.singleton,
41+
VarParsing.VarParsing.varType.int,
42+
"Number of CMSSW threads")
43+
44+
options.register ('numFwkStreams',
45+
2,
46+
VarParsing.VarParsing.multiplicity.singleton,
47+
VarParsing.VarParsing.varType.int,
48+
"Number of CMSSW streams")
49+
50+
options.parseArguments()
51+
52+
process = cms.Process("DTHDEMO")
53+
process.maxEvents = cms.untracked.PSet(
54+
input = cms.untracked.int32(-1)
55+
)
56+
57+
process.options = cms.untracked.PSet(
58+
numberOfThreads = cms.untracked.uint32(options.numThreads),
59+
numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
60+
numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1)
61+
)
62+
process.MessageLogger = cms.Service("MessageLogger",
63+
cout = cms.untracked.PSet(threshold = cms.untracked.string( "INFO" )),
64+
destinations = cms.untracked.vstring( 'cout' )
65+
)
66+
67+
process.EvFDaqDirector = cms.Service("EvFDaqDirector",
68+
useFileBroker = cms.untracked.bool(True),
69+
fileBrokerHostFromCfg = cms.untracked.bool(False),
70+
fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
71+
runNumber = cms.untracked.uint32(options.runNumber),
72+
baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
73+
buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
74+
directorIsBU = cms.untracked.bool(False),
75+
76+
#read data from single or multiple directories
77+
buBaseDirsAll = cms.untracked.vstring(options.fffBaseDir+"/"+options.buBaseDir),
78+
79+
#number of sources read per each directory e.g. (2,4,1)
80+
buBaseDirsNumStreams = cms.untracked.vint32(1),
81+
82+
#list of sources for each directory above in the same order (e.g. 1230,1231, 1255,1256,1257,1258, 1350)
83+
buBaseDirsStreamIDs = cms.untracked.vint32(1230),
84+
85+
#naming convetion of the file (source, sourceid, fb, fbid, etc. or <empty> for non-DTH mode)
86+
sourceIdentifier = cms.untracked.string("source")
87+
88+
#example for multiple sources in single directory:
89+
#buBaseDirsNumStreams = cms.untracked.vint32(3),
90+
#buBaseDirsStreamIDs = cms.untracked.vint32(1230),
91+
#buBaseDirsStreamIDs = cms.untracked.vint32(1232),
92+
#buBaseDirsStreamIDs = cms.untracked.vint32(1233),
93+
94+
)
95+
96+
process.FastMonitoringService = cms.Service("FastMonitoringService",
97+
sleepTime = cms.untracked.int32(1)
98+
)
99+
100+
try:
101+
os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
102+
except Exception as ex:
103+
print(str(ex))
104+
pass
105+
106+
process.source = cms.Source("DAQSource",
107+
fileDiscoveryMode = cms.untracked.bool(True),
108+
fileListMode = cms.untracked.bool(False),
109+
fileNames = cms.untracked.vstring(),
110+
#testing = cms.untracked.bool(True),
111+
dataMode = cms.untracked.string(options.daqSourceMode),
112+
verifyChecksum = cms.untracked.bool(True if options.daqSourceMode != "DTH" else False),
113+
useL1EventID = cms.untracked.bool(False),
114+
eventChunkBlock = cms.untracked.uint32(2),
115+
eventChunkSize = cms.untracked.uint32(3),
116+
maxChunkSize = cms.untracked.uint32(10),
117+
numBuffers = cms.untracked.uint32(3),
118+
maxBufferedFiles = cms.untracked.uint32(2),
119+
)
120+
121+
process.out = cms.OutputModule("PoolOutputModule",
122+
fileName = cms.untracked.string(f'file:DTH_dump{options.runNumber}.root'),
123+
outputCommands = cms.untracked.vstring(
124+
"keep *",
125+
),
126+
compressionAlgorithm = cms.untracked.string("ZSTD"),
127+
compressionLevel = cms.untracked.int32(4),
128+
)
129+
130+
process.ep = cms.EndPath(
131+
process.out
132+
)

0 commit comments

Comments
 (0)