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 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')
예제 #9
0
    
    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'}
예제 #10
0
'''
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(
예제 #11
0
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,