ATLAS Offline Software
Prerec2012/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_PtTerm_NPV','Pileup_PtTerm_Mu','Pileup_OffsetNPV','Pileup_OffsetMu']#,'Pileup_RhoTopology']
12 
13 jetDefs = {'AntiKt4EMTopo':'AntiKt4Topo_EMJES'}#,'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+"NEW" not in rootFile.GetKeyNames() :
35  continue
36  histo = rootFile.Get(systematicName+"NEW")
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 term comes from current prerecs
49  # THIS IS A GIANT FIXME
50  rootFile = TFile("/cluster/warehouse/kpachal/JetCalibration/JetUncertainties/JetUncertainties/share/JES_2015/Prerec/JESUncertainty_2015.root","READ")
51  histo = rootFile.Get("Pileup_RhoTopology_AntiKt4EMTopo")
52  histo.SetDirectory(0)
53  histos[jetDefs[aJetDef]]['Pileup_RhoTopology'] = histo
54 
55  return histos
56 
57 
58 
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