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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
import FWCore.ParameterSet.Config as cms
import FWCore.ParameterSet.VarParsing as VarParsing
import sys
from DQM.Integration.config.dqmPythonTypes import RunType
from DQM.DTMonitorModule.test.dtDqmPythonTypes import DTDQMConfig
options = VarParsing.VarParsing('analysis')
# options.inputFiles are inherited from 'analysis'
options.register('runNumber',
111,
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.int,
"Run number.")
options.register('runInputDir',
'/tmp',
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"Directory where the DQM files will appear.")
options.register('scanOnce',
False, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.bool,
"Don't repeat file scans: use what was found during the initial scan. EOR file is ignored and the state is set to 'past end of run'.")
options.register('minEventsPerLumi',
1, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.int,
"If scanOnce is tue, sets the minimal # of events per LS to be processed before switching to the next LS (and file).")
options.register('skipFirstLumis',
False, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.bool,
"Skip (and ignore the minEventsPerLumi parameter) for the files which have been available at the begining of the processing. ")
# Parameters for runType
options.register ('runkey',
'pp_run',
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"Run Keys of CMS")
# parameters for DT configuration
options.register('processAB7Digis',
False, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.bool,
"Enable processing of AB7 DT digi data (duplicate occupancy plot and other customisations to DT digi monitoring)")
options.register('processAB7TPs',
False, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.bool,
"Enable processing of AB7 DT local trigger data (DOES NOTHING FOR NOW)")
options.register('runWithLargeTimeBox',
False, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.bool,
"Runs DTDigiTask with a timebox plot window of 6400 TDC Counts")
options.register('timeBoxTDCPedestal',
-200, # default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.int,
"Pedestal of the lower edge of AB7 time boxes")
options.parseArguments()
runType = RunType()
if not options.runkey.strip():
options.runkey = 'pp_run'
dtDqmConfig = DTDQMConfig()
dtDqmConfig.setProcessAB7Digis(options.processAB7Digis)
dtDqmConfig.setProcessAB7TPs(options.processAB7TPs)
dtDqmConfig.setRunWithLargeTB(options.runWithLargeTimeBox)
dtDqmConfig.setTBTDCPedestal(options.timeBoxTDCPedestal)
runType.setRunType(options.runkey.strip())
if not options.inputFiles:
# Input source
minEventsPerLumi = 1
nextLumiTimeoutMillis = 240000
endOfRunKills = True
if options.scanOnce:
endOfRunKills = False
nextLumiTimeoutMillis = 0
minEventsPerLumi = options.minEventsPerLumi
source = cms.Source("DQMStreamerReader",
runNumber = cms.untracked.uint32(options.runNumber),
runInputDir = cms.untracked.string(options.runInputDir),
SelectEvents = cms.untracked.vstring('*'),
streamLabel = cms.untracked.string('streamDQM'),
scanOnce = cms.untracked.bool(options.scanOnce),
minEventsPerLumi = cms.untracked.int32(minEventsPerLumi),
delayMillis = cms.untracked.uint32(500),
nextLumiTimeoutMillis = cms.untracked.int32(nextLumiTimeoutMillis),
skipFirstLumis = cms.untracked.bool(options.skipFirstLumis),
deleteDatFiles = cms.untracked.bool(False),
endOfRunKills = cms.untracked.bool(endOfRunKills),
)
else:
print("The list of input files is provided. Disabling discovery and running on everything.")
files = map(lambda x: "file://" + x, options.inputFiles)
source = cms.Source("PoolSource",
fileNames = cms.untracked.vstring(files),
secondaryFileNames = cms.untracked.vstring()
)
print("Source:", source)
print("RunType:", runType)
print("DTDQMConfig:", dtDqmConfig)
|