File indexing completed on 2024-11-25 02:29:07
0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 import copy, sys, os
0004
0005 process = cms.Process("Misaligner")
0006
0007
0008
0009
0010 options = VarParsing.VarParsing()
0011
0012 options.register('myScenario',
0013 "MisalignmentScenario_PhaseI_PseudoAsymptotic",
0014 VarParsing.VarParsing.multiplicity.singleton,
0015 VarParsing.VarParsing.varType.string,
0016 "scenario to apply")
0017
0018 options.register('mySigma',
0019 -1,
0020 VarParsing.VarParsing.multiplicity.singleton,
0021 VarParsing.VarParsing.varType.float,
0022 "sigma for random misalignment in um")
0023
0024 options.register('inputDB',
0025 None,
0026 VarParsing.VarParsing.multiplicity.singleton,
0027 VarParsing.VarParsing.varType.string,
0028 "input database file to override GT (optional)")
0029
0030 options.parseArguments()
0031
0032
0033
0034
0035 process.load("FWCore.MessageService.MessageLogger_cfi")
0036 process.MessageLogger.cout = cms.untracked.PSet(
0037 threshold = cms.untracked.string('INFO'),
0038 default = cms.untracked.PSet(
0039 limit = cms.untracked.int32(10000000)
0040 )
0041 )
0042
0043
0044
0045
0046
0047
0048 process.load('Configuration.Geometry.GeometryRecoDB_cff')
0049
0050
0051
0052
0053 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0054 from Configuration.AlCa.GlobalTag import GlobalTag
0055
0056 process.GlobalTag = GlobalTag(process.GlobalTag, "auto:phase1_2017_design", "")
0057 print("Using global tag:", process.GlobalTag.globaltag.value())
0058
0059
0060
0061
0062 process.load("Alignment.CommonAlignmentProducer.AlignmentProducer_cff")
0063 process.AlignmentProducer.doMisalignmentScenario=True
0064 process.AlignmentProducer.applyDbAlignment=True
0065 process.AlignmentProducer.checkDbAlignmentValidity=False
0066 import Alignment.TrackerAlignment.Scenarios_cff as scenarios
0067
0068 if hasattr(scenarios, options.myScenario):
0069 print("Using scenario:", options.myScenario)
0070 print(" with sigma:", options.mySigma)
0071 print()
0072 process.AlignmentProducer.MisalignmentScenario = getattr(scenarios, options.myScenario)
0073 else:
0074 print("----- Begin Fatal Exception -----------------------------------------------")
0075 print("Unrecognized",options.myScenario,"misalignment scenario !!!!")
0076 print("Aborting cmsRun now, please check your input")
0077 print("----- End Fatal Exception -------------------------------------------------")
0078 sys.exit(1)
0079
0080 sigma = options.mySigma
0081 if sigma > 0:
0082 process.AlignmentProducer.MisalignmentScenario.scale = cms.double(0.0001*sigma)
0083
0084 if options.inputDB is not None:
0085 process.GlobalTag.toGet.extend([
0086 cms.PSet(
0087 connect = cms.string("sqlite_file:"+options.inputDB),
0088 record = cms.string("TrackerAlignmentRcd"),
0089 tag = cms.string("Alignments")
0090 ),
0091 cms.PSet(
0092 connect = cms.string("sqlite_file:"+options.inputDB),
0093 record = cms.string("TrackerAlignmentErrorExtendedRcd"),
0094 tag = cms.string("AlignmentErrorsExtended")
0095 )
0096 ])
0097
0098 process.AlignmentProducer.saveToDB=True
0099 process.AlignmentProducer.saveApeToDB=True
0100
0101
0102
0103
0104 outputfilename = None
0105 scenariolabel = str(options.myScenario)
0106 if sigma > 0:
0107 scenariolabel = scenariolabel+str(sigma)
0108 outputfilename = "geometry_"+str(scenariolabel)+"__from_"
0109 if options.inputDB is None:
0110 outputfilename += process.GlobalTag.globaltag.value()+".db"
0111 else:
0112 outputfilename += options.inputDB
0113
0114
0115
0116
0117 process.source = cms.Source("EmptySource")
0118 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1))
0119
0120
0121
0122
0123 from CondCore.CondDB.CondDB_cfi import *
0124 process.PoolDBOutputService = cms.Service(
0125 "PoolDBOutputService",
0126 CondDB,
0127 timetype = cms.untracked.string("runnumber"),
0128 toPut = cms.VPSet(
0129 cms.PSet(
0130 record = cms.string("TrackerAlignmentRcd"),
0131 tag = cms.string("Alignments")
0132 ),
0133 cms.PSet(
0134 record = cms.string("TrackerAlignmentErrorExtendedRcd"),
0135 tag = cms.string("AlignmentErrorsExtended")
0136 ),
0137 )
0138 )
0139 process.PoolDBOutputService.connect = "sqlite_file:"+outputfilename
0140 process.PoolDBOutputService.DBParameters.messageLevel = 2