File indexing completed on 2023-03-17 10:44:44
0001
0002
0003
0004 import FWCore.ParameterSet.Config as cms
0005 from FWCore.ParameterSet.VarParsing import VarParsing as VP
0006
0007 process = cms.Process("BadChannelMerge")
0008
0009 opts = VP("python")
0010 opts.register("globalTag", "DONOTEXIST", VP.multiplicity.singleton, VP.varType.string, "GlobalTag")
0011 opts.register("dqmFile", "", VP.multiplicity.singleton, VP.varType.string, "DQM root file")
0012 opts.register("runNumber", 0, VP.multiplicity.singleton, VP.varType.int, "run number")
0013 opts.register("runStartTime", 0, VP.multiplicity.singleton, VP.varType.int, "run start time")
0014 opts.register("dbfile", "merged.db", VP.multiplicity.singleton, VP.varType.string, "SQLite output file")
0015 opts.register("outputTag", "SiStripBadComponents_merged_v0", VP.multiplicity.singleton, VP.varType.string, "Output tag name")
0016 opts.parseArguments()
0017
0018 notAllSet = False
0019 if opts.globalTag == "DONOTEXIST":
0020 print("ERROR: Global tag must be set")
0021 notAllSet = True
0022 if opts.runStartTime == 0:
0023 print("ERROR: Run start time must be set (use the getRunStartTime.py script to get it)")
0024 notAllSet = True
0025 if opts.runNumber == 0:
0026 print("ERROR: Run number must be set")
0027 if opts.dqmFile == "":
0028 print("WARNING: no DQM file set, bad components from FED errors will not be included")
0029 notAllSet = True
0030 if notAllSet:
0031 raise RuntimeError("Not all required arguments have been passed, need globalTag, dqmFile, runNumber and runStartTime")
0032
0033 process.MessageLogger = cms.Service("MessageLogger",
0034 destinations = cms.untracked.vstring("cout", "cerr", "MergedBadComponents"),
0035 cerr=cms.untracked.PSet(
0036 threshold=cms.untracked.string("ERROR")),
0037 cout=cms.untracked.PSet(
0038 threshold=cms.untracked.string("INFO"),
0039 default=cms.untracked.PSet(limit=cms.untracked.int32(0))
0040 ),
0041 MergedBadComponents=cms.untracked.PSet(
0042 threshold=cms.untracked.string("INFO"),
0043 default=cms.untracked.PSet(limit=cms.untracked.int32(0)),
0044 SiStripQualityStatistics=cms.untracked.PSet(limit=cms.untracked.int32(100000)),
0045 ),
0046 categories = cms.untracked.vstring(
0047 "SiStripQualityStatistics",
0048 "SiStripQuality"
0049 ),
0050 debugModules = cms.untracked.vstring(
0051 "SiStripQualityESProducer",
0052 "siStripBadStripFromQualityDBWriter"
0053 ),
0054 )
0055
0056 process.load("Configuration.Geometry.GeometryRecoDB_cff")
0057 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0058 from Configuration.AlCa.GlobalTag import GlobalTag
0059 process.GlobalTag = GlobalTag(process.GlobalTag, opts.globalTag, "")
0060
0061 process.source = cms.Source("EmptySource",
0062 firstRun = cms.untracked.uint32(opts.runNumber),
0063 numberEventsInRun = cms.untracked.uint32(1),
0064 numberEventsInLuminosityBlock = cms.untracked.uint32(1),
0065 firstTime = cms.untracked.uint64(opts.runStartTime),
0066 timeBetweenEvents = cms.untracked.uint64(1)
0067 )
0068 process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(1))
0069
0070 process.siStripQualityESProducer.ListOfRecordToMerge = cms.VPSet(
0071 cms.PSet(record=cms.string("SiStripDetVOffRcd"), tag=cms.string("")),
0072 cms.PSet(record=cms.string("SiStripDetCablingRcd"), tag=cms.string("")),
0073 cms.PSet(record=cms.string("SiStripBadChannelRcd"), tag=cms.string("")),
0074 cms.PSet(record=cms.string("RunInfoRcd"), tag=cms.string("")),
0075 cms.PSet(record=cms.string("SiStripBadFiberRcd"), tag=cms.string("")),
0076 )
0077 process.siStripQualityESProducer.ReduceGranularity = cms.bool(False)
0078 process.siStripQualityESProducer.ThresholdForReducedGranularity = cms.double(0.3)
0079 process.siStripQualityESProducer.PrintDebugOutput = True
0080
0081
0082 from CalibTracker.SiStripQuality.siStripQualityStatistics_cfi import siStripQualityStatistics
0083 badCompFromFedErrors = siStripQualityStatistics.BadComponentsFromFedErrors.clone(
0084 Add=cms.bool(True),
0085 LegacyDQMFile=cms.string(opts.dqmFile),
0086 FileRunNumber=cms.uint32(opts.runNumber)
0087 )
0088
0089
0090 process.load("DQM.SiStripCommon.TkHistoMap_cff")
0091 process.stat = siStripQualityStatistics.clone(
0092 TkMapFileName=cms.untracked.string("TkMap_Jul04_2018_319176.png"),
0093 BadComponentsFromFedErrors=badCompFromFedErrors
0094 )
0095
0096
0097 process.load("CalibTracker.SiStripQuality.siStripBadStripFromQualityDBWriter_cfi")
0098
0099 process.siStripBadStripFromQualityDBWriter.OpenIovAt = cms.untracked.string("beginTime")
0100 process.siStripBadStripFromQualityDBWriter.BadComponentsFromFedErrors = badCompFromFedErrors
0101 process.PoolDBOutputService = cms.Service("PoolDBOutputService",
0102 BlobStreamerName=cms.untracked.string("TBufferBlobStreamingService"),
0103 DBParameters=cms.PSet(
0104 authenticationPath=cms.untracked.string("/afs/cern.ch/cms/DB/conddb")
0105 ),
0106 timetype=cms.untracked.string("runnumber"),
0107 connect=cms.string("sqlite_file:"+opts.dbfile),
0108 toPut=cms.VPSet(cms.PSet(
0109 record=cms.string("SiStripBadModuleRcd"),
0110 tag=cms.string(opts.outputTag)
0111 )))
0112 process.siStripBadStripFromQualityDBWriter.record = process.PoolDBOutputService.toPut[0].record
0113
0114 process.p = cms.Path(process.stat*process.siStripBadStripFromQualityDBWriter)