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
|
# Auto generated configuration file
# using:
# Revision: 1.19
# Source: /local/reps/CMSSW/CMSSW/Configuration/Applications/python/ConfigBuilder.py,v
# with command line options: step1 -s DQM -n 1 --eventcontent DQM --conditions auto:com10 --filein /store/relval/CMSSW_7_1_2/MinimumBias/RECO/GR_R_71_V7_dvmc_RelVal_mb2012Cdvmc-v1/00000/00209DF4-3708-E411-9FA7-0025905A6126.root --data --no_exec --python_filename=test_step1_cfg.py
import FWCore.ParameterSet.Config as cms
import FWCore.ParameterSet.VarParsing as VarParsing
process = cms.Process('DQM')
options = VarParsing.VarParsing('analysis')
options.register('globalTag',
"132X_mcRun3_2023_realistic_v2", # default value
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"input file name")
options.register('sequenceType',
"electrons",
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.string, # string, int, or float
"type of sequence to run")
options.register('isRECO',
False,
VarParsing.VarParsing.multiplicity.singleton, # singleton or list
VarParsing.VarParsing.varType.bool, # string, int, or float
"is the input sample RECO or AOD, assume AOD")
options.parseArguments()
# import of standard configurations
process.load('Configuration.StandardSequences.Services_cff')
process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
process.load('FWCore.MessageService.MessageLogger_cfi')
process.MessageLogger.cerr.FwkReport.reportEvery = 10
process.load('Configuration.EventContent.EventContent_cff')
process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
process.load('Configuration.StandardSequences.MagneticField_cff')
process.load('DQMOffline.Configuration.DQMOffline_cff')
process.load('Configuration.StandardSequences.EndOfProcess_cff')
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(options.maxEvents)
)
# Input source
process.source = cms.Source("PoolSource",
secondaryFileNames = cms.untracked.vstring(),
fileNames = cms.untracked.vstring(options.inputFiles)
)
process.options = cms.untracked.PSet(
)
# Production Info
process.configurationMetadata = cms.untracked.PSet(
version = cms.untracked.string('$Revision: 1.19 $'),
annotation = cms.untracked.string('step1 nevts:1'),
name = cms.untracked.string('Applications')
)
# Output definition
process.DQMoutput = cms.OutputModule("PoolOutputModule",
splitLevel = cms.untracked.int32(0),
outputCommands = process.DQMEventContent.outputCommands,
fileName = cms.untracked.string('step1_DQM_1.root'),
dataset = cms.untracked.PSet(
filterName = cms.untracked.string(''),
dataTier = cms.untracked.string('')
)
)
# Additional output definition
# Other statements
from Configuration.AlCa.GlobalTag import GlobalTag
process.GlobalTag = GlobalTag(process.GlobalTag,options.globalTag, '')
# Tracker Data MC validation suite
process.load('DQM.TrackingMonitorSource.TrackingDataMCValidation_Standalone_cff')
# Set the flag is this is AOD or RECO analysis
process.standaloneTrackMonitor.isRECO = options.isRECO
process.standaloneTrackMonitorK0.isRECO = options.isRECO
process.standaloneTrackMonitorLambda.isRECO = options.isRECO
process.standaloneTrackMonitorElec.isRECO = options.isRECO
process.standaloneTrackMonitorMuon.isRECO = options.isRECO
process.standaloneTrackMonitorTTbar.isRECO = options.isRECO
minbias_analysis_step = cms.Path(process.standaloneValidationMinbias)
k0_analysis_step = cms.Path(process.standaloneValidationK0s)
lambda_analysis_step = cms.Path(process.standaloneValidationLambdas)
zee_analysis_step = cms.Path(process.standaloneValidationElec)
zmm_analysis_step = cms.Path(process.standaloneValidationMuon)
ttbar_analysis_step = cms.Path(process.standaloneValidationTTbar)
if(options.sequenceType == "electrons"):
process.analysis_step = zee_analysis_step
elif (options.sequenceType == "muons") :
process.analysis_step = zmm_analysis_step
elif (options.sequenceType == "ttbar") :
process.analysis_step = ttbar_analysis_step
elif (options.sequenceType == "minbias") :
process.analysis_step = minbias_analysis_step
elif (options.sequenceType == "V0s") :
process.analysis_1_step = k0_analysis_step
process.analysis_2_step = lambda_analysis_step
else :
raise RuntimeError("Unrecognized sequenceType given option: %. Exiting" % options.sequenceType)
# Path and EndPath definitions
process.endjob_step = cms.EndPath(process.endOfProcess)
process.DQMoutput_step = cms.EndPath(process.DQMoutput)
# Schedule definition
if (options.sequenceType == "V0s"):
process.schedule = cms.Schedule(process.analysis_1_step, process.analysis_2_step, process.endjob_step, process.DQMoutput_step)
else:
process.schedule = cms.Schedule(process.analysis_step, process.endjob_step, process.DQMoutput_step)
###################################################################
# Set the process to run multi-threaded
###################################################################
process.options.numberOfThreads = 8
|