The Gaudi Framework  master (da3d77e1)
Gaudi::Generic2D< INTERFACE, IMPLEMENTATION > Class Template Reference

#include <GaudiPI/Generic2D.h>

Inheritance diagram for Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >:
Collaboration diagram for Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >:

Public Types

typedef Generic2D< INTERFACE, IMPLEMENTATION > Base
 

Public Member Functions

 Generic2D ()=default
 
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::stringuserLevelClassType () const
 The AIDA user-level unterface leaf class type. 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...
 
void * cast (const std::string &className) const
 
int binEntries (int indexX, int indexY) const
 
void adoptRepresentation (TObject *rep)
 Adopt ROOT histogram representation. More...
 
void * cast (const std::string &className) const
 
int binEntries (int idX, int idY) const
 
void adoptRepresentation (TObject *rep)
 Adopt ROOT histogram representation. More...
 
- Public Member Functions inherited from Gaudi::HistogramBase
virtual ~HistogramBase ()=default
 

Protected Member Functions

 Generic2D (IMPLEMENTATION *p)
 constructor More...
 

Protected Attributes

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...
 

Detailed Description

template<class INTERFACE, class IMPLEMENTATION>
class Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >

Common AIDA implementation stuff for histograms and profiles using ROOT implementations

Credits: This code is the result of some stripdown implementation of LCG/PI. Credits to them!

Author
M.Frank

Definition at line 46 of file Generic2D.h.

Member Typedef Documentation

◆ Base

template<class INTERFACE , class IMPLEMENTATION >
typedef Generic2D<INTERFACE, IMPLEMENTATION> Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::Base

Definition at line 48 of file Generic2D.h.

Constructor & Destructor Documentation

◆ Generic2D() [1/2]

template<class INTERFACE , class IMPLEMENTATION >
Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::Generic2D ( )
default

◆ Generic2D() [2/2]

template<class INTERFACE , class IMPLEMENTATION >
Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::Generic2D ( IMPLEMENTATION *  p)
inlineprotected

constructor

Definition at line 54 of file Generic2D.h.

54 : m_rep( p ) {}

Member Function Documentation

◆ add()

template<class INTERFACE , class IMPLEMENTATION >
bool Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::add ( const INTERFACE &  h)
override

Modifies this profile by adding the contents of profile to it.

Definition at line 298 of file Generic2D.h.

298  {
299  const Base* p = dynamic_cast<const Base*>( &hist );
300  if ( !p ) throw std::runtime_error( "Cannot add profile histograms of different implementations." );
301  m_rep->Add( p->m_rep.get() );
302  return true;
303  }

◆ adoptRepresentation() [1/3]

void Gaudi::Generic2D< AIDA::IProfile2D, TProfile2D >::adoptRepresentation ( TObject *  rep)
virtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Definition at line 50 of file P2D.cpp.

50  {
51  TProfile2D* imp = dynamic_cast<TProfile2D*>( rep );
52  if ( !imp ) throw std::runtime_error( "Cannot adopt native histogram representation." );
53  m_rep.reset( imp );
54  m_xAxis.initialize( m_rep->GetXaxis(), true );
55  m_yAxis.initialize( m_rep->GetYaxis(), true );
56  setTitle( m_rep->GetTitle() );
57  }

◆ adoptRepresentation() [2/3]

void Gaudi::Generic2D< AIDA::IHistogram2D, TH2D >::adoptRepresentation ( TObject *  rep)
virtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Definition at line 133 of file H2D.cpp.

133  {
134  TH2D* imp = dynamic_cast<TH2D*>( rep );
135  if ( !imp ) throw std::runtime_error( "Cannot adopt native histogram representation." );
136  m_rep.reset( imp );
137  m_xAxis.initialize( m_rep->GetXaxis(), true );
138  m_yAxis.initialize( m_rep->GetYaxis(), true );
139  const TArrayD* a = m_rep->GetSumw2();
140  if ( !a || ( a && a->GetSize() == 0 ) ) m_rep->Sumw2();
141  setTitle( m_rep->GetTitle() );
142  }

◆ adoptRepresentation() [3/3]

template<class INTERFACE , class IMPLEMENTATION >
void Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::adoptRepresentation ( TObject *  rep)
overridevirtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

◆ allEntries()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::allEntries
override

Get the number or all the entries, both in range and underflow/overflow bins of the IProfile.

Definition at line 190 of file Generic2D.h.

190  {
191  return m_rep->GetEntries();
192  }

◆ annotation() [1/2]

template<class INTERFACE , class IMPLEMENTATION >
const AIDA::IAnnotation& Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::annotation ( ) const
inlineoverride

Access annotation object (cons)

Definition at line 72 of file Generic2D.h.

72 { return m_annotation; }

◆ annotation() [2/2]

template<class INTERFACE , class IMPLEMENTATION >
AIDA::IAnnotation& Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::annotation ( )
inlineoverride

Access annotation object.

Definition at line 70 of file Generic2D.h.

70 { return m_annotation; }

◆ binEntries() [1/3]

int Gaudi::Generic2D< AIDA::IProfile2D, TProfile2D >::binEntries ( int  idX,
int  idY 
) const

Definition at line 44 of file P2D.cpp.

44  {
45  int rBin = m_rep->GetBin( rIndexX( idX ), rIndexY( idY ) );
46  return int( m_rep->GetBinEntries( rBin ) + 0.5 );
47  }

◆ binEntries() [2/3]

int Gaudi::Generic2D< IHistogram2D, TH2D >::binEntries ( int  indexX,
int  indexY 
) const

Definition at line 126 of file H2D.cpp.

126  {
127  if ( binHeight( indexX, indexY ) <= 0 ) return 0;
128  double xx = binHeight( indexX, indexY ) / binError( indexX, indexY );
129  return int( xx * xx + 0.5 );
130  }

◆ binEntries() [3/3]

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binEntries ( int  indexX,
int  indexY 
) const
override

The number of entries (ie the number of times fill was called for this bin).

◆ binEntriesX()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binEntriesX ( int  indexX) const
override

Equivalent to projectionX().binEntries(indexX).

Definition at line 230 of file Generic2D.h.

230  {
231  int n = 0;
232  for ( int iY = -2; iY < yAxis().bins(); ++iY ) n += binEntries( index, iY );
233  return n;
234  }

◆ binEntriesY()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binEntriesY ( int  indexY) const
override

Equivalent to projectionY().binEntries(indexY).

Definition at line 237 of file Generic2D.h.

237  {
238  int n = 0;
239  for ( int iX = -2; iX < xAxis().bins(); ++iX ) n += binEntries( iX, index );
240  return n;
241  }

◆ binError()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binError ( int  indexX,
int  indexY 
) const
override

The error on this bin.

Definition at line 263 of file Generic2D.h.

263  {
264  return m_rep->GetBinError( rIndexX( indexX ), rIndexY( indexY ) );
265  }

◆ binHeight()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binHeight ( int  indexX,
int  indexY 
) const
override

Total height of the corresponding bin (ie the sum of the weights in this bin).

Definition at line 244 of file Generic2D.h.

244  {
245  return m_rep->GetBinContent( rIndexX( indexX ), rIndexY( indexY ) );
246  }

◆ binHeightX()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binHeightX ( int  indexX) const
override

Equivalent to projectionX().binHeight(indexX).

Definition at line 249 of file Generic2D.h.

249  {
250  double s = 0;
251  for ( int iY = -2; iY < yAxis().bins(); ++iY ) { s += binHeight( index, iY ); }
252  return s;
253  }

◆ binHeightY()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binHeightY ( int  indexY) const
override

Equivalent to projectionY().binHeight(indexY).

Definition at line 256 of file Generic2D.h.

256  {
257  double s = 0;
258  for ( int iX = -2; iX < xAxis().bins(); ++iX ) s += binHeight( iX, index );
259  return s;
260  }

◆ binMeanX()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binMeanX ( int  indexX,
int  indexY 
) const
override

The weighted mean along x of a given bin.

Definition at line 220 of file Generic2D.h.

220  {
221  return m_rep->GetXaxis()->GetBinCenter( rIndexX( indexX ) );
222  }

◆ binMeanY()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binMeanY ( int  indexX,
int  indexY 
) const
override

The weighted mean along y of a given bin.

Definition at line 225 of file Generic2D.h.

225  {
226  return m_rep->GetYaxis()->GetBinCenter( rIndexY( indexY ) );
227  }

◆ binRms()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::binRms ( int  indexX,
int  indexY 
) const
virtual

The spread (RMS) of this bin.

Definition at line 215 of file Generic2D.h.

215  {
216  return m_rep->GetBinError( rIndexX( indexX ), rIndexY( indexY ) );
217  }

◆ cast() [1/3]

void * Gaudi::Generic2D< AIDA::IProfile2D, TProfile2D >::cast ( const std::string className) const

Definition at line 34 of file P2D.cpp.

34  {
35  return className == "AIDA::IProfile2D"
36  ? const_cast<AIDA::IProfile2D*>( static_cast<const AIDA::IProfile2D*>( this ) )
37  : className == "AIDA::IProfile" ? const_cast<AIDA::IProfile*>( static_cast<const AIDA::IProfile*>( this ) )
38  : className == "AIDA::IBaseHistogram"
39  ? const_cast<AIDA::IBaseHistogram*>( static_cast<const AIDA::IBaseHistogram*>( this ) )
40  : nullptr;
41  }

◆ cast() [2/3]

void * Gaudi::Generic2D< IHistogram2D, TH2D >::cast ( const std::string className) const

Definition at line 117 of file H2D.cpp.

117  {
118  if ( className == "AIDA::IHistogram2D" )
119  return (IHistogram2D*)this;
120  else if ( className == "AIDA::IHistogram" )
121  return (IHistogram*)this;
122  return nullptr;
123  }

◆ cast() [3/3]

template<class INTERFACE , class IMPLEMENTATION >
void* Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::cast ( const std::string className) const
override

Introspection method.

◆ coordToIndexX()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::coordToIndexX ( double  coordX) const
override

Convenience method, equivalent to xAxis().coordToIndex(coord).

Definition at line 288 of file Generic2D.h.

288  {
289  return xAxis().coordToIndex( coord );
290  }

◆ coordToIndexY()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::coordToIndexY ( double  coordY) const
override

Convenience method, equivalent to yAxis().coordToIndex(coord).

Definition at line 293 of file Generic2D.h.

293  {
294  return yAxis().coordToIndex( coord );
295  }

◆ dimension()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::dimension ( ) const
inlineoverride

Get the Histogram's dimension.

Definition at line 146 of file Generic2D.h.

146 { return 2; }

◆ entries()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::entries
override

Get the number or all the entries.

Definition at line 185 of file Generic2D.h.

185  {
186  return m_rep->GetEntries();
187  }

◆ equivalentBinEntries()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::equivalentBinEntries
virtual

Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ]

Definition at line 314 of file Generic2D.h.

314  {
315  if ( sumBinHeights() <= 0 ) return 0;
316  Stat_t stats[11]; // cover up to 3D...
317  m_rep->GetStats( stats );
318  return stats[0] * stats[0] / stats[1];
319  }

◆ extraEntries()

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::extraEntries
override

Get the number of entries in the underflow and overflow bins.

Definition at line 306 of file Generic2D.h.

306  {
307  return binEntries( AIDA::IAxis::UNDERFLOW_BIN, AIDA::IAxis::UNDERFLOW_BIN ) +
308  binEntries( AIDA::IAxis::UNDERFLOW_BIN, AIDA::IAxis::OVERFLOW_BIN ) +
309  binEntries( AIDA::IAxis::OVERFLOW_BIN, AIDA::IAxis::UNDERFLOW_BIN ) +
310  binEntries( AIDA::IAxis::OVERFLOW_BIN, AIDA::IAxis::OVERFLOW_BIN );
311  }

◆ maxBinHeight()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::maxBinHeight
override

Get the maximum height of the in-range bins.

Definition at line 200 of file Generic2D.h.

200  {
201  return m_rep->GetMaximum();
202  }

◆ meanX()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::meanX
override

Returns the mean of the profile, as calculated on filling-time projected on the X axis.

Definition at line 268 of file Generic2D.h.

268  {
269  return m_rep->GetMean( 1 );
270  }

◆ meanY()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::meanY
override

Returns the mean of the profile, as calculated on filling-time projected on the Y axis.

Definition at line 273 of file Generic2D.h.

273  {
274  return m_rep->GetMean( 2 );
275  }

◆ minBinHeight()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::minBinHeight
override

Get the minimum height of the in-range bins.

Definition at line 195 of file Generic2D.h.

195  {
196  return m_rep->GetMinimum();
197  }

◆ name()

template<class INTERFACE , class IMPLEMENTATION >
std::string Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::name ( ) const
inline

object name

Definition at line 66 of file Generic2D.h.

66 { return m_annotation.value( "Name" ); }

◆ print()

template<class INTERFACE , class IMPLEMENTATION >
std::ostream & Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::print ( std::ostream s) const
overridevirtual

Print (ASCII) the histogram into the output stream.

bin contents and errors are printed for all bins including under and overflows

Implements Gaudi::HistogramBase.

Definition at line 335 of file Generic2D.h.

335  {
337  m_rep->Print( "all" );
338  return s;
339  }

◆ representation()

template<class INTERFACE , class IMPLEMENTATION >
TObject* Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::representation ( ) const
inlineoverridevirtual

ROOT object implementation.

Implements Gaudi::HistogramBase.

Definition at line 58 of file Generic2D.h.

58 { return m_rep.get(); }

◆ reset()

template<class INTERFACE , class IMPLEMENTATION >
bool Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::reset
override

Definition at line 328 of file Generic2D.h.

328  {
329  m_sumEntries = 0;
330  m_rep->Reset();
331  return true;
332  }

◆ rIndexX()

template<class INTERFACE , class IMPLEMENTATION >
virtual int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::rIndexX ( int  index) const
inlinevirtual

operator methods

Definition at line 79 of file Generic2D.h.

79 { return m_xAxis.rIndex( index ); }

◆ rIndexY()

template<class INTERFACE , class IMPLEMENTATION >
virtual int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::rIndexY ( int  index) const
inlinevirtual

operator methods

Definition at line 81 of file Generic2D.h.

81 { return m_yAxis.rIndex( index ); }

◆ rmsX()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::rmsX
override

Returns the rms of the profile as calculated on filling-time projected on the X axis.

Definition at line 278 of file Generic2D.h.

278  {
279  return m_rep->GetRMS( 1 );
280  }

◆ rmsY()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::rmsY
override

Returns the rms of the profile as calculated on filling-time projected on the Y axis.

Definition at line 283 of file Generic2D.h.

283  {
284  return m_rep->GetRMS( 2 );
285  }

◆ scale()

template<class INTERFACE , class IMPLEMENTATION >
bool Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::scale ( double  scaleFactor)
virtual

Scale the weights and the errors of all the IHistogram's bins (in-range and out-of-range ones) by a given scale factor.

Definition at line 322 of file Generic2D.h.

322  {
323  m_rep->Scale( scaleFactor );
324  return true;
325  }

◆ setName()

template<class INTERFACE , class IMPLEMENTATION >
bool Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::setName ( const std::string newName)

Set the name of the object.

Definition at line 178 of file Generic2D.h.

178  {
179  m_rep->SetName( newName.c_str() );
180  m_annotation.setValue( "Name", newName );
181  return true;
182  }

◆ setTitle()

template<class INTERFACE , class IMPLEMENTATION >
bool Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::setTitle ( const std::string title)
override

Set the title of the object.

Definition at line 170 of file Generic2D.h.

170  {
171  m_rep->SetTitle( title.c_str() );
172  if ( !annotation().addItem( "Title", title ) ) m_annotation.setValue( "Title", title );
173  if ( !annotation().addItem( "title", title ) ) annotation().setValue( "title", title );
174  return true;
175  }

◆ sumAllBinHeights()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::sumAllBinHeights
override

Get the sum of all the bins heights (including underflow and overflow bin).

Definition at line 210 of file Generic2D.h.

210  {
211  return m_rep->GetSum();
212  }

◆ sumBinHeights()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::sumBinHeights
override

Get the sum of in range bin heights in the IProfile.

Definition at line 205 of file Generic2D.h.

205  {
206  return m_rep->GetSumOfWeights();
207  }

◆ sumExtraBinHeights()

template<class INTERFACE , class IMPLEMENTATION >
double Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::sumExtraBinHeights ( ) const
inlineoverride

Get the sum of the underflow and overflow bin height.

Definition at line 94 of file Generic2D.h.

94 { return sumAllBinHeights() - sumBinHeights(); }

◆ title()

template<class INTERFACE , class IMPLEMENTATION >
std::string Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::title ( ) const
inlineoverride

Get the title of the object.

Definition at line 62 of file Generic2D.h.

62 { return m_annotation.value( "Title" ); }

◆ userLevelClassType()

template<class INTERFACE , class IMPLEMENTATION >
const std::string& Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::userLevelClassType ( ) const
inline

The AIDA user-level unterface leaf class type.

Definition at line 144 of file Generic2D.h.

144 { return m_classType; }

◆ write() [1/2]

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::write ( const char *  file_name) const
overridevirtual

Write (ASCII) the histogram table into a file.

Implements Gaudi::HistogramBase.

Definition at line 358 of file Generic2D.h.

358  {
359  TFile* f = TFile::Open( file_name, "RECREATE" );
360  Int_t nbytes = m_rep->Write();
361  f->Close();
362  return nbytes;
363  }

◆ write() [2/2]

template<class INTERFACE , class IMPLEMENTATION >
std::ostream & Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::write ( std::ostream s) const
overridevirtual

Write (ASCII) the histogram table into the output stream.

Implements Gaudi::HistogramBase.

Definition at line 343 of file Generic2D.h.

343  {
344  s << std::endl << "2D Histogram Table: " << std::endl;
345  s << "BinX, BinY, Height, Error " << std::endl;
346  for ( int i = 0; i < xAxis().bins(); ++i ) {
347  for ( int j = 0; j < yAxis().bins(); ++j ) {
348  s << binMeanX( i, j ) << ", " << binMeanY( i, j ) << ", " << binHeight( i, j ) << ", " << binError( i, j )
349  << std::endl;
350  }
351  }
352  s << std::endl;
353  return s;
354  }

◆ xAxis()

template<class INTERFACE , class IMPLEMENTATION >
const AIDA::IAxis& Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::xAxis ( ) const
inlineoverride

Return the X axis.

Definition at line 75 of file Generic2D.h.

75 { return m_xAxis; }

◆ yAxis()

template<class INTERFACE , class IMPLEMENTATION >
const AIDA::IAxis& Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::yAxis ( ) const
inlineoverride

Return the Y axis.

Definition at line 77 of file Generic2D.h.

77 { return m_yAxis; }

Member Data Documentation

◆ m_annotation

template<class INTERFACE , class IMPLEMENTATION >
AIDA::Annotation Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_annotation
mutableprotected

Object annotations.

Definition at line 160 of file Generic2D.h.

◆ m_classType

template<class INTERFACE , class IMPLEMENTATION >
std::string Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_classType
protected

class type

Definition at line 164 of file Generic2D.h.

◆ m_rep

template<class INTERFACE , class IMPLEMENTATION >
std::unique_ptr<IMPLEMENTATION> Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_rep
protected

Reference to underlying implementation.

Definition at line 162 of file Generic2D.h.

◆ m_sumEntries

template<class INTERFACE , class IMPLEMENTATION >
int Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_sumEntries = 0
protected

cache sumEntries (allEntries) when setting contents since Root can't compute by himself

Definition at line 166 of file Generic2D.h.

◆ m_xAxis

template<class INTERFACE , class IMPLEMENTATION >
Axis Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_xAxis
protected

X axis member.

Definition at line 156 of file Generic2D.h.

◆ m_yAxis

template<class INTERFACE , class IMPLEMENTATION >
Axis Gaudi::Generic2D< INTERFACE, IMPLEMENTATION >::m_yAxis
protected

Y axis member.

Definition at line 158 of file Generic2D.h.


The documentation for this class was generated from the following file:
Gaudi::Generic2D::Base
Generic2D< INTERFACE, IMPLEMENTATION > Base
Definition: Generic2D.h:48
Gaudi::Generic2D::binMeanX
double binMeanX(int indexX, int indexY) const override
The weighted mean along x of a given bin.
Definition: Generic2D.h:220
Gaudi::Generic2D::xAxis
const AIDA::IAxis & xAxis() const override
Return the X axis.
Definition: Generic2D.h:75
gaudirun.s
string s
Definition: gaudirun.py:346
Gaudi::Generic2D::m_annotation
AIDA::Annotation m_annotation
Object annotations.
Definition: Generic2D.h:160
std::unique_ptr::get
T get(T... args)
Gaudi::Generic2D::rIndexY
virtual int rIndexY(int index) const
operator methods
Definition: Generic2D.h:81
Gaudi::Generic2D::rIndexX
virtual int rIndexX(int index) const
operator methods
Definition: Generic2D.h:79
Gaudi::Generic2D::setTitle
bool setTitle(const std::string &title) override
Set the title of the object.
Definition: Generic2D.h:170
std::unique_ptr::reset
T reset(T... args)
Gaudi::Generic2D::binMeanY
double binMeanY(int indexX, int indexY) const override
The weighted mean along y of a given bin.
Definition: Generic2D.h:225
Gaudi::Generic2D::annotation
AIDA::IAnnotation & annotation() override
Access annotation object.
Definition: Generic2D.h:70
Gaudi::Generic2D::binEntries
int binEntries(int indexX, int indexY) const override
The number of entries (ie the number of times fill was called for this bin).
ProduceConsume.j
j
Definition: ProduceConsume.py:104
Gaudi::Generic2D::m_yAxis
Axis m_yAxis
Y axis member.
Definition: Generic2D.h:158
std::string::c_str
T c_str(T... args)
Gaudi::Axis::initialize
void initialize(TAxis *itaxi, bool)
Definition: Axis.h:63
Gaudi::Generic2D::m_classType
std::string m_classType
class type
Definition: Generic2D.h:164
AIDA::Annotation::value
std::string value(const std::string &key) const override
Retrieve the value for a given key.
Definition: Annotation.h:108
std::runtime_error
STL class.
Gaudi::Generic2D::sumAllBinHeights
double sumAllBinHeights() const override
Get the sum of all the bins heights (including underflow and overflow bin).
Definition: Generic2D.h:210
Gaudi::Generic2D::yAxis
const AIDA::IAxis & yAxis() const override
Return the Y axis.
Definition: Generic2D.h:77
Gaudi::Generic2D::m_xAxis
Axis m_xAxis
X axis member.
Definition: Generic2D.h:156
Gaudi::Generic2D::title
std::string title() const override
Get the title of the object.
Definition: Generic2D.h:62
cpluginsvc.n
n
Definition: cpluginsvc.py:234
Gaudi::Generic2D::m_rep
std::unique_ptr< IMPLEMENTATION > m_rep
Reference to underlying implementation.
Definition: Generic2D.h:162
std::endl
T endl(T... args)
Gaudi::Generic2D::binHeight
double binHeight(int indexX, int indexY) const override
Total height of the corresponding bin (ie the sum of the weights in this bin).
Definition: Generic2D.h:244
Gaudi::Generic2D::m_sumEntries
int m_sumEntries
cache sumEntries (allEntries) when setting contents since Root can't compute by himself
Definition: Generic2D.h:166
Gaudi::Generic2D::binError
double binError(int indexX, int indexY) const override
The error on this bin.
Definition: Generic2D.h:263
Gaudi::Generic2D::sumBinHeights
double sumBinHeights() const override
Get the sum of in range bin heights in the IProfile.
Definition: Generic2D.h:205
AIDA::Annotation::setValue
void setValue(const std::string &key, const std::string &value) override
Set value for a given key.
Definition: Annotation.h:113
Gaudi::ParticleProperties::index
size_t index(const Gaudi::ParticleProperty *property, const Gaudi::Interfaces::IParticlePropertySvc *service)
helper utility for mapping of Gaudi::ParticleProperty object into non-negative integral sequential id...
Definition: IParticlePropertySvc.cpp:39
Gaudi::Axis::rIndex
int rIndex(int index) const
Convert a AIDA bin number on the axis to the ROOT bin number.
Definition: Axis.h:49