コード例 #1
0
import math
import ROOT as r

basedir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(basedir)
from plotstyle import SimpleCanvas, RatioCanvas, DataMCCanvas
from datasets import allsamples
import config
from pprint import pprint

outputFile = r.TFile.Open(basedir + '/data/gjetsTFactor.root', 'recreate')

lumi = min(
    config.jsonLumi, allsamples['sph-16b2-d'].lumi +
    allsamples['sph-16c2-d'].lumi + allsamples['sph-16d2-d'].lumi)
canvas = DataMCCanvas(lumi=lumi)

dtree = r.TChain('events')
dtree.Add(config.skimDir + '/sph-16*2-d_monoph.root')
print dtree.GetEntries()

btree = r.TChain('events')
btree.Add(config.skimDir + '/sph-16*2-d_hfake.root')
btree.Add(config.skimDir + '/sph-16*2-d_efake.root')

bmctree = r.TChain('events')
# bmctree.Add(config.skimDir + '/znng-130_monoph.root')
# bmctree.Add(config.skimDir + '/wnlg-130_monoph.root')
# bmctree.Add(config.skimDir + '/wg_monoph.root') # NLO sample to get around pT/MET > 130 GeV cut on LO sample
bmctree.Add(config.skimDir + '/wglo_monoph.root')
bmctree.Add(config.skimDir + '/wlnu-*_monoph.root')
コード例 #2
0
data.Add('/mnt/hadoop/scratch/yiiyama/monophoton/skim/sph-16*-m_tpeg.root')

outputFile.cd()
data.Draw('probes.sieie>>hdata', selection, 'goff')

hmc.Scale(hdata.GetSumOfWeights() / hmc.GetSumOfWeights())

ratio = hdata.Clone('ratio')
ratio.Divide(hmc)

line = ROOT.TF1('line', '[0] + [1] * x', 0.0085, 0.0105)
line.SetParameters(1.5, -100.)
ratio.Fit(line)

outputFile.cd()
hmc.Write()
hdata.Write()
ratio.Write()
line.Write('fit')

# visualize

canvas = DataMCCanvas(lumi=sum(s.lumi
                               for s in allsamples.getmany('sph-16*-m')))
canvas.legend.setPosition(0.7, 0.7, 0.9, 0.9)

canvas.addStacked(hmc, title='MC', color=ROOT.kBlue, style=3003)
canvas.addObs(hdata, title='Data')

canvas.printWeb('purity', 'sieie_ratio', logy=False)
コード例 #3
0
ファイル: plot.py プロジェクト: MiT-HEP/MonoX
            histFile = ROOT.TFile.Open(args.histFile)

    # closes if not args.replot

    ####################
    ## DRAW / ANALYZE ##
    ####################

    if args.plotDir == '-' and not ('count' in plotNames or args.bbb
                                    or args.chi2):
        # nothing to do
        sys.exit(0)

    print 'Drawing plots..'

    canvas = DataMCCanvas()

    nentries = (1 + len(plotConfig.bkgGroups) + len(plotConfig.signalPoints))
    ncolumns = math.ceil(float(nentries) / 5.)
    xmin = 0.35 if ncolumns > 2 else 0.55
    canvas.legend.setPosition(xmin, SimpleCanvas.YMAX - 0.01 - 0.035 * 5, 0.92,
                              SimpleCanvas.YMAX - 0.01)

    if args.plotDir:
        if args.plotDir == '-':
            plotDir = ''
        else:
            plotDir = args.plotDir
            if plotDir.startswith(plotstyle.WEBDIR):
                plotDir = plotDir.replace(plotstyle.WEBDIR, '')
    else:
コード例 #4
0
thisdir = os.path.dirname(os.path.realpath(__file__))
basedir = os.path.dirname(thisdir)
sys.path.append(basedir)
from plotstyle import DataMCCanvas
from datasets import allsamples
from main.plotconfig import VariableDef
import config

import ROOT as r
r.gROOT.SetBatch(True)

smuLumi = sum(allsamples[s].lumi for s in [
    'smu-16b-r', 'smu-16c-r', 'smu-16d-r', 'smu-16e-r', 'smu-16f-r',
    'smu-16g-r', 'smu-16h'
])
canvas = DataMCCanvas(lumi=smuLumi)

probePixel = '!probe.pixelVeto'
zMassCut = 'z.mass > 81. && z.mass < 101.'
dPhiCut = 'TMath::Abs(TVector2::Phi_mpi_pi(z.phi - jets.phi[0])) > 3.'
dPhiMetCut = 'TMath::Abs(TVector2::Phi_mpi_pi(z.phi - t1Met.phi)) < 0.5'
jetPtCut = 'jets.pt[0] > 100.'
dPhiJetCut = 't1Met.minJetDPhi > 0.5'
monojetCut = 'jets.size == 1'
njetsCut = 'jets.size < 3'

variables = [
    VariableDef('met',
                'E_{T}^{miss}',
                't1Met.met',
                [25 * x