def getMETVariables(analysisType, sample, metType, bjetbin): base = 'TTbarPlusMetAnalysis/' + analysisType + '/Ref selection/BinnedMETAnalysis/' analyser = 'Electron_%s_bin_%s/electron_AbsEta_%s' if 'Mu' in analysisType: analyser = 'Muon_%s_bin_%s/muon_AbsEta_%s' correctionFactors = {} purities = {} stabilities = {} numberOfGenEvents = {} numberOfRecoEvents = {} for metbin in metbins: genMET = base + analyser % ('GenMET', metbin, bjetbin) PFMET = base + analyser % (metType, metbin, bjetbin) genMETs = FileReader.getHistogramFromFile(genMET, FILES.files[sample]) PFMETs = FileReader.getHistogramFromFile(PFMET, FILES.files[sample]) N_gen = genMETs.Integral() N_reco = PFMETs.Integral() purity = (N_gen + N_reco) / N_reco stability = (N_gen + N_reco) / N_gen correctionFactor = N_gen / N_reco correctionFactors[metbin] = correctionFactor purities[metbin] = purity stabilities[metbin] = stability numberOfGenEvents[metbin] = N_gen numberOfRecoEvents[metbin] = N_reco result = { 'correctionFactors': correctionFactors, 'purities': purities, 'stabilities': stabilities, 'numberOfGenEvents': numberOfGenEvents, 'numberOfRecoEvents':numberOfRecoEvents } return result
def getMETVariables(analysisType, sample, metType, bjetbin): base = "TTbarPlusMetAnalysis/" + analysisType + "/Ref selection/BinnedMETAnalysis/" analyser = "Electron_%s_bin_%s/electron_AbsEta_%s" if "Mu" in analysisType: analyser = "Muon_%s_bin_%s/muon_AbsEta_%s" correctionFactors = {} purities = {} stabilities = {} numberOfGenEvents = {} numberOfRecoEvents = {} for metbin in metbins: genMET = base + analyser % ("GenMET", metbin, bjetbin) PFMET = base + analyser % (metType, metbin, bjetbin) genMETs = FileReader.getHistogramFromFile(genMET, FILES.files[sample]) PFMETs = FileReader.getHistogramFromFile(PFMET, FILES.files[sample]) N_gen = genMETs.Integral() N_reco = PFMETs.Integral() purity = (N_gen + N_reco) / N_reco stability = (N_gen + N_reco) / N_gen correctionFactor = N_gen / N_reco correctionFactors[metbin] = correctionFactor purities[metbin] = purity stabilities[metbin] = stability numberOfGenEvents[metbin] = N_gen numberOfRecoEvents[metbin] = N_reco result = { "correctionFactors": correctionFactors, "purities": purities, "stabilities": stabilities, "numberOfGenEvents": numberOfGenEvents, "numberOfRecoEvents": numberOfRecoEvents, } return result
def estimateQCDWithRelIso(inputFiles, histogramForEstimation=defaultHistogram, function='expo', fitRange=(0.3, 1.6), fitRangesForSystematics=[(0.2, 1.6), (0.4, 1.6)]): inputFile = inputFiles['SingleElectron'] if DEBUG: print '*' * 120 print "Estimating QCD using a fit to RelIso" print 'Input file = ', inputFile print 'Histogram = ', histogramForEstimation print 'Fit function = ', function print 'Fit range = ', fitRange print 'Fit ranges for systematics = ', fitRangesForSystematics print '*' * 120 histogramForEstimation = FileReader.getHistogramFromFile( histogramForEstimation, inputFile) result = relIsoMethodWithSystematics( histogramForEstimation, function, fitRange=fitRange, fitRangesForSystematics=fitRangesForSystematics, applyBiasCorrection=True) return result
def estimateQCDWithRelIso(inputFiles, histogramForEstimation=defaultHistogram, function='expo', fitRange=(0.3, 1.6), fitRangesForSystematics=[(0.2, 1.6), (0.4, 1.6)]): inputFile = inputFiles['SingleElectron'] if DEBUG: print '*' * 120 print "Estimating QCD using a fit to RelIso" print 'Input file = ', inputFile print 'Histogram = ', histogramForEstimation print 'Fit function = ', function print 'Fit range = ', fitRange print 'Fit ranges for systematics = ', fitRangesForSystematics print '*' * 120 histogramForEstimation = FileReader.getHistogramFromFile(histogramForEstimation, inputFile) result = relIsoMethodWithSystematics(histogramForEstimation, function, fitRange=fitRange, fitRangesForSystematics=fitRangesForSystematics, applyBiasCorrection=True) return result
def getMETVariablesFrom2DPlot(analysisType, sample, metType, bjetbin): hist = 'TTbarPlusMetAnalysis/' + analysisType + '/Ref selection/MET/%s/RecoMET_vs_GenMET_%s' % (metType, bjetbin) correctionFactors = {} purities = {} stabilities = {} numberOfGenEvents = {} numberOfRecoEvents = {} recoMETvsGenMET = FileReader.getHistogramFromFile(hist, FILES.files[sample]) for metbin in metbins: lowerLimit, upperLimit = metbin.split('-') lowerLimit, upperLimit = float(lowerLimit), float(upperLimit) lowerXbin = recoMETvsGenMET.GetXaxis().FindBin(lowerLimit + 0.001) lowerYbin = recoMETvsGenMET.GetYaxis().FindBin(lowerLimit + 0.001) upperXbin, upperYbin = 0,0 overflowX, overflowY = recoMETvsGenMET.GetNbinsX()+1, recoMETvsGenMET.GetNbinsY()+1 if not upperLimit == 'inf': upperXbin = recoMETvsGenMET.GetXaxis().FindBin(upperLimit - 0.001) upperYbin = recoMETvsGenMET.GetYaxis().FindBin(upperLimit - 0.001) else: upperXbin = overflowX upperYbin = overflowY N_reco = recoMETvsGenMET.Integral(0, overflowX, lowerYbin, upperYbin) N_gen = recoMETvsGenMET.Integral(lowerXbin, upperXbin, 0, overflowY) nRecoPlusnGen = recoMETvsGenMET.Integral(lowerXbin, upperXbin, lowerYbin, upperYbin) purity = nRecoPlusnGen/N_reco stability = nRecoPlusnGen/N_gen correctionFactor = N_gen/N_reco correctionFactors[metbin] = correctionFactor purities[metbin] = purity stabilities[metbin] = stability numberOfGenEvents[metbin] = N_gen numberOfRecoEvents[metbin] = N_reco result = { 'correctionFactors': correctionFactors, 'purities': purities, 'stabilities': stabilities, 'numberOfGenEvents': numberOfGenEvents, 'numberOfRecoEvents':numberOfRecoEvents } return result
''' Created on Aug 18, 2012 @author: Lukasz Kreczko Email: [email protected] ''' from ROOT import * from ROOT import RooRealVar, RooDataHist, RooArgList, RooHistPdf, RooArgSet, RooAddPdf import dps.utils.ROOTFileReader as FileReader import FILES from math import sqrt h_m3_data = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['ElectronHad']) temp_tt = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['TTJet']) temp_wj = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W1Jet']) temp_wj.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W2Jets'])) temp_wj.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W3Jets'])) temp_wj.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W4Jets'])) temp_zj = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['DYJetsToLL']) temp_qcd = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/QCDConversions/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_0btag", FILES.files['ElectronHad']) temp_stop = FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['T_tW-channel']) temp_stop.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['T_t-channel'])) temp_stop.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['T_s-channel'])) temp_stop.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['Tbar_tW-channel'])) temp_stop.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['Tbar_t-channel'])) temp_stop.Add(FileReader.getHistogramFromFile("TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['Tbar_s-channel'])) n_ttbar = temp_tt.Integral() n_wj = temp_wj.Integral() n_zj = temp_zj.Integral() n_stop = temp_stop.Integral()
Email: [email protected] ''' #from ROOT import * from ROOT import RooRealVar, RooDataHist, RooArgList, RooHistPdf, RooArgSet, RooAddPdf, RooMCStudy, RooFit import dps.utils.ROOTFileReader as FileReader import FILES from math import sqrt distribution = "TTbarPlusMetAnalysis/MuPlusJets/Ref selection/BinnedMETAnalysis/Muon_PFMET_bin_0-25/muon_AbsEta_2orMoreBtags" qcdDistribution = "TTbarPlusMetAnalysis/MuPlusJets/QCD non iso mu+jets/BinnedMETAnalysis/Muon_PFMET_bin_0-25/muon_AbsEta_0btag" qcdDistribution2 = qcdDistribution data_file = 'SingleMu' #qcdDistribution = "TTbarPlusMetAnalysis/EPlusJets/QCDConversions/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_0btag" #qcdDistribution2 = "TTbarPlusMetAnalysis/EPlusJets/QCD non iso e+jets/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_0btag" #data_file = 'ElectronHad' h_data = FileReader.getHistogramFromFile(distribution, FILES.files[data_file]) temp_tt = FileReader.getHistogramFromFile(distribution, FILES.files['TTJet']) temp_wj = FileReader.getHistogramFromFile(distribution, FILES.files['W1Jet']) temp_wj.Add(FileReader.getHistogramFromFile(distribution, FILES.files['W2Jets'])) temp_wj.Add(FileReader.getHistogramFromFile(distribution, FILES.files['W3Jets'])) temp_wj.Add(FileReader.getHistogramFromFile(distribution, FILES.files['W4Jets'])) temp_zj = FileReader.getHistogramFromFile(distribution, FILES.files['DYJetsToLL']) temp_qcd = FileReader.getHistogramFromFile(qcdDistribution, FILES.files[data_file]) temp_qcd2 = FileReader.getHistogramFromFile(qcdDistribution2, FILES.files[data_file]) temp_stop = FileReader.getHistogramFromFile(distribution, FILES.files['T_tW-channel']) temp_stop.Add(FileReader.getHistogramFromFile(distribution, FILES.files['T_t-channel'])) temp_stop.Add(FileReader.getHistogramFromFile(distribution, FILES.files['T_s-channel'])) temp_stop.Add(FileReader.getHistogramFromFile(distribution, FILES.files['Tbar_tW-channel'])) temp_stop.Add(FileReader.getHistogramFromFile(distribution, FILES.files['Tbar_t-channel'])) temp_stop.Add(FileReader.getHistogramFromFile(distribution, FILES.files['Tbar_s-channel'])) temp_VPlusJets = temp_zj.Clone('V+jets')
tdrStyle = Styles.tdrStyle() gStyle.SetOptStat(0) for sample in samples: path = outputFolder + base + sample # if not os.path.exists(path): # os.makedirs(path) # print 'Sample = ', sample # outputFile = open(path + "/outputFile_" + str(sample) + ".txt", "w") for metType in metTypes: for bJetBin in bJetBins: histFile = base + metType + "/RecoMET_vs_GenMET_" + bJetBin print histFile hist = FileReader.getHistogramFromFile(histFile, FILES.files[sample]) print "Plotting..." print "hist = ", hist title1 = TPaveText(0.15, 0.965, 0.4, 1.01, "NDC") title1.SetFillStyle(0) title1.SetBorderSize(0) title1.SetTextFont(42) title1.SetTextAlign(13) title2 = TPaveText(0.5, 0.97, 1, 1.01, "NDC") title2.SetFillStyle(0) title2.SetBorderSize(0) title2.SetTextFont(42) title2.SetTextAlign(13) # bJetBinTitles = {'0btag':'0 b-tags', '0orMoreBtag':'#geq0 b-tags', '1btag':'1 b-tags', '1orMoreBtag':'#geq1 b-tags', '2orMoreBtags':'#geq2 b-tags'}
''' Created on Aug 18, 2012 @author: Lukasz Kreczko Email: [email protected] ''' from ROOT import * from ROOT import RooRealVar, RooDataHist, RooArgList, RooHistPdf, RooArgSet, RooAddPdf import dps.utils.ROOTFileReader as FileReader import FILES from math import sqrt h_m3_data = FileReader.getHistogramFromFile( "TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['ElectronHad']) temp_tt = FileReader.getHistogramFromFile( "TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['TTJet']) temp_wj = FileReader.getHistogramFromFile( "TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W1Jet']) temp_wj.Add( FileReader.getHistogramFromFile( "TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W2Jets'])) temp_wj.Add( FileReader.getHistogramFromFile( "TTbarPlusMetAnalysis/EPlusJets/Ref selection/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_2orMoreBtags", FILES.files['W3Jets'])) temp_wj.Add( FileReader.getHistogramFromFile(
Email: [email protected] ''' #from ROOT import * from ROOT import RooRealVar, RooDataHist, RooArgList, RooHistPdf, RooArgSet, RooAddPdf, RooMCStudy, RooFit import dps.utils.ROOTFileReader as FileReader import FILES from math import sqrt distribution = "TTbarPlusMetAnalysis/MuPlusJets/Ref selection/BinnedMETAnalysis/Muon_PFMET_bin_0-25/muon_AbsEta_2orMoreBtags" qcdDistribution = "TTbarPlusMetAnalysis/MuPlusJets/QCD non iso mu+jets/BinnedMETAnalysis/Muon_PFMET_bin_0-25/muon_AbsEta_0btag" qcdDistribution2 = qcdDistribution data_file = 'SingleMu' #qcdDistribution = "TTbarPlusMetAnalysis/EPlusJets/QCDConversions/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_0btag" #qcdDistribution2 = "TTbarPlusMetAnalysis/EPlusJets/QCD non iso e+jets/BinnedMETAnalysis/Electron_PFMET_bin_0-25/electron_AbsEta_0btag" #data_file = 'ElectronHad' h_data = FileReader.getHistogramFromFile(distribution, FILES.files[data_file]) temp_tt = FileReader.getHistogramFromFile(distribution, FILES.files['TTJet']) temp_wj = FileReader.getHistogramFromFile(distribution, FILES.files['W1Jet']) temp_wj.Add( FileReader.getHistogramFromFile(distribution, FILES.files['W2Jets'])) temp_wj.Add( FileReader.getHistogramFromFile(distribution, FILES.files['W3Jets'])) temp_wj.Add( FileReader.getHistogramFromFile(distribution, FILES.files['W4Jets'])) temp_zj = FileReader.getHistogramFromFile(distribution, FILES.files['DYJetsToLL']) temp_qcd = FileReader.getHistogramFromFile(qcdDistribution, FILES.files[data_file]) temp_qcd2 = FileReader.getHistogramFromFile(qcdDistribution2, FILES.files[data_file]) temp_stop = FileReader.getHistogramFromFile(distribution,