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
|
import FWCore.ParameterSet.Config as cms
#import FWCore.PythonUtilities.LumiList as LumiList
from FWCore.ParameterSet.VarParsing import VarParsing
import json
import os
##Define process
process = cms.Process("ValidationIntoNTuples")
##Argument parsing
options = VarParsing()
options.register("config", "", VarParsing.multiplicity.singleton, VarParsing.varType.string , "AllInOne config")
options.parseArguments()
###Set validation mode
#valiMode = "StandAlone"
##Read in AllInOne config in JSON format
if options.config == "":
config = {"validation": {},
"alignments": {}}
else:
with open(options.config, "r") as configFile:
config = json.load(configFile)
#Global tag
process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
from Configuration.AlCa.GlobalTag import GlobalTag
process.GlobalTag = GlobalTag(process.GlobalTag,config["alignments"]["globaltag"])
process.load("Configuration.Geometry.GeometryRecoDB_cff")
process.load("CondCore.CondDB.CondDB_cfi")
process.MessageLogger = cms.Service("MessageLogger",
#destinations = cms.untracked.vstring('detailedInfo', 'cout')
destinations = cms.untracked.vstring('warnings'),
warnings = cms.untracked.PSet(
threshold = cms.untracked.string('WARNING')
)
)
##Load conditions if needed
if "conditions" in config["alignments"]:
from CalibTracker.Configuration.Common.PoolDBESSource_cfi import poolDBESSource
for condition in config["alignments"]["conditions"]:
setattr(
process,
"conditionsIn{}".format(condition),
poolDBESSource.clone(
connect = cms.string(str(config["alignments"]["conditions"][condition]["connect"])),
toGet = cms.VPSet(
cms.PSet(
record = cms.string(str(condition)),
tag = cms.string(str(config["alignments"]["conditions"][condition]["tag"]))
)
)
)
)
setattr(process, "prefer_conditionsIn{}".format(condition), cms.ESPrefer("PoolDBESSource", "conditionsIn{}".format(condition)))
process.source = cms.Source("EmptySource",
firstRun=cms.untracked.uint32(config["validation"]["IOV"])
)
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(1)
)
print('Output file: '+config["output"]+'/Ntuples.root')
from Alignment.OfflineValidation.trackerGeometryIntoNtuples_cfi import trackerGeometryIntoNtuples as _trackerGeometryIntoNtuples
process.dump = _trackerGeometryIntoNtuples.clone(
outputFile = str(config["output"]+'/Ntuples.root'),
outputTreename = 'alignTree'
)
process.p = cms.Path(process.dump)
|