示例#1
0
    "nLeptonTight/I",
    "nElectronTight/I",
    "nMuonTight/I",
    "nPhotonGood/I",
    "Photon[pt/F,eta/F,phi/F]",
    "MET_pt/F",
    "MET_phi/F",
    "ht/F",
    "mLtight0Gamma/F",
    "m3/F",
    "mT/F",
]

NanoVars = NanoVariables(2016)
readGenVarString = NanoVars.getVariableString("Gen",
                                              postprocessed=True,
                                              data=False)
readGenVarString = readGenVarString.replace("index/I,", "")
variables = ["pt/F", "eta/F", "phi/F", "pdgId/I", "genPartIdxMother/I"]

# add here variables that should be read only for MC samples
read_variables_MC = [
    "overlapRemoval/I",
    'nGenElectronCMSUnfold/I',
    'nGenMuonCMSUnfold/I',
    'nGenLeptonCMSUnfold/I',
    'nGenPhotonCMSUnfold/I',
    'nGenBJetCMSUnfold/I',
    'nGenJetsCMSUnfold/I',
    'nGenPart/I',
    "reweightTrigger/F",
示例#2
0
else:

    # change to EOS
    #    from TTGammaEFT.Tools.user import eos_directory
    #    data_directory = os.path.join( eos_directory, "nanoTuples" )
    #    fromEOS = "True"
    #    os.environ["gammaSkim"]="True"
    from TTGammaEFT.Samples.nanoTuples_Summer16_private_semilep_postProcessed import *

    sample = TTGSemiLep_16
    #sample.files = sample.files[:1]

    # add needed variables
    NanoVars = NanoVariables(args.year)
    genVarString = NanoVars.getVariableString("Gen",
                                              postprocessed=True,
                                              data=False,
                                              plot=True)
    photonVarString = NanoVars.getVariableString("Photon",
                                                 postprocessed=True,
                                                 data=True,
                                                 plot=True)
    photonVariables = NanoVars.getVariables("Photon",
                                            postprocessed=True,
                                            data=True,
                                            plot=True)
    variables = [
        TreeVariable.fromString("event/l"),
        TreeVariable.fromString("weight/F"),
        TreeVariable.fromString('run/i'),
        TreeVariable.fromString("luminosityBlock/i"),
        VectorTreeVariable.fromString('Photon[%s]' % photonVarString,
示例#3
0

def getYieldPlot(index):
    return Plot(
        name='yield',
        texX='yield',
        texY='Number of Events',
        attribute=lambda event, sample: 0.5 + index,
        binning=[3, 0, 3],
    )


# get nano variable lists
NanoVars = NanoVariables(2017)
jetVarString = NanoVars.getVariableString("Jet",
                                          postprocessed=True,
                                          data=True,
                                          plot=True)
jetVariableNames = NanoVars.getVariableNameList("Jet",
                                                postprocessed=True,
                                                data=True,
                                                plot=True)
bJetVariables = NanoVars.getVariables("BJet",
                                      postprocessed=True,
                                      data=True,
                                      plot=True)
leptonVariables = NanoVars.getVariables("Lepton",
                                        postprocessed=True,
                                        data=True,
                                        plot=True)
photonVariables = NanoVars.getVariables("Photon",
                                        postprocessed=True,
示例#4
0
ttg182l = Sample.fromDirectory("ttg2l_18", directory = [os.path.join(data18_dir, name) for name in ["TTGLep_LO","TTGLep_ptG100To200_LO","TTGLep_ptG200_LO"]])

#sample = Sample.combine( "ttg", [ttg160l, ttg161l, ttg162l, ttg170l, ttg171l, ttg172l, ttg180l, ttg181l, ttg182l] )
#sample = Sample.combine( "ttg", [ttg160l, ttg161l, ttg162l] )
sample = Sample.combine( "ttg", [ttg161l] )

def convertUnits( coll ):
    for p in coll:
        if abs(p['pdgId'])==11 and isinstance( p['lostHits'], basestring ): p['lostHits']    = ord( p['lostHits'] )
        if abs(p['pdgId'])==13 and isinstance( p['pfIsoId'], basestring ):  p['pfIsoId']     = ord( p['pfIsoId'] )
        if isinstance( p['genPartFlav'], basestring ):             p['genPartFlav'] = ord( p['genPartFlav'] )

selectionString = "overlapRemoval==1"

NanoVars = NanoVariables( 2016 )
readGenVarString      = NanoVars.getVariableString(   "Gen",      postprocessed=True, data=False )
readGenVarList        = NanoVars.getVariableNameList( "Gen",      postprocessed=True, data=False )
readPhotonVarList     = NanoVars.getVariableNameList( "Photon",   postprocessed=True, data=False, skipSyst=True)
readPhotonVarString   = NanoVars.getVariableString(   "Photon",   postprocessed=True, data=False, skipSyst=True)

genLeptonSel_CMSUnfold = genLeptonSelector( "CMSUnfolding" )
genPhotonSel_CMSUnfold = genPhotonSelector( "CMSUnfolding" )

recoPhotonSel_medium    = photonSelector( 'medium', year=2016 )

read_variables = [ TreeVariable.fromString('weight/F'),TreeVariable.fromString('nGenPart/I'),
                   VectorTreeVariable.fromString('GenPart[%s]'%readGenVarString, nMax = 1000) ] # all needed for genMatching
read_variables += [ TreeVariable.fromString('nPhoton/I'),
                    VectorTreeVariable.fromString('Photon[%s]'%readPhotonVarString) ]

# Define a reader
示例#5
0
    logger.info( "Loaded json %s", json )
    lumi = 1
else:
    lumiScaleFactor = xSection * targetLumi / float( sample.normalization ) if xSection is not None else None
    branchKeepStrings = branchKeepStrings_DATAMC + branchKeepStrings_MC
    if   options.year == 2016: lumi = 35.92
    elif options.year == 2017: lumi = 41.53
    elif options.year == 2018: lumi = 59.74

# get nano variable lists
NanoVars = NanoVariables( options.year )
#VarString ... "var1/type,var2/type"
#Variables ... ["var1/type","var2/type"]
#VarList   ... ["var1", "var2"]

readGenVarString      = NanoVars.getVariableString(   "Gen",      postprocessed=False, data=sample.isData )
readGenJetVarString   = NanoVars.getVariableString(   "GenJet",   postprocessed=False, data=sample.isData )
readJetVarString      = NanoVars.getVariableString(   "Jet",      postprocessed=False, data=sample.isData, skipSyst=True )
readElectronVarString = NanoVars.getVariableString(   "Electron", postprocessed=False, data=sample.isData )
readMuonVarString     = NanoVars.getVariableString(   "Muon",     postprocessed=False, data=sample.isData )
readPhotonVarString   = NanoVars.getVariableString(   "Photon",   postprocessed=False, data=sample.isData )

readGenVarList        = NanoVars.getVariableNameList( "Gen",      postprocessed=False, data=sample.isData )
readGenJetVarList     = NanoVars.getVariableNameList( "GenJet",   postprocessed=False, data=sample.isData )
readJetVarList        = NanoVars.getVariableNameList( "Jet",      postprocessed=False, data=sample.isData, skipSyst=True  )
readElectronVarList   = NanoVars.getVariableNameList( "Electron", postprocessed=False, data=sample.isData )
readMuonVarList       = NanoVars.getVariableNameList( "Muon",     postprocessed=False, data=sample.isData )
readPhotonVarList     = NanoVars.getVariableNameList( "Photon",   postprocessed=False, data=sample.isData )

readMuonVariables   = NanoVars.getVariables(        "Muon",   postprocessed=False, data=sample.isData )
示例#6
0
                    extensions=extensions_,
                    logX=False,
                    logY=log,
                    sorting=False,
                    yRange=(0.03, "auto") if log else (0.001, "auto"),
                    legend=[(0.15, 0.9 - 0.03 * sum(map(len, plot.histos)),
                             0.9, 0.9), 2],
                    drawObjects=drawObjects(lumi_scale),
                    copyIndexPHP=True,
                )


NanoVars = NanoVariables(args.year)

jetVarString = NanoVars.getVariableString("Jet",
                                          postprocessed=True,
                                          data=(not args.noData),
                                          plot=True)
jetVariableNames = NanoVars.getVariableNameList("Jet",
                                                postprocessed=True,
                                                data=(not args.noData),
                                                plot=True)
bJetVariables = NanoVars.getVariables("BJet",
                                      postprocessed=True,
                                      data=(not args.noData),
                                      plot=True)
leptonVarString = NanoVars.getVariableString("Lepton",
                                             postprocessed=True,
                                             data=(not args.noData),
                                             plot=True)
leptonVariables = NanoVars.getVariables("Lepton",
                                        postprocessed=True,
示例#7
0

def splitHistos(histo):
    histList = []
    for i in range(histo.GetNbinsX()):
        h = histo.Clone()
        for j in range(histo.GetNbinsX()):
            if i != j: h.SetBinContent(j + 1, 0)
        histList.append(h)
    return histList


# get nano variable lists
NanoVars = NanoVariables(args.year)
jetVarString = NanoVars.getVariableString("Jet",
                                          postprocessed=True,
                                          data=False,
                                          plot=True)
jetVariableNames = NanoVars.getVariableNameList("Jet",
                                                postprocessed=True,
                                                data=False,
                                                plot=True)
bJetVariables = NanoVars.getVariables("BJet",
                                      postprocessed=True,
                                      data=False,
                                      plot=True)
leptonVariables = NanoVars.getVariables("Lepton",
                                        postprocessed=True,
                                        data=False,
                                        plot=True)
leptonVarString = NanoVars.getVariableString("Lepton",
                                             postprocessed=True,