10 cmssw = os.getenv(
"CMSSW_BASE")+
"/src/" 14 lumi_json = cmssw +
"babymaker/data/json/pileup_latest.txt" 18 json = cmssw +
"babymaker/data/json/golden_Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16.json" 22 mbxsec, mbxsec_relunc = 69200, 0.046
26 mcfile = TChain(
"tree")
27 mcfile.Add(
"/net/cms2/cms2r0/babymaker/babies/2017_01_21/mc/unprocessed/fullbaby_TTJets_SingleLeptFromT_TuneCUETP8M1_13TeV-madgraphMLM-pythia8_RunIISummer16MiniAODv2-PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1_*")
28 hmc = TH1D(
"hmc",
"hmc",75,0,75)
29 mcfile.Draw(
"ntrupv_mean>>hmc",
"",
"norm")
40 "up": mbxsec*(1+mbxsec_relunc),
41 "down": mbxsec*(1-mbxsec_relunc)
44 for imb
in mbxsec_dict:
47 cmd +=
" --inputLumiJSON "+lumi_json
48 cmd +=
" --calcMode "+calc_mode
49 cmd +=
" --minBiasXsec "+str(mbxsec_dict[imb])
50 cmd +=
" --maxPileupBin "+str(hmc.GetNbinsX())
51 cmd +=
" --numPileupBins "+str(hmc.GetNbinsX())
52 cmd +=
" pileup_"+imb+
".root" 54 print "Obtaining data pile up distribution for variation:", imb
58 fdata = TFile(
"pileup_"+imb+
".root",
"READ")
59 htmp = fdata.Get(
"pileup").Clone(
"pu_"+imb)
60 htmp.Scale(1./htmp.Integral())
64 wgt = [htmp.GetBinContent(i+1)
for i
in range(htmp.GetNbinsX())]
66 print "Nominal weights:" 67 for j,iwgt
in enumerate(wgt):
68 print "NPV: "+
'{:>3d}'.format(j+1),
69 print " Weight: "+
'{:>10.3e}'.format(iwgt)
71 print "------> Vector for weight_tools:" 73 print " = vector<double>({"+
', '.join(
'{:.3e}'.format(x)
for x
in wgt)+
"});"