Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:29:25

0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 import copy 
0004 
0005 process = cms.Process("Demo")
0006 
0007 #prepare options
0008 
0009 options = VarParsing.VarParsing("analysis")
0010 
0011 options.register ('globalTag',
0012                   "auto:run2_data",
0013                   VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0014                   VarParsing.VarParsing.varType.string,          # string, int, or float
0015                   "GlobalTag")
0016 
0017 options.register ('runNumber',
0018                   306054,
0019                   VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0020                   VarParsing.VarParsing.varType.int,           # string, int, or float
0021                   "run number")
0022 
0023 options.parseArguments()
0024 
0025 
0026 ##
0027 ## MessageLogger
0028 ##
0029 process.load('FWCore.MessageService.MessageLogger_cfi')   
0030 process.MessageLogger.cerr.enable = False
0031 process.MessageLogger.SiStripNoisesFromDBMiscalibrator=dict()  
0032 process.MessageLogger.cout = cms.untracked.PSet(
0033     enable    = cms.untracked.bool(True),
0034     enableStatistics = cms.untracked.bool(True),
0035     threshold = cms.untracked.string("WARNING"),
0036     default   = cms.untracked.PSet(limit = cms.untracked.int32(0)),                       
0037     FwkReport = cms.untracked.PSet(limit = cms.untracked.int32(-1),
0038                                    reportEvery = cms.untracked.int32(1000)
0039                                    ),                                                      
0040     SiStripNoisesFromDBMiscalibrator = cms.untracked.PSet( limit = cms.untracked.int32(-1))
0041     )
0042 
0043 process.load("Configuration.Geometry.GeometryRecoDB_cff") # Ideal geometry and interface 
0044 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0045 from Configuration.AlCa.GlobalTag import GlobalTag
0046 process.GlobalTag = GlobalTag(process.GlobalTag,options.globalTag, '')
0047 
0048 print("Using Global Tag:", process.GlobalTag.globaltag._value)
0049 
0050 ##
0051 ## Empty Source
0052 ##
0053 process.source = cms.Source("EmptySource",
0054                             firstRun = cms.untracked.uint32(options.runNumber),
0055                             numberEventsInRun = cms.untracked.uint32(1),
0056                             )
0057 
0058 
0059 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) )
0060 
0061 ##
0062 ## Example smearing configurations
0063 ##
0064 
0065 ########### Noise ##########
0066 # TEC: new = 5.985 old = 5.684  => ratio: 1.052
0067 # TOB: new = 6.628 old = 6.647  => ratio: 0.997
0068 # TIB: new = 5.491 old = 5.392  => ratio: 1.018
0069 # TID: new = 5.259 old = 5.080  => ratio: 1.035
0070 
0071 ##
0072 ## separately partition by partition
0073 ##
0074 byPartition = cms.VPSet(
0075     cms.PSet(partition = cms.string("TEC"),
0076              doScale   = cms.bool(True),
0077              doSmear   = cms.bool(False),
0078              scaleFactor = cms.double(1.2),
0079              smearFactor = cms.double(0.04)
0080              ),
0081     cms.PSet(partition = cms.string("TOB"),
0082              doScale   = cms.bool(True),
0083              doSmear   = cms.bool(False),
0084              scaleFactor = cms.double(0.94),
0085              smearFactor = cms.double(0.03)
0086              ),
0087     cms.PSet(partition = cms.string("TIB"),
0088              doScale   = cms.bool(True),
0089              doSmear   = cms.bool(False),
0090              scaleFactor = cms.double(1.1),
0091              smearFactor = cms.double(0.02)
0092              ),
0093     cms.PSet(partition = cms.string("TID"),
0094              doScale   = cms.bool(True),
0095              doSmear   = cms.bool(False),
0096              scaleFactor = cms.double(0.22),
0097              smearFactor = cms.double(0.01)
0098              )
0099     )
0100 
0101 ##
0102 ## whole Strip tracker
0103 ##
0104 
0105 wholeTracker = cms.VPSet(
0106     cms.PSet(partition = cms.string("Tracker"),
0107              doScale   = cms.bool(True),
0108              doSmear   = cms.bool(True),
0109              scaleFactor = cms.double(1.00),
0110              smearFactor = cms.double(0.00)
0111              )
0112     )
0113 
0114 ##
0115 ## by Layer only one partition
0116 ##
0117 
0118 byLayerOnlyTIB = cms.VPSet(
0119 
0120     ################## TIB ##################
0121 
0122     cms.PSet(partition = cms.string("TIB_1"),
0123              doScale   = cms.bool(True),
0124              doSmear   = cms.bool(True),
0125              scaleFactor = cms.double(1),
0126              smearFactor = cms.double(0.1)
0127              ),
0128     cms.PSet(partition = cms.string("TIB_2"),
0129              doScale   = cms.bool(True),
0130              doSmear   = cms.bool(True),
0131              scaleFactor = cms.double(2),
0132              smearFactor = cms.double(0.25)
0133              ),
0134     cms.PSet(partition = cms.string("TIB_3"),
0135              doScale   = cms.bool(True),
0136              doSmear   = cms.bool(True),
0137              scaleFactor = cms.double(3),
0138              smearFactor = cms.double(0.2)
0139              ),
0140     cms.PSet(partition = cms.string("TIB_4"),
0141              doScale   = cms.bool(True),
0142              doSmear   = cms.bool(True),
0143              scaleFactor = cms.double(4),
0144              smearFactor = cms.double(0.01)
0145              )
0146     )
0147 
0148 ##
0149 ## hierarchies
0150 ##
0151 
0152 subsets =  cms.VPSet(
0153     cms.PSet(partition = cms.string("Tracker"),
0154              doScale   = cms.bool(True),
0155              doSmear   = cms.bool(True),
0156              scaleFactor = cms.double(0.65),
0157              smearFactor = cms.double(0.05)
0158              ),
0159     cms.PSet(partition = cms.string("TEC"),
0160              doScale   = cms.bool(True),
0161              doSmear   = cms.bool(True),
0162              scaleFactor = cms.double(1.15),
0163              smearFactor = cms.double(0.02)
0164              ),
0165     cms.PSet(partition = cms.string("TECP"),
0166              doScale   = cms.bool(True),
0167              doSmear   = cms.bool(True),
0168              scaleFactor = cms.double(1.35),
0169              smearFactor = cms.double(0.02)
0170              ),
0171     cms.PSet(partition = cms.string("TECP_9"),
0172              doScale   = cms.bool(True),
0173              doSmear   = cms.bool(True),
0174              scaleFactor = cms.double(1.55),
0175              smearFactor = cms.double(0.02)
0176              )
0177     )
0178 
0179 #
0180 # just a silly example
0181 #
0182 autoparams=[]
0183 listOfLayers=["TIB_1","TIB_2","TIB_3","TIB_4","TOB_1","TOB_2","TOB_3","TOB_4","TOB_5","TOB_6","TIDM_1","TIDM_2","TIDM_3","TECM_1","TECM_2","TECM_3","TECM_4","TECM_5","TECM_6","TECM_7","TECM_8","TECM_9","TIDP_1","TIDP_2","TIDP_3","TECP_1","TECP_2","TECP_3","TECP_4","TECP_5","TECP_6","TECP_7","TECP_8","TECP_9"]
0184 
0185 for i,ll in enumerate(listOfLayers):
0186     autoparams.append(
0187         cms.PSet(
0188             partition = cms.string(ll),
0189             doScale   = cms.bool(True),
0190             doSmear   = cms.bool(True),
0191             scaleFactor = cms.double(i*0.1),
0192             smearFactor = cms.double((len(listOfLayers)-i)*0.01)
0193             )
0194         )
0195 
0196 # process.demo = cms.EDAnalyzer('SiStripNoisesFromDBMiscalibrator',
0197 #                               params = subsets, # as a cms.VPset
0198 #                               fillDefaults = cms.bool(False),
0199 #                               saveMaps = cms.bool(True)      
0200 #                               )
0201 
0202 
0203 ##
0204 ## Impot the thresholds configuration
0205 ##
0206 import CondTools.SiStrip.MiscalibrationSettings_cff as Settings
0207 eachLayer = copy.deepcopy(Settings.byLayer)
0208 
0209 process.load("CondTools.SiStrip.scaleAndSmearSiStripNoises_cfi")
0210 #process.scaleAndSmearSiStripNoises.params  = eachLayer      # as a cms.VPset
0211 #process.scaleAndSmearSiStripNoises.params  = wholeTracker   # as a cms.VPset
0212 #process.scaleAndSmearSiStripNoises.params  = byPartition    # as a cms.VPset
0213 #process.scaleAndSmearSiStripNoises.params  = subsets        # as a cms.VPset
0214 #process.scaleAndSmearSiStripNoises.params  = byLayerOnlyTIB # as a cms.VPset
0215 process.scaleAndSmearSiStripNoises.params  = autoparams
0216 process.scaleAndSmearSiStripNoises.fillDefaults = False      # to fill uncabled DetIds with default
0217 
0218 ##
0219 ## Output database (in this case local sqlite file)
0220 ##
0221 process.PoolDBOutputService = cms.Service("PoolDBOutputService",
0222     BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'),
0223     DBParameters = cms.PSet(
0224         messageLevel = cms.untracked.int32(3),
0225         authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
0226     ),
0227     timetype = cms.untracked.string('runnumber'),
0228     connect = cms.string('sqlite_file:modifiedSiStripNoise_%s_IOV_%s.db' % ( process.GlobalTag.globaltag._value, str(options.runNumber))),
0229     toPut = cms.VPSet(cms.PSet(
0230         record = cms.string('SiStripNoisesRcd'),
0231         tag = cms.string('modifiedNoise')
0232     ))
0233 )
0234 
0235 process.p = cms.Path(process.scaleAndSmearSiStripNoises)