The Gaudi Framework  master (37c0b60a)
Gaudi::Histogram1D Class Reference

#include </builds/gaudi/Gaudi/GaudiCommonSvc/include/GaudiCommonSvc/H1D.h>

Inheritance diagram for Gaudi::Histogram1D:
Collaboration diagram for Gaudi::Histogram1D:

Public Member Functions

 Histogram1D ()
 Standard constructor. More...
 
 Histogram1D (TH1D *rep)
 Standard constructor with initialization. The histogram representation will be adopted. More...
 
void adoptRepresentation (TObject *rep) override
 Adopt ROOT histogram representation. More...
 
virtual bool setBinContents (int i, int entries, double height, double error, double centre)
 set bin content (entries and centre are not used ) More...
 
bool reset () override
 
virtual bool setStatistics (int allEntries, double eqBinEntries, double mean, double rms)
 set histogram statistics More...
 
bool fill (double x, double weight) override
 Fill the Profile1D with a value and the corresponding weight. More...
 
bool setRms (double rms)
 Update histogram RMS. More...
 
void copyFromAida (const AIDA::IHistogram1D &h)
 Create new histogram from any AIDA based histogram. More...
 
const CLIDclID () const override
 Retrieve reference to class defininition identifier. More...
 
StreamBufferserialize (StreamBuffer &s)
 Serialization mechanism, Serialize the object for reading. More...
 
StreamBufferserialize (StreamBuffer &s) const
 Serialization mechanism, Serialize the object for writing. More...
 
- Public Member Functions inherited from DataObject
 DataObject ()
 Standard Constructor. More...
 
 DataObject (const DataObject &rhs)
 Copy Constructor. More...
 
DataObjectoperator= (const DataObject &rhs)
 Assignment Operator. More...
 
 DataObject (DataObject &&rhs)
 Move Constructor. More...
 
DataObjectoperator= (DataObject &&rhs)
 Move Assignment Operator. More...
 
virtual ~DataObject ()
 Standard Destructor. More...
 
virtual unsigned long addRef ()
 Add reference to object. More...
 
virtual unsigned long release ()
 release reference to object More...
 
const std::stringname () const
 Retreive DataObject name. It is the name when registered in the store. More...
 
virtual StatusCode update ()
 Provide empty placeholder for internal object reconfiguration callback. More...
 
void setRegistry (IRegistry *pRegistry)
 Set pointer to Registry. More...
 
IRegistryregistry () const
 Get pointer to Registry. More...
 
LinkManagerlinkMgr ()
 Retrieve Link manager. More...
 
const LinkManagerlinkMgr () const
 
unsigned char version () const
 Retrieve version number of this object representation. More...
 
void setVersion (unsigned char vsn)
 Set version number of this object representation. More...
 
unsigned long refCount () const
 Return the refcount. More...
 
virtual std::ostreamfillStream (std::ostream &s) const
 Fill the output stream (ASCII) More...
 
- Public Member Functions inherited from Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >
 Generic1D ()=default
 Default constructor. More...
 
virtual const std::stringuserLevelClassType () const
 The AIDA user-level unterface leaf class type. More...
 
void * cast (const std::string &cl) const override
 Manual cast by class name. More...
 
void * cast (const std::string &className) const
 
void * cast (const std::string &className) const
 
TObject * representation () const override
 ROOT object implementation. More...
 
void adoptRepresentation (TObject *rep) override
 Adopt ROOT histogram representation. More...
 
void adoptRepresentation (TObject *rep)
 Adopt ROOT histogram representation. More...
 
void adoptRepresentation (TObject *rep)
 Adopt ROOT histogram representation. More...
 
std::string title () const override
 Get the title of the object. More...
 
bool setTitle (const std::string &title) override
 Set the title of the object. More...
 
std::string name () const
 object name More...
 
bool setName (const std::string &newName)
 Set the name of the object. More...
 
AIDA::IAnnotation & annotation () override
 Access annotation object. More...
 
const AIDA::IAnnotation & annotation () const override
 Access annotation object (cons) More...
 
Axisaxis ()
 Access to axis object. More...
 
const Axisaxis () const override
 Get the x axis of the IHistogram1D. More...
 
int entries () const override
 Get the number or all the entries. More...
 
int allEntries () const override
 Get the number or all the entries, both in range and underflow/overflow bins of the IProfile. More...
 
int extraEntries () const override
 Get the number of entries in the underflow and overflow bins. More...
 
int binEntries (int index) const override
 Number of entries in the corresponding bin (ie the number of times fill was called for this bin). More...
 
int binEntries (int index) const
 
int binEntries (int index) const
 
virtual double binRms (int index) const
 
double sumBinHeights () const override
 Get the sum of in range bin heights in the IProfile. More...
 
double sumAllBinHeights () const override
 Get the sum of all the bins heights (including underflow and overflow bin). More...
 
double sumExtraBinHeights () const override
 Get the sum of the underflow and overflow bin height. More...
 
double minBinHeight () const override
 Get the minimum height of the in-range bins. More...
 
double maxBinHeight () const override
 Get the maximum height of the in-range bins. More...
 
virtual double equivalentBinEntries () const
 Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ] More...
 
virtual bool scale (double scaleFactor)
 Scale the weights and the errors of all the IHistogram's bins (in-range and out-of-range ones) by a given scale factor. More...
 
bool reset () override
 Reset the Histogram; as if just created. More...
 
bool add (const AIDA::IHistogram1D &profile) override
 Modifies this IProfile1D by adding the contents of profile to it. More...
 
virtual int rIndex (int index) const
 operator methods More...
 
double binMean (int index) const override
 The weighted mean of a bin. More...
 
double binHeight (int index) const override
 Total height of the corresponding bin (ie the sum of the weights in this bin). More...
 
double binError (int index) const override
 The error of a given bin. More...
 
double mean () const override
 The mean of the whole IHistogram1D. More...
 
double rms () const override
 The RMS of the whole IHistogram1D. More...
 
int coordToIndex (double coord) const override
 Get the bin number corresponding to a given coordinate along the x axis. More...
 
int dimension () const override
 Get the Histogram's dimension. More...
 
std::ostreamprint (std::ostream &s) const override
 Print (ASCII) the histogram into the output stream. More...
 
std::ostreamwrite (std::ostream &s) const override
 Write (ASCII) the histogram table into the output stream. More...
 
int write (const char *file_name) const override
 Write (ASCII) the histogram table into a file. More...
 
- Public Member Functions inherited from Gaudi::HistogramBase
virtual TObject * representation () const =0
 ROOT object implementation. More...
 
virtual ~HistogramBase ()=default
 

Static Public Member Functions

static const CLIDclassID ()
 
- Static Public Member Functions inherited from DataObject
static const CLIDclassID ()
 Retrieve reference to class definition structure (static access) More...
 

Protected Attributes

double m_sumwx = 0
 cache sumwx when setting contents since I don't have bin mean More...
 
- Protected Attributes inherited from Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >
Axis m_axis
 Axis member. More...
 
AIDA::Annotation m_annotation
 Object annotations. More...
 
std::unique_ptr< TH1D > m_rep
 Reference to underlying implementation. More...
 
std::string m_classType
 
int m_sumEntries
 

Private Member Functions

void init (const std::string &title, bool initialize_axis=true)
 
void initSums ()
 

Private Attributes

std::mutex m_fillSerialization
 

Friends

void reset (Histogram1D &h)
 
void to_json (nlohmann::json &j, Gaudi::Histogram1D const &h)
 conversion to json via nlohmann library More...
 

Additional Inherited Members

- Public Types inherited from Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >
typedef Generic1D< AIDA::IHistogram1D, TH1D > Base
 
- Protected Member Functions inherited from Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >
 Generic1D (TH1D *p)
 constructor More...
 

Detailed Description

AIDA implementation for 1 D histograms using ROOT THD1

Author
M.Frank

Definition at line 31 of file H1D.h.

Constructor & Destructor Documentation

◆ Histogram1D() [1/2]

Gaudi::Histogram1D::Histogram1D ( )

Standard constructor.

Definition at line 78 of file H1D.cpp.

78 : Base( new TH1D() ) { init( "", false ); }

◆ Histogram1D() [2/2]

Gaudi::Histogram1D::Histogram1D ( TH1D *  rep)

Standard constructor with initialization. The histogram representation will be adopted.

Definition at line 80 of file H1D.cpp.

80  {
81  m_rep.reset( rep );
82  init( m_rep->GetTitle() );
83  initSums();
84 }

Member Function Documentation

◆ adoptRepresentation()

void Gaudi::Histogram1D::adoptRepresentation ( TObject *  rep)
overridevirtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Definition at line 113 of file H1D.cpp.

113  {
115  if ( m_rep ) {
116  init( m_rep->GetTitle() );
117  initSums();
118  }
119 }

◆ classID()

static const CLID& Gaudi::Histogram1D::classID ( )
inlinestatic

Definition at line 66 of file H1D.h.

66 { return CLID_H1D; }

◆ clID()

const CLID& Gaudi::Histogram1D::clID ( ) const
inlineoverridevirtual

Retrieve reference to class defininition identifier.

Reimplemented from DataObject.

Definition at line 65 of file H1D.h.

65 { return classID(); }

◆ copyFromAida()

void Gaudi::Histogram1D::copyFromAida ( const AIDA::IHistogram1D &  h)

Create new histogram from any AIDA based histogram.

Definition at line 172 of file H1D.cpp.

172  {
173  // implement here the copy
174  std::string title = h.title() + "Copy";
175  if ( h.axis().isFixedBinning() ) {
176  m_rep.reset(
177  new TH1D( title.c_str(), title.c_str(), h.axis().bins(), h.axis().lowerEdge(), h.axis().upperEdge() ) );
178  } else {
179  Edges e;
180  for ( int i = 0; i < h.axis().bins(); ++i ) { e.push_back( h.axis().binLowerEdge( i ) ); }
181  // add also upperedges at the end
182  e.push_back( h.axis().upperEdge() );
183  m_rep.reset( new TH1D( title.c_str(), title.c_str(), e.size() - 1, &e.front() ) );
184  }
185  m_axis.initialize( m_rep->GetXaxis(), false );
186  m_rep->Sumw2();
187  m_sumEntries = 0;
188  m_sumwx = 0;
189  // sumw
190  double sumw = h.sumBinHeights();
191  // sumw2
192  double sumw2 = 0;
193  if ( std::abs( h.equivalentBinEntries() ) > std::numeric_limits<double>::epsilon() )
194  sumw2 = ( sumw * sumw ) / h.equivalentBinEntries();
195 
196  double sumwx = h.mean() * h.sumBinHeights();
197  double sumwx2 = ( h.mean() * h.mean() + h.rms() * h.rms() ) * h.sumBinHeights();
198 
199  // copy the contents in
200  for ( int i = -2; i < axis().bins(); ++i ) {
201  // root binning starts from one !
202  m_rep->SetBinContent( rIndex( i ), h.binHeight( i ) );
203  m_rep->SetBinError( rIndex( i ), h.binError( i ) );
204  }
205  // need to do set entries after setting contents otherwise root will recalulate them
206  // taking into account how many time SetBinContents() has been called
207  m_rep->SetEntries( h.allEntries() );
208  // stat vector
209  std::vector<double> stat( 11 );
210  stat[0] = sumw;
211  stat[1] = sumw2;
212  stat[2] = sumwx;
213  stat[3] = sumwx2;
214  m_rep->PutStats( &stat.front() );
215 }

◆ fill()

bool Gaudi::Histogram1D::fill ( double  x,
double  weight 
)
override

Fill the Profile1D with a value and the corresponding weight.

Definition at line 165 of file H1D.cpp.

165  {
166  // avoid race conditions when filling the histogram
167  auto guard = std::scoped_lock{ m_fillSerialization };
168  m_rep->Fill( x, weight );
169  return true;
170 }

◆ init()

void Gaudi::Histogram1D::init ( const std::string title,
bool  initialize_axis = true 
)
private

Definition at line 86 of file H1D.cpp.

86  {
87  m_classType = "IHistogram1D";
88  if ( initialize_axis ) { m_axis.initialize( m_rep->GetXaxis(), false ); }
89  const TArrayD* a = m_rep->GetSumw2();
90  if ( !a || ( a && a->GetSize() == 0 ) ) m_rep->Sumw2();
91  setTitle( title );
92  m_rep->SetDirectory( nullptr );
93  m_sumEntries = 0;
94  m_sumwx = 0;
95 }

◆ initSums()

void Gaudi::Histogram1D::initSums ( )
private

Definition at line 97 of file H1D.cpp.

97  {
98  m_sumwx = 0;
99  m_sumEntries = 0;
100  for ( int i = 1, n = m_rep->GetNbinsX(); i <= n; ++i ) {
101  m_sumwx += m_rep->GetBinContent( i ) * m_rep->GetBinCenter( i );
102  m_sumEntries += m_rep->GetBinContent( i );
103  }
104 }

◆ reset()

bool Gaudi::Histogram1D::reset ( )
override

Definition at line 106 of file H1D.cpp.

106  {
107  m_sumwx = 0;
108  m_sumEntries = 0;
109  return Base::reset();
110 }

◆ serialize() [1/2]

StreamBuffer & Gaudi::Histogram1D::serialize ( StreamBuffer s)

Serialization mechanism, Serialize the object for reading.

Parameters
sthe StreamBuffer containing the data to be read
Returns
the resulting StreamBuffer, after reading

Definition at line 217 of file H1D.cpp.

217  {
218  // DataObject::serialize(s);
220  int size;
221  s >> size;
222  for ( int j = 0; j < size; j++ ) {
223  std::string key, value;
224  s >> key >> value;
225  if ( !annotation().addItem( key, value ) ) { annotation().setValue( key, value ); };
226  if ( "Title" == key ) { title = value; }
227  }
228  double lowerEdge, upperEdge, binHeight, binError;
229  int isFixedBinning, bins;
230  s >> isFixedBinning >> bins;
231 
232  if ( isFixedBinning ) {
233  s >> lowerEdge >> upperEdge;
234  m_rep.reset( new TH1D( title.c_str(), title.c_str(), bins, lowerEdge, upperEdge ) );
235  } else {
236  Edges edges;
237  edges.resize( bins );
238  for ( int i = 0; i <= bins; ++i ) s >> edges[i];
239  m_rep.reset( new TH1D( title.c_str(), title.c_str(), edges.size() - 1, &edges.front() ) );
240  }
241  m_axis.initialize( m_rep->GetXaxis(), true );
242  m_rep->Sumw2();
243  m_sumEntries = 0;
244  m_sumwx = 0;
245 
246  for ( int i = 0; i <= bins + 1; ++i ) {
247  s >> binHeight >> binError;
248  m_rep->SetBinContent( i, binHeight );
249  m_rep->SetBinError( i, binError );
250  }
251  Stat_t allEntries;
252  s >> allEntries;
253  m_rep->SetEntries( allEntries );
254  Stat_t stats[4]; // stats array
255  s >> stats[0] >> stats[1] >> stats[2] >> stats[3];
256  m_rep->PutStats( stats );
257  return s;
258 }

◆ serialize() [2/2]

StreamBuffer & Gaudi::Histogram1D::serialize ( StreamBuffer s) const

Serialization mechanism, Serialize the object for writing.

Parameters
sthe StreamBuffer where to write the data
Returns
the resulting StreamBuffer, after wrinting

Definition at line 260 of file H1D.cpp.

260  {
261  // DataObject::serialize(s);
262  s << static_cast<int>( annotation().size() );
263  for ( int i = 0; i < annotation().size(); i++ ) {
264  s << annotation().key( i );
265  s << annotation().value( i );
266  }
267  const AIDA::IAxis& axis( this->axis() );
268  const int isFixedBinning = axis.isFixedBinning();
269  const int bins = axis.bins();
270  s << isFixedBinning << bins;
271  if ( isFixedBinning ) {
272  s << axis.lowerEdge();
273  } else {
274  for ( int i = 0; i < bins; ++i ) s << axis.binLowerEdge( i );
275  }
276  s << axis.upperEdge();
277  for ( int i = 0; i <= bins + 1; ++i ) s << m_rep->GetBinContent( i ) << m_rep->GetBinError( i );
278 
279  s << m_rep->GetEntries();
280  Stat_t stats[4]; // stats array
281  m_rep->GetStats( stats );
282  s << stats[0] << stats[1] << stats[2] << stats[3];
283  return s;
284 }

◆ setBinContents()

bool Gaudi::Histogram1D::setBinContents ( int  i,
int  entries,
double  height,
double  error,
double  centre 
)
virtual

set bin content (entries and centre are not used )

Definition at line 121 of file H1D.cpp.

121  {
122  m_rep->SetBinContent( rIndex( i ), height );
123  m_rep->SetBinError( rIndex( i ), error );
124  // accumulate sumwx for in range bins
125  if ( i != AIDA::IAxis::UNDERFLOW_BIN && i != AIDA::IAxis::OVERFLOW_BIN ) m_sumwx += centre * height;
127  return true;
128 }

◆ setRms()

bool Gaudi::Histogram1D::setRms ( double  rms)

Update histogram RMS.

Definition at line 130 of file H1D.cpp.

130  {
131  m_rep->SetEntries( m_sumEntries );
132  std::vector<double> stat( 11 );
133  // sum weights
134  stat[0] = sumBinHeights();
135  stat[1] = 0;
137  stat[1] = ( sumBinHeights() * sumBinHeights() ) / equivalentBinEntries();
138  stat[2] = m_sumwx;
139  double mean = 0;
141  stat[3] = ( mean * mean + rms * rms ) * sumBinHeights();
142  m_rep->PutStats( &stat.front() );
143  return true;
144 }

◆ setStatistics()

bool Gaudi::Histogram1D::setStatistics ( int  allEntries,
double  eqBinEntries,
double  mean,
double  rms 
)
virtual

set histogram statistics

Definition at line 147 of file H1D.cpp.

147  {
148  m_rep->SetEntries( allEntries );
149  // fill statistcal vector for Root
150  std::vector<double> stat( 11 );
151  // sum weights
152  stat[0] = sumBinHeights();
153  // sum weights **2
154  stat[1] = 0;
155  if ( std::abs( eqBinEntries ) > std::numeric_limits<double>::epsilon() )
156  stat[1] = ( sumBinHeights() * sumBinHeights() ) / eqBinEntries;
157  // sum weights * x
158  stat[2] = mean * sumBinHeights();
159  // sum weight * x **2
160  stat[3] = ( mean * mean + rms * rms ) * sumBinHeights();
161  m_rep->PutStats( &stat.front() );
162  return true;
163 }

Friends And Related Function Documentation

◆ reset

void reset ( Histogram1D h)
friend

Definition at line 53 of file H1D.h.

53 { h.reset(); }

◆ to_json

void to_json ( nlohmann::json &  j,
Gaudi::Histogram1D const &  h 
)
friend

conversion to json via nlohmann library

Definition at line 55 of file H1D.h.

55 { j = *h.m_rep.get(); }

Member Data Documentation

◆ m_fillSerialization

std::mutex Gaudi::Histogram1D::m_fillSerialization
private

Definition at line 80 of file H1D.h.

◆ m_sumwx

double Gaudi::Histogram1D::m_sumwx = 0
protected

cache sumwx when setting contents since I don't have bin mean

Definition at line 38 of file H1D.h.


The documentation for this class was generated from the following files:
std::vector::resize
T resize(T... args)
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::m_classType
std::string m_classType
Definition: Generic1D.h:143
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::m_rep
std::unique_ptr< TH1D > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:141
std::string
STL class.
details::size
constexpr auto size(const T &, Args &&...) noexcept
Definition: AnyDataWrapper.h:23
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::binError
double binError(int index) const override
The error of a given bin.
Definition: Generic1D.h:179
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:38
Gaudi::Axis::upperEdge
double upperEdge() const override
Get the upper edge of the IAxis.
Definition: Axis.h:84
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::Base
Generic1D< AIDA::IHistogram1D, TH1D > Base
Definition: Generic1D.h:48
gaudirun.s
string s
Definition: gaudirun.py:346
std::vector< double >
Gaudi::Generic1D::adoptRepresentation
void adoptRepresentation(TObject *rep) override
Adopt ROOT histogram representation.
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::entries
int entries() const override
Get the number or all the entries.
Definition: Generic1D.h:83
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::axis
Axis & axis()
Access to axis object.
Definition: Generic1D.h:78
std::abs
Gaudi::ParticleID abs(const Gaudi::ParticleID &p)
Return the absolute value for a PID.
Definition: ParticleID.h:191
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::title
std::string title() const override
Get the title of the object.
Definition: Generic1D.h:66
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::rIndex
virtual int rIndex(int index) const
operator methods
Definition: Generic1D.h:113
std::unique_ptr::reset
T reset(T... args)
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::rms
double rms() const override
The RMS of the whole IHistogram1D.
Definition: Generic1D.h:123
std::vector::push_back
T push_back(T... args)
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:145
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::allEntries
int allEntries() const override
Get the number or all the entries, both in range and underflow/overflow bins of the IProfile.
Definition: Generic1D.h:85
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::binHeight
double binHeight(int index) const override
Total height of the corresponding bin (ie the sum of the weights in this bin).
Definition: Generic1D.h:174
ProduceConsume.j
j
Definition: ProduceConsume.py:104
std::string::c_str
T c_str(T... args)
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:63
AlgSequencer.h
h
Definition: AlgSequencer.py:31
Gaudi::Histogram1D::classID
static const CLID & classID()
Definition: H1D.h:66
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::sumBinHeights
double sumBinHeights() const override
Get the sum of in range bin heights in the IProfile.
Definition: Generic1D.h:93
Gaudi::Histogram1D::init
void init(const std::string &title, bool initialize_axis=true)
Definition: H1D.cpp:86
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::m_axis
Axis m_axis
Axis member.
Definition: Generic1D.h:137
cpluginsvc.n
n
Definition: cpluginsvc.py:234
std::numeric_limits::epsilon
T epsilon(T... args)
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::mean
double mean() const override
The mean of the whole IHistogram1D.
Definition: Generic1D.h:121
Gaudi::Edges
std::vector< double > Edges
Definition: GaudiPI.h:28
Gaudi::Axis::lowerEdge
double lowerEdge() const override
Get the lower edge of the IAxis.
Definition: Axis.h:77
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::reset
bool reset() override
Reset the Histogram; as if just created.
Definition: Generic1D.h:188
Gaudi::Histogram1D::m_fillSerialization
std::mutex m_fillSerialization
Definition: H1D.h:80
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::setTitle
bool setTitle(const std::string &title) override
Set the title of the object.
Definition: Generic1D.h:149
Gaudi::Axis::binLowerEdge
double binLowerEdge(int index) const override
Get the lower edge of the specified bin.
Definition: Axis.h:100
Gaudi::Axis::bins
int bins() const override
The number of bins (excluding underflow and overflow) on the IAxis.
Definition: Axis.h:91
Gaudi::Axis::isFixedBinning
bool isFixedBinning() const override
Check if the IAxis has fixed binning, i.e.
Definition: Axis.h:70
Gaudi::Histogram1D::initSums
void initSums()
Definition: H1D.cpp:97
ProduceConsume.key
key
Definition: ProduceConsume.py:84
std::numeric_limits
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::annotation
AIDA::IAnnotation & annotation() override
Access annotation object.
Definition: Generic1D.h:74
Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::equivalentBinEntries
virtual double equivalentBinEntries() const
Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ]
Definition: Generic1D.h:195