ATLAS Offline Software
ICHEP2016/ParsePileupInput.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
2 
3 from ROOT import *
4 from array import array
5 import glob
6 import re
7 import math
8 import ProviderHistoHelpers
9 
10 
11 SystematicNames = ['Pileup_OffsetNPV','Pileup_OffsetMu']#,'Pileup_PtTerm_NPV','Pileup_PtTerm_Mu','Pileup_RhoTopology']
12 
13 jetDefs = {'AntiKt4EMTopo':'AntiKt4Topo_EMJES','AntiKt4LCTopo':'AntiKt4Topo_LCJES'}#,'AntiKt6Topo_EMJES','AntiKt4Topo_LCJES','AntiKt6Topo_LCJES']
14 
15 def ReadPileupHistograms(dirName):
16  if not dirName.endswith("/"):
17  dirName = dirName + "/"
18 
19  # We're just taking it from the old ROOT file...
20  # Ensure there is just one such file
21  rootFileList = sorted(glob.glob(dirName+"*.root"))
22 
23  histos = {}
24 
25  for aJetDef in jetDefs.keys():
26  histos[jetDefs[aJetDef]] = {}
27 
28  for file in rootFileList :
29  rootFile = TFile(file,"READ")
30 
31  # Loop over the desired systematics
32  for aSystName in SystematicNames:
33  systematicName = aSystName + "_" + aJetDef
34  if systematicName not in rootFile.GetKeyNames() :
35  continue
36  histo = rootFile.Get(systematicName)
37  if histo is None:
38  print "Failed to get histogram:",systematicName
39  return None
40 
41  histo.SetDirectory(0)
42 
43  histos[jetDefs[aJetDef]][aSystName] = histo
44 
45  # Done reading, close the file
46  rootFile.Close()
47 
48  # one extra file: rho topology terms are from 2012
49  # and pt terms have been calculated once for 2015 by Steve A.
50  # Inputs for both collections were collated in a single file
51  rootFile = TFile("/cluster/warehouse/kpachal/JetCalibration/JetUncertainties/JetUncertainties/inputs/Moriond2016/Pileup/compileVariousPileupTerms_KateJuly31.root","READ")
52  for term in ['Pileup_PtTerm_NPV','Pileup_PtTerm_Mu','Pileup_RhoTopology'] :
53  histo = rootFile.Get(term+"_"+aJetDef)
54  histo.SetDirectory(0)
55  histos[jetDefs[aJetDef]][term] = histo
56 
57  return histos
58 
59 
60 
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
ParsePileupInput.ReadPileupHistograms
def ReadPileupHistograms(dirName)
Definition: Final2012/ParsePileupInput.py:15