82def ReadInSituHistograms(dirName):
83 if not dirName.endswith("/"):
84 dirName = dirName + "/"
85
86
87 histos = {}
88 subDirs = sorted(glob.glob(dirName+"*"))
89 for aSubDirName in subDirs:
90
91 jetDef = ""
92 for aDirDef,aJetDef in jetDefDict.iteritems():
93 if aDirDef in aSubDirName:
94 jetDef = aJetDef
95 break
96 if jetDef == "":
97 print "Failed to determine jet definition for directory:",aSubDirName
98 return None
99 histos[jetDef] = {}
100
101
102 systFiles = sorted(glob.glob(aSubDirName+"/SystError_*.txt"))
103 for aSystFile in systFiles:
104
105 systematicNameHandle = re.sub(aSubDirName+"/SystError_","",aSystFile)
106 systematicNameHandle = re.sub(".txt","",systematicNameHandle)
107 systematicName = SystematicNameDictionary[systematicNameHandle]
108
109
110
111 systematicFile = open(aSystFile,"r")
112
113
114 lowBinEdges = []
115 systValues = []
116 for line in systematicFile.readlines():
117 line = line.strip("\r\n")
118 lowEdge = float(line.split()[0])
119 systVal = float(line.split()[2].
strip())
120
121 lowBinEdges.append(lowEdge)
122 systValues.append(systVal)
123
124
125 systematicFile.close()
126
127
128 lowBinEdges.append(2500.)
129 systValues.append(systValues[-1])
130
131
132 lowBinEdgesArray =
array(
'd',lowBinEdges)
133 systValuesArray =
array(
'd',systValues)
134 histoName = systematicName+"_"+jetDef
135 histo1D = TH1D(histoName+"_1D",histoName+"_1D",len(lowBinEdges)-1,lowBinEdgesArray)
136
137
138 for iBin
in xrange(1,histo1D.GetNbinsX()+1):
139 histo1D.SetBinContent(iBin,systValues[iBin-1])
140
141
143 histo.SetDirectory(0)
144 histos[jetDef][systematicName] = histo
145
146
147
148 if "EM" in jetDef:
149 systematicName = SystematicNameDictionary['mjbstat11']
151 histos[jetDef][systematicName].SetDirectory(0)
152
153
154
155 return histos
156
157
158
159
void xrange(TH1 *h, bool symmetric)
MakeProviderHisto(histoName, ptBins=GetDefaultPtBins(), etaBins=GetDefaultEtaBins())
ConvertPtHistoToProviderHisto(histo1D, histoName)