| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
Gaudi::Generic1D< INTERFACE, IMPLEMENTATION > Class Template Reference

Common AIDA implementation stuff for histograms and profiles using ROOT implementations. More...

`#include <GaudiPI/Generic1D.h>`

Inheritance diagram for Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >:
[legend]
Collaboration diagram for Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >:
[legend]

## Public Types
typedef Generic1D< INTERFACE, IMPLEMENTATION > | Base

## Public Member Functions
| Generic1D ()
| Default constructor.
virtual | ~Generic1D ()
| Default destructor.
virtual const std::string & | userLevelClassType () const
| The AIDA user-level unterface leaf class type.
virtual void * | cast (const std::string &cl) const
| Manual cast by class name.
TObject * | representation () const
| ROOT object implementation.
virtual void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation.
virtual std::string | title () const
| Get the title of the object.
virtual bool | setTitle (const std::string &title)
| Set the title of the object.
std::string | name () const
| object name
bool | setName (const std::string &newName)
| Set the name of the object.
virtual AIDA::IAnnotation & | annotation ()
| Access annotation object.
virtual const AIDA::IAnnotation & | annotation () const
| Access annotation object (cons)
Axis & | axis ()
| Access to axis object.
const Axis & | axis () const
| Get the x axis of the IHistogram1D.
virtual int | entries () const
| Get the number or all the entries.
virtual int | allEntries () const
| Get the number or all the entries, both in range and underflow/overflow bins of the IProfile.
virtual int | extraEntries () const
| Get the number of entries in the underflow and overflow bins.
virtual int | binEntries (int index) const
| Number of entries in the corresponding bin (ie the number of times fill was called for this bin).
virtual double | binRms (int index) const
virtual double | sumBinHeights () const
| Get the sum of in range bin heights in the IProfile.
virtual double | sumAllBinHeights () const
| Get the sum of all the bins heights (including underflow and overflow bin).
virtual double | sumExtraBinHeights () const
| Get the sum of the underflow and overflow bin height.
virtual double | minBinHeight () const
| Get the minimum height of the in-range bins.
virtual double | maxBinHeight () const
| Get the maximum height of the in-range bins.
virtual double | equivalentBinEntries () const
| Number of equivalent entries, i.e. `SUM[ weight ] ^ 2 / SUM[ weight^2 ]`
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.
virtual bool | reset ()
| Reset the Histogram; as if just created.
virtual bool | add (const INTERFACE &profile)
| Modifies this IProfile1D by adding the contents of profile to it.
virtual int | rIndex (int index) const
| operator methods
virtual double | binMean (int index) const
| The weighted mean of a bin.
virtual double | binHeight (int index) const
| Total height of the corresponding bin (ie the sum of the weights in this bin).
virtual double | binError (int index) const
| The error of a given bin.
virtual double | mean () const
| The mean of the whole IHistogram1D.
virtual double | rms () const
| The RMS of the whole IHistogram1D.
virtual int | coordToIndex (double coord) const
| Get the bin number corresponding to a given coordinate along the x axis.
virtual int | dimension () const
| Get the Histogram's dimension.
virtual std::ostream & | print (std::ostream &s) const
| Print (ASCII) the histogram into the output stream.
virtual std::ostream & | write (std::ostream &s) const
| Write (ASCII) the histogram table into the output stream.
virtual int | write (const char *file_name) const
| Write (ASCII) the histogram table into a file.
template<>
void * | cast (const std::string &className) const
template<>
int | binEntries (int index) const
template<>
void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation.
template<>
int | binEntries (int index) const
template<>
void * | cast (const std::string &className) const
template<>
void | adoptRepresentation (TObject *rep)
| Adopt ROOT histogram representation.
Public Member Functions inherited from Gaudi::HistogramBase
virtual | ~HistogramBase ()

## Protected Attributes
Axis | m_axis
| Axis member.
AIDA::Annotation | m_annotation
| Object annotations.
IMPLEMENTATION * | m_rep
| Reference to underlying implementation.
std::string | m_classType
int | m_sumEntries

## Detailed Description

### template<class INTERFACE, class IMPLEMENTATION>
class Gaudi::Generic1D< 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 29 of file Generic1D.h.

## Member Typedef Documentation

template<class INTERFACE, class IMPLEMENTATION>

typedef Generic1D<INTERFACE,IMPLEMENTATION> Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::Base

Definition at line 31 of file Generic1D.h.

## Constructor & Destructor Documentation

template<class INTERFACE, class IMPLEMENTATION>

Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::Generic1D | ( |  | ) |
| inline

Default constructor.

Definition at line 33 of file Generic1D.h.

: m_rep(0) {}
template<class INTERFACE, class IMPLEMENTATION>

virtual Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::~Generic1D | ( |  | ) |
| inline virtual

Default destructor.

Definition at line 35 of file Generic1D.h.

{ delete m_rep; }

## Member Function Documentation

template<class INTERFACE, class IMPLEMENTATION >

bool Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::add | ( | const INTERFACE & | profile | ) |
| virtual

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

Definition at line 190 of file Generic1D.h.

{
const Generic1D<INTERFACE,IMPLEMENTATION>* p =
dynamic_cast<const Generic1D<INTERFACE,IMPLEMENTATION>*>(&h);
if ( p ) {
m_rep->Add(p->m_rep);
return true;
}
throw std::runtime_error("Cannot add profile histograms of different implementations.");
}
template<class INTERFACE, class IMPLEMENTATION>

virtual void Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::adoptRepresentation | ( | TObject * | rep | ) |
| virtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Reimplemented in Gaudi::Histogram1D.

template<>

void Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::adoptRepresentation | ( | TObject * | rep | ) |
| virtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Definition at line 49 of file H1D.cpp.

{
TH1D* imp = dynamic_cast<TH1D*>(rep);
if ( imp ) {
if ( m_rep ) delete m_rep;
m_rep = imp;
return;
}
throw std::runtime_error("Cannot adopt native histogram representation.");
}
template<>

void Gaudi::Generic1D< AIDA::IProfile1D, TProfile >::adoptRepresentation | ( | TObject * | rep | ) |
| virtual

Adopt ROOT histogram representation.

Implements Gaudi::HistogramBase.

Definition at line 59 of file P1D.cpp.

{
TProfile* imp = dynamic_cast<TProfile*>(rep);
if ( imp ) {
if ( m_rep ) delete m_rep;
m_rep = imp;
m_axis.initialize(m_rep->GetXaxis(),true);
const TArrayD* a = m_rep->GetSumw2();
if ( 0 == a || (a && a->GetSize()==0) ) m_rep->Sumw2();
setTitle(m_rep->GetTitle());
return;
}
throw std::runtime_error("Cannot adopt native histogram representation.");
}
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::allEntries | ( |  | ) | const
| inline virtual

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

Definition at line 64 of file Generic1D.h.

{ return int(m_rep->GetEntries()); }
template<class INTERFACE, class IMPLEMENTATION>

virtual AIDA::IAnnotation& Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::annotation | ( |  | ) |
| inline virtual

Access annotation object.

Definition at line 53 of file Generic1D.h.

{ return m_annotation; }
template<class INTERFACE, class IMPLEMENTATION>

virtual const AIDA::IAnnotation& Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::annotation | ( |  | ) | const
| inline virtual

Access annotation object (cons)

Definition at line 55 of file Generic1D.h.

{ return m_annotation; }
template<class INTERFACE, class IMPLEMENTATION>

Axis& Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::axis | ( |  | ) |
| inline

Access to axis object.

Definition at line 57 of file Generic1D.h.

{ return m_axis; }
template<class INTERFACE, class IMPLEMENTATION>

const Axis& Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::axis | ( |  | ) | const
| inline

Get the x axis of the IHistogram1D.

Definition at line 59 of file Generic1D.h.

{ return m_axis; }
template<>

int Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::binEntries | ( | int | index | ) | const

Definition at line 42 of file H1D.cpp.

{
if (binHeight(index)<=0) return 0;
double xx = binHeight(index)/binError(index);
return int(xx*xx+0.5);
}
template<>

int Gaudi::Generic1D< AIDA::IProfile1D, TProfile >::binEntries | ( | int | index | ) | const

Definition at line 44 of file P1D.cpp.

{
return int(m_rep->GetBinEntries( rIndex(index) )+0.5);
}
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::binEntries | ( | int | index | ) | const
| virtual

Number of entries in the corresponding bin (ie the number of times fill was called for this bin).

template<class INTERFACE , class IMPLEMENTATION >

double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::binError | ( | int | index | ) | const
| virtual

The error of a given bin.

Definition at line 159 of file Generic1D.h.

{
return m_rep->GetBinError ( rIndex(index) );
}
template<class INTERFACE , class IMPLEMENTATION >

double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::binHeight | ( | int | index | ) | const
| virtual

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

Definition at line 154 of file Generic1D.h.

{
return m_rep->GetBinContent ( rIndex(index) );
}
template<class INTERFACE , class IMPLEMENTATION >

double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::binMean | ( | int | index | ) | const
| virtual

The weighted mean of a bin.

Definition at line 149 of file Generic1D.h.

{
return m_rep->GetBinCenter ( rIndex(index) );
}
template<class INTERFACE , class IMPLEMENTATION >

double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::binRms | ( | int | index | ) | const
| virtual

Definition at line 144 of file Generic1D.h.

{
return m_rep->GetBinError ( rIndex(index) );
}
template<>

void * Gaudi::Generic1D< AIDA::IHistogram1D, TH1D >::cast | ( | const std::string & | className | ) | const

Definition at line 34 of file H1D.cpp.

{
if (className == "AIDA::IHistogram1D")
return const_cast<AIDA::IHistogram1D*>((AIDA::IHistogram1D*)this);
if (className == "AIDA::IHistogram")
return const_cast<AIDA::IHistogram*>((AIDA::IHistogram*)this);
return 0;
}
template<class INTERFACE, class IMPLEMENTATION>

virtual void* Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::cast | ( | const std::string & | cl | ) | const
| virtual

Manual cast by class name.

template<>

void * Gaudi::Generic1D< AIDA::IProfile1D, TProfile >::cast | ( | const std::string & | className | ) | const

Definition at line 48 of file P1D.cpp.

{
if (className == "AIDA::IProfile1D")
return const_cast<AIDA::IProfile1D*>((AIDA::IProfile1D*)this);
else if (className == "AIDA::IProfile")
return const_cast<AIDA::IProfile*>((AIDA::IProfile*)this);
else if (className == "AIDA::IBaseHistogram")
return const_cast<AIDA::IBaseHistogram*>((AIDA::IBaseHistogram*)this);
return 0;
}
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::coordToIndex | ( | double | coord | ) | const
| inline virtual

Get the bin number corresponding to a given coordinate along the x axis.

Definition at line 103 of file Generic1D.h.

{ return axis().coordToIndex(coord);}
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::dimension | ( |  | ) | const
| inline virtual

Get the Histogram's dimension.

Definition at line 105 of file Generic1D.h.

{ return 1; }
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::entries | ( |  | ) | const
| inline virtual

Get the number or all the entries.

Definition at line 62 of file Generic1D.h.

{ return (int)m_rep->GetEntries(); }
template<class INTERFACE , class IMPLEMENTATION >

double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::equivalentBinEntries | ( |  | ) | const
| virtual

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

Definition at line 176 of file Generic1D.h.

{
if (sumBinHeights() <= 0) return 0;
Stat_t stats[11]; // cover up to 3D...
m_rep->GetStats(stats);
return stats[0]*stats[0]/stats[1];
}
template<class INTERFACE , class IMPLEMENTATION >

int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::extraEntries | ( |  | ) | const
| virtual

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

Definition at line 164 of file Generic1D.h.

{
return binEntries(AIDA::IAxis::UNDERFLOW_BIN) +
binEntries(AIDA::IAxis::OVERFLOW_BIN);
}
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::maxBinHeight | ( |  | ) | const
| inline virtual

Get the maximum height of the in-range bins.

Definition at line 80 of file Generic1D.h.

{ return m_rep->GetMaximum(); }
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::mean | ( |  | ) | const
| inline virtual

The mean of the whole IHistogram1D.

Definition at line 99 of file Generic1D.h.

{ return m_rep->GetMean(); }
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::minBinHeight | ( |  | ) | const
| inline virtual

Get the minimum height of the in-range bins.

Definition at line 78 of file Generic1D.h.

{ return m_rep->GetMinimum(); }
template<class INTERFACE, class IMPLEMENTATION>

std::string Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::name | ( |  | ) | const
| inline

object name

Definition at line 49 of file Generic1D.h.

{ return m_annotation.value("Name"); }
template<class INTERFACE , class IMPLEMENTATION >

std::ostream & Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::print | ( | std::ostream & | s | ) | const
| virtual

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 201 of file Generic1D.h.

{
m_rep->Print("all");
return s;
}
template<class INTERFACE, class IMPLEMENTATION>

TObject* Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::representation | ( |  | ) | const
| inline virtual

ROOT object implementation.

Implements Gaudi::HistogramBase.

Definition at line 41 of file Generic1D.h.

{ return m_rep; }
template<class INTERFACE , class IMPLEMENTATION >

bool Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::reset | ( |  | ) |
| virtual

Reset the Histogram; as if just created.

Reimplemented in Gaudi::Histogram1D.

Definition at line 169 of file Generic1D.h.

{
m_sumEntries = 0;
m_rep->Reset();
return true;
}
template<class INTERFACE, class IMPLEMENTATION>

virtual int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::rIndex | ( | int | index | ) | const
| inline virtual

operator methods

Definition at line 91 of file Generic1D.h.

{ return m_axis.rIndex(index);}
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::rms | ( |  | ) | const
| inline virtual

The RMS of the whole IHistogram1D.

Definition at line 101 of file Generic1D.h.

{ return m_rep->GetRMS(); }
template<class INTERFACE , class IMPLEMENTATION >

bool Gaudi::Generic1D< 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 184 of file Generic1D.h.

{
m_rep->Scale ( scaleFactor );
return true;
}
template<class INTERFACE , class IMPLEMENTATION >

bool Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::setName | ( | const std::string & | newName | ) |

Set the name of the object.

Definition at line 137 of file Generic1D.h.

{
m_rep->SetName(newName.c_str());
m_annotation.setValue( "Name", newName );
return true;
}
template<class INTERFACE , class IMPLEMENTATION >

bool Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::setTitle | ( | const std::string & | title | ) |
| virtual

Set the title of the object.

Definition at line 127 of file Generic1D.h.

{
m_rep->SetTitle(title.c_str());
if ( !annotation().addItem( "Title", title ) )
m_annotation.setValue( "Title" , title );
if ( !annotation().addItem( "title", title ) )
annotation().setValue( "title", title );
return true;
}
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::sumAllBinHeights | ( |  | ) | const
| inline virtual

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

Definition at line 74 of file Generic1D.h.

{ return m_rep->GetSum(); }
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::sumBinHeights | ( |  | ) | const
| inline virtual

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

Definition at line 72 of file Generic1D.h.

{ return m_rep->GetSumOfWeights(); }
template<class INTERFACE, class IMPLEMENTATION>

virtual double Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::sumExtraBinHeights | ( |  | ) | const
| inline virtual

Get the sum of the underflow and overflow bin height.

Definition at line 76 of file Generic1D.h.

{ return sumAllBinHeights()-sumBinHeights(); }
template<class INTERFACE, class IMPLEMENTATION>

virtual std::string Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::title | ( |  | ) | const
| inline virtual

Get the title of the object.

Definition at line 45 of file Generic1D.h.

{ return m_annotation.value("Title"); }
template<class INTERFACE, class IMPLEMENTATION>

virtual const std::string& Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::userLevelClassType | ( |  | ) | const
| inline virtual

The AIDA user-level unterface leaf class type.

Definition at line 37 of file Generic1D.h.

{ return m_classType; }
template<class INTERFACE , class IMPLEMENTATION >

std::ostream & Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::write | ( | std::ostream & | s | ) | const
| virtual

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

Implements Gaudi::HistogramBase.

Definition at line 209 of file Generic1D.h.

{
s << "\n1D Histogram Table: " << std::endl;
s << "Bin, Height, Error " << std::endl;
for( int i = 0; i < axis().bins(); ++i )
s << binMean( i ) << ", "
<< binHeight( i ) << ", "
<< binError ( i ) << std::endl;
s << std::endl;
return s;
}
template<class INTERFACE , class IMPLEMENTATION >

int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::write | ( | const char * | file_name | ) | const
| virtual

Write (ASCII) the histogram table into a file.

Implements Gaudi::HistogramBase.

Definition at line 222 of file Generic1D.h.

{
TFile *f = TFile::Open(file_name,"RECREATE");
Int_t nbytes = m_rep->Write();
f->Close();
return nbytes;
}

## Member Data Documentation

template<class INTERFACE, class IMPLEMENTATION>

AIDA::Annotation Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::m_annotation
| mutable protected

Object annotations.

Definition at line 117 of file Generic1D.h.

template<class INTERFACE, class IMPLEMENTATION>

Axis Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::m_axis
| protected

Axis member.

Definition at line 115 of file Generic1D.h.

template<class INTERFACE, class IMPLEMENTATION>

std::string Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::m_classType
| protected

Definition at line 121 of file Generic1D.h.

template<class INTERFACE, class IMPLEMENTATION>

IMPLEMENTATION* Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::m_rep
| protected

Reference to underlying implementation.

Definition at line 119 of file Generic1D.h.

template<class INTERFACE, class IMPLEMENTATION>

int Gaudi::Generic1D< INTERFACE, IMPLEMENTATION >::m_sumEntries
| protected

Definition at line 123 of file Generic1D.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/HistogramSvc/Generic1D.h