ATLAS Offline Software
TH2I_LW.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class TH2I_LW //
9 // //
10 // Description: LightWeight version of TH2I. //
11 // //
12 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13 // Initial version: March 2009 //
14 // //
16 
17 #ifndef TH2I_LW_H
18 #define TH2I_LW_H
19 
20 #include "LWHists/LWHist2D.h"
21 class TH2I;
22 
23 class TH2I_LW : public LWHist2D {
24 public:
25  typedef int bin_type_t;
26 
27  //To allocate from pool - remember to delete with LWHist::safeDelete(..):
28  static TH2I_LW * create( const char* name, const char* title,
29  unsigned nbinsx, const double& xmin, const double& xmax,
30  unsigned nbinsy, const double& ymin, const double& ymax );
31  static TH2I_LW * create( const char* name, const char* title,
32  unsigned nbinsx, const double* xbins,
33  unsigned nbinsy, const double& ymin, const double& ymax );
34  static TH2I_LW * create( const char* name, const char* title,
35  unsigned nbinsx, const double& xmin, const double& xmax,
36  unsigned nbinsy, const double* ybins );
37  static TH2I_LW * create( const char* name, const char* title,
38  unsigned nbinsx, const double* xbins,
39  unsigned nbinsy, const double* ybins );
40  static TH2I_LW * create( const char* name, const char* title,
41  unsigned nbinsx, const float* xbins,
42  unsigned nbinsy, const float* ybins );
43 
44  virtual void Fill(const double& x, const double& y) override;
45  virtual void Fill(const double& x, const double& y, const double& w) override;
46  virtual unsigned GetNbinsX() const override;
47  virtual unsigned GetNbinsY() const override;
48  virtual double GetBinContent(unsigned binx, unsigned biny) const override;
49  virtual double GetBinError(unsigned binx, unsigned biny) const override;
50  virtual void SetBinContent(unsigned binx, unsigned biny, const double& ) override;
51  virtual void SetBinError(unsigned binx, unsigned biny, const double& ) override;
52  virtual unsigned GetEntries() const override;
53  virtual void SetEntries(unsigned) override;
54  virtual void SetBins(unsigned nbinsx,double xmin,double xmax,
55  unsigned nbinsy,double ymin,double ymax) override;
56 
57  virtual void GetBinContentAndError(unsigned binx, unsigned biny,double& content, double&error) const override;
58  virtual void SetBinContentAndError(unsigned binx, unsigned biny,const double& content, const double& error) override;
59  virtual double getXMin() const override;
60  virtual double getXMax() const override;
61  virtual double getYMin() const override;
62  virtual double getYMax() const override;
63 
64  virtual void Reset() override;
65 
66  virtual void getSums( double& sumW, double& sumW2,
67  double& sumWX,double& sumWX2,
68  double& sumWY, double& sumWY2,
69  double& sumWXY) const override;
70  virtual void setSums( const double& sumW, const double&sumW2,
71  const double& sumWX, const double& sumWX2,
72  const double& sumWY, const double& sumWY2,
73  const double& sumWXY ) override;
74 
75  TH2I* getROOTHist();
76  virtual TH1* getROOTHistBase() override;
77 
78  virtual double Integral() const override;
79 
80  //For fast looping, skipping bins where (content,error)==(0,0):
81  virtual void resetActiveBinLoop() override;
82  virtual bool getNextActiveBin(unsigned& binx, unsigned& biny, double& content, double& error) override;
83 
84  virtual void scaleContentsAndErrors( const double& fact ) override;//C.f. comment in LWHist1D.h
85 
86 private:
87  friend class LWHistInt;
88  friend class LWHistVal;
89  // cppcheck-suppress virtualCallInConstructor
90  virtual void clear() override;
91  double getBinCenterX(int bin) const;
92  double getBinCenterY(int bin) const;
93  virtual const TH1* getROOTHistBaseNoAlloc() const override;
94  virtual TH1* getROOTHistBaseNoAlloc() override;
95  // cppcheck-suppress virtualCallInConstructor
96  virtual void clearKeptROOTHist() override;//Does nothing if root-backend.
97  const float * getVarBinsX() const;//null if fixed bin-widths
98  const float * getVarBinsY() const;//null if fixed bin-widths
99  virtual double actualGetBinCenterX(int bin) const override;
100  virtual double actualGetBinCenterY(int bin) const override;
101  virtual unsigned actualFindBinX(const double&) const override;
102  virtual unsigned actualFindBinY(const double&) const override;
103  TH2I_LW( const char* name, const char* title,
104  unsigned nbinsx, const double& xmin, const double& xmax,
105  unsigned nbinsy, const double& ymin, const double& ymax, bool rootbackend );
106  TH2I_LW( const char* name, const char* title,
107  unsigned nbinsx, const double* xbins,
108  unsigned nbinsy, const double& ymin, const double& ymax, bool rootbackend );
109  TH2I_LW( const char* name, const char* title,
110  unsigned nbinsx, const double& xmin, const double& xmax,
111  unsigned nbinsy, const double* ybins, bool rootbackend );
112  TH2I_LW( const char* name, const char* title,
113  unsigned nbinsx, const double* xbins,
114  unsigned nbinsy, const double* ybins, bool rootbackend );
115  TH2I_LW( const char* name, const char* title,
116  unsigned nbinsx, const float* xbins,
117  unsigned nbinsy, const float* ybins, bool rootbackend );
118  virtual ~TH2I_LW();
119  TH2I_LW( const TH2I_LW & );
120  TH2I_LW & operator= ( const TH2I_LW & );
121  void * m_flexHisto;
125 
126 };
127 
128 #endif
TH2I_LW::getROOTHistBaseNoAlloc
virtual const TH1 * getROOTHistBaseNoAlloc() const override
Definition: TH2I_LW.cxx:207
TH2I_LW::getVarBinsY
const float * getVarBinsY() const
Definition: TH2I_LW.cxx:294
TH2I_LW::scaleContentsAndErrors
virtual void scaleContentsAndErrors(const double &fact) override
Definition: TH2I_LW.cxx:512
ymin
double ymin
Definition: listroot.cxx:63
TH2I_LW::getYMax
virtual double getYMax() const override
Definition: TH2I_LW.cxx:321
TH2I_LW::getXMin
virtual double getXMin() const override
Definition: TH2I_LW.cxx:300
TH2I_LW::getSums
virtual void getSums(double &sumW, double &sumW2, double &sumWX, double &sumWX2, double &sumWY, double &sumWY2, double &sumWXY) const override
Definition: TH2I_LW.cxx:399
TH2I_LW::setSums
virtual void setSums(const double &sumW, const double &sumW2, const double &sumWX, const double &sumWX2, const double &sumWY, const double &sumWY2, const double &sumWXY) override
Definition: TH2I_LW.cxx:419
TH2I_LW::bin_type_t
int bin_type_t
Definition: TH2I_LW.h:25
TH2I_LW::~TH2I_LW
virtual ~TH2I_LW()
Definition: TH2I_LW.cxx:198
TH2I_LW::Integral
virtual double Integral() const override
Definition: TH2I_LW.cxx:453
TH2I_LW::resetActiveBinLoop
virtual void resetActiveBinLoop() override
Definition: TH2I_LW.cxx:458
TH2I_LW::actualGetBinCenterX
virtual double actualGetBinCenterX(int bin) const override
Definition: TH2I_LW.cxx:435
PixelAthClusterMonAlgCfg.ybins
ybins
Definition: PixelAthClusterMonAlgCfg.py:163
TH2I_LW::m_rootHisto
TH2I * m_rootHisto
Definition: TH2I_LW.h:122
bin
Definition: BinsDiffFromStripMedian.h:43
TH2I_LW::SetEntries
virtual void SetEntries(unsigned) override
Definition: TH2I_LW.cxx:397
TH2I_LW::Fill
virtual void Fill(const double &x, const double &y) override
Definition: TH2I_LW.cxx:329
TH2I_LW::m_ownsRootSumw2
bool m_ownsRootSumw2
Definition: TH2I_LW.h:124
TH2I_LW::GetBinContent
virtual double GetBinContent(unsigned binx, unsigned biny) const override
Definition: TH2I_LW.cxx:369
x
#define x
TH2I_LW::clear
virtual void clear() override
Definition: TH2I_LW.cxx:230
TH2I_LW::getROOTHist
TH2I * getROOTHist()
Definition: TH2I_LW.cxx:216
LWHistVal
Definition: LWHistVal.h:8
TH2I_LW::m_flexHisto
void * m_flexHisto
Definition: TH2I_LW.h:121
grepfile.content
string content
Definition: grepfile.py:56
TH2I_LW::GetNbinsY
virtual unsigned GetNbinsY() const override
Definition: TH2I_LW.cxx:352
LWHistInt
Definition: LWHistRootUtils.h:38
TH2I_LW::getBinCenterX
double getBinCenterX(int bin) const
TH2I_LW::TH2I_LW
TH2I_LW(const TH2I_LW &)
xmin
double xmin
Definition: listroot.cxx:60
TH2I_LW::create
static TH2I_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xmin, const double &xmax, unsigned nbinsy, const double &ymin, const double &ymax)
Definition: TH2I_LW.cxx:33
TH2I
Definition: rootspy.cxx:410
covarianceTool.title
title
Definition: covarianceTool.py:542
TH2I_LW::getYMin
virtual double getYMin() const override
Definition: TH2I_LW.cxx:314
TH2I_LW::actualFindBinX
virtual unsigned actualFindBinX(const double &) const override
Definition: TH2I_LW.cxx:357
TH2I_LW::getBinCenterY
double getBinCenterY(int bin) const
TH2I_LW::getXMax
virtual double getXMax() const override
Definition: TH2I_LW.cxx:307
TH2I_LW::getVarBinsX
const float * getVarBinsX() const
Definition: TH2I_LW.cxx:288
LWHist2D
Definition: LWHist2D.h:25
TH2I_LW::m_rootbackend_fastloopbin
unsigned m_rootbackend_fastloopbin
Definition: TH2I_LW.h:123
TH2I_LW::actualGetBinCenterY
virtual double actualGetBinCenterY(int bin) const override
Definition: TH2I_LW.cxx:444
TH2I_LW::GetBinError
virtual double GetBinError(unsigned binx, unsigned biny) const override
Definition: TH2I_LW.cxx:374
TH2I_LW::GetNbinsX
virtual unsigned GetNbinsX() const override
Definition: TH2I_LW.cxx:347
TH2I_LW
Definition: TH2I_LW.h:23
TH2I_LW::GetBinContentAndError
virtual void GetBinContentAndError(unsigned binx, unsigned biny, double &content, double &error) const override
Definition: TH2I_LW.cxx:490
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TH2I_LW::GetEntries
virtual unsigned GetEntries() const override
Definition: TH2I_LW.cxx:389
TH2I_LW::actualFindBinY
virtual unsigned actualFindBinY(const double &) const override
Definition: TH2I_LW.cxx:363
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
TH2I_LW::Reset
virtual void Reset() override
Definition: TH2I_LW.cxx:250
TH2I_LW::TH2I_LW
TH2I_LW(const char *name, const char *title, unsigned nbinsx, const double &xmin, const double &xmax, unsigned nbinsy, const double &ymin, const double &ymax, bool rootbackend)
Definition: TH2I_LW.cxx:113
TH2I_LW::getROOTHistBase
virtual TH1 * getROOTHistBase() override
Definition: TH2I_LW.cxx:215
y
#define y
TH2I_LW::SetBins
virtual void SetBins(unsigned nbinsx, double xmin, double xmax, unsigned nbinsy, double ymin, double ymax) override
Definition: TH2I_LW.cxx:274
TH2I_LW::clearKeptROOTHist
virtual void clearKeptROOTHist() override
Definition: TH2I_LW.cxx:239
TH1
Definition: rootspy.cxx:268
xmax
double xmax
Definition: listroot.cxx:61
TH2I_LW::SetBinContentAndError
virtual void SetBinContentAndError(unsigned binx, unsigned biny, const double &content, const double &error) override
Definition: TH2I_LW.cxx:501
TH2I_LW::operator=
TH2I_LW & operator=(const TH2I_LW &)
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
TH2I_LW::SetBinError
virtual void SetBinError(unsigned binx, unsigned biny, const double &) override
Definition: TH2I_LW.cxx:384
TH2I_LW::getNextActiveBin
virtual bool getNextActiveBin(unsigned &binx, unsigned &biny, double &content, double &error) override
Definition: TH2I_LW.cxx:468
error
Definition: IImpactPoint3dEstimator.h:70
TH2I_LW::SetBinContent
virtual void SetBinContent(unsigned binx, unsigned biny, const double &) override
Definition: TH2I_LW.cxx:379
ymax
double ymax
Definition: listroot.cxx:64
LWHist2D.h