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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
import FWCore.ParameterSet.Config as cms
import FWCore.ParameterSet.VarParsing as VarParsing
process = cms.Process("Reader")
options = VarParsing.VarParsing("analysis")
options.register ('moduleList',
'',
VarParsing.VarParsing.multiplicity.list, # singleton or list
VarParsing.VarParsing.varType.int, # string, int, or float
"List of modules to monitor")
options.register ('gainNorm',
False,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.bool, # string, int, or float
"has gain normalization to be applied?")
options.register ('simGainNorm',
False,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.bool, # string, int, or float
"has SIM gain normalization to be applied?")
options.register ('globalTag',
"DONOTEXIST",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"GlobalTag")
options.register ('logDestination',
"",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"log file")
options.register ('outputRootFile',
"",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"output root file")
options.register ('connectionString',
"",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"connection string")
options.register ('recordName',
"",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"record name")
options.register ('tagName',
"",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"tag name")
options.register ('runNumber',
0,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.int, # string, int, or float
"run number")
options.register ('PedestalMon',
False,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.bool, # string, int, or float
"Monitor pedestals?")
options.register ('NoiseMon',
False,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.bool, # string, int, or float
"Monitor noise?")
options.parseArguments()
process.MessageLogger = cms.Service("MessageLogger",
debugModules = cms.untracked.vstring(''),
destinations = cms.untracked.vstring(options.logDestination,
'cerr'
), #Reader, cout
categories = cms.untracked.vstring('SiStripBaseCondObjDQM',
'SiStripNoisesDQM',
'SiStripPedestalsDQM'
),
cerr = cms.untracked.PSet(threshold = cms.untracked.string('WARNING'))
)
setattr(process.MessageLogger,options.logDestination,cms.untracked.PSet(
threshold = cms.untracked.string('INFO'),
default = cms.untracked.PSet(limit=cms.untracked.int32(0)),
SiStripBaseCondObjDQM = cms.untracked.PSet(limit=cms.untracked.int32(100000)),
SiStripNoisesDQM = cms.untracked.PSet(limit=cms.untracked.int32(100000)),
SiStripPedestalsDQM = cms.untracked.PSet(limit=cms.untracked.int32(100000))
))
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(-1)
)
process.source = cms.Source("EmptyIOVSource",
firstValue = cms.uint64(options.runNumber),
lastValue = cms.uint64(options.runNumber),
timetype = cms.string('runnumber'),
interval = cms.uint64(1)
)
if options.globalTag == "DONOTEXIST":
process.load('Configuration.Geometry.GeometryExtended_cff')
process.TrackerTopologyEP = cms.ESProducer("TrackerTopologyEP")
process.load("Geometry.TrackerGeometryBuilder.trackerParameters_cfi")
process.poolDBESSource = cms.ESSource("PoolDBESSource",
DBParameters = cms.PSet(
messageLevel = cms.untracked.int32(1), # it used to be 2
authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
),
connect = cms.string(options.connectionString),
toGet = cms.VPSet(cms.PSet(
record = cms.string(options.recordName),
tag = cms.string(options.tagName)
))
)
else:
process.load("Configuration.StandardSequences.GeometryDB_cff")
process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
from Configuration.AlCa.GlobalTag import GlobalTag
process.GlobalTag = GlobalTag(process.GlobalTag, options.globalTag, '')
process.DQMStore = cms.Service("DQMStore",
verbose = cms.untracked.int32(1)
)
process.load("DQM.SiStripMonitorSummary.SiStripMonitorCondData_cfi")
process.CondDataMonitoring.OutputFileName = options.outputRootFile
process.CondDataMonitoring.MonitorSiStripPedestal = options.PedestalMon
process.CondDataMonitoring.MonitorSiStripNoise = options.NoiseMon
process.CondDataMonitoring.MonitorSiStripQuality = False
process.CondDataMonitoring.MonitorSiStripCabling = False
process.CondDataMonitoring.MonitorSiStripApvGain = False
process.CondDataMonitoring.MonitorSiStripLorentzAngle = False
process.CondDataMonitoring.MonitorSiStripBackPlaneCorrection = False
process.CondDataMonitoring.MonitorSiStripLowThreshold = False
process.CondDataMonitoring.MonitorSiStripHighThreshold = False
process.CondDataMonitoring.OutputMEsInRootFile = True
process.CondDataMonitoring.FillConditions_PSet.OutputSummaryAtLayerLevelAsImage = False
process.CondDataMonitoring.FillConditions_PSet.OutputSummaryProfileAtLayerLevelAsImage = False
process.CondDataMonitoring.FillConditions_PSet.OutputCumulativeSummaryAtLayerLevelAsImage = False
process.CondDataMonitoring.FillConditions_PSet.HistoMaps_On = False
process.CondDataMonitoring.FillConditions_PSet.TkMap_On = False
process.CondDataMonitoring.FillConditions_PSet.ActiveDetIds_On = True
process.CondDataMonitoring.FillConditions_PSet.Mod_On = True # Set to True if you want to have single module histograms
process.CondDataMonitoring.FillConditions_PSet.restrictModules = True
process.CondDataMonitoring.FillConditions_PSet.ModulesToBeIncluded = cms.vuint32(options.moduleList)
process.CondDataMonitoring.SiStripPedestalsDQM_PSet.FillSummaryAtLayerLevel = True
process.CondDataMonitoring.SiStripNoisesDQM_PSet.FillSummaryAtLayerLevel = True
process.CondDataMonitoring.SiStripPedestalsDQM_PSet.CondObj_fillId = 'ProfileAndCumul' # Use 'ProfileAndCumul' if you want to have single module histograms
process.CondDataMonitoring.SiStripNoisesDQM_PSet.CondObj_fillId = 'ProfileAndCumul' # Use 'ProfileAndCumul' if you want to have single module histograms
process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMap_On = False
process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMapName = 'PedestalTkMap.png'
process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMap_On = False
process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMapName = 'NoiseTkMap.png'
process.CondDataMonitoring.SiStripNoisesDQM_PSet.Cumul_NchX = cms.int32(150)
process.CondDataMonitoring.SiStripNoisesDQM_PSet.Cumul_LowX = cms.double(0.0)
process.CondDataMonitoring.SiStripNoisesDQM_PSet.Cumul_HighX = cms.double(15.0)
process.CondDataMonitoring.SiStripNoisesDQM_PSet.GainRenormalisation = cms.bool(options.gainNorm)
process.CondDataMonitoring.SiStripNoisesDQM_PSet.SimGainRenormalisation = cms.bool(options.simGainNorm)
process.p1 = cms.Path(process.CondDataMonitoring)
|