| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Gaudi::Histogram1D Class Reference

AIDA implementation for 1 D histograms using ROOT THD1. More...

`#include <GaudiCommonSvc/H1D.h>`

Inheritance diagram for Gaudi::Histogram1D:
[legend]
Collaboration diagram for Gaudi::Histogram1D:
[legend]

## 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
| need to overwrite reset to reset the sums More...
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 CLID & | clID () const override
| Retrieve reference to class defininition identifier. More...
StreamBuffer & | serialize (StreamBuffer &s)
| Serialization mechanism, Serialize the object for reading. More...
StreamBuffer & | serialize (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...
DataObject & | operator= (const DataObject &rhs)
| Assignment Operator. More...
| DataObject (DataObject &&rhs)
| Move Constructor. More...
DataObject & | operator= (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::string & | name () 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...
IRegistry * | registry () const
| Get pointer to Registry. More...
LinkManager * | linkMgr () const
| Retrieve Link manager. More...
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::ostream & | fillStream (std::ostream &s) const
| Fill the output stream (ASCII) More...
Public Member Functions inherited from Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >
| Generic1D ()=default
| Default constructor. More...
virtual const std::string & | userLevelClassType () const
| The AIDA user-level unterface leaf class type. More...
void * | cast (const std::string &cl) const override
| Manual cast by class name. More...
TObject * | representation () const override
| ROOT object implementation. 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...
Axis & | axis ()
| Access to axis object. More...
const Axis & | axis () 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...
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 INTERFACE &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::ostream & | print (std::ostream &s) const override
| Print (ASCII) the histogram into the output stream. More...
std::ostream & | write (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...
template<>
void * | cast (const std::string &className) const
template<>
int | binEntries (int index) const
template<>
void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation. More...
template<>
int | binEntries (int index) const
template<>
void * | cast (const std::string &className) const
template<>
void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation. More...
Public Member Functions inherited from Gaudi::HistogramBase
virtual | ~HistogramBase ()=default

## Static Public Member Functions
static const CLID & | classID ()
Static Public Member Functions inherited from DataObject
static const CLID & | classID ()
| 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< INTERFACE, IMPLEMENTATION >
Axis | m_axis
| Axis member. More...
AIDA::Annotation | m_annotation
| Object annotations. More...
std::unique_ptr< IMPLEMENTATION > | 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

## Additional Inherited Members
Public Types inherited from Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >
typedef Generic1D< INTERFACE, IMPLEMENTATION > | Base
Protected Member Functions inherited from Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >
| Generic1D (IMPLEMENTATION *p)
| constructor More...

## Detailed Description

AIDA implementation for 1 D histograms using ROOT THD1.

Author
  M.Frank

Definition at line 19 of file H1D.h.

## Constructor & Destructor Documentation

## ◆ Histogram1D() [1/2]

Gaudi::Histogram1D::Histogram1D | ( |  | ) |

Standard constructor.

Definition at line 58 of file H1D.cpp.

58 : Base( new TH1D() ) { init( "", false ); }
Gaudi::Histogram1D::init
void init(const std::string &title, bool initialize_axis=true)
Definition: H1D.cpp:66
Gaudi::Generic1D::Base
Generic1D< INTERFACE, IMPLEMENTATION > Base
Definition: Generic1D.h:37

## ◆ Histogram1D() [2/2]

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

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

Definition at line 60 of file H1D.cpp.

60 {
61 m_rep.reset( rep );
62 init( m_rep->GetTitle() );
63 initSums();
64 }
Gaudi::Histogram1D::initSums
void initSums()
Definition: H1D.cpp:77
Gaudi::Histogram1D::init
void init(const std::string &title, bool initialize_axis=true)
Definition: H1D.cpp:66
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
std::unique_ptr::reset
T reset(T... args)

## Member Function Documentation

## ◆ adoptRepresentation()

void Gaudi::Histogram1D::adoptRepresentation | ( | TObject * | rep | ) |
| override virtual

Adopt ROOT histogram representation.

Reimplemented from Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >.

Definition at line 93 of file H1D.cpp.

93 {
94 Gaudi::Generic1D<AIDA::IHistogram1D, TH1D>::adoptRepresentation( rep );
95 if ( m_rep ) {
96 init( m_rep->GetTitle() );
97 initSums();
98 }
99 }
Gaudi::Histogram1D::initSums
void initSums()
Definition: H1D.cpp:77
Gaudi::Histogram1D::init
void init(const std::string &title, bool initialize_axis=true)
Definition: H1D.cpp:66
Gaudi::Generic1D::adoptRepresentation
void adoptRepresentation(TObject *rep) override
Adopt ROOT histogram representation.
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130

## ◆ classID()

static const CLID& Gaudi::Histogram1D::classID | ( |  | ) |
| inline static

Definition at line 50 of file H1D.h.

50 { return CLID_H1D; }

## ◆ clID()

const CLID& Gaudi::Histogram1D::clID | ( |  | ) | const
| inline override virtual

Retrieve reference to class defininition identifier.

Reimplemented from DataObject.

Definition at line 49 of file H1D.h.

49 { return classID(); }
Gaudi::Histogram1D::classID
static const CLID & classID()
Definition: H1D.h:50

## ◆ copyFromAida()

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

Create new histogram from any AIDA based histogram.

Definition at line 156 of file H1D.cpp.

156 {
157 // implement here the copy
158 std::string title = h.title() + "Copy";
159 if ( h.axis().isFixedBinning() ) {
160 m_rep.reset(
161 new TH1D( title.c_str(), title.c_str(), h.axis().bins(), h.axis().lowerEdge(), h.axis().upperEdge() ) );
162 } else {
163 Edges e;
164 for ( int i = 0; i < h.axis().bins(); ++i ) { e.push_back( h.axis().binLowerEdge( i ) ); }
165 // add also upperedges at the end
166 e.push_back( h.axis().upperEdge() );
167 m_rep.reset( new TH1D( title.c_str(), title.c_str(), e.size() - 1, &e.front() ) );
168 }
169 m_axis.initialize( m_rep->GetXaxis(), false );
170 m_rep->Sumw2();
171 m_sumEntries = 0;
172 m_sumwx = 0;
173 // sumw
174 double sumw = h.sumBinHeights();
175 // sumw2
176 double sumw2 = 0;
177 if ( h.equivalentBinEntries() != 0 ) sumw2 = ( sumw * sumw ) / h.equivalentBinEntries();
178
179 double sumwx = h.mean() * h.sumBinHeights();
180 double sumwx2 = ( h.mean() * h.mean() + h.rms() * h.rms() ) * h.sumBinHeights();
181
182 // copy the contents in
183 for ( int i = -2; i < axis().bins(); ++i ) {
184 // root binning starts from one !
185 m_rep->SetBinContent( rIndex( i ), h.binHeight( i ) );
186 m_rep->SetBinError( rIndex( i ), h.binError( i ) );
187 }
188 // need to do set entries after setting contents otherwise root will recalulate them
189 // taking into account how many time SetBinContents() has been called
190 m_rep->SetEntries( h.allEntries() );
191 // stat vector
192 std::vector<double> stat( 11 );
193 stat[0] = sumw;
194 stat[1] = sumw2;
195 stat[2] = sumwx;
196 stat[3] = sumwx2;
197 m_rep->PutStats( &stat.front() );
198 }
Gaudi::Edges
std::vector< double > Edges
Definition: GaudiPI.h:17
std::string
STL class.
Gaudi::Generic1D::axis
Axis & axis()
Access to axis object.
Definition: Generic1D.h:67
std::vector::push_back
T push_back(T... args)
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::m_axis
Axis m_axis
Axis member.
Definition: Generic1D.h:126
std::unique_ptr::reset
T reset(T... args)
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Axis::bins
int bins() const override
The number of bins (excluding underflow and overflow) on the IAxis.
Definition: Axis.h:91
std::vector< double >
Gaudi::Generic1D::rIndex
virtual int rIndex(int index) const
operator methods
Definition: Generic1D.h:102
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:63
std::string::c_str
T c_str(T... args)
Gaudi::Generic1D::title
std::string title() const override
Get the title of the object.
Definition: Generic1D.h:55
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ fill()

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

Fill the Profile1D with a value and the corresponding weight.

Definition at line 149 of file H1D.cpp.

149 {
150 // avoid race conditions when filling the histogram
151 std::lock_guard<std::mutex> guard( m_fillSerialization );
152 ( weight == 1. ) ? m_rep->Fill( x ) : m_rep->Fill( x, weight );
153 return true;
154 }
Gaudi::Histogram1D::m_fillSerialization
std::mutex m_fillSerialization
Definition: H1D.h:64
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
std::lock_guard

## ◆ init()

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

Definition at line 66 of file H1D.cpp.

66 {
67 m_classType = "IHistogram1D";
68 if ( initialize_axis ) { m_axis.initialize( m_rep->GetXaxis(), false ); }
69 const TArrayD* a = m_rep->GetSumw2();
70 if ( !a || ( a && a->GetSize() == 0 ) ) m_rep->Sumw2();
71 setTitle( title );
72 m_rep->SetDirectory( nullptr );
73 m_sumEntries = 0;
74 m_sumwx = 0;
75 }
Gaudi::Generic1D::m_classType
std::string m_classType
Definition: Generic1D.h:132
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::setTitle
bool setTitle(const std::string &title) override
Set the title of the object.
Definition: Generic1D.h:138
Gaudi::Generic1D::m_axis
Axis m_axis
Axis member.
Definition: Generic1D.h:126
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:63
Gaudi::Generic1D::title
std::string title() const override
Get the title of the object.
Definition: Generic1D.h:55
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ initSums()

void Gaudi::Histogram1D::initSums | ( |  | ) |
| private

Definition at line 77 of file H1D.cpp.

77 {
78 m_sumwx = 0;
79 m_sumEntries = 0;
80 for ( int i = 1, n = m_rep->GetNbinsX(); i <= n; ++i ) {
81 m_sumwx += m_rep->GetBinContent( i ) * m_rep->GetBinCenter( i );
82 m_sumEntries += m_rep->GetBinContent( i );
83 }
84 }
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:210
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ reset()

bool Gaudi::Histogram1D::reset | ( |  | ) |
| override

need to overwrite reset to reset the sums

Definition at line 86 of file H1D.cpp.

86 {
87 m_sumwx = 0;
88 m_sumEntries = 0;
89 return Base::reset();
90 }
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ serialize() [1/2]

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

Serialization mechanism, Serialize the object for reading.

Parameters

  s | the StreamBuffer containing the data to be read

Returns
  the resulting StreamBuffer, after reading

Definition at line 205 of file H1D.cpp.

205 {
206 // DataObject::serialize(s);
207 std::string title;
208 int size;
209 s >> size;
210 for ( int j = 0; j < size; j++ ) {
211 std::string key, value;
212 s >> key >> value;
213 annotation().addItem( key, value );
214 if ( "Title" == key ) { title = value; }
215 }
216 double lowerEdge, upperEdge, binHeight, binError;
217 int isFixedBinning, bins;
218 s >> isFixedBinning >> bins;
219
220 if ( isFixedBinning ) {
221 s >> lowerEdge >> upperEdge;
222 m_rep.reset( new TH1D( title.c_str(), title.c_str(), bins, lowerEdge, upperEdge ) );
223 } else {
224 Edges edges;
225 edges.resize( bins );
226 for ( int i = 0; i <= bins; ++i ) s >> edges[i];
227 m_rep.reset( new TH1D( title.c_str(), title.c_str(), edges.size() - 1, &edges.front() ) );
228 }
229 m_axis.initialize( m_rep->GetXaxis(), true );
230 m_rep->Sumw2();
231 m_sumEntries = 0;
232 m_sumwx = 0;
233
234 for ( int i = 0; i <= bins + 1; ++i ) {
235 s >> binHeight >> binError;
236 m_rep->SetBinContent( i, binHeight );
237 m_rep->SetBinError( i, binError );
238 }
239 Stat_t allEntries;
240 s >> allEntries;
241 m_rep->SetEntries( allEntries );
242 Stat_t stats[4]; // stats array
243 s >> stats[0] >> stats[1] >> stats[2] >> stats[3];
244 m_rep->PutStats( stats );
245 return s;
246 }
details::size
constexpr auto size(const T &, Args &&...) noexcept
Definition: AnyDataWrapper.h:14
Gaudi::Edges
std::vector< double > Edges
Definition: GaudiPI.h:17
std::vector::resize
T resize(T... args)
std::string
STL class.
Gaudi::Generic1D::binError
double binError(int index) const override
The error of a given bin.
Definition: Generic1D.h:168
Gaudi::Generic1D::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:74
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::m_axis
Axis m_axis
Axis member.
Definition: Generic1D.h:126
std::unique_ptr::reset
T reset(T... args)
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:63
std::string::c_str
T c_str(T... args)
gaudirun.s
string s
Definition: gaudirun.py:316
Gaudi::Generic1D::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:163
Gaudi::Generic1D::annotation
AIDA::IAnnotation & annotation() override
Access annotation object.
Definition: Generic1D.h:63
Gaudi::Generic1D::title
std::string title() const override
Get the title of the object.
Definition: Generic1D.h:55
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ serialize() [2/2]

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

Serialization mechanism, Serialize the object for writing.

Parameters

  s | the StreamBuffer where to write the data

Returns
  the resulting StreamBuffer, after wrinting

Definition at line 248 of file H1D.cpp.

248 {
249 // DataObject::serialize(s);
250 s << static_cast<int>( annotation().size() );
251 for ( int i = 0; i < annotation().size(); i++ ) {
252 s << annotation().key( i );
253 s << annotation().value( i );
254 }
255 const AIDA::IAxis& axis( this->axis() );
256 const int isFixedBinning = axis.isFixedBinning();
257 const int bins = axis.bins();
258 s << isFixedBinning << bins;
259 if ( isFixedBinning ) {
260 s << axis.lowerEdge();
261 } else {
262 for ( int i = 0; i < bins; ++i ) s << axis.binLowerEdge( i );
263 }
264 s << axis.upperEdge();
265 for ( int i = 0; i <= bins + 1; ++i ) s << m_rep->GetBinContent( i ) << m_rep->GetBinError( i );
266
267 s << m_rep->GetEntries();
268 Stat_t stats[4]; // stats array
269 m_rep->GetStats( stats );
270 s << stats[0] << stats[1] << stats[2] << stats[3];
271 return s;
272 }
details::size
constexpr auto size(const T &, Args &&...) noexcept
Definition: AnyDataWrapper.h:14
Gaudi::Axis::binLowerEdge
double binLowerEdge(int index) const override
Get the lower edge of the specified bin.
Definition: Axis.h:100
Gaudi::Axis::isFixedBinning
bool isFixedBinning() const override
Check if the IAxis has fixed binning, i.e.
Definition: Axis.h:70
Gaudi::Generic1D::axis
Axis & axis()
Access to axis object.
Definition: Generic1D.h:67
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Axis::lowerEdge
double lowerEdge() const override
Get the lower edge of the IAxis.
Definition: Axis.h:77
Gaudi::Axis::bins
int bins() const override
The number of bins (excluding underflow and overflow) on the IAxis.
Definition: Axis.h:91
gaudirun.s
string s
Definition: gaudirun.py:316
Gaudi::Generic1D::annotation
AIDA::IAnnotation & annotation() override
Access annotation object.
Definition: Generic1D.h:63
Gaudi::Axis::upperEdge
double upperEdge() const override
Get the upper edge of the IAxis.
Definition: Axis.h:84

## ◆ 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 101 of file H1D.cpp.

101 {
102 m_rep->SetBinContent( rIndex( i ), height );
103 m_rep->SetBinError( rIndex( i ), error );
104 // accumulate sumwx for in range bins
105 if ( i != AIDA::IAxis::UNDERFLOW_BIN && i != AIDA::IAxis::OVERFLOW_BIN ) m_sumwx += centre * height;
106 m_sumEntries += entries;
107 return true;
108 }
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
Gaudi::Generic1D::rIndex
virtual int rIndex(int index) const
operator methods
Definition: Generic1D.h:102
Gaudi::Generic1D::entries
int entries() const override
Get the number or all the entries.
Definition: Generic1D.h:72
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ setRms()

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

Update histogram RMS.

Definition at line 116 of file H1D.cpp.

116 {
117 m_rep->SetEntries( m_sumEntries );
118 std::vector<double> stat( 11 );
119 // sum weights
120 stat[0] = sumBinHeights();
121 stat[1] = 0;
122 if ( equivalentBinEntries() != 0 ) stat[1] = ( sumBinHeights() * sumBinHeights() ) / equivalentBinEntries();
123 stat[2] = m_sumwx;
124 double mean = 0;
125 if ( sumBinHeights() != 0 ) mean = m_sumwx / sumBinHeights();
126 stat[3] = ( mean * mean + rms * rms ) * sumBinHeights();
127 m_rep->PutStats( &stat.front() );
128 return true;
129 }
Gaudi::Generic1D::rms
double rms() const override
The RMS of the whole IHistogram1D.
Definition: Generic1D.h:112
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::sumBinHeights
double sumBinHeights() const override
Get the sum of in range bin heights in the IProfile.
Definition: Generic1D.h:82
Gaudi::Generic1D::mean
double mean() const override
The mean of the whole IHistogram1D.
Definition: Generic1D.h:110
Gaudi::Generic1D::m_sumEntries
int m_sumEntries
Definition: Generic1D.h:134
std::vector< double >
Gaudi::Generic1D::equivalentBinEntries
virtual double equivalentBinEntries() const
Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ]
Definition: Generic1D.h:184
Gaudi::Histogram1D::m_sumwx
double m_sumwx
cache sumwx when setting contents since I don't have bin mean
Definition: H1D.h:26

## ◆ setStatistics()

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

set histogram statistics

Definition at line 132 of file H1D.cpp.

132 {
133 m_rep->SetEntries( allEntries );
134 // fill statistcal vector for Root
135 std::vector<double> stat( 11 );
136 // sum weights
137 stat[0] = sumBinHeights();
138 // sum weights **2
139 stat[1] = 0;
140 if ( eqBinEntries != 0 ) stat[1] = ( sumBinHeights() * sumBinHeights() ) / eqBinEntries;
141 // sum weights * x
142 stat[2] = mean * sumBinHeights();
143 // sum weight * x **2
144 stat[3] = ( mean * mean + rms * rms ) * sumBinHeights();
145 m_rep->PutStats( &stat.front() );
146 return true;
147 }
Gaudi::Generic1D::rms
double rms() const override
The RMS of the whole IHistogram1D.
Definition: Generic1D.h:112
Gaudi::Generic1D::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:74
Gaudi::Generic1D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic1D.h:130
Gaudi::Generic1D::sumBinHeights
double sumBinHeights() const override
Get the sum of in range bin heights in the IProfile.
Definition: Generic1D.h:82
Gaudi::Generic1D::mean
double mean() const override
The mean of the whole IHistogram1D.
Definition: Generic1D.h:110
std::vector< double >

## Member Data Documentation

## ◆ m_fillSerialization

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

Definition at line 64 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 26 of file H1D.h.

The documentation for this class was generated from the following files:

- GaudiCommonSvc/GaudiCommonSvc/H1D.h
- GaudiCommonSvc/src/HistogramSvc/H1D.cpp