8from PlotHelpers
import *
10from inspect
import getmembers, isfunction
12print "Importing my new stuff"
14import CorrelationMatrixHelpers
18print "Setting controls"
21SetAxisRange.forceOneSided =
True
24SetAxisRange.invertAxisColour =
False
25DetermineStatValues.minInsteadOfMax =
False
29 print "Too few arguments. Expected the following:"
30 print " 1. Jet definition to study, such as AntiKt4LCTopo"
31 print " 2. Output plot file"
32 print " 3. Correlation uncertainties file, \"None\" is allowed"
33 print " 4. Whether to use relative differences instead of absolute, False is default"
34 print " 5. Input ROOT file in proper format"
35 print " Typically should be the output file from util/MakeCorrelationMatrixPlots.cxx"
36 print " 6+ Additional input ROOT files in proper format (optional)"
37 print " If additional files are specified, minimum correlation differences are plotted"
40print "Getting arguments"
44plotFileName = sys.argv[2]
45if plotFileName.endswith(
".root"):
46 print "Output plot file appears to be a root file, blocking for safety to not overwrite inputs"
47 print "Check input file:",plotFileName
49corrUncFileName = sys.argv[3]
50corrUncFile =
None if not corrUncFileName.endswith(
".root")
else TFile.Open(corrUncFileName,
"READ")
53print "Setting up matrices"
54useRelativeMetric = TString(sys.argv[4]).EqualTo(
"true",TString.kIgnoreCase)
55SetAxisRange.relativeAxis = useRelativeMetric
57print "Getting file names"
58inFileNames = sys.argv[5:]
59inFiles = [TFile.Open(name,
"READ")
for name
in inFileNames]
62print "Checking and retrieving fixed pT/eta scan values from input files"
65print fixedPtX,fixedPtY, fixedEtaX, fixedEtaY
72print "Building raw 4D difference histograms by file"
76print "1) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
82 if len(nominalPt) > 1:
83 print "Unexpected length of the nominal pT set, expected 1 but got ",len(nominalPt)
86 nominalPt = nominalPt[0]
88 if len(nominalEta) > 1:
89 print "Unexpected length of the nominal eta set, expected 1 but got ",len(nominalEta)
92 nominalEta = nominalEta[0]
94print "2) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
103print "Building 4D correlation uncertainty histograms"
111print "3) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
116print "Building 4D minimum difference histograms (with respect to nominal)"
122print "Building 4D file-by-file difference histograms"
127print "Building 4D maximum difference histograms (with respect to each other)"
132if maxDiffPt: maxDiffPt.applyAbsValue()
133if maxDiffEta: maxDiffEta.applyAbsValue()
136print "4) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
141print "Building 4D coverage histograms"
146if coveragePt: coveragePt.plotType =
"Metric2"
147if coverageEta: coverageEta.plotType =
"Metric2"
150print "5) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
152saveFixedEtaY = fixedEtaY[:]
153saveFixedEtaX = fixedEtaX[:]
154saveFixedPtX = fixedPtX[:]
155saveFixedPtY = fixedPtY[:]
158print "Building 4D coverage histograms including correlation uncertainties"
165if coverageWithUncPt: coverageWithUncPt.plotType =
"Metric3"
167if coverageWithUncEta: coverageWithUncEta.plotType =
"Metric3"
169fixedEtaX = saveFixedEtaX
170fixedEtaY = saveFixedEtaY
171fixedPtX = saveFixedPtX
172fixedPtY = saveFixedPtY
174print "6) still defined as:",fixedPtX,fixedPtY,fixedEtaX,fixedEtaY
178print "Writing results to file: ",(re.sub(
".eps",
"-*.eps",plotFileName)
if plotFileName.endswith(
".eps")
else (re.sub(
".png",
"-*.png",plotFileName)
if plotFileName.endswith(
".png")
else plotFileName))
179canvas = TCanvas(
"canvas",
"4D Correlation Matrix",0,0,2600,2200)
180canvas.SetLeftMargin(0.09
if not useRelativeMetric
else 0.08)
181canvas.SetRightMargin(0.19
if not useRelativeMetric
else 0.17)
182canvas.SetBottomMargin(0.04)
183canvas.SetTopMargin(0.12)
184canvas.SetLogz(useRelativeMetric)
189if not (plotFileName.endswith(
".eps")
or plotFileName.endswith(
".png")):
190 canvas.Print(plotFileName+
"[")
203print "here, it is",fixedEtaX
206CorrelationMatrixHelpers.saveHists4D(canvas,plotFileName,minDiffEta,
not useRelativeMetric,fixedEtaX,fixedEtaY,
"#eta=%.1f",scenarioLabel=
"",drawATLASLabel=drawATLASLabel,additionalString =5)
207CorrelationMatrixHelpers.saveHists4D(canvas,plotFileName,coverageEta,
not useRelativeMetric,fixedEtaX,fixedEtaY,
"#eta=%.1f",scenarioLabel=
"",drawATLASLabel=drawATLASLabel,additionalString=6)
209CorrelationMatrixHelpers.saveHists4D(canvas,plotFileName,coverageWithUncEta,
not useRelativeMetric,fixedEtaX,fixedEtaY,
"#eta=%.1f",scenarioLabel=
"",drawATLASLabel=drawATLASLabel,additionalString=7)
212if not (plotFileName.endswith(
".eps")
or plotFileName.endswith(
".png")):
213 canvas.Print(plotFileName+
"]")
buildAndFillHists4DFromEnvelopeOfSet(hists, relativeMetric=False)
buildAndFillHists4DFromDifferenceHists(hists, relativeMetric=False)
buildAndFillHist4DFromMinOfSet(hists, relativeMetric=False)
buildAndFillHists4DFromFile(inFile, jetDef, varString, fixedString, fixedX, fixedY, excludeStartString="", granularityFactor=1, relativeMetric=False)
buildAndFillHist4DFromMaxOfSet(hists, relativeMetric=False)
saveHists4D(canvas, plotFileName, hist, oneSidedAxis, fixedX, fixedY, fixedStr, scenarioLabel="", drawATLASLabel=True, additionalString="")
buildAndFillHist4DFromCoverageOfSet(minDiffFromNominal, maxDiffBetweenScenarios, plotStyle, nominalHist=None, relativeMetric=False)
buildAndFillHists4DFromFiles(inFiles, jetDef, varString, fixedString, fixedX, fixedY, filterStartString="", granularityFactor=1, relativeMetric=False)
getFixedValuesFromFiles(inFiles, jetDef)