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
|
# Config file template to write new/update AlCaRecoTriggerBits stored
# in AlCaRecoTriggerBitsRcd that is used to get selected HLT paths for
# the HLTHighLevel filter for AlCaReco production.
#
# Please understand that there are two IOVs involved:
# 1) One for the output tag. Here the usually used default is 1->inf,
# changed by process.AlCaRecoTriggerBitsRcdUpdate.firstRunIOV
# and process.AlCaRecoTriggerBitsRcdUpdate.lastRunIOV.
# 2) The IOV of the tag of the input AlCaRecoTriggerBitsRcd.
# That is chosen by process.source.firstRun (but irrelevant if
# process.AlCaRecoTriggerBitsRcdUpdate.startEmpty = True)
#
# See also further comments below, especially the WARNING.
#
# Author : Marco Musich
# Date : Feb 2016
import FWCore.ParameterSet.Config as cms
import FWCore.ParameterSet.VarParsing as VarParsing
process = cms.Process("UPDATEDB")
options = VarParsing.VarParsing()
options.register( "inputDB",
"frontier://FrontierProd/CMS_CONDITIONS", #default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"the input DB"
)
options.register( "inputTag",
"AlCaRecoHLTpaths8e29_1e31_v7_hlt", #default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"the input tag"
)
options.register( "outputDB",
"sqlite_file:AlCaRecoTriggerBits.db", #default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"the output DB"
)
options.register( "outputTag",
"testTag", #default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"the input DB"
)
options.register( "firstRun",
1, #default value
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.int,
"the first run"
)
options.parseArguments()
process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr = cms.untracked.PSet(enable = cms.untracked.bool(False))
process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
reportEvery = cms.untracked.int32(1)
))
# the module writing to DB
from CondTools.HLT.alCaRecoTriggerBitsRcdUpdate_cfi import alCaRecoTriggerBitsRcdUpdate as _alCaRecoTriggerBitsRcdUpdate
process.AlCaRecoTriggerBitsRcdUpdate = _alCaRecoTriggerBitsRcdUpdate.clone()
# The IOV that you want to write out, defaut is 1 to -1/inf.
process.AlCaRecoTriggerBitsRcdUpdate.firstRunIOV = options.firstRun # docu see...
#process.AlCaRecoTriggerBitsRcdUpdate.lastRunIOV = -1 # ...cfi
# If you want to start from scratch, comment the next line:
process.AlCaRecoTriggerBitsRcdUpdate.startEmpty = False
# In case you want to remove 'keys', use this possibly comma separated list.
# Also if you want to replace settings for one 'key', you have to remove it first.
#process.AlCaRecoTriggerBitsRcdUpdate.listNamesRemove = ["SiStripCalZeroBias"]
# Here specifiy 'key' and corresponding paths for new entries or updated ones:
# process.AlCaRecoTriggerBitsRcdUpdate.triggerListsAdd = [
# cms.PSet(listName = cms.string('AlCaEcalTrg'), # to be updated
# hltPaths = cms.vstring('AlCa_EcalPhiSym*')
# )
# ]
process.AlCaRecoTriggerBitsRcdUpdate.triggerListsAdd = []
process.AlCaRecoTriggerBitsRcdUpdate.alcarecoToReplace = [
cms.PSet(oldKey = cms.string('SiStripCalMinBiasAfterAbortGap'),
newKey = cms.string('SiStripCalMinBiasAAG')
)
]
# No data, but have to specify run number if you do not want 1, see below:
process.source = cms.Source("EmptySource",
#numberEventsInRun = cms.untracked.uint32(1),
firstRun = cms.untracked.uint32(options.firstRun) # 1 is default
)
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) )
# DB input - needed only for AlCaRecoTriggerBitsRcdUpdate.startEmpty = False
# WARNING:
# Take care in case the input tag has several IOVs: The run number that will be
# used to define which payload you get is defined by the run number in the
# EmptySource above!
# Either a global tag...
# from Configuration.AlCa.autoCond import autoCond
# process.load("Configuration.StandardSequences.CondDBESSource_cff")
# process.GlobalTag.globaltag = autoCond['run2_data'] #choose your tag
# ...or (recommended since simpler) directly from DB/sqlite
process.load("CondCore.CondDB.CondDB_cfi")
# DB input service:
process.CondDB.connect = options.inputDB
process.dbInput = cms.ESSource("PoolDBESSource",
process.CondDB,
toGet = cms.VPSet(cms.PSet(record = cms.string('AlCaRecoTriggerBitsRcd'),
tag = cms.string(options.inputTag)
)
)
)
# DB output service:
process.CondDB.connect = options.outputDB
process.PoolDBOutputService = cms.Service("PoolDBOutputService",
process.CondDB,
timetype = cms.untracked.string('runnumber'),
toPut = cms.VPSet(cms.PSet(record = cms.string('AlCaRecoTriggerBitsRcd'),
tag = cms.string(options.outputTag) # choose output tag you want
)
)
)
# Put module in path:
process.p = cms.Path(process.AlCaRecoTriggerBitsRcdUpdate)
|