6 from os.path
import exists, join, basename
9 for s
in environ[
"CMSSW_SEARCH_PATH"].split(
":"):
10 attempt = join(s,theFile)
13 print "BABYMAKER: Could not find file "+theFile+
". Not pre-applying JSON" 17 import FWCore.ParameterSet.Config
as cms
18 from FWCore.ParameterSet.VarParsing
import VarParsing
19 options = VarParsing (
'analysis')
20 options.register(
'nEventsSample',
22 VarParsing.multiplicity.singleton,
23 VarParsing.varType.int,
24 "Total number of events in dataset for event weight calculation.")
25 options.register(
'nEvents',
27 VarParsing.multiplicity.singleton,
28 VarParsing.varType.int,
29 "Number of events to run over.")
30 options.register(
'json',
31 'babymaker/data/json/golden_Cert_246908-258714_13TeV_PromptReco_Collisions15_25ns_JSON.json',
32 VarParsing.multiplicity.singleton,
33 VarParsing.varType.string,
34 "Path to json starting with babymaker/...")
35 options.register(
'condorSubTime',
37 VarParsing.multiplicity.singleton,
38 VarParsing.varType.string,
39 "Timestamp from condor submission")
40 options.parseArguments()
41 outName = options.outputFile
42 if outName ==
"output.root":
43 rootfile = basename(options.inputFiles[0])
44 outName =
"baby_"+rootfile
47 cmsswRel = environ[
"CMSSW_BASE"]
48 if "RunIISpring15DR74" in outName
or "RunIISpring15FSPremix" in outName:
49 if cmsswRel.find(
"CMSSW_7_4_6") == -1: sys.exit(
"ERROR: Trying to run miniAOD V1 in a new release. Exiting")
53 if doJEC: jets_label =
"patJetsReapplyJEC" 54 else: jets_label =
"slimmedJets" 58 jecLabel =
'miniAOD_Summer15_25nsV6_MC' 59 if "Run2015D" in outName: jecLabel =
'Summer15_25nsV6_DATA' 60 elif "RunIISpring15FSPremix" in outName: jecLabel =
'MCRUN2_74_V9' 61 else: jecLabel =
'Summer15_25nsV6_MC' 63 if "FSPremix" in outName
or "Fast" in outName: fastsim =
True 66 if "Run2015" in outName:
69 globalTag =
"74X_dataRun2_v2" 71 jecLevels = [
'L1FastJet',
'L2Relative',
'L3Absolute',
'L2L3Residual']
75 globalTag =
"74X_mcRun2_asymptotic_v2" 77 jecLevels = [
'L1FastJet',
'L2Relative',
'L3Absolute']
83 process = cms.Process(
"Baby")
84 process.source = cms.Source(
"PoolSource",
85 fileNames = cms.untracked.vstring(options.inputFiles)
88 import FWCore.PythonUtilities.LumiList
as LumiList
90 process.source.lumisToProcess = LumiList.LumiList(filename = jsonfile).getVLuminosityBlockRange()
92 process.baby_basic = cms.EDAnalyzer(
'bmaker_basic',
93 condor_subtime = cms.string(options.condorSubTime),
94 outputFile = cms.string(outName),
95 inputFiles = cms.vstring(options.inputFiles),
96 json = cms.string(options.json),
97 jec = cms.string(jecLabel),
98 met = cms.InputTag(
"slimmedMETs"),
99 met_nohf = cms.InputTag(
"slimmedMETsNoHF"),
100 jets = cms.InputTag(jets_label),
101 nEventsSample = cms.uint32(options.nEventsSample),
102 doMetRebalancing = cms.bool(
True),
103 doSystematics = cms.bool(doSystematics),
104 addBTagWeights = cms.bool(
True),
105 isFastSim = cms.bool(fastsim),
106 debugMode = cms.bool(
False)
110 process.load(
"FWCore.MessageService.MessageLogger_cfi")
111 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.nEvents) )
112 process.MessageLogger.cerr.FwkReport.reportEvery = 100000
116 process.load(
'Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
117 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff")
118 process.GlobalTag.globaltag = globalTag
127 process.load(
'CommonTools.RecoAlgos.HBHENoiseFilterResultProducer_cfi')
128 process.HBHENoiseFilterResultProducer.minZeros = cms.int32(99999)
129 process.HBHENoiseFilterResultProducer.IgnoreTS4TS5ifJetInLowBVRegion=cms.bool(
False)
130 process.HBHENoiseFilterResultProducer.defaultDecision = cms.string(
"HBHENoiseFilterResultRun2Loose")
135 process.load(
"CondCore.DBCommon.CondDBCommon_cfi")
136 from CondCore.DBCommon.CondDBSetup_cfi
import CondDBSetup
137 process.jec = cms.ESSource(
"PoolDBESSource",CondDBSetup,
138 connect = cms.string(
'sqlite_file:data/jec/'+jecLabel+
'.db'),
141 record = cms.string(
"JetCorrectionsRecord"),
142 tag = cms.string(
"JetCorrectorParametersCollection_"+jecLabel+
"_AK4PFchs"),
143 label = cms.untracked.string(
"AK4PFchs")
146 record = cms.string(
"JetCorrectionsRecord"),
147 tag = cms.string(
"JetCorrectorParametersCollection_"+jecLabel+
"_AK4PF"),
148 label = cms.untracked.string(
"AK4PF")
152 process.es_prefer_jec = cms.ESPrefer(
"PoolDBESSource",
"jec")
155 from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff
import patJetCorrFactorsUpdated
156 process.patJetCorrFactorsReapplyJEC = patJetCorrFactorsUpdated.clone(
157 src = cms.InputTag(
"slimmedJets"),
159 payload =
'AK4PFchs' )
161 from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cff
import patJetsUpdated
162 process.patJetsReapplyJEC = patJetsUpdated.clone(
163 jetSource = cms.InputTag(
"slimmedJets"),
164 jetCorrFactorsSource = cms.VInputTag(cms.InputTag(
"patJetCorrFactorsReapplyJEC"))
169 process.options = cms.untracked.PSet(
170 allowUnscheduled = cms.untracked.bool(
True),
171 wantSummary = cms.untracked.bool(
False)
173 from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties
import runMetCorAndUncFromMiniAOD
174 runMetCorAndUncFromMiniAOD(process,
176 pfCandColl=cms.InputTag(
"packedPFCandidates")
179 process.patPFMetT1T2Corr.jetCorrLabelRes = cms.InputTag(
"L3Absolute")
180 process.patPFMetT1T2SmearCorr.jetCorrLabelRes = cms.InputTag(
"L3Absolute")
181 process.patPFMetT2Corr.jetCorrLabelRes = cms.InputTag(
"L3Absolute")
182 process.patPFMetT2SmearCorr.jetCorrLabelRes = cms.InputTag(
"L3Absolute")
183 process.shiftedPatJetEnDown.jetCorrLabelUpToL3Res = cms.InputTag(
"ak4PFCHSL1FastL2L3Corrector")
184 process.shiftedPatJetEnUp.jetCorrLabelUpToL3Res = cms.InputTag(
"ak4PFCHSL1FastL2L3Corrector")
186 process.slimmedMETs.t01Variation = cms.InputTag(
"slimmedMETs",
"",processRECO)
189 process.p = cms.Path(process.patJetCorrFactorsReapplyJEC*
190 process.patJetsReapplyJEC*
191 process.HBHENoiseFilterResultProducer*
196 process.p = cms.Path(process.HBHENoiseFilterResultProducer*
199 process.p = cms.Path(process.baby_basic)
def findFileInPath(theFile)