all_sb.texName += "high #sigma_{i#etai#eta}"
all_sb.color = ROOT.kRed + 2

all_fit = copy.deepcopy(all)
all_fit.name = "fit"
all_fit.texName = "MC "
if "sieie" in args.variable:
    all_fit.texName += "low chg Iso"
elif "chg" in args.variable:
    all_fit.texName += "low #sigma_{i#etai#eta}"
all_fit.color = ROOT.kCyan + 2

mc = [all_fit, all_sb]
stackSamples = [[s] for s in mc]

NanoVars = NanoVariables(args.year)
photonVariables = NanoVars.getVariables("Photon",
                                        postprocessed=True,
                                        data=False,
                                        plot=True)

read_variables = [
    "weight/F",
    "isTTGamma/I",
    "isZWGamma/I",
    "isTGamma/I",
    "overlapRemoval/I",
    "reweightPU/F",
    "reweightPUDown/F",
    "reweightPUUp/F",
    "reweightPUVDown/F",
示例#2
0
    logger.info("Re-using pickled histogram!")

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"),
示例#3
0
    "nJetGood/I",
    "nBTagGood/I",
    "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',
示例#4
0
                copyIndexPHP=True,
            )


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,
示例#5
0
ttg181l = Sample.fromDirectory("ttg1l_18", directory = [os.path.join(data18_dir, name) for name in ["TTGSingleLep_LO","TTGSingleLep_ptG100To200_LO","TTGSingleLep_ptG200_LO"]])
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) ]
示例#6
0
    lumiScaleFactor   = None
    branchKeepStrings = branchKeepStrings_DATAMC + branchKeepStrings_DATA
    json = allSamples[0].json
    from FWCore.PythonUtilities.LumiList import LumiList
    lumiList = LumiList( os.path.expandvars( json ) )
    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 )
示例#7
0
                          },
                          logX=False,
                          logY=log,
                          sorting=False,
                          yRange=(0.03, "auto") if log else (0.001, "auto"),
                          scaling=scaling,
                          legend=[
                              (0.2, 0.87 - 0.04 * sum(map(len, plot.histos)),
                               0.8, 0.87), 1
                          ],
                          drawObjects=drawObjects(True, lumi_scale),
                          copyIndexPHP=True)


# 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)
jetVarList = NanoVars.getVariableNameList("Jet",
                                          postprocessed=True,
                                          data=False,
                                          plot=True)
jetVariables = NanoVars.getVariables("Jet",
                                     postprocessed=True,
                                     data=False,