#--------------------------
# QCD Gamma Fakes - for CRY
#--------------------------
qcdGammaFakeSample = Sample(zlFitterConfig.qcdSampleName+"GammaFakes", kOrange+2)
qcdGammaFakeSample.setTreeName("QCD_SRAll")
qcdGammaFakeSample.setNormFactor("mu_"+zlFitterConfig.qcdSampleName+"GammaFakes", 1., 0., 500.)
qcdGammaFakeSample.setFileList(qcdGammaFakeFiles)
qcdGammaFakeSample.setStatConfig(zlFitterConfig.useStat)
# qcdGammaFakeSample.setStatConfig(False)
qcdGammaFakeSample.addSampleSpecificWeight("(phTruthOrigin!=38)")


if zlFitterConfig.doSetNormRegion:
    if "CRYQ" in zlFitterConfig.constrainingRegionsList:
        qcdGammaFakeSample.setNormRegions([("CRYQ", zlFitterConfig.binVar)])


# Define samples
#FakePhotonSample = Sample("Bkg",kGreen-9)
#FakePhotonSample.setStatConfig(False)
#FakePhotonSample.buildHisto([nbkg],"UserRegion","cuts")
# ucb = Systematic("ucb", configMgr.weights, 1 + nbkgErr/nbkg, 1 - nbkgErr/nbkg, "user","userOverallSys")
#FakePhotonSample.addSystematic(ucb)


#--------------------------
# Top
#--------------------------

topSample = Sample(zlFitterConfig.topSampleName, kGreen-9)
Exemplo n.º 2
0
wzKtScale = Systematic("KtScaleWZ", configMgr.weights, ktScaleWHighWeights,
                       ktScaleWLowWeights, "weight", "normHistoSys")

# JES uncertainty as shapeSys - one systematic per region (combine WR and TR), merge samples
jes = Systematic("JES", "_NoSys", "_JESup", "_JESdown", "tree", "normHistoSys")
mcstat = Systematic("mcstat", "_NoSys", "_NoSys", "_NoSys", "tree",
                    "shapeStat")

# name of nominal histogram for systematics
configMgr.nomName = "_NoSys"

# List of samples and their plotting colours
topSample = Sample("Top", kGreen - 9)
topSample.setNormFactor("mu_Top", 1., 0., 5.)
topSample.setStatConfig(useStat)
topSample.setNormRegions([("SLWR", "nJet"), ("SLTR", "nJet")])
wzSample = Sample("WZ", kAzure + 1)
wzSample.setNormFactor("mu_WZ", 1., 0., 5.)
wzSample.setStatConfig(useStat)
wzSample.setNormRegions([("SLWR", "nJet"), ("SLTR", "nJet")])
bgSample = Sample("BG", kYellow - 3)
bgSample.setNormFactor("mu_BG", 1., 0., 5.)
bgSample.setStatConfig(useStat)
bgSample.setNormRegions([("SLWR", "nJet"), ("SLTR", "nJet")])
qcdSample = Sample("QCD", kGray + 1)
qcdSample.setQCD(True, "histoSys")
qcdSample.setStatConfig(useStat)
dataSample = Sample("Data", kBlack)
dataSample.setData()
dataSample.buildHisto([86., 66., 62., 35., 11., 7., 2., 0.], "SLTR", "nJet", 2)
dataSample.buildHisto([1092., 426., 170., 65., 27., 9., 4., 1.], "SLWR",
Exemplo n.º 3
0
    higgsSample = addSys(higgsSample, False, sysObj)

    # ----------------------------------------------------- #
    #                          ZV                           # 
    # ----------------------------------------------------- #

    zvSample.setStatConfig(useStat)
    if userOpts.splitMCSys :
        zvSample.addSystematic(sysObj.AR_mcstat_ZV)

    # Determine the normalization region :
    #    --> If zero jet : pick "a" CR
    #    --> If one jet  : pick "b" CR
    if userOpts.doSimFit2LZV :
        if('Super0a' in SR or 'Super0b' in SR or 'Super0c' in SR) :
            zvSample.setNormRegions([("emCRZV14a", "cuts")])
            userPrint(" >>> Normalization region for ZV : emCRZV14a")
        elif('Super1a' in SR or 'Super1b' in SR or 'Super1c' in SR) :
            zvSample.setNormRegions([("emCRZV14b", "cuts")])
            userPrint(" >>> Normalization region for ZV : emCRZV14b")
    # add systematics
    zvSample = addSys(zvSample, userOpts.doSimFit2LZV, sysObj)
    # set normalization factor
    if userOpts.doSimFit2LZV :
        if('Super0a' in SR or 'Super0b' in SR or 'Super0c' in SR) :
            zvSample.setNormFactor("mu_ZV14a", 1.,0.,10.)
            userPrint(" >>> Normalization factor for ZV : mu_ZV14a")
        elif('Super1a' in SR or 'Super1b' in SR or 'Super1c' in SR) :
            zvSample.setNormFactor("mu_ZV14b", 1., 0., 10.)
            userPrint(" >>> Normalization factor for ZV : mu_ZV14b")
    else :
dibosonSample.setFileList(dibosonFiles)
dibosonSample.setStatConfig(useStat)
if useSyst: dibosonSample.addSystematic(theoSysDiboson)


topSample = Sample("ttbar",kGreen-9)
topSample.setTreeName("Top_SRAll")
topSample.setNormFactor("mu_Top",1.,0.,500.)
topSample.setFileList(topFiles)
topSample.setStatConfig(useStat) 
if useTheoSys:
    if useSyst: topSample.addSystematic(theoSysTop)
    ####topSample.addSystematic(mu1ScaleSysTop)
    ####topSample.addSystematic(mu2ScaleSysTop)
    ####topSample.addSystematic(matchScaleSysTop)
topSample.setNormRegions([("CRT","meffInc"),("CRW","meffInc")])


qcdSample = Sample("Multijets",kOrange+2)
qcdSample.setTreeName("QCDdd")
qcdSample.setNormFactor("mu_Multijets",1.,0.,500.)
qcdSample.setFileList(qcdFiles)
qcdSample.setStatConfig(useStat)
qcdSample.addWeight("0.000001")#qcd prenormalisation
#qcdSample.addSystematic(QCDGausSys)
#qcdSample.addSystematic(QCDTailSys)
qcdSample.setNormRegions([("CRQCD","meffInc")])

    
wSample = Sample("Wjets",kAzure+1)
wSample.setTreeName("W_SRAll")
Exemplo n.º 5
0

# JES uncertainty as shapeSys - one systematic per region (combine WR and TR), merge samples
jes = Systematic("JES","_NoSys","_JESup","_JESdown","tree","overallNormHistoSys")

statWRwz  = Systematic("SLWR_wz", "_NoSys","","","tree","shapeStat")
statWRtop = Systematic("SLWR_top","_NoSys","","","tree","shapeStat")

# name of nominal histogram for systematics
configMgr.nomName = "_NoSys"

# List of samples and their plotting colours
topSample = Sample("Top",kGreen-9)
topSample.setNormFactor("mu_Top",1.,0.,5.)
topSample.setStatConfig(useStat)
topSample.setNormRegions([("SLWR","nJet"),("SLTR","nJet")])
wzSample = Sample("WZ",kAzure+1)
wzSample.setNormFactor("mu_WZ",1.,0.,5.)
wzSample.setStatConfig(useStat)
wzSample.setNormRegions([("SLWR","nJet"),("SLTR","nJet")])
bgSample = Sample("BG",kYellow-3)
bgSample.setNormFactor("mu_BG",1.,0.,5.)
bgSample.setStatConfig(useStat)
bgSample.setNormRegions([("SLWR","nJet"),("SLTR","nJet")])
qcdSample = Sample("QCD",kGray+1)
qcdSample.setQCD(True,"histoSys")
qcdSample.setStatConfig(useStat)
dataSample = Sample("Data",kBlack)
dataSample.setData()

Exemplo n.º 6
0
# create SR channel and add them to signal_channels
for sr in srs:
    signal_channels.append(fitconfig.addChannel(variable, [sr], *binning))

# -----------------
#  Control regions
# -----------------
CRQ = fitconfig.addChannel(variable, ['CRQ'], *binning)
CRW = fitconfig.addChannel(variable, ['CRW'], *binning)
CRT = fitconfig.addChannel(variable, ['CRT'], *binning)

constraint_channels.append(CRQ)
constraint_channels.append(CRW)
constraint_channels.append(CRT)

wgamma_sample.setNormRegions(['CRW', variable])
ttbarg_sample.setNormRegions(['CRT', variable])
photonjet_sample.setNormRegions(['CRQ', variable])

# -------------------
# Validation regions
# -------------------
if do_validation:

    VRQ = fitconfig.addChannel(variable, ['VRQ'], *binning)
    VRM1L = fitconfig.addChannel(variable, ['VRM1L'], *binning)
    VRM2L = fitconfig.addChannel(variable, ['VRM2L'], *binning)
    VRM1H = fitconfig.addChannel(variable, ['VRM1H'], *binning)
    VRM2H = fitconfig.addChannel(variable, ['VRM2H'], *binning)

    VRL1 = fitconfig.addChannel(variable, ['VRL1'], *binning)
    signal_channels.append(SR)

# -----------------
#  Control regions 
# -----------------
CRQ = fitconfig.addChannel(variable, ['CRQ'], *binning)
CRW = fitconfig.addChannel(variable, ['CRW'], *binning)
CRT = fitconfig.addChannel(variable, ['CRT'], *binning)

constraint_channels.append(CRQ)
constraint_channels.append(CRW)
constraint_channels.append(CRT)

wgamma_sample   .setNormRegions(['CRW', variable])
ttbarg_sample   .setNormRegions(['CRT', variable])
photonjet_sample.setNormRegions(['CRQ', variable])

# -------------------
# Validation regions 
# -------------------
if do_validation:

    VRM1L  = fitconfig.addChannel(variable, ['VRM1L'], *binning)
    VRM2L  = fitconfig.addChannel(variable, ['VRM2L'], *binning)
    VRM3L  = fitconfig.addChannel(variable, ['VRM3L'], *binning)

    VRM1H  = fitconfig.addChannel(variable, ['VRM1H'], *binning)
    VRM2H  = fitconfig.addChannel(variable, ['VRM2H'], *binning)
    VRM3H  = fitconfig.addChannel(variable, ['VRM3H'], *binning)

    validation_channels.append(VRM1H)
topSample.setFileList(topFiles)
topSample.setStatConfig(useStat) 

if useTheoSys:
    topSample.addSystematic(theoSysTop)

if useSyst :
    topSample.addSystematic(pileup)
    topSample.addSystematic(jes)
    topSample.addSystematic(jer)
    topSample.addSystematic(scalest)
    topSample.addSystematic(resost)  

if useSyst and useCRWTY:
    #topSample.setNormRegions([("CRT","cuts"),("CRW","cuts")])
    topSample.setNormRegions([("CRT", binVar)])

# QCD
qcdSample = Sample("Multijets", kOrange+2)
qcdSample.setTreeName("QCDdd")
qcdSample.setNormFactor("mu_Multijets", 1., 0., 500.)
qcdSample.setFileList(qcdFiles)
qcdSample.setStatConfig(useStat)
qcdSample.addWeight("0.0000013")#ATT: qcd prenormalisation
## if useSyst :
##     if useQCDMethodSyst:
##         qcdSample.addSystematic(QCDTailSys )
##         qcdSample.addSystematic(QCDGausSys )
##     else:
##         qcdSample.addSystematic(theoSysQCD)
Exemplo n.º 9
0
# phoScaleMuttgamma = Systematic("phoScale",configMgr.weights, 1.015,1-.015, "user","userOverallSys")
# phoScaleMuttbarDilep = Systematic("phoScale",configMgr.weights, 1.028, 1-.028, "user","userOverallSys")
# phoScaleMust = Systematic("phoScale",configMgr.weights, 1.023, 1-.023, "user","userOverallSys")
# phoScaleMudiboson = Systematic("phoScale",configMgr.weights, 1.040, 1-.040, "user","userOverallSys")
# phoScaleMuZgamma = Systematic("phoScale",configMgr.weights, 1.025, 1-.025, "user","userOverallSys")

## List of samples and their plotting colours. Associate dedicated systematics if applicable.

ttbargamma = Sample("ttbargamma",46) # brick
ttbargamma.setNormByTheory()
ttbargamma.setStatConfig(True)
ttbargamma.addSystematic(ttbargammaNorm)

Wgamma = Sample("Wgamma",7) # cyan
Wgamma.setNormFactor("mu_Wgamma",1.,0.,5.)
Wgamma.setNormRegions([("WCRhHTEl", "cuts")])
Wgamma.setStatConfig(True)
#Wgamma.addSystematic(WgammaNorm)

Zgamma = Sample("Zgamma",kViolet) # cyan
Zgamma.setNormByTheory()
Zgamma.setStatConfig(True)
Zgamma.addSystematic(ZgammaNorm)

Zjets = Sample("Zjets",kBlue) # cyan
Zjets.setNormByTheory()
Zjets.setStatConfig(True)
Zjets.addSystematic(ZjetsNorm)

Wjets = Sample("Wjets",3) # green
Wjets.setNormByTheory(False)
Exemplo n.º 10
0
    for region in yields_dict :
        configMgr.cutsDict[region] = "1."
    #    if "CR" in region :
    #        sample_for_cr = region.split("_")[1].lower()
    #        if sample.name.lower() == sample_for_cr :
    #            set_norm_by_theory = False
    #            sample.setNormFactor("mu_%s" % sample.name.lower(), 1.0, 0.0, 10.0)
    #            sample.setNormRegions([ (region, "cuts") ])
    if set_norm_by_theory :
        sample.setNormByTheory()

# add the samples
tlx.addSamples(all_samples)

# signal
if myFitType == FitType.Exclusion :

    sample_sig.setStatConfig(True)

    sample_sig.setNormFactor("mu_Test", 1.0, 0.0, 10.0)
    sample_sig.setNormRegions( [ ("CR_BKG0", "cuts") ] )#, ("CR_BKG1", "cuts") ] )
    sample_sig.setNormByTheory()
    tlx.addSamples(sample_sig)
#    tlx.setSignalSample(sample_sig)

#    tlx.addSignalChannels(sr_channels)

if myFitType == FitType.Background :
    #tlx.addSignalChannels(sr_channels)
    tlx.addValidationChannels(sr_channels)
Exemplo n.º 11
0
    higgsSample = addSys(higgsSample, False, sysObj)


    #------------------------------------------------#
    #                      ZV                        #
    #------------------------------------------------#

    zvSample.setStatConfig(useStat)
    if userOpts.splitMCSys:
        zvSample.addSystematic(sysObj.AR_mcstat_ZV)

    # Determine the normalization region
    # This should be done only if we fit
    # Regardless of channel combined ee+mm
    if 'SR1' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmet","cuts")])  

    if 'SR2a' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmt2a","cuts")])

    if 'SR2b' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmt2a","cuts")])

    if 'SR4a' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmt2a","cuts")])

    if 'SR4b' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmt2a","cuts")])

    if 'SR4c' in SR and userOpts.doSimFit2LZV:
        zvSample.setNormRegions([("emZVCRmt2a","cuts")])
# ucb = Systematic("ucb", configMgr.weights, 1 + nbkgErr/nbkg, 1 - nbkgErr/nbkg, "user","userOverallSys")
# FakePhotonSample.addSystematic(ucb)


# --------------------------
# Top
# --------------------------

topSample = Sample(zlFitterConfig.topSampleName, kGreen - 9)
topSample.setTreeName("Top_SRAll")
topSample.setNormFactor("mu_" + zlFitterConfig.topSampleName, 1.0, 0.0, 500.0)
topSample.setFileList(topFiles)
topSample.setStatConfig(zlFitterConfig.useStat)
if zlFitterConfig.doSetNormRegion:
    if "CRT" in zlFitterConfig.constrainingRegionsList and "CRW" in zlFitterConfig.constrainingRegionsList:
        topSample.setNormRegions([("CRT", zlFitterConfig.binVar), ("CRW", zlFitterConfig.binVar)])
if not zlFitterConfig.usePreComputedTopGeneratorSys:
    topSample.addSystematic(
        Systematic(
            "generatorTop",
            configMgr.weights,
            "_aMcAtNloHerwigpp",
            "_aMcAtNloHerwigpp",
            "tree",
            "overallNormHistoSysOneSideSym",
        )
    )

if not zlFitterConfig.usePreComputedTopFragmentationSys:
    topSample.addSystematic(
        Systematic(