Line Code
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
import FWCore.ParameterSet.Config as cms
import FWCore.ParameterSet.VarParsing as VarParsing

process = cms.Process("Test")

options = VarParsing.VarParsing("analysis")

options.register ('isUnitTest',
                  False,
                  VarParsing.VarParsing.multiplicity.singleton,  # singleton or list
                  VarParsing.VarParsing.varType.bool,            # string, int, or float
                  "GlobalTag")

options.register ('runNumber',
                  359334,
                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
                  VarParsing.VarParsing.varType.int,            # string, int, or float
                  "run number")

options.register ('FEDsToAdd',
                  [],
                  VarParsing.VarParsing.multiplicity.list,  # singleton or list
                  VarParsing.VarParsing.varType.int,        # string, int, or float
                  "list of FEDs to Add")

options.register ('FEDsToRemove',
                  [],
                  VarParsing.VarParsing.multiplicity.list,  # singleton or list
                  VarParsing.VarParsing.varType.int,        # string, int, or float
                  "list of FEDs to Remove")

options.register ('DetIdsToAdd',
                  [],
                  VarParsing.VarParsing.multiplicity.list,  # singleton or list
                  VarParsing.VarParsing.varType.int,        # string, int, or float
                  "list of DetIds to Add")

options.register ('DetIdsToRemove',
                  [],
                  VarParsing.VarParsing.multiplicity.list,  # singleton or list
                  VarParsing.VarParsing.varType.int,        # string, int, or float
                  "list of DetIds to Remove")


options.register ('inputConnection',
                  "frontier://FrontierProd/CMS_CONDITIONS",
                  VarParsing.VarParsing.multiplicity.singleton,  # singleton or list
                  VarParsing.VarParsing.varType.string,            # string, int, or float
                  "input DB connection")

options.register ('inputTag',
                  "SiStripBadChannel_Ideal_31X_v2",
                  VarParsing.VarParsing.multiplicity.singleton,  # singleton or list
                  VarParsing.VarParsing.varType.string,            # string, int, or float
                  "input DB tag")

options.register ('outputTag',
                  "output",
                  VarParsing.VarParsing.multiplicity.singleton,  # singleton or list
                  VarParsing.VarParsing.varType.string,            # string, int, or float
                  "output DB tag")


options.parseArguments()

process.maxEvents = cms.untracked.PSet(
    input = cms.untracked.int32(1)
)

process.source = cms.Source("EmptySource",
                            firstRun = cms.untracked.uint32(options.runNumber),
                            numberEventsInRun = cms.untracked.uint32(1),
                            )

process.MessageLogger = cms.Service("MessageLogger",
    cout = cms.untracked.PSet(
        threshold = cms.untracked.string('WARNING') if options.isUnitTest else cms.untracked.string('INFO')
    ),
    destinations = cms.untracked.vstring('cout')
)

##
## Database services
##
process.load("CondCore.CondDB.CondDB_cfi")

##
## Neeeded for the cabling
##
process.CondDB.connect='frontier://FrontierProd/CMS_CONDITIONS'
process.CablingESSource = cms.ESSource('PoolDBESSource',
                                       process.CondDB,
                                       toGet = cms.VPSet( cms.PSet(record = cms.string('SiStripFedCablingRcd'),
                                                                   tag    = cms.string('SiStripFedCabling_GR10_v1_hlt')   # real data cabling map
                                                                   #tag     = cms.string('SiStripFedCabling_Ideal_31X_v2')  # ideal cabling map
                                                               )))

process.load("Configuration.Geometry.GeometryExtended2017_cff")
process.load("Geometry.TrackerGeometryBuilder.trackerParameters_cfi")
process.TrackerTopologyEP = cms.ESProducer("TrackerTopologyEP")
process.load("CalibTracker.SiStripESProducers.SiStripConnectivity_cfi")

##
## Input bad components
##
process.PoolDBESSource = cms.ESSource("PoolDBESSource",
                                      DBParameters = cms.PSet(
                                          messageLevel = cms.untracked.int32(2),
                                          authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
                                      ),
                                      toGet = cms.VPSet(cms.PSet(
                                          record = cms.string('SiStripBadStripRcd'),
                                          tag = cms.string(options.inputTag)
                                      )),
                                      connect = cms.string(options.inputConnection)
                                      )

##
## Output database (in this case local sqlite file)
##
process.CondDB.connect = 'sqlite_file:outputDB.db'
process.PoolDBOutputService = cms.Service("PoolDBOutputService",
                                          process.CondDB,
                                          timetype = cms.untracked.string('runnumber'),
                                          toPut = cms.VPSet(cms.PSet(record = cms.string('SiStripBadStripRcd'),
                                                                     tag = cms.string(options.outputTag)
                                                                     )
                                                            )
                                          )

process.prod = cms.EDAnalyzer("SiStripBadChannelPatcher",
                              printDebug = cms.bool(True) if options.isUnitTest else cms.bool(False),
                              Record = cms.string("SiStripBadStripRcd"),
                              FEDsToExclude = cms.vuint32(options.FEDsToRemove),
                              FEDsToInclude = cms.vuint32(options.FEDsToAdd),
                              detIdsToExclude = cms.vuint32(options.DetIdsToAdd),
                              detIdsToInclude = cms.vuint32(options.DetIdsToRemove))

process.Timing = cms.Service("Timing")
process.print = cms.OutputModule("AsciiOutputModule")

process.p = cms.Path(process.prod)
#process.ep = cms.EndPath(process.print)