ATLAS Offline Software
Loading...
Searching...
No Matches
UncertaintyHistogram.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef JETUNCERTAINTIES_UNCERTAINTYHISTOGRAM_H
6#define JETUNCERTAINTIES_UNCERTAINTYHISTOGRAM_H
7
10
12
14
15#include "TString.h"
16#include "TH1.h"
17
18class TFile;
19class TAxis;
20
21namespace jet
22{
23
25{
26 public:
27 // Constructor/destructor/initialization
28 UncertaintyHistogram(const std::string& histName, const Interpolate::TypeEnum interpolate);
29 UncertaintyHistogram(const TString& histName, const Interpolate::TypeEnum interpolate);
30 UncertaintyHistogram(const char* histName, const Interpolate::TypeEnum interpolate);
32 virtual ~UncertaintyHistogram();
33 virtual StatusCode initialize(TFile* histFile);
34
35 // Member retrieval methods
36 const TString& getName() const { return m_name; }
37 const TH1* getHisto() const { return m_histo; }
39 int getNumDim() const { return m_nDim; }
40
41 // Histogram information access
42 double getValue(const double var1) const;
43 double getValue(const double var1, const double var2) const;
44 double getValue(const double var1, const double var2, const double var3) const;
45
46 private:
47 // Private members
49 const TString m_name;
51 TH1* m_histo;
52 int m_nDim;
53
54 // Cache projections in case of 1-D interpolation in a 2-D or 3-D histogram
55 // For a 3-D histogram, it's [y][z] or [x][z] or [x][y] as appropriate
56 std::vector< std::vector< std::unique_ptr<TH1> > > m_cachedProj;
57 StatusCode cacheProjections();
58
59 // Histogram reading helpers
60 double readHisto(const double var1, const double var2=0, const double var3=0) const;
61 double checkBoundariesByBin(const TAxis* axis, const int numBins, const double valInput) const;
62 double checkBoundaries(const TAxis* axis, const int numBins, const double valInput) const;
63
64};
65
66} // end jet namespace
67
68
69#endif
70
Class mimicking the AthMessaging class from the offline software.
double checkBoundaries(const TAxis *axis, const int numBins, const double valInput) const
Interpolate::TypeEnum getInterp() const
double getValue(const double var1) const
double readHisto(const double var1, const double var2=0, const double var3=0) const
const TString & getName() const
std::vector< std::vector< std::unique_ptr< TH1 > > > m_cachedProj
UncertaintyHistogram(const std::string &histName, const Interpolate::TypeEnum interpolate)
double checkBoundariesByBin(const TAxis *axis, const int numBins, const double valInput) const
const Interpolate::TypeEnum m_interpolate
void initialize()