|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MSVTXPLOTCOMPARISON_H
6 #define MSVTXPLOTCOMPARISON_H
27 #include "TEfficiency.h"
28 #include "TGraphAsymmErrors.h"
29 #include "TMultiGraph.h"
39 MSVtxPlotComparison(
const std::vector<std::string> &datapaths,
const std::vector<std::string> &
labels,
const std::string &pltdir);
46 std::unique_ptr<T>
plot{
nullptr};
61 void drawTHStack(std::unique_ptr<PlotInfo<THStack>> &hstackInfo);
74 TGraphAsymmErrors*
getRatio(
const TGraphAsymmErrors*
num,
const TGraphAsymmErrors*
denom);
75 void drawRatio(TGraphAsymmErrors*
ratio, TGraphAsymmErrors* denomErrNorm,
const TString &xlabel,
const TAxis* plotXaxis,
const TAxis* plotYaxis,
double axisRescaling);
78 Bool_t
isTH1(
const TClass *objectClass);
81 Int_t
getPointIdx(
const TGraphAsymmErrors* graph,
double x);
97 std::unique_ptr<TCanvas>
m_c{
nullptr};
113 const std::array<Int_t, 10>
m_colors{
m_kP10Blue,
m_kP10Yellow,
m_kP10Red,
m_kP10Grey,
m_kP10Violet,
m_kP10Brown,
m_kP10Orange,
m_kP10Green,
m_kP10Ash,
m_kP10Cyan};
114 static constexpr
std::array m_markers{kOpenCircle, kOpenSquare, kOpenTriangleUp, kOpenDiamond, kOpenStar, kOpenTriangleDown, kOpenDoubleDiamond, kOpenCrossX};
117 #endif // MSVTXPLOTCOMPARISON_H
TGraphAsymmErrors * getNormalisedGraph(const TGraphAsymmErrors *graph)
Bool_t isTEfficiency(const TClass *objectClass)
Bool_t ignorePlot(TKey *key)
void drawTMultigraph(std::unique_ptr< PlotInfo< TMultiGraph >> &mgInfo)
std::unique_ptr< TCanvas > m_c
void makeTH1Comparison(TKey *key)
void drawTMultigraphPlot(std::unique_ptr< PlotInfo< TMultiGraph >> &mgInfo)
void makeTEfficiencyComparison(TKey *key)
Bool_t isTH1(const TClass *objectClass)
TString m_plotdir_inputObjects
virtual ~MSVtxPlotComparison()
TString m_plotdir_recoVtxHits
std::vector< std::string > m_labels
static constexpr std::array m_markers
MSVtxPlotComparison(const std::vector< std::string > &datapaths, const std::vector< std::string > &labels, const std::string &pltdir)
const std::array< Int_t, 10 > m_colors
TString m_plotdir_vtxFakeRate
void drawTHStackRatioPlot(std::unique_ptr< PlotInfo< THStack >> &hstackInfo)
void drawTHStackPlot(std::unique_ptr< PlotInfo< THStack >> &hstackInfo)
TString m_plotdir_vtxResiduals
std::unique_ptr< MSVtxPlotComparison::PlotInfo< TMultiGraph > > getTMultigraphPlotInfo(TEfficiency *h)
std::unique_ptr< TFile > m_output_file
Int_t getPointIdx(const TGraphAsymmErrors *graph, double x)
TString m_plotdir_recoVtx
std::unique_ptr< MSVtxPlotComparison::PlotInfo< THStack > > getTHStackPlotInfo(const TH1 *h)
TString m_plotdir_vtxEfficiency
void drawTHStack(std::unique_ptr< PlotInfo< THStack >> &hstackInfo)
void drawTMultigraphRatioPlot(std::unique_ptr< PlotInfo< TMultiGraph >> &mgInfo)
void drawRatio(TGraphAsymmErrors *ratio, TGraphAsymmErrors *denomErrNorm, const TString &xlabel, const TAxis *plotXaxis, const TAxis *plotYaxis, double axisRescaling)
TString m_plotdir_truthVtx
const TString getTMultigraphplotpath(const TString &name)
TGraphAsymmErrors * getRatio(const TH1 *num, const TH1 *denom)
PlotInfo(std::unique_ptr< T > plot, TLegend *legend, double maxy, TString xlabel, const TString ylabel)
const TString getTHStackplotpath(const TString &name)
std::vector< std::string > m_datapaths