ATLAS Offline Software
TH1F_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 TH1F_LW //
9 // //
10 // Description: LightWeight version of TH1F. //
11 // //
12 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13 // Initial version: March 2009 //
14 // //
16 
17 #ifndef TH1F_LW_H
18 #define TH1F_LW_H
19 
20 #include "LWHists/LWHist1D.h"
21 class TH1F;
22 
23 class TH1F_LW : public LWHist1D {
24 public:
25  typedef float bin_type_t;
26 
27  //To allocate from pool - remember to delete with LWHist::safeDelete(..):
28  static TH1F_LW * create( const char* name, const char* title,
29  unsigned nbinsx, const double& xlow, const double& xup );
30  static TH1F_LW * create( const char* name, const char* title, unsigned nbinsx, const double* xbins );
31  static TH1F_LW * create( const char* name, const char* title, unsigned nbinsx, const float* xbins );
32 
33  virtual void Fill(const double& x) override;
34  virtual void Fill(const double& x, const double& w) override;
35  virtual unsigned GetNbinsX() const override;
36  virtual double GetBinContent(unsigned bin) const override;
37  virtual double GetBinError(unsigned bin) const override;
38  virtual void SetBinContent(unsigned bin, const double& ) override;
39  virtual void SetBinError(unsigned bin, const double& ) override;
40  virtual unsigned GetEntries() const override;
41  virtual void SetEntries(unsigned) override;
42  virtual void SetBins(unsigned nbins,double xmin,double xmax) override;
43  virtual void Reset() override;
44 
45  virtual double getXMin() const override;
46  virtual double getXMax() const override;
47  virtual void GetBinContentAndError(unsigned bin,double& content, double&error) const override;
48  virtual void SetBinContentAndError(unsigned bin,const double& content, const double& error) override;
49 
50  virtual void getSums( double& sumW, double& sumW2,
51  double& sumWX,double& sumWX2 ) const override;
52  virtual void setSums( const double& sumW,const double&sumW2,
53  const double& sumWX,const double& sumWX2 ) override;
54 
55  TH1F* getROOTHist();
56  virtual TH1* getROOTHistBase() override;
57 
58  virtual double Integral() const override;
59 
60  //For fast looping, skipping bins where (content,error)==(0,0):
61  virtual void resetActiveBinLoop() override;
62  virtual bool getNextActiveBin(unsigned& bin, double& content, double& error) override;
63 
64  virtual void scaleContentsAndErrors( const double& fact ) override;//C.f. comment in LWHist1D.h
65 
66 private:
67  friend class LWHistInt;
68  friend class LWHistVal;
69  // cppcheck-suppress virtualCallInConstructor
70  virtual void clear() override;
71  virtual unsigned actualFindBinX(const double&) const override;
72  virtual double actualGetBinCenterX(int bin) const override;
73  virtual const TH1* getROOTHistBaseNoAlloc() const override;
74  virtual TH1* getROOTHistBaseNoAlloc() override;
75  // cppcheck-suppress virtualCallInConstructor
76  virtual void clearKeptROOTHist() override;//Does nothing if root-backend.
77  const float * getVarBins() const;//null if fixed bin-widths
78  float * getVarBins();//null if fixed bin-widths
79 
80  TH1F_LW( const char* name, const char* title,
81  unsigned nbinsx, const double& xlow, const double& xup, bool rootbackend );
82  TH1F_LW( const char* name, const char* title, unsigned nbinsx, const double* xbins, bool rootbackend );
83  TH1F_LW( const char* name, const char* title, unsigned nbinsx, const float* xbins, bool rootbackend );
84  virtual ~TH1F_LW();
85  TH1F_LW( const TH1F_LW & );
86  TH1F_LW & operator= ( const TH1F_LW & );
87  void * m_flexHisto;
91 };
92 
93 #endif
TH1F_LW::~TH1F_LW
virtual ~TH1F_LW()
Definition: TH1F_LW.cxx:127
TH1F_LW::TH1F_LW
TH1F_LW(const char *name, const char *title, unsigned nbinsx, const double &xlow, const double &xup, bool rootbackend)
Definition: TH1F_LW.cxx:76
TH1F_LW::scaleContentsAndErrors
virtual void scaleContentsAndErrors(const double &fact) override
Definition: TH1F_LW.cxx:370
TH1F_LW::SetBinError
virtual void SetBinError(unsigned bin, const double &) override
Definition: TH1F_LW.cxx:268
TH1F_LW::Fill
virtual void Fill(const double &x) override
Definition: TH1F_LW.cxx:246
TH1F_LW::create
static TH1F_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xlow, const double &xup)
Definition: TH1F_LW.cxx:33
TH1F_LW::getROOTHist
TH1F * getROOTHist()
Definition: TH1F_LW.cxx:145
TH1F_LW::getROOTHistBaseNoAlloc
virtual const TH1 * getROOTHistBaseNoAlloc() const override
Definition: TH1F_LW.cxx:136
TH1F_LW::TH1F_LW
TH1F_LW(const TH1F_LW &)
TH1F_LW::SetBinContent
virtual void SetBinContent(unsigned bin, const double &) override
Definition: TH1F_LW.cxx:267
TH1F_LW::SetBinContentAndError
virtual void SetBinContentAndError(unsigned bin, const double &content, const double &error) override
Definition: TH1F_LW.cxx:359
bin
Definition: BinsDiffFromStripMedian.h:43
LWHist1D.h
LWHist1D
Definition: LWHist1D.h:23
TH1F_LW::m_flexHisto
void * m_flexHisto
Definition: TH1F_LW.h:87
TH1F_LW::getVarBins
const float * getVarBins() const
Definition: TH1F_LW.cxx:214
x
#define x
TH1F_LW::clear
virtual void clear() override
Definition: TH1F_LW.cxx:159
LWHistVal
Definition: LWHistVal.h:8
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
grepfile.content
string content
Definition: grepfile.py:56
TH1F_LW
Definition: TH1F_LW.h:23
LWHistInt
Definition: LWHistRootUtils.h:38
TH1F_LW::GetNbinsX
virtual unsigned GetNbinsX() const override
Definition: TH1F_LW.cxx:264
xmin
double xmin
Definition: listroot.cxx:60
TH1F_LW::m_rootbackend_fastloopbin
unsigned m_rootbackend_fastloopbin
Definition: TH1F_LW.h:89
TH1F_LW::operator=
TH1F_LW & operator=(const TH1F_LW &)
covarianceTool.title
title
Definition: covarianceTool.py:542
TH1F_LW::SetBins
virtual void SetBins(unsigned nbins, double xmin, double xmax) override
Definition: TH1F_LW.cxx:201
TH1F_LW::resetActiveBinLoop
virtual void resetActiveBinLoop() override
Definition: TH1F_LW.cxx:322
TH1F_LW::m_ownsRootSumw2
bool m_ownsRootSumw2
Definition: TH1F_LW.h:90
TH1F_LW::GetBinContentAndError
virtual void GetBinContentAndError(unsigned bin, double &content, double &error) const override
Definition: TH1F_LW.cxx:348
TH1F_LW::actualFindBinX
virtual unsigned actualFindBinX(const double &) const override
Definition: TH1F_LW.cxx:315
TH1F_LW::getXMax
virtual double getXMax() const override
Definition: TH1F_LW.cxx:239
TH1F_LW::getROOTHistBase
virtual TH1 * getROOTHistBase() override
Definition: TH1F_LW.cxx:144
TH1F_LW::GetBinContent
virtual double GetBinContent(unsigned bin) const override
Definition: TH1F_LW.cxx:265
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TH1F_LW::getNextActiveBin
virtual bool getNextActiveBin(unsigned &bin, double &content, double &error) override
Definition: TH1F_LW.cxx:330
TH1F_LW::m_rootHisto
TH1F * m_rootHisto
Definition: TH1F_LW.h:88
TH1F_LW::getSums
virtual void getSums(double &sumW, double &sumW2, double &sumWX, double &sumWX2) const override
Definition: TH1F_LW.cxx:279
TH1F_LW::GetEntries
virtual unsigned GetEntries() const override
Definition: TH1F_LW.cxx:269
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
TH1F_LW::SetEntries
virtual void SetEntries(unsigned) override
Definition: TH1F_LW.cxx:276
TH1F_LW::setSums
virtual void setSums(const double &sumW, const double &sumW2, const double &sumWX, const double &sumWX2) override
Definition: TH1F_LW.cxx:293
TH1F
Definition: rootspy.cxx:320
TH1F_LW::clearKeptROOTHist
virtual void clearKeptROOTHist() override
Definition: TH1F_LW.cxx:168
TH1F_LW::GetBinError
virtual double GetBinError(unsigned bin) const override
Definition: TH1F_LW.cxx:266
TH1F_LW::Reset
virtual void Reset() override
Definition: TH1F_LW.cxx:183
TH1
Definition: rootspy.cxx:268
xmax
double xmax
Definition: listroot.cxx:61
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
TH1F_LW::bin_type_t
float bin_type_t
Definition: TH1F_LW.h:25
error
Definition: IImpactPoint3dEstimator.h:70
TH1F_LW::Integral
virtual double Integral() const override
Definition: TH1F_LW.cxx:321
TH1F_LW::actualGetBinCenterX
virtual double actualGetBinCenterX(int bin) const override
Definition: TH1F_LW.cxx:305
TH1F_LW::getXMin
virtual double getXMin() const override
Definition: TH1F_LW.cxx:232