File indexing completed on 2024-04-06 12:08:55
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 BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'),
0187 DBParameters = cms.PSet(
0188 messageLevel = cms.untracked.int32(1),
0189 authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
0190 ),
0191 timetype = cms.untracked.string('runnumber'),
0192 connect = cms.string(options.connectionString),
0193 toGet = cms.VPSet(cms.PSet(
0194 record = cms.string(options.recordName),
0195 tag = cms.string(options.tagName)
0196 ))
0197 )
0198
0199 if options.LatencyMon == True:
0200 process.reader = cms.EDAnalyzer("SiStripLatencyDummyPrinter")
0201 process.p1 = cms.Path(process.reader)
0202
0203 elif options.ShiftAndCrosstalkMon == True:
0204 process.reader = cms.EDAnalyzer("SiStripConfObjectDummyPrinter")
0205 process.p1 = cms.Path(process.reader)
0206
0207 elif options.APVPhaseOffsetsMon == True:
0208 process.reader = cms.EDAnalyzer("SiStripConfObjectDummyPrinter")
0209 process.p1 = cms.Path(process.reader)
0210
0211 elif options.ALCARecoTriggerBitsMon == True:
0212 process.AlCaRecoTriggerBitsRcdRead = cms.EDAnalyzer( "AlCaRecoTriggerBitsRcdRead"
0213 , outputType = cms.untracked.string( 'text' )
0214 , rawFileName = cms.untracked.string( 'AlCaRecoTriggerBitsInfo_RuninsertRun' )
0215 )
0216 process.p = cms.Path(process.AlCaRecoTriggerBitsRcdRead)
0217
0218 else:
0219
0220 process.DQMStore = cms.Service("DQMStore",
0221 verbose = cms.untracked.int32(1)
0222 )
0223
0224 process.load("DQM.SiStripMonitorSummary.SiStripMonitorCondData_cfi")
0225
0226 process.CondDataMonitoring.OutputFileName = options.outputRootFile
0227 process.CondDataMonitoring.MonitorSiStripPedestal = options.PedestalMon
0228 process.CondDataMonitoring.MonitorSiStripNoise = options.NoiseMon
0229 process.CondDataMonitoring.MonitorSiStripQuality = options.QualityMon
0230 process.CondDataMonitoring.MonitorSiStripCabling = options.CablingMon
0231 process.CondDataMonitoring.MonitorSiStripApvGain = options.GainMon
0232 process.CondDataMonitoring.MonitorSiStripLorentzAngle = options.LorentzAngleMon
0233 process.CondDataMonitoring.MonitorSiStripBackPlaneCorrection = options.BackPlaneCorrectionMon
0234 process.CondDataMonitoring.MonitorSiStripLowThreshold = options.ThresholdMon
0235 process.CondDataMonitoring.MonitorSiStripHighThreshold = options.ThresholdMon
0236 process.CondDataMonitoring.OutputMEsInRootFile = True
0237 process.CondDataMonitoring.FillConditions_PSet.OutputSummaryAtLayerLevelAsImage = True
0238 process.CondDataMonitoring.FillConditions_PSet.OutputSummaryProfileAtLayerLevelAsImage = options.LorentzAngleMon or options.BackPlaneCorrectionMon
0239 process.CondDataMonitoring.FillConditions_PSet.OutputCumulativeSummaryAtLayerLevelAsImage = options.MonitorCumulative
0240 process.CondDataMonitoring.FillConditions_PSet.HistoMaps_On = False
0241 process.CondDataMonitoring.FillConditions_PSet.TkMap_On = True
0242 process.CondDataMonitoring.FillConditions_PSet.ActiveDetIds_On = options.ActiveDetId
0243 process.CondDataMonitoring.FillConditions_PSet.Mod_On = False
0244
0245 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.FillSummaryAtLayerLevel = True
0246 process.CondDataMonitoring.SiStripNoisesDQM_PSet.FillSummaryAtLayerLevel = True
0247 process.CondDataMonitoring.SiStripQualityDQM_PSet.FillSummaryAtLayerLevel = True
0248 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.FillSummaryAtLayerLevel = True
0249 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.FillSummaryAtLayerLevel = True
0250 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.FillSummaryAtLayerLevel = True
0251
0252 process.CondDataMonitoring.SiStripCablingDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0253 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.CondObj_fillId = 'onlyProfile'
0254 process.CondDataMonitoring.SiStripNoisesDQM_PSet.CondObj_fillId = 'onlyCumul'
0255 process.CondDataMonitoring.SiStripQualityDQM_PSet.CondObj_fillId = 'onlyProfile'
0256 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0257 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0258 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.CondObj_fillId = 'ProfileAndCumul'
0259 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.CondObj_fillId = 'onlyProfile'
0260 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.CondObj_fillId = 'onlyProfile'
0261
0262
0263
0264 process.CondDataMonitoring.SiStripQualityDQM_PSet.TkMap_On = True
0265 process.CondDataMonitoring.SiStripQualityDQM_PSet.TkMapName = 'QualityTkMap.png'
0266 process.CondDataMonitoring.SiStripQualityDQM_PSet.minValue = 0.
0267 process.CondDataMonitoring.SiStripQualityDQM_PSet.maxValue = 100.
0268
0269 process.CondDataMonitoring.SiStripCablingDQM_PSet.TkMap_On = True
0270 process.CondDataMonitoring.SiStripCablingDQM_PSet.TkMapName = 'CablingTkMap.png'
0271 process.CondDataMonitoring.SiStripCablingDQM_PSet.minValue = 0.
0272 process.CondDataMonitoring.SiStripCablingDQM_PSet.maxValue = 6.
0273
0274 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMap_On = True
0275 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.TkMapName = 'PedestalTkMap.png'
0276 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.minValue = 0.
0277 process.CondDataMonitoring.SiStripPedestalsDQM_PSet.maxValue = 400.
0278
0279 process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMap_On = True
0280 process.CondDataMonitoring.SiStripNoisesDQM_PSet.TkMapName = 'NoiseTkMap.png'
0281 process.CondDataMonitoring.SiStripNoisesDQM_PSet.minValue = 3.
0282 process.CondDataMonitoring.SiStripNoisesDQM_PSet.maxValue = 9.
0283
0284 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.TkMap_On = True
0285 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.TkMapName = 'GainTkMap.png'
0286 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.minValue = 0.
0287 process.CondDataMonitoring.SiStripApvGainsDQM_PSet.maxValue = 1.5
0288
0289 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.TkMap_On = True
0290 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.TkMapName = 'LorentzAngleTkMap.png'
0291 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.minValue = 0.01
0292 process.CondDataMonitoring.SiStripLorentzAngleDQM_PSet.maxValue = 0.03
0293
0294 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.TkMap_On = True
0295 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.TkMapName = 'BackPlaneCorrectionTkMap.png'
0296 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.minValue = 0.00
0297 process.CondDataMonitoring.SiStripBackPlaneCorrectionDQM_PSet.maxValue = 0.10
0298
0299 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.TkMap_On = True
0300 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.TkMapName = 'LowThresholdTkMap.png'
0301 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.minValue = 0.
0302 process.CondDataMonitoring.SiStripLowThresholdDQM_PSet.maxValue = 10.
0303
0304 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.TkMap_On = True
0305 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.TkMapName = 'HighThresholdTkMap.png'
0306 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.minValue = 0.
0307 process.CondDataMonitoring.SiStripHighThresholdDQM_PSet.maxValue = 10.
0308
0309
0310 process.p1 = cms.Path(process.CondDataMonitoring)
0311
0312
0313 if options.QualityMon == True:
0314 process.SiStripQualityESProducer = cms.ESProducer("SiStripQualityESProducer",
0315 ReduceGranularity = cms.bool(False),
0316 PrintDebugOutput = cms.bool(False),
0317 UseEmptyRunInfo = cms.bool(False),
0318 ListOfRecordToMerge = cms.VPSet(cms.PSet(
0319 record = cms.string(options.recordName),
0320 tag = cms.string('')
0321 ))
0322 )
0323
0324
0325 from CalibTracker.SiStripQuality.siStripQualityStatistics_cfi import siStripQualityStatistics
0326 process.stat = siStripQualityStatistics.clone()
0327
0328 process.e = cms.EndPath(process.stat)
0329
0330 if options.CablingMon == True:
0331 process.SiStripQualityESProducer = cms.ESProducer("SiStripQualityESProducer",
0332 ReduceGranularity = cms.bool(False),
0333 PrintDebugOutput = cms.bool(False),
0334 UseEmptyRunInfo = cms.bool(False),
0335 ListOfRecordToMerge = cms.VPSet(cms.PSet(
0336 record = cms.string(options.recordForQualityName),
0337 tag = cms.string('')
0338 ))
0339 )
0340
0341 process.sistripconn = cms.ESProducer("SiStripConnectivity")
0342
0343
0344 from CalibTracker.SiStripQuality.siStripQualityStatistics_cfi import siStripQualityStatistics
0345 process.stat = siStripQualityStatistics.clone()
0346
0347 process.reader = cms.EDAnalyzer("SiStripFedCablingReader")
0348
0349 process.e = cms.EndPath(process.stat*process.reader)