| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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

AIDA implementation for 2 D histograms using ROOT THD2. More...

`#include <GaudiCommonSvc/H2D.h>`

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

## Public Member Functions
| Histogram2D ()
| Standard Constructor. More...
| Histogram2D (TH2D *rep)
| Standard initializing Constructor with TH2D representation to be adopted. More...
bool | fill (double x, double y, double weight=1.) override
| Fill the Histogram2D with a value and the. More...
virtual bool | setBinContents (int binIndexX, int binIndexY, int entries, double height, double error, double centreX, double centreY)
| Fast filling method for a given bin. It can be also the over/underflow bin. More...
bool | setRms (double rmsX, double rmsY)
| Sets the rms of the histogram. More...
bool | reset () override
void | copyFromAida (const AIDA::IHistogram2D &h)
| Create new histogram from any AIDA based histogram. More...
const CLID & | clID () const override
| Retrieve reference to class defininition identifier. 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::Generic2D< INTERFACE, IMPLEMENTATION >
| Generic2D ()=default
| ~Generic2D () override=default
| Destructor. More...
TObject * | representation () const override
| ROOT object implementation. More...
void | adoptRepresentation (TObject *rep) override
| 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...
const AIDA::IAxis & | xAxis () const override
| Return the X axis. More...
const AIDA::IAxis & | yAxis () const override
| Return the Y axis. More...
virtual int | rIndexX (int index) const
| operator methods More...
virtual int | rIndexY (int index) const
| operator methods 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...
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...
double | binMeanX (int indexX, int indexY) const override
| The weighted mean along x of a given bin. More...
double | binMeanY (int indexX, int indexY) const override
| The weighted mean along y of a given bin. More...
int | binEntries (int indexX, int indexY) const override
| The number of entries (ie the number of times fill was called for this bin). More...
int | binEntriesX (int indexX) const override
| Equivalent to `projectionX().binEntries(indexX)`. More...
int | binEntriesY (int indexY) const override
| Equivalent to `projectionY().binEntries(indexY)`. More...
double | binHeight (int indexX, int indexY) const override
| Total height of the corresponding bin (ie the sum of the weights in this bin). More...
double | binHeightX (int indexX) const override
| Equivalent to `projectionX().binHeight(indexX)`. More...
double | binHeightY (int indexY) const override
| Equivalent to `projectionY().binHeight(indexY)`. More...
double | binError (int indexX, int indexY) const override
| The error on this bin. More...
virtual double | binRms (int indexX, int indexY) const
| The spread (RMS) of this bin. More...
double | meanX () const override
| Returns the mean of the profile, as calculated on filling-time projected on the X axis. More...
double | meanY () const override
| Returns the mean of the profile, as calculated on filling-time projected on the Y axis. More...
double | rmsX () const override
| Returns the rms of the profile as calculated on filling-time projected on the X axis. More...
double | rmsY () const override
| Returns the rms of the profile as calculated on filling-time projected on the Y axis. More...
int | coordToIndexX (double coordX) const override
| Convenience method, equivalent to `xAxis().coordToIndex(coord)`. More...
int | coordToIndexY (double coordY) const override
| Convenience method, equivalent to `yAxis().coordToIndex(coord)`. 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 | add (const INTERFACE &h) override
| Modifies this profile by adding the contents of profile to it. More...
bool | reset () override
void * | cast (const std::string &className) const override
| Introspection method. More...
const std::string & | userLevelClassType () const
| The AIDA user-level unterface leaf class type. 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 indexX, int indexY) const
template<>
void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation. More...
template<>
void * | cast (const std::string &className) const
template<>
int | binEntries (int idX, int idY) 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
double | m_sumwy = 0
Protected Attributes inherited from Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >
Axis | m_xAxis
| X axis member. More...
Axis | m_yAxis
| Y 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
| class type More...
int | m_sumEntries = 0
| cache sumEntries (allEntries) when setting contents since Root can't compute by himself More...

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

## Detailed Description

AIDA implementation for 2 D histograms using ROOT THD2.

Author
  M.Frank

Definition at line 18 of file H2D.h.

## Constructor & Destructor Documentation

Gaudi::Histogram2D::Histogram2D | ( |  | ) |

Standard Constructor.

Definition at line 125 of file H2D.cpp.

126 : Base( new TH2D() )
127 {
128 m_rep->Sumw2();
129 m_sumwx = m_sumwy = 0;
130 setTitle("");
131 m_rep->SetDirectory(nullptr);
132 }
Gaudi::Generic2D::Base
Generic2D< INTERFACE, IMPLEMENTATION > Base
Definition: Generic2D.h:37
Gaudi::Generic2D::setTitle
bool setTitle(const std::string &title) override
Set the title of the object.
Definition: Generic2D.h:158
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42

Gaudi::Histogram2D::Histogram2D | ( | TH2D * | rep | ) |

Standard initializing Constructor with TH2D representation to be adopted.

Definition at line 134 of file H2D.cpp.

135 {
136 adoptRepresentation(rep);
137 m_sumwx = m_sumwy = 0;
138 m_rep->SetDirectory(nullptr);
139 }
Gaudi::Generic2D::adoptRepresentation
void adoptRepresentation(TObject *rep) override
Adopt ROOT histogram representation.
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42

## Member Function Documentation

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

Definition at line 39 of file H2D.h.

39 { return CLID_H2D; }

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

Retrieve reference to class defininition identifier.

Reimplemented from DataObject.

Definition at line 38 of file H2D.h.

38 { return classID(); }
Gaudi::Histogram2D::classID
static const CLID & classID()
Definition: H2D.h:39

void Gaudi::Histogram2D::copyFromAida | ( | const AIDA::IHistogram2D & | h | ) |

Create new histogram from any AIDA based histogram.

Definition at line 190 of file H2D.cpp.

190 {
191 // implement here the copy
192 const char* tit = h.title().c_str();
193 if (h.xAxis().isFixedBinning() && h.yAxis().isFixedBinning() )
194 m_rep.reset( new TH2D(tit,tit,
195 h.xAxis().bins(),h.xAxis().lowerEdge(),h.xAxis().upperEdge(),
196 h.yAxis().bins(),h.yAxis().lowerEdge(),h.yAxis().upperEdge() ) );
197 else {
198 Edges eX, eY;
199 for (int i =0; i < h.xAxis().bins(); ++i)
200 eX.push_back(h.xAxis().binLowerEdge(i));
201 // add also upperedges at the end
202 eX.push_back(h.xAxis().upperEdge() );
203 for (int i =0; i < h.yAxis().bins(); ++i)
204 eY.push_back(h.yAxis().binLowerEdge(i));
205 // add also upperedges at the end
206 eY.push_back(h.yAxis().upperEdge() );
207 m_rep.reset( new TH2D(tit,tit,eX.size()-1,&eX.front(),eY.size()-1,&eY.front()) );
208 }
209 m_xAxis.initialize(m_rep->GetXaxis(),true);
210 m_yAxis.initialize(m_rep->GetYaxis(),true);
211 m_rep->Sumw2();
212 m_sumEntries = 0;
213 m_sumwx = 0;
214 m_sumwy = 0;
215 // statistics
216 double sumw = h.sumBinHeights();
217 double sumw2 = 0;
218 if (h.equivalentBinEntries() != 0)
219 sumw2 = ( sumw * sumw ) /h.equivalentBinEntries();
220 double sumwx = h.meanX()*h.sumBinHeights();
221 double sumwx2 = (h.meanX()*h.meanX() + h.rmsX()*h.rmsX() )*h.sumBinHeights();
222 double sumwy = h.meanY()*h.sumBinHeights();
223 double sumwy2 = (h.meanY()*h.meanY() + h.rmsY()*h.rmsY() )*h.sumBinHeights();
224 double sumwxy = 0;
225
226 // copy the contents in (AIDA underflow/overflow are -2,-1)
227 for (int i=-2; i < xAxis().bins(); ++i) {
228 for (int j=-2; j < yAxis().bins(); ++j) {
229 // root binning starts from one !
230 m_rep->SetBinContent(rIndexX(i), rIndexY(j), h.binHeight(i,j) );
231 m_rep->SetBinError(rIndexX(i), rIndexY(j), h.binError(i,j) );
232 // calculate statistics
233 if ( i >= 0 && j >= 0) {
234 sumwxy += h.binHeight(i,j)*h.binMeanX(i,j)*h.binMeanY(i,j);
235 }
236 }
237 }
238 // need to do set entries after setting contents otherwise root will recalculate them
239 // taking into account how many time SetBinContents() has been called
240 m_rep->SetEntries(h.allEntries());
241 // fill stat vector
242 std::array<double,11> stat = {{ sumw, sumw2,
243 sumwx, sumwx2,
244 sumwy, sumwy2,
245 sumwxy }};
246 m_rep->PutStats(stat.data());
247 }
Gaudi::Generic2D::m_sumEntries
int m_sumEntries
cache sumEntries (allEntries) when setting contents since Root can&#39;t compute by himself ...
Definition: Generic2D.h:154
Gaudi::Edges
std::vector< double > Edges
Definition: GaudiPI.h:17
Gaudi::Generic2D::rIndexX
virtual int rIndexX(int index) const
operator methods
Definition: Generic2D.h:68
std::vector::push_back
T push_back(T...args)
std::array::data
T data(T...args)
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
Gaudi::Generic2D::m_xAxis
Axis m_xAxis
X axis member.
Definition: Generic2D.h:144
std::unique_ptr::reset
T reset(T...args)
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:66
Gaudi::Generic2D::m_yAxis
Axis m_yAxis
Y axis member.
Definition: Generic2D.h:146
std::array
STL class.
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150
Gaudi::Generic2D::rIndexY
virtual int rIndexY(int index) const
operator methods
Definition: Generic2D.h:70
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42
Gaudi::Generic2D::yAxis
const AIDA::IAxis & yAxis() const override
Return the Y axis.
Definition: Generic2D.h:66
Gaudi::Generic2D::xAxis
const AIDA::IAxis & xAxis() const override
Return the X axis.
Definition: Generic2D.h:64

bool Gaudi::Histogram2D::fill | ( | double | x,
|  | double | y,
|  | double | weight = `1.`
| ) |  |
| override

Fill the Histogram2D with a value and the.

Definition at line 165 of file H2D.cpp.

165 {
166 (weight==1.) ? m_rep->Fill(x,y) : m_rep->Fill(x,y,weight );
167 return true;
168 }
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150

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

Definition at line 153 of file H2D.cpp.

153 {
154 m_sumwx = 0;
155 m_sumwy = 0;
156 return Base::reset();
157 }
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42

bool Gaudi::Histogram2D::setBinContents | ( | int | binIndexX,
|  | int | binIndexY,
|  | int | entries,
|  | double | height,
|  | double | error,
|  | double | centreX,
|  | double | centreY
| ) |  |
| virtual

Fast filling method for a given bin. It can be also the over/underflow bin.

Definition at line 141 of file H2D.cpp.

141 {
142 m_rep->SetBinContent(rIndexX(i), rIndexY(j), height);
143 m_rep->SetBinError(rIndexX(i), rIndexY(j), error);
144 // accumulate sumwx for in range bins
145 if (i >=0 && j >= 0) {
146 m_sumwx += centreX*height;
147 m_sumwy += centreY*height;
148 }
149 m_sumEntries += entries;
150 return true;
151 }
Gaudi::Generic2D::m_sumEntries
int m_sumEntries
cache sumEntries (allEntries) when setting contents since Root can&#39;t compute by himself ...
Definition: Generic2D.h:154
Gaudi::Generic2D::rIndexX
virtual int rIndexX(int index) const
operator methods
Definition: Generic2D.h:68
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150
Gaudi::Generic2D::entries
int entries() const override
Get the number or all the entries.
Definition: Generic2D.h:175
Gaudi::Generic2D::rIndexY
virtual int rIndexY(int index) const
operator methods
Definition: Generic2D.h:70
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42

bool Gaudi::Histogram2D::setRms | ( | double | rmsX,
|  | double | rmsY
| ) |  |

Sets the rms of the histogram.

Definition at line 170 of file H2D.cpp.

170 {
171 m_rep->SetEntries(m_sumEntries);
172 std::vector<double> stat(11);
173 stat[0] = sumBinHeights();
174 stat[1] = 0;
175 if(equivalentBinEntries() != 0)
176 stat[1] = (sumBinHeights() * sumBinHeights()) / equivalentBinEntries();
177 stat[2] = m_sumwx;
178 double meanX = 0;
179 if(sumBinHeights() != 0) meanX = m_sumwx/ sumBinHeights();
180 stat[3] = (meanX*meanX + rmsX*rmsX) * sumBinHeights();
181 stat[4] = m_sumwy;
182 double meanY = 0;
183 if(sumBinHeights() != 0) meanY = m_sumwy/ sumBinHeights();
184 stat[5] = (meanY*meanY + rmsY*rmsY) * sumBinHeights();
185 stat[6] = 0;
186 m_rep->PutStats(&stat.front());
187 return true;
188 }
Gaudi::Generic2D::m_sumEntries
int m_sumEntries
cache sumEntries (allEntries) when setting contents since Root can&#39;t compute by himself ...
Definition: Generic2D.h:154
Gaudi::Generic2D::equivalentBinEntries
virtual double equivalentBinEntries() const
Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ]
Definition: Generic2D.h:310
Gaudi::Generic2D::rmsX
double rmsX() const override
Returns the rms of the profile as calculated on filling-time projected on the X axis.
Definition: Generic2D.h:273
Gaudi::Generic2D::rmsY
double rmsY() const override
Returns the rms of the profile as calculated on filling-time projected on the Y axis.
Definition: Generic2D.h:278
Gaudi::Generic2D::sumBinHeights
double sumBinHeights() const override
Get the sum of in range bin heights in the IProfile.
Definition: Generic2D.h:195
std::vector< double >
Gaudi::Generic2D::meanX
double meanX() const override
Returns the mean of the profile, as calculated on filling-time projected on the X axis...
Definition: Generic2D.h:263
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:150
Gaudi::Histogram2D::m_sumwy
double m_sumwy
Definition: H2D.h:43
Gaudi::Histogram2D::m_sumwx
double m_sumwx
Definition: H2D.h:42
Gaudi::Generic2D::meanY
double meanY() const override
Returns the mean of the profile, as calculated on filling-time projected on the Y axis...
Definition: Generic2D.h:268

## Member Data Documentation

double Gaudi::Histogram2D::m_sumwx = 0
| protected

Definition at line 42 of file H2D.h.

double Gaudi::Histogram2D::m_sumwy = 0
| protected

Definition at line 43 of file H2D.h.

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

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