File indexing completed on 2025-04-17 02:42:09
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import FWCore.ParameterSet.VarParsing as VarParsing
0004
0005 process = cms.Process("Reader")
0006
0007 options = VarParsing.VarParsing("analysis")
0008
0009 options.register ('logDestination',
0010 "",
0011 VarParsing.VarParsing.multiplicity.singleton,
0012 VarParsing.VarParsing.varType.string,
0013 "log file")
0014 options.register ('qualityLogDestination',
0015 "",
0016 VarParsing.VarParsing.multiplicity.singleton,
0017 VarParsing.VarParsing.varType.string,
0018 "quality log file")
0019 options.register ('cablingLogDestination',
0020 "",
0021 VarParsing.VarParsing.multiplicity.singleton,
0022 VarParsing.VarParsing.varType.string,
0023 "cabling log file")
0024 options.register ('condLogDestination',
0025 "",
0026 VarParsing.VarParsing.multiplicity.singleton,
0027 VarParsing.VarParsing.varType.string,
0028 "conditions log file")
0029 options.register ('outputRootFile',
0030 "",
0031 VarParsing.VarParsing.multiplicity.singleton,
0032 VarParsing.VarParsing.varType.string,
0033 "output root file")
0034 options.register ('connectionString',
0035 "",
0036 VarParsing.VarParsing.multiplicity.singleton,
0037 VarParsing.VarParsing.varType.string,
0038 "connection string")
0039 options.register ('recordName',
0040 "",
0041 VarParsing.VarParsing.multiplicity.singleton,
0042 VarParsing.VarParsing.varType.string,
0043 "record name")
0044 options.register ('recordForQualityName',
0045 "SiStripDetCablingRcd",
0046 VarParsing.VarParsing.multiplicity.singleton,
0047 VarParsing.VarParsing.varType.string,
0048 "record name")
0049 options.register ('tagName',
0050 "",
0051 VarParsing.VarParsing.multiplicity.singleton,
0052 VarParsing.VarParsing.varType.string,
0053 "tag name")
0054 options.register ('runNumber',
0055 0,
0056 VarParsing.VarParsing.multiplicity.singleton,
0057 VarParsing.VarParsing.varType.int,
0058 "run number")
0059 options.register ('LatencyMon',
0060 False,
0061 VarParsing.VarParsing.multiplicity.singleton,
0062 VarParsing.VarParsing.varType.bool,
0063 "Monitor latency?")
0064 options.register ('ALCARecoTriggerBitsMon',
0065 False,
0066 VarParsing.VarParsing.multiplicity.singleton,
0067 VarParsing.VarParsing.varType.bool,
0068 "Monitor ALCAReco trigger bits")
0069 options.register ('ShiftAndCrosstalkMon',
0070 False,
0071 VarParsing.VarParsing.multiplicity.singleton,
0072 VarParsing.VarParsing.varType.bool,
0073 "Monitor shift and crosstalk?")
0074 options.register ('APVPhaseOffsetsMon',
0075 False,
0076 VarParsing.VarParsing.multiplicity.singleton,
0077 VarParsing.VarParsing.varType.bool,
0078 "Monitor APV phase offsets?")
0079 options.register ('PedestalMon',
0080 False,
0081 VarParsing.VarParsing.multiplicity.singleton,
0082 VarParsing.VarParsing.varType.bool,
0083 "Monitor pedestals?")
0084 options.register ('NoiseMon',
0085 False,
0086 VarParsing.VarParsing.multiplicity.singleton,
0087 VarParsing.VarParsing.varType.bool,
0088 "Monitor noise?")
0089 options.register ('QualityMon',
0090 False,
0091 VarParsing.VarParsing.multiplicity.singleton,
0092 VarParsing.VarParsing.varType.bool,
0093 "Monitor quality?")
0094 options.register ('CablingMon',
0095 False,
0096 VarParsing.VarParsing.multiplicity.singleton,
0097 VarParsing.VarParsing.varType.bool,
0098 "Monitor cabling?")
0099 options.register ('GainMon',
0100 False,
0101 VarParsing.VarParsing.multiplicity.singleton,
0102 VarParsing.VarParsing.varType.bool,
0103 "Monitor gain?")
0104 options.register ('LorentzAngleMon',
0105 False,
0106 VarParsing.VarParsing.multiplicity.singleton,
0107 VarParsing.VarParsing.varType.bool,
0108 "Monitor LA?")
0109 options.register ('BackPlaneCorrectionMon',
0110 False,
0111 VarParsing.VarParsing.multiplicity.singleton,
0112 VarParsing.VarParsing.varType.bool,
0113 "Monitor BP correction?")
0114 options.register ('ThresholdMon',
0115 False,
0116 VarParsing.VarParsing.multiplicity.singleton,
0117 VarParsing.VarParsing.varType.bool,
0118 "Monitor thresholds?")
0119 options.register ('MonitorCumulative',
0120 False,
0121 VarParsing.VarParsing.multiplicity.singleton,
0122 VarParsing.VarParsing.varType.bool,
0123 "Cumulative Monitoring?")
0124 options.register ('ActiveDetId',
0125 False,
0126 VarParsing.VarParsing.multiplicity.singleton,
0127 VarParsing.VarParsing.varType.bool,
0128 "Active detid?")
0129
0130 options.parseArguments()
0131
0132
0133 process.MessageLogger = cms.Service("MessageLogger",
0134 debugModules = cms.untracked.vstring(''),
0135 destinations = cms.untracked.vstring(options.logDestination,
0136 options.qualityLogDestination,
0137 options.cablingLogDestination,
0138 options.condLogDestination,
0139 'cerr'
0140 ),
0141 categories = cms.untracked.vstring('SiStripQualityStatistics',
0142 'SiStripQualityDQM',
0143 'SiStripFedCablingReader',
0144 'DummyCondObjContentPrinter',
0145 ),
0146 cerr = cms.untracked.PSet(threshold = cms.untracked.string('WARNING'))
0147 )
0148 setattr(process.MessageLogger,options.logDestination,cms.untracked.PSet(threshold = cms.untracked.string('INFO')))
0149 setattr(process.MessageLogger,options.qualityLogDestination,cms.untracked.PSet(
0150 threshold = cms.untracked.string('INFO'),
0151 default = cms.untracked.PSet(limit=cms.untracked.int32(0)),
0152 SiStripQualityStatistics = cms.untracked.PSet(limit=cms.untracked.int32(100000))
0153
0154 )
0155 )
0156 setattr(process.MessageLogger,options.cablingLogDestination,cms.untracked.PSet(
0157 threshold = cms.untracked.string('INFO'),
0158 default = cms.untracked.PSet(limit=cms.untracked.int32(0)),
0159 SiStripFedCablingReader = cms.untracked.PSet(limit=cms.untracked.int32(100000))
0160 )
0161 )
0162 setattr(process.MessageLogger,options.condLogDestination,cms.untracked.PSet(
0163 threshold = cms.untracked.string('INFO'),
0164 default = cms.untracked.PSet(limit=cms.untracked.int32(0)),
0165 DummyCondObjContentPrinter = cms.untracked.PSet(limit=cms.untracked.int32(100000))
0166 )
0167 )
0168
0169 process.maxEvents = cms.untracked.PSet(
0170 input = cms.untracked.int32(-1)
0171 )
0172
0173 process.source = cms.Source("EmptyIOVSource",
0174 firstValue = cms.uint64(options.runNumber),
0175 lastValue = cms.uint64(options.runNumber),
0176 timetype = cms.string('runnumber'),
0177 interval = cms.uint64(1)
0178 )
0179
0180
0181 process.load('Configuration.Geometry.GeometryExtended2018_cff')
0182 process.TrackerTopologyEP = cms.ESProducer("TrackerTopologyEP")
0183 process.load("Geometry.TrackerGeometryBuilder.trackerParameters_cfi")
0184
0185 process.poolDBESSource = cms.ESSource("PoolDBESSource",
0186 DBParameters = cms.PSet(
0187 messageLevel = cms.untracked.int32(1),
0188 authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
0189 ),
0190 connect = cms.string(options.connectionString),
0191 toGet = cms.VPSet(cms.PSet(
0192 record = cms.string(options.recordName),
0193 tag = cms.string(options.tagName)
0194 ))
0195 )
0196
0197 if options.LatencyMon == True:
0198 process.reader = cms.EDAnalyzer("SiStripLatencyDummyPrinter")
0199 process.p1 = cms.Path(process.reader)
0200
0201 elif options.ShiftAndCrosstalkMon == True:
0202 process.reader = cms.EDAnalyzer("SiStripConfObjectDummyPrinter")
0203 process.p1 = cms.Path(process.reader)
0204
0205 elif options.APVPhaseOffsetsMon == True:
0206 process.reader = cms.EDAnalyzer("SiStripConfObjectDummyPrinter")
0207 process.p1 = cms.Path(process.reader)
0208
0209 elif options.ALCARecoTriggerBitsMon == True:
0210 process.AlCaRecoTriggerBitsRcdRead = cms.EDAnalyzer( "AlCaRecoTriggerBitsRcdRead"
0211 , outputType = cms.untracked.string( 'text' )
0212 , rawFileName = cms.untracked.string( 'AlCaRecoTriggerBitsInfo_RuninsertRun' )
0213 )
0214 process.p = cms.Path(process.AlCaRecoTriggerBitsRcdRead)
0215
0216 else:
0217
0218 process.DQMStore = cms.Service("DQMStore",
0219 verbose = cms.untracked.int32(1)
0220 )
0221
0222 process.load("DQM.SiStripMonitorSummary.SiStripMonitorCondData_cfi")
0223
0224 process.CondDataMonitoring.OutputFileName = options.outputRootFile
0225 process.CondDataMonitoring.MonitorSiStripPedestal = options.PedestalMon
0226 process.CondDataMonitoring.MonitorSiStripNoise = options.NoiseMon
0227 process.CondDataMonitoring.MonitorSiStripQuality = options.QualityMon
0228 process.CondDataMonitoring.MonitorSiStripCabling = options.CablingMon
0229 process.CondDataMonitoring.MonitorSiStripApvGain = options.GainMon
0230 process.CondDataMonitoring.MonitorSiStripLorentzAngle = options.LorentzAngleMon
0231 process.CondDataMonitoring.MonitorSiStripBackPlaneCorrection = options.BackPlaneCorrectionMon
0232 process.CondDataMonitoring.MonitorSiStripLowThreshold = options.ThresholdMon
0233 process.CondDataMonitoring.MonitorSiStripHighThreshold = options.ThresholdMon
0234 process.CondDataMonitoring.OutputMEsInRootFile = True
0235 process.CondDataMonitoring.FillConditions_PSet.OutputSummaryAtLayerLevelAsImage = True
0236 process.CondDataMonitoring.FillConditions_PSet.OutputSummaryProfileAtLayerLevelAsImage = options.LorentzAngleMon or options.BackPlaneCorrectionMon
0237 process.CondDataMonitoring.FillConditions_PSet.OutputCumulativeSummaryAtLayerLevelAsImage = options.MonitorCumulative
0238 process.CondDataMonitoring.FillConditions_PSet.HistoMaps_On = False
0239 process.CondDataMonitoring.FillConditions_PSet.TkMap_On = True
0240 process.CondDataMonitoring.FillConditions_PSet.ActiveDetIds_On = options.ActiveDetId
0241 process.CondDataMonitoring.FillConditions_PSet.Mod_On = False
0242
0243 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.FillSummaryAtLayerLevel = True
0244 process.CondDataMonitoring.SiStripNoisesDQM_PSet.FillSummaryAtLayerLevel = True
0245 process.CondDataMonitoring.SiStripQualityDQM_PSet.FillSummaryAtLayerLevel = True
0246 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.FillSummaryAtLayerLevel = True
0247 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.FillSummaryAtLayerLevel = True
0248 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.FillSummaryAtLayerLevel = True
0249
0250 process.CondDataMonitoring.SiStripCablingDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0251 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.CondObj_fillId = 'onlyProfile'
0252 process.CondDataMonitoring.SiStripNoisesDQM_PSet.CondObj_fillId = 'onlyCumul'
0253 process.CondDataMonitoring.SiStripQualityDQM_PSet.CondObj_fillId = 'onlyProfile'
0254 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0255 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0256 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0257 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.CondObj_fillId = 'onlyProfile'
0258 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.CondObj_fillId = 'onlyProfile'
0259
0260
0261
0262 process.CondDataMonitoring.SiStripQualityDQM_PSet.TkMap_On = True
0263 process.CondDataMonitoring.SiStripQualityDQM_PSet.TkMapName = 'QualityTkMap.png'
0264 process.CondDataMonitoring.SiStripQualityDQM_PSet.minValue = 0.
0265 process.CondDataMonitoring.SiStripQualityDQM_PSet.maxValue = 100.
0266
0267 process.CondDataMonitoring.SiStripCablingDQM_PSet.TkMap_On = True
0268 process.CondDataMonitoring.SiStripCablingDQM_PSet.TkMapName = 'CablingTkMap.png'
0269 process.CondDataMonitoring.SiStripCablingDQM_PSet.minValue = 0.
0270 process.CondDataMonitoring.SiStripCablingDQM_PSet.maxValue = 6.
0271
0272 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMap_On = True
0273 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMapName = 'PedestalTkMap.png'
0274 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.minValue = 0.
0275 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.maxValue = 400.
0276
0277 process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMap_On = True
0278 process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMapName = 'NoiseTkMap.png'
0279 process.CondDataMonitoring.SiStripNoisesDQM_PSet.minValue = 3.
0280 process.CondDataMonitoring.SiStripNoisesDQM_PSet.maxValue = 9.
0281
0282 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.TkMap_On = True
0283 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.TkMapName = 'GainTkMap.png'
0284 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.minValue = 0.
0285 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.maxValue = 1.5
0286
0287 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.TkMap_On = True
0288 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.TkMapName = 'LorentzAngleTkMap.png'
0289 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.minValue = 0.01
0290 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.maxValue = 0.03
0291
0292 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.TkMap_On = True
0293 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.TkMapName = 'BackPlaneCorrectionTkMap.png'
0294 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.minValue = 0.00
0295 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.maxValue = 0.10
0296
0297 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.TkMap_On = True
0298 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.TkMapName = 'LowThresholdTkMap.png'
0299 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.minValue = 0.
0300 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.maxValue = 10.
0301
0302 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.TkMap_On = True
0303 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.TkMapName = 'HighThresholdTkMap.png'
0304 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.minValue = 0.
0305 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.maxValue = 10.
0306
0307
0308 process.p1 = cms.Path(process.CondDataMonitoring)
0309
0310
0311 if options.QualityMon == True:
0312 process.SiStripQualityESProducer = cms.ESProducer("SiStripQualityESProducer",
0313 ReduceGranularity = cms.bool(False),
0314 PrintDebugOutput = cms.bool(False),
0315 UseEmptyRunInfo = cms.bool(False),
0316 ListOfRecordToMerge = cms.VPSet(cms.PSet(
0317 record = cms.string(options.recordName),
0318 tag = cms.string('')
0319 ))
0320 )
0321
0322
0323 from CalibTracker.SiStripQuality.siStripQualityStatistics_cfi import siStripQualityStatistics
0324 process.stat = siStripQualityStatistics.clone()
0325
0326 process.e = cms.EndPath(process.stat)
0327
0328 if options.CablingMon == True:
0329 process.SiStripQualityESProducer = cms.ESProducer("SiStripQualityESProducer",
0330 ReduceGranularity = cms.bool(False),
0331 PrintDebugOutput = cms.bool(False),
0332 UseEmptyRunInfo = cms.bool(False),
0333 ListOfRecordToMerge = cms.VPSet(cms.PSet(
0334 record = cms.string(options.recordForQualityName),
0335 tag = cms.string('')
0336 ))
0337 )
0338
0339 process.sistripconn = cms.ESProducer("SiStripConnectivity")
0340
0341
0342 from CalibTracker.SiStripQuality.siStripQualityStatistics_cfi import siStripQualityStatistics
0343 process.stat = siStripQualityStatistics.clone()
0344
0345 process.reader = cms.EDAnalyzer("SiStripFedCablingReader")
0346
0347 process.e = cms.EndPath(process.stat*process.reader)