コード例 #1
0
def applyStat(fakeFactorsMC, fakeFactorsData):
    statUncertDir = '/afs/cern.ch/user/j/jsauvan/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/FakeFactorStatUncertainties/results/'
    #statUncertDir = '/home/sauvan/lxwork/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/FakeFactorStatUncertainties/results/'
    formShift = '([{NOM}]+[{SHIFT}])'
    ## MC
    for fakeFactor in listRawFakeFactors(fakeFactorsMC):
        # Retrieve list of stat shifts
        fileName = fakeFactor.object.File.split('/')[-1].replace(
            '.root', '_StatShift.root')
        uncertFile = ROOT.TFile.Open(statUncertDir + '/' + fileName)
        keys = uncertFile.GetListOfKeys()
        fakeFactorStatShifts = []
        for key in keys:
            if fakeFactor.object.Object in key.GetName():
                fakeFactorStatShifts.append(key.GetName())
        uncertFile.Close()
        # Create bin shift and add uncertainty
        for fakeFactorStatShift in fakeFactorStatShifts:
            extension = fakeFactorStatShift.replace(
                fakeFactor.object.Object + '_', '')
            binshift = createRawComponent(Name=fakeFactor.name + '_BinShift_' +
                                          extension,
                                          File=statUncertDir + '/' + fileName,
                                          Type=fakeFactor.object.Type,
                                          Object=fakeFactorStatShift)
            fakeFactor.addSystematic(
                'StatFakeFactors', 'ShiftStatFF_' + extension,
                createCombinedComponent(Name='',
                                        Form=formShift,
                                        SHIFT=binshift,
                                        NOM=fakeFactor))
    ## Data
    for fakeFactor in listRawFakeFactors(fakeFactorsData):
        # Retrieve list of stat shifts
        fileName = fakeFactor.object.File.split('/')[-1].replace(
            '.root', '_StatShift.root')
        uncertFile = ROOT.TFile.Open(statUncertDir + '/' + fileName)
        keys = uncertFile.GetListOfKeys()
        fakeFactorStatShifts = []
        for key in keys:
            if fakeFactor.object.Object in key.GetName():
                fakeFactorStatShifts.append(key.GetName())
        uncertFile.Close()
        # Create bin shift and add uncertainty
        for fakeFactorStatShift in fakeFactorStatShifts:
            extension = fakeFactorStatShift.replace(
                fakeFactor.object.Object + '_', '')
            binshift = createRawComponent(Name=fakeFactor.name + '_BinShift_' +
                                          extension,
                                          File=statUncertDir + '/' + fileName,
                                          Type=fakeFactor.object.Type,
                                          Object=fakeFactorStatShift)
            fakeFactor.addSystematic(
                'StatFakeFactors', 'ShiftStatFF_' + extension,
                createCombinedComponent(Name='',
                                        Form=formShift,
                                        SHIFT=binshift,
                                        NOM=fakeFactor))
コード例 #2
0
def create(fakeFactorsMC, fakeFactorsData):
    fractionsFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeBackgroundFractions/results/backgroundFraction_SS_Iso_Medium_mvis_vs_mt.root"
    #formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}])+[{W_Z}]*([{ZJ}]+[{VV}])'
    formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}]+[{ZJ}]+[{VV}])'
    fractionsW = createRawComponent(
        Name="Fraction_SS_W_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_W_Nom")
    fractionsQCD = createRawComponent(
        Name="Fraction_SS_QCD_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_QCD_Nom")
    fractionsTT = createRawComponent(
        Name="Fraction_SS_TT_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_TT_Nom")
    fractionsZJ = createRawComponent(
        Name="Fraction_SS_ZJ_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_ZJ_Nom")
    fractionsVV = createRawComponent(
        Name="Fraction_SS_VV_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_VV_Nom")

    fakeFactorsMC.append(
        createCombinedComponent(
            Name="Weight_CombinedSS_" + fakeFactor,
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_" + fakeFactor, fakeFactorsMC),
            W_W=findComponent("Weight_HighMTSS_" + fakeFactor, fakeFactorsMC),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsMC),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV))
    fakeFactorsData.append(
        createCombinedComponent(
            Name="Weight_CombinedSS_" + fakeFactor,
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_" + fakeFactor, fakeFactorsData),
            W_W=findComponent("Weight_HighMTSS_" + fakeFactor,
                              fakeFactorsData),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsData),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV))
    return [fractionsTT, fractionsW, fractionsVV, fractionsZJ, fractionsQCD]
コード例 #3
0
def applyBinSys(highMTCorrection):
    highMTCorrectionFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeMTCorrection/results/mtCorrections.root"
    highMTCorrection.addSystematic(
        'BinningMTCorr', 'ShiftBinningMTCorr_Up',
        createRawComponent(Name='',
                           File=highMTCorrectionFile,
                           Type="1DGraph",
                           Object="mt_correction_binup"))
    highMTCorrection.addSystematic(
        'BinningMTCorr', 'ShiftBinningMTCorr_Down',
        createRawComponent(Name='',
                           File=highMTCorrectionFile,
                           Type="1DGraph",
                           Object="mt_correction_bindown"))
コード例 #4
0
def applySplitNonClosure(fakeFactorsMC, fakeFactorsData):
    nonClosureFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/Closures/results/nonClosures_split.root"
    nonClosureSSFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/Closures/results/nonClosures_split.root"
    formShift = '[{SHIFT}]*[{NOM}]'
    for i in xrange(4):
        nonClosureHighMT = createRawComponent(
            Name="HighMTNonClosure{I}_VsMVis".format(I=i),
            File=nonClosureFile,
            Type="1DGraph",
            Object="HighMT_Histo_Smooth_Ratio_{I}".format(I=i))
        nonClosureHighMTSS = createRawComponent(
            Name="HighMTSSNonClosure{I}_VsMVis".format(I=i),
            File=nonClosureSSFile,
            Type="1DGraph",
            Object="HighMTSS_Histo_Smooth_Ratio_{I}".format(I=i))
        ## MC
        fakeFactorHighMT = findComponent("Weight_HighMT_" + fakeFactor,
                                         fakeFactorsMC)
        fakeFactorHighMT.addSystematic(
            'NonClosure', 'ShiftNonClosure_HighMT_{I}'.format(I=i),
            createCombinedComponent(Name='',
                                    Form=formShift,
                                    SHIFT=nonClosureHighMT,
                                    NOM=fakeFactorHighMT))
        fakeFactorHighMTSS = findComponent("Weight_HighMTSS_" + fakeFactor,
                                           fakeFactorsMC)
        fakeFactorHighMTSS.addSystematic(
            'NonClosure', 'ShiftNonClosure_HighMTSS_{I}'.format(I=i),
            createCombinedComponent(Name='',
                                    Form=formShift,
                                    SHIFT=nonClosureHighMTSS,
                                    NOM=fakeFactorHighMTSS))
        ## Data
        fakeFactorHighMT = findComponent("Weight_HighMT_" + fakeFactor,
                                         fakeFactorsData)
        fakeFactorHighMT.addSystematic(
            'NonClosure', 'ShiftNonClosure_HighMT_{I}'.format(I=i),
            createCombinedComponent(Name='',
                                    Form=formShift,
                                    SHIFT=nonClosureHighMT,
                                    NOM=fakeFactorHighMT))
        fakeFactorHighMTSS = findComponent("Weight_HighMTSS_" + fakeFactor,
                                           fakeFactorsData)
        fakeFactorHighMTSS.addSystematic(
            'NonClosure', 'ShiftNonClosure_HighMTSS_{I}'.format(I=i),
            createCombinedComponent(Name='',
                                    Form=formShift,
                                    SHIFT=nonClosureHighMTSS,
                                    NOM=fakeFactorHighMTSS))
コード例 #5
0
def applyNonClosure(fakeFactorsMC, fakeFactorsData):
    nonClosureFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/Closures/results/nonClosures.root"
    formShift = '[{SHIFT}]*[{NOM}]'
    ## MC
    #nonClosureZMuMu = createRawComponent(
    #Name="ZMuMuNonClosure_VsMVis",
    #File=nonClosureFile,
    #Type="1DGraph",
    #Object="ZMuMu_Histo_Smooth_Ratio"
    #)
    #fakeFactorZMuMu = findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsMC)
    #fakeFactorZMuMu.addSystematic(
    #'NonClosure',
    #'ShiftNonClosure_ZMuMu',
    #createCombinedComponent(
    #Name='',
    #Form=formShift,
    #SHIFT=nonClosureZMuMu,
    #NOM=fakeFactorZMuMu
    #)
    #)
    #
    nonClosureQCDSS = createRawComponent(Name="QCDSSNonClosure_VsMVis",
                                         File=nonClosureFile,
                                         Type="1DGraph",
                                         Object="QCDSS_Histo_Smooth_Ratio")
    fakeFactorQCDSS = findComponent("Weight_QCDSS_" + fakeFactor,
                                    fakeFactorsMC)
    fakeFactorQCDSS.addSystematic(
        'NonClosure', 'ShiftNonClosure_QCDSS',
        createCombinedComponent(Name='',
                                Form=formShift,
                                SHIFT=nonClosureQCDSS,
                                NOM=fakeFactorQCDSS))
    ## Data
    #fakeFactorZMuMu = findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsData)
    #fakeFactorZMuMu.addSystematic(
    #'NonClosure',
    #'ShiftNonClosure_ZMuMu',
    #createCombinedComponent(
    #Name='',
    #Form=formShift,
    #SHIFT=nonClosureZMuMu,
    #NOM=fakeFactorZMuMu
    #)
    #)
    #
    fakeFactorQCDSS = findComponent("Weight_QCDSS_" + fakeFactor,
                                    fakeFactorsData)
    fakeFactorQCDSS.addSystematic(
        'NonClosure', 'ShiftNonClosure_QCDSS',
        createCombinedComponent(Name='',
                                Form=formShift,
                                SHIFT=nonClosureQCDSS,
                                NOM=fakeFactorQCDSS))
コード例 #6
0
def applyBinSys(highMTCorrection):
    highMTCorrectionFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeMTCorrection/results/mtCorrections.root"
    highMTCorrection.addSystematic(
        'BinningMTCorr',
        'ShiftBinningMTCorr_Up',
        createRawComponent(
            Name='',
            File=highMTCorrectionFile,
            Type="1DGraph",
            Object="mt_correction_binup"
        )
    )
    highMTCorrection.addSystematic(
        'BinningMTCorr',
        'ShiftBinningMTCorr_Down',
        createRawComponent(
            Name='',
            File=highMTCorrectionFile,
            Type="1DGraph",
            Object="mt_correction_bindown"
        )
    )
コード例 #7
0
def create(fakeFactorsMC, fakeFactorsData):
    highMTCorrectionFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeMTCorrection/results/mtCorrections.root"
    formCorrection = '[{CORR}]*[{RAW}]'
    highMTCorrection = createRawComponent(
        Name="HighMTCorr_VsMT" ,
        File=highMTCorrectionFile,
        Type="1DGraph",
        Object="mt_correction"
    )
    ## MC
    fakeFactorsMC.append(
        createCombinedComponent(
            Name="Weight_HighMT_"+fakeFactor,
            Form=formCorrection,
            CORR=highMTCorrection,
            RAW=findComponent("Weight_HighMTRaw_"+fakeFactor,fakeFactorsMC)
        )
    )
    fakeFactorsMC.append(
        createCombinedComponent(
            Name="Weight_HighMTSS_"+fakeFactor,
            Form=formCorrection,
            CORR=highMTCorrection,
            RAW=findComponent("Weight_HighMTSSRaw_"+fakeFactor,fakeFactorsMC)
        )
    )
    ## Data
    fakeFactorsData.append(
        createCombinedComponent(
            Name="Weight_HighMT_"+fakeFactor,
            Form=formCorrection,
            CORR=highMTCorrection,
            RAW=findComponent("Weight_HighMTRaw_"+fakeFactor,fakeFactorsData)
        )
    )
    fakeFactorsData.append(
        createCombinedComponent(
            Name="Weight_HighMTSS_"+fakeFactor,
            Form=formCorrection,
            CORR=highMTCorrection,
            RAW=findComponent("Weight_HighMTSSRaw_"+fakeFactor,fakeFactorsData)
        )
    )
    return highMTCorrection
コード例 #8
0
def create(fakeFactorsMC, fakeFactorsData):
    highMTCorrectionFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeMTCorrection/results/mtCorrections.root"
    formCorrection = '[{CORR}]*[{RAW}]'
    highMTCorrection = createRawComponent(Name="HighMTCorr_VsMT",
                                          File=highMTCorrectionFile,
                                          Type="1DGraph",
                                          Object="mt_correction")
    ## MC
    fakeFactorsMC.append(
        createCombinedComponent(Name="Weight_HighMT_" + fakeFactor,
                                Form=formCorrection,
                                CORR=highMTCorrection,
                                RAW=findComponent(
                                    "Weight_HighMTRaw_" + fakeFactor,
                                    fakeFactorsMC)))
    fakeFactorsMC.append(
        createCombinedComponent(Name="Weight_HighMTSS_" + fakeFactor,
                                Form=formCorrection,
                                CORR=highMTCorrection,
                                RAW=findComponent(
                                    "Weight_HighMTSSRaw_" + fakeFactor,
                                    fakeFactorsMC)))
    ## Data
    fakeFactorsData.append(
        createCombinedComponent(Name="Weight_HighMT_" + fakeFactor,
                                Form=formCorrection,
                                CORR=highMTCorrection,
                                RAW=findComponent(
                                    "Weight_HighMTRaw_" + fakeFactor,
                                    fakeFactorsData)))
    fakeFactorsData.append(
        createCombinedComponent(Name="Weight_HighMTSS_" + fakeFactor,
                                Form=formCorrection,
                                CORR=highMTCorrection,
                                RAW=findComponent(
                                    "Weight_HighMTSSRaw_" + fakeFactor,
                                    fakeFactorsData)))
    return highMTCorrection
コード例 #9
0
def createShift(group, name, shift, fractionsFile, fakeFactorsMC,
                fakeFactorsData):
    #formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}])+[{W_Z}]*([{ZJ}]+[{VV}])'
    formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}]+[{ZJ}]+[{VV}])'
    fractionsW = createRawComponent(
        Name="Fraction_SS_W_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_W_{SHIFT}".
        format(SHIFT=shift))
    fractionsQCD = createRawComponent(
        Name="Fraction_SS_QCD_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_QCD_{SHIFT}".
        format(SHIFT=shift))
    fractionsTT = createRawComponent(
        Name="Fraction_SS_TT_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_TT_{SHIFT}".
        format(SHIFT=shift))
    fractionsZJ = createRawComponent(
        Name="Fraction_SS_ZJ_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_ZJ_{SHIFT}".
        format(SHIFT=shift))
    fractionsVV = createRawComponent(
        Name="Fraction_SS_VV_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_VV_{SHIFT}".
        format(SHIFT=shift))
    ## MC
    fakeFactorCombined = findComponent("Weight_CombinedSS_" + fakeFactor,
                                       fakeFactorsMC)
    fakeFactorCombined.addSystematic(
        group,
        name,
        createCombinedComponent(
            Name='',
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_" + fakeFactor, fakeFactorsMC),
            W_W=findComponent("Weight_HighMTSS_" + fakeFactor, fakeFactorsMC),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsMC),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV))
    ## Data
    fakeFactorCombined = findComponent("Weight_CombinedSS_" + fakeFactor,
                                       fakeFactorsData)
    fakeFactorCombined.addSystematic(
        group,
        name,
        createCombinedComponent(
            Name='',
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_" + fakeFactor, fakeFactorsData),
            W_W=findComponent("Weight_HighMTSS_" + fakeFactor,
                              fakeFactorsData),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsData),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV))
コード例 #10
0
def createShift(group, name, shift, fractionsFile, fakeFactorsMC, fakeFactorsData):
    #formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}])+[{W_Z}]*([{ZJ}]+[{VV}])'
    formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}]+[{ZJ}]+[{VV}])'
    fractionsW   = createRawComponent(
        Name="Fraction_SS_W_VsMVisMT_{SHIFT}".format(SHIFT=shift)  ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_W_{SHIFT}".format(SHIFT=shift)
    )
    fractionsQCD = createRawComponent(
        Name="Fraction_SS_QCD_VsMVisMT_{SHIFT}".format(SHIFT=shift),
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_QCD_{SHIFT}".format(SHIFT=shift)
    )
    fractionsTT  = createRawComponent(
        Name="Fraction_SS_TT_VsMVisMT_{SHIFT}".format(SHIFT=shift) ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_TT_{SHIFT}".format(SHIFT=shift)
    )
    fractionsZJ  = createRawComponent(
        Name="Fraction_SS_ZJ_VsMVisMT_{SHIFT}".format(SHIFT=shift) ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_ZJ_{SHIFT}".format(SHIFT=shift)
    )
    fractionsVV  = createRawComponent(
        Name="Fraction_SS_VV_VsMVisMT_{SHIFT}".format(SHIFT=shift) ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_VV_{SHIFT}".format(SHIFT=shift)
    )
    ## MC
    fakeFactorCombined = findComponent("Weight_CombinedSS_"+fakeFactor,fakeFactorsMC)
    fakeFactorCombined.addSystematic(
        group,
        name,
        createCombinedComponent(
            Name='',
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_"+fakeFactor,fakeFactorsMC),
            W_W=findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsMC),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsMC),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV
        )
    )
    ## Data
    fakeFactorCombined = findComponent("Weight_CombinedSS_"+fakeFactor,fakeFactorsData)
    fakeFactorCombined.addSystematic(
        group,
        name,
        createCombinedComponent(
            Name='',
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_"+fakeFactor,fakeFactorsData),
            W_W=findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsData),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsData),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV
        )
    )
コード例 #11
0
def create(fakeFactorsMC, fakeFactorsData):
    fractionsFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeBackgroundFractions/results/backgroundFraction_SS_Iso_Medium_mvis_vs_mt.root"
    #formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}])+[{W_Z}]*([{ZJ}]+[{VV}])'
    formCombined = '[{W_QCD}]*[{QCD}]+[{W_W}]*([{W}]+[{TT}]+[{ZJ}]+[{VV}])'
    fractionsW   = createRawComponent(
        Name="Fraction_SS_W_VsMVisMT"  ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_W_Nom"
    )
    fractionsQCD = createRawComponent(
        Name="Fraction_SS_QCD_VsMVisMT",
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_QCD_Nom"
    )
    fractionsTT  = createRawComponent(
        Name="Fraction_SS_TT_VsMVisMT" ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_TT_Nom"
    )
    fractionsZJ  = createRawComponent(
        Name="Fraction_SS_ZJ_VsMVisMT" ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_ZJ_Nom"
    )
    fractionsVV  = createRawComponent(
        Name="Fraction_SS_VV_VsMVisMT" ,
        File=fractionsFile,
        Type="2DHisto",
        Object="h_backgroundFraction_SS_Iso_Medium_mvis_vs_mt_VV_Nom"
    )

    fakeFactorsMC.append(
        createCombinedComponent(
            Name="Weight_CombinedSS_"+fakeFactor,
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_"+fakeFactor,fakeFactorsMC),
            W_W=findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsMC),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsMC),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV
        )
    )
    fakeFactorsData.append(
        createCombinedComponent(
            Name="Weight_CombinedSS_"+fakeFactor,
            Form=formCombined,
            W_QCD=findComponent("Weight_QCDSS_"+fakeFactor,fakeFactorsData),
            W_W=findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsData),
            #W_Z=findComponent("Weight_ZMuMu_"+fakeFactor,fakeFactorsData),
            QCD=fractionsQCD,
            W=fractionsW,
            ZJ=fractionsZJ,
            TT=fractionsTT,
            VV=fractionsVV
        )
    )
    return [fractionsTT,fractionsW,fractionsVV,fractionsZJ,fractionsQCD]
コード例 #12
0
def applyNonClosure(fakeFactorsMC, fakeFactorsData):
    nonClosureFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/Closures/results/nonClosures.root"
    nonClosureSSFile = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/Uncertainties/Closures/results/nonClosures_SS.root"
    formShift = '[{SHIFT}]*[{NOM}]'
    nonClosureHighMT = createRawComponent(
        Name="HighMTNonClosure_VsMVis",
        File=nonClosureFile,
        Type="1DGraph",
        Object="HighMT_Histo_Smooth_Ratio"
    )
    nonClosureHighMTSS = createRawComponent(
        Name="HighMTSSNonClosure_VsMVis",
        File=nonClosureSSFile,
        Type="1DGraph",
        Object="HighMTSS_Histo_Smooth_Ratio"
    )
    ## MC
    fakeFactorHighMT = findComponent("Weight_HighMT_"+fakeFactor,fakeFactorsMC)
    fakeFactorHighMT.addSystematic(
        'NonClosure',
        'ShiftNonClosure_HighMT',
        createCombinedComponent(
            Name='',
            Form=formShift,
            SHIFT=nonClosureHighMT,
            NOM=fakeFactorHighMT
        )
    )
    fakeFactorHighMTSS = findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsMC)
    fakeFactorHighMTSS.addSystematic(
        'NonClosure',
        'ShiftNonClosure_HighMTSS',
        createCombinedComponent(
            Name='',
            Form=formShift,
            SHIFT=nonClosureHighMTSS,
            NOM=fakeFactorHighMTSS
        )
    )
    ## Data
    fakeFactorHighMT = findComponent("Weight_HighMT_"+fakeFactor,fakeFactorsData)
    fakeFactorHighMT.addSystematic(
        'NonClosure',
        'ShiftNonClosure_HighMT',
        createCombinedComponent(
            Name='',
            Form=formShift,
            SHIFT=nonClosureHighMT,
            NOM=fakeFactorHighMT
        )
    )
    fakeFactorHighMTSS = findComponent("Weight_HighMTSS_"+fakeFactor,fakeFactorsData)
    fakeFactorHighMTSS.addSystematic(
        'NonClosure',
        'ShiftNonClosure_HighMTSS',
        createCombinedComponent(
            Name='',
            Form=formShift,
            SHIFT=nonClosureHighMTSS,
            NOM=fakeFactorHighMTSS
        )
    )
コード例 #13
0
def create(fakeFactorsMC, fakeFactorsData):
    fakeFactors2DMCFileTemplate = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeFakeRates/plots/FakeFactors_{TYPE}_2D/FakeFactors_{TYPE}_2D.root"
    fakeFactors2DDataFileTemplate = "/afs/cern.ch/user/j/jsauvan/workspace/Projects/Htautau_Run2/Studies/FakeRate/ComputeFakeRates/plots/FakeFactors_Data_{TYPE}_2D/FakeFactors_Data_{TYPE}_2D.root"
    ### MC fake factors
    fakeFactorsMC.append(
        createRawComponent(
            Name="Weight_ZMuMu_" + fakeFactor,
            File=fakeFactors2DMCFileTemplate.format(TYPE='ZMuMu'),
            Type="2DHisto",
            Object=
            "FakeFactors_ZMuMu_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsMC.append(
        createRawComponent(
            Name="Weight_HighMTRaw_" + fakeFactor,
            File=fakeFactors2DMCFileTemplate.format(TYPE='HighMT'),
            Type="2DHisto",
            Object=
            "FakeFactors_HighMT_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsMC.append(
        createRawComponent(
            Name="Weight_HighMTSSRaw_" + fakeFactor,
            File=fakeFactors2DMCFileTemplate.format(TYPE='HighMTSS'),
            Type="2DHisto",
            Object=
            "FakeFactors_HighMTSS_2D_SS_Iso_Medium_SS_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsMC.append(
        createRawComponent(
            Name="Weight_QCDSS_" + fakeFactor,
            File=fakeFactors2DMCFileTemplate.format(TYPE='QCDSS'),
            Type="2DHisto",
            Object=
            "FakeFactors_QCDSS_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))

    ### Data fake factors
    fakeFactorsData.append(
        createRawComponent(
            Name="Weight_ZMuMu_" + fakeFactor,
            File=fakeFactors2DDataFileTemplate.format(TYPE='ZMuMu'),
            Type="2DHisto",
            Object=
            "FakeFactors_Data_ZMuMu_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsData.append(
        createRawComponent(
            Name="Weight_HighMTRaw_" + fakeFactor,
            File=fakeFactors2DDataFileTemplate.format(TYPE='HighMT'),
            Type="2DHisto",
            Object=
            "FakeFactors_Data_HighMT_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsData.append(
        createRawComponent(
            Name="Weight_HighMTSSRaw_" + fakeFactor,
            File=fakeFactors2DDataFileTemplate.format(TYPE='HighMTSS'),
            Type="2DHisto",
            Object=
            "FakeFactors_Data_HighMTSS_2D_SS_Iso_Medium_SS_InvertIso_Medium_tau_pt_vs_decayMode"
        ))
    fakeFactorsData.append(
        createRawComponent(
            Name="Weight_QCDSS_" + fakeFactor,
            File=fakeFactors2DDataFileTemplate.format(TYPE='QCDSS'),
            Type="2DHisto",
            Object=
            "FakeFactors_Data_QCDSS_2D_Iso_Medium_InvertIso_Medium_tau_pt_vs_decayMode"
        ))