ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetUncertainties
testingMacros
InputScripts
Prerec2012
Prerec2012/ParsebJESInput.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
SystematicNameDictionary = {
12
'herwigpp'
:
'bJES_Generator'
,
13
'distorted_geometry'
:
'bJES_Geometry'
,
14
'FTFP_BERT'
:
'bJES_HadIntModel'
15
}
16
17
jetDefDict = {
18
'AntiKt4TopoEM'
:
'AntiKt4Topo_EMJES'
,
19
'AntiKt6TopoEM'
:
'AntiKt6Topo_EMJES'
,
20
'AntiKt4LCTopo'
:
'AntiKt4Topo_LCJES'
,
21
'AntiKt6LCTopo'
:
'AntiKt6Topo_LCJES'
22
}
23
24
def
ReadBJESHistograms(dirName):
25
if
not
dirName.endswith(
"/"
):
26
dirName = dirName +
"/"
27
28
# Run over each file (one per jet definition)
29
# Skip files that don't start with b-JES and contain GSC
30
histos = {}
31
files = sorted(glob.glob(dirName+
"b-JES*GSC.root"
))
32
for
aFileName
in
files:
33
# Determine the jet definition
34
jetDef =
""
35
for
aFileDef,aJetDef
in
jetDefDict.iteritems():
36
if
aFileDef
in
aFileName:
37
jetDef = aJetDef
38
break
39
if
jetDef ==
""
:
40
print
"Failed to determine jet definition for file:"
,aFileName
41
return
None
42
histos[jetDef] = {}
43
44
# Read in the histograms of interest from the file
45
inFile = TFile(aFileName,
"READ"
)
46
for
aName,aSystName
in
SystematicNameDictionary.iteritems():
47
systematicName = aSystName +
"_"
+ jetDef
48
histo = inFile.Get(aName)
49
if
histo
is
None
:
50
print
"Failed to get histogram:"
,systematicName
51
return
None
52
53
histo2D =
ProviderHistoHelpers.ConvertTGraphToProviderHisto
(histo,systematicName)
54
histo2D.SetDirectory(0)
55
56
# It's currently response, set to difference from 1
57
for
ptBin
in
range(1,histo2D.GetNbinsX()+1):
58
for
etaBin
in
range(1,histo2D.GetNbinsY()+1):
59
histo2D.SetBinContent(ptBin,etaBin,1-histo2D.GetBinContent(ptBin,etaBin))
60
61
histos[jetDef][aSystName] = histo2D
62
63
# Done reading, close the file
64
inFile.Close()
65
66
# Make one quadrature sum histo of the desired components for now
67
# The new provider design should make this irrelevant for multijet components too, but for now...
68
for
aDef,aHistoSet
in
histos.iteritems():
69
# We want one histo of herwigpp and distorted_geometry (leave out FTFP_BERT)
70
histos[aDef][
'bJES'
] =
ProviderHistoHelpers.QuadratureSumHisto
(
'bJES'
,[histos[aDef][
'bJES_Generator'
],histos[aDef][
'bJES_Geometry'
]])
71
histos[aDef][
'bJES'
].SetDirectory(0)
72
73
return
histos
74
ProviderHistoHelpers.ConvertTGraphToProviderHisto
ConvertTGraphToProviderHisto(graph, histoName)
Definition
Final2012/ProviderHistoHelpers.py:65
ProviderHistoHelpers.QuadratureSumHisto
QuadratureSumHisto(histoName, histos)
Definition
Final2012/ProviderHistoHelpers.py:153
Generated on
for ATLAS Offline Software by
1.17.0