| The Gaudi Framework v27r1

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

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

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
GaudiHistos< PBASE > Class Template Reference

Templated base class providing common histogramming methods for GaudiAlgorithm and GaudiTool like classes. More...

`#include <GaudiAlg/GaudiHistos.h>`

Inheritance diagram for GaudiHistos< PBASE >:
[legend]
Collaboration diagram for GaudiHistos< PBASE >:
[legend]

## Public Types
typedef GaudiAlg::HistoID | HistoID
| the actual type for histogram identifier More...
typedef GaudiAlg::Histo1DMapID | Histo1DMapID
| the actual type for (ID)->(1D histogram) mapping More...
typedef GaudiAlg::Histo1DMapTitle | Histo1DMapTitle
| the actual type for title->(1D histogram) mapping More...
typedef GaudiAlg::Histo2DMapID | Histo2DMapID
| the actual type for (ID)->(2D histogram) mapping More...
typedef GaudiAlg::Histo2DMapTitle | Histo2DMapTitle
| the actual type for title->(2D histogram) mapping More...
typedef GaudiAlg::Histo3DMapID | Histo3DMapID
| the actual type for (ID)->(3D histogram) mapping More...
typedef GaudiAlg::Histo3DMapTitle | Histo3DMapTitle
| the actual type for title->(3D histogram) mapping More...
typedef GaudiAlg::Profile1DMapID | Profile1DMapID
| the actual type for (ID)->(1D profile histogram) mapping More...
typedef GaudiAlg::Profile1DMapTitle | Profile1DMapTitle
| the actual type for title->(1D profile histogram) mapping More...
typedef GaudiAlg::Profile2DMapID | Profile2DMapID
| the actual type for (ID)->(2D profile histogram) mapping More...
typedef GaudiAlg::Profile2DMapTitle | Profile2DMapTitle
| the actual type for title->(2D profile histogram) mapping More...
typedef GaudiAlg::HistoBinEdges | HistoBinEdges
| Edges for variable binning. More...

## Public Member Functions
AIDA::IHistogram1D * | plot1D (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
| fill the 1D histogram (book on demand) More...
AIDA::IHistogram1D * | plot (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
| fill the 1D histogram (book on demand) More...
AIDA::IHistogram1D * | plot1D (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
| fill the 1D histogram (book on demand) More...
AIDA::IHistogram1D * | plot (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
| fill the 1D histogram (book on demand) More...
AIDA::IHistogram1D * | plot1D (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
| fill the 1D histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram1D * | plot (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
| fill the 1D histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram1D * | plot1D (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
| fill the 1D histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram1D * | plot (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
| fill the 1D histogram (book on demand) More...
template<class FUNCTION , class OBJECT >
AIDA::IHistogram1D * | plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins=100) const
| fill the 1D histogram with information from [first,last) sequence More...
template<class FUNCTION , class OBJECT >
AIDA::IHistogram1D * | plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100) const
| fill the 1D histogram with forced ID and information from [first,last) sequence More...
template<class FUNCTION , class OBJECT , class WEIGHT >
AIDA::IHistogram1D * | plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
| book and fill the 1D histogram with information from [first,last) sequence with given weight More...
template<class FUNCTION , class OBJECT , class WEIGHT >
AIDA::IHistogram1D * | plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
| book and fill the 1D histogram with forced ID and information from [first,last) sequence with given weight More...
AIDA::IHistogram1D * | plot1D (const double value, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
| Fill the 1D variable binning histogram (book on demand) More...
AIDA::IHistogram1D * | plot1D (const double value, const HistoID &ID, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
| fill the 1D variable binning histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram2D * | plot2D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
| fill the 2D histogram (book on demand) More...
AIDA::IHistogram2D * | plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
| fill the 2D histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram2D * | plot2D (const double valueX, const double valueY, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
| Fill the 2D variable binning histogram (book on demand) More...
AIDA::IHistogram2D * | plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
| fill the 2D variable histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram3D * | plot3D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
| fill the 3D histogram (book on demand) More...
AIDA::IHistogram3D * | plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
| fill the 3D histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram3D * | plot3D (const double valueX, const double valueY, const double valueZ, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ, const double weight=1.0) const
| Fill the 3D variable binning histogram (book on demand) More...
AIDA::IHistogram3D * | plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ, const double weight=1.0) const
| fill the 3D histogram with forced ID assignment (book on demand) More...
AIDA::IProfile1D * | profile1D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
| fill the 1D profile histogram (book on demand) More...
AIDA::IProfile1D * | profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
| fill the 1D profile histogram with forced ID assignment (book on demand) More...
AIDA::IProfile1D * | profile1D (const double valueX, const double valueY, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
| fill the 1D variable binning profile histogram (book on demand) More...
AIDA::IProfile1D * | profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
| fill the 1D variable binning profile histogram with forced ID assignment (book on demand) More...
AIDA::IProfile2D * | profile2D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
| fill the 2D profile histogram (book on demand) More...
AIDA::IProfile2D * | profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
| fill the 2D profile histogram with forced ID assignment (book on demand) More...
AIDA::IProfile2D * | profile2D (const double valueX, const double valueY, const double valueZ, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
| fill the 2D variable binning profile histogram (book on demand) More...
AIDA::IProfile2D * | profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
| fill the 2D variable binning profile histogram with forced ID assignment (book on demand) More...
AIDA::IHistogram1D * | book1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
| book the 1D histogram More...
AIDA::IHistogram1D * | book (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
| book the 1D histogram More...
AIDA::IHistogram1D * | book (const Gaudi::Histo1DDef &hdef) const
| book the 1D histogram More...
AIDA::IHistogram1D * | book1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
| book the 1D histogram with forced ID More...
AIDA::IHistogram1D * | book (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
| book the 1D histogram with forced ID More...
AIDA::IHistogram1D * | book (const HistoID &ID, const Gaudi::Histo1DDef &hdef) const
| book the 1D histogram with forced ID More...
AIDA::IHistogram1D * | book1D (const std::string &title, const HistoBinEdges &edges) const
| book the 1D variable binning histogram More...
AIDA::IHistogram1D * | book1D (const HistoID &ID, const std::string &title, const HistoBinEdges &edges) const
| book the 1D variable binning histogram with given ID More...
AIDA::IHistogram2D * | book2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
| book the 2D histogram More...
AIDA::IHistogram2D * | book2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
| book the 2D histogram with forced ID More...
AIDA::IHistogram2D * | book2D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
| book the 2D variable binning histogram More...
AIDA::IHistogram2D * | book2D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
| book the 2D variable binning histogram with given ID More...
AIDA::IHistogram3D * | book3D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
| book the 3D histogram More...
AIDA::IHistogram3D * | book3D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
| book the 3D histogram with forced ID More...
AIDA::IHistogram3D * | book3D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ) const
| book the 3D variable binning histogram More...
AIDA::IHistogram3D * | book3D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ) const
| book the 3D variable binning histogram with given ID More...
AIDA::IProfile1D * | bookProfile1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
| book the 1D profile histogram More...
AIDA::IProfile1D * | bookProfile1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
| book the 1D profile histogram More...
AIDA::IProfile1D * | bookProfile1D (const std::string &title, const HistoBinEdges &edges) const
| book the 1D profile histogram More...
AIDA::IProfile1D * | bookProfile1D (const HistoID &ID, const std::string &title, const HistoBinEdges &edges) const
| book the 1D profile histogram More...
AIDA::IProfile2D * | bookProfile2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
| book the 2D profile histogram More...
AIDA::IProfile2D * | bookProfile2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
| book the 2D profile histogram with forced ID More...
AIDA::IProfile2D * | bookProfile2D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
| book the 2D profile histogram More...
AIDA::IProfile2D * | bookProfile2D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
| book the 2D profile histogram with forced ID More...
AIDA::IHistogram1D * | fill (AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
| fill the 1D histogram with the value and weight More...
AIDA::IHistogram2D * | fill (AIDA::IHistogram2D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
| fill the 2D histogram with the value and weight More...
AIDA::IHistogram3D * | fill (AIDA::IHistogram3D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
| fill the 3D histogram with the value and weight More...
AIDA::IProfile1D * | fill (AIDA::IProfile1D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
| fill the 1D profile histogram with the values and weight More...
AIDA::IProfile2D * | fill (AIDA::IProfile2D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
| fill the 2D profile histogram with the values and weight More...
AIDA::IHistogram1D * | histo1D (const std::string &title) const
| access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL More...
AIDA::IHistogram1D * | histo (const std::string &title) const
| access the EXISTING 1D histogram by title More...
AIDA::IHistogram2D * | histo2D (const std::string &title) const
| access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL More...
AIDA::IHistogram3D * | histo3D (const std::string &title) const
| access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL More...
AIDA::IProfile1D * | profile1D (const std::string &title) const
| access the EXISTING 1D profile histogram by title return the pointer to existing 1D profile histogram or NULL More...
AIDA::IProfile2D * | profile2D (const std::string &title) const
| access the EXISTING 2D profile histogram by title return the pointer to existing 2D profile histogram or NULL More...
AIDA::IHistogram1D * | histo1D (const HistoID &ID) const
| access the EXISTING 1D histogram by ID return the pointer to existing 1D histogram or NULL More...
AIDA::IHistogram1D * | histo (const HistoID &ID) const
| access the EXISTING 1D histogram by ID More...
AIDA::IHistogram2D * | histo2D (const HistoID &ID) const
| access the EXISTING 2D histogram by ID return the pointer to existing 2D histogram or NULL More...
AIDA::IHistogram3D * | histo3D (const HistoID &ID) const
| access the EXISTING 3D histogram by ID return the pointer to existing 3D histogram or NULL More...
AIDA::IProfile1D * | profile1D (const HistoID &ID) const
| access the EXISTING 1D profile histogram by ID return the pointer to existing 1D profile histogram or NULL More...
AIDA::IProfile2D * | profile2D (const HistoID &ID) const
| access the EXISTING 2D profile histogram by ID return the pointer to existing 2D profile histogram or NULL More...
bool | histoExists (const std::string &title) const
| check the existence AND validity of the histogram with given title More...
bool | histoExists (const HistoID &ID) const
| check the existence AND validity of the histogram with given title More...
unsigned int | totalNumberOfHistos () const
| Returns the total number of histograms (of all types) currently booked. More...
bool | produceHistos () const
| get the flag for histogram production (property "HistoProduce") More...
bool | fullDetail () const
| get flag to control output level of histograms More...
bool | checkForNaN () const
| get the flag for NaN checks (property "HistoCheckForNan") More...
bool | splitHistoDir () const
| get the flag for histogram path split (property "HistoSplitDir") More...
HistoID::NumericID | histoOffSet () const
| get the value for histogram offset (property "HistoOffSet") More...
const std::string & | histoTopDir () const
| get top-level histogram directory (property "HistoTopDir") More...
const std::string & | histoDir () const
| get histogram directory (property "HistoDir") More...
std::string | histoPath () const
| get the constructed histogram path More...
bool | histosPrint () const
| print histograms at finalization ? More...
bool | histoCountersPrint () const
| print histogram counters at finalization ? More...
bool | useNumericAutoIDs () const
| Use old style sequencial numerical automatically assigned IDs ? More...
int | printHistos (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of histograms More...
const Histo1DMapTitle & | histo1DMapTitle () const
| get access to the map of all 1D histograms indexed via their title More...
const Histo1DMapID & | histo1DMapID () const
| get access to the map of all 1D histograms index via ID More...
const Histo2DMapTitle & | histo2DMapTitle () const
| get access to the map of all 2D histograms indexed via their title More...
const Histo2DMapID & | histo2DMapID () const
| get access to the map of 2D histograms index via ID More...
const Histo3DMapTitle & | histo3DMapTitle () const
| get access to the map of all 3D histograms indexed via their title More...
const Histo3DMapID & | histo3DMapID () const
| get access to the map of all 3D histograms index via a ID More...
const Profile1DMapTitle & | profile1DMapTitle () const
| get access to the map of all 1D profile histograms indexed via their title More...
const Profile1DMapID & | profile1DMapID () const
| get access to the map of 1D profile histograms index via a ID More...
const Profile2DMapTitle & | profile2DMapTitle () const
| get access to the map of all 2D profile histograms indexed via their title More...
const Profile2DMapID & | profile2DMapID () const
| get access to the map of 2D profile histograms index via a ID More...
void | setProduceHistos (const bool val)
| set the flag for histogram production (property "HistoProduce") More...
void | setFullDetail (const bool val)
| set flag to control output level of histograms More...
void | setCheckForNaN (const bool val)
| set the flag for NaN checks (property "HistoCheckForNan") More...
void | setSplitHistoDir (const bool val)
| set the flag for histogram path split (property "HistoSplitDir") More...
void | setHistoOffSet (const HistoID::NumericID val)
| set a value for histogram offset (property "HistoOffSet" More...
void | setHistoTopDir (const std::string &val)
| set top-level histogram directory (property "HistoTopDir") More...
void | setHistoDir (const std::string &val)
| set histogram directory (property "HistoDir") More...
| GaudiHistos (const std::string &name, ISvcLocator *pSvcLocator)
| Algorithm constructor. More...
| GaudiHistos (const std::string &type, const std::string &name, const IInterface *parent)
| Tool constructor. More...
| ~GaudiHistos () override=default
| Destructor. More...

## Protected Member Functions
StatusCode | initialize () override
| standard initialization method More...
StatusCode | finalize () override
| standard finalization method More...
std::string | convertTitleToID (std::string title) const
| Create an ID string from a title string. More...

## Private Member Functions
bool | noHistos () const
| Check if all histogram maps are empty. More...
void | initGaudiHistosConstructor ()
| Constructor initialisation and job options. More...
void | monitorHisto (const AIDA::IBaseHistogram *hist, const HistoID &ID) const
| Declare a histogram to the monitor service. More...
void | newHistoID (const std::string &title, HistoID &ID) const
| Create a new histogram ID using the given title. More...
void | printHistoHandler (Property &)
| the handler for "HistoPrint" property More...

## Private Attributes
bool | m_produceHistos
| flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking More...
bool | m_fullDetail
| flag to control output level of histograms More...
bool | m_checkForNaN
| flag to control check for Nan/Finite while filling the histogram More...
bool | m_splitHistoDir
| split histogram directory name (very useful for Hbook) More...
HistoID::NumericID | m_histoOffSet
| general histogram ID offset (only works for automatically assigned numeric IDs) More...
std::string | m_histoTopDir
| histogram top level directory More...
std::string | m_histoDir
| histogram directory More...
bool | m_histosPrint
| print histograms at finalization More...
bool | m_histoCountersPrint
| print histogram counters at finalization More...
bool | m_declareMoniHists
| Flag to turn on/off the registration of histograms to the Monitoring Service. More...
Histo1DMapTitle | m_histo1DMapTitle
| the actual storage/access of 1D histograms by unique title More...
Histo1DMapID | m_histo1DMapID
| the actual storage/access of 1D histograms by unique ID More...
Histo2DMapTitle | m_histo2DMapTitle
| the actual storage/access of 2D histograms by unique title More...
Histo2DMapID | m_histo2DMapID
| the actual storage/access of 2D histograms by unique ID More...
Histo3DMapTitle | m_histo3DMapTitle
| the actual storage/access of 3D histograms by unique title More...
Histo3DMapID | m_histo3DMapID
| the actual storage/access of 3D histograms by unique ID More...
Profile1DMapTitle | m_profile1DMapTitle
| the actual storage/access of 1D profile histograms by unique title More...
Profile1DMapID | m_profile1DMapID
| the actual storage/access of 1D profile histograms by unique ID More...
Profile2DMapTitle | m_profile2DMapTitle
| the actual storage/access of 2D profile histograms by unique title More...
Profile2DMapID | m_profile2DMapID
| the actual storage/access of 2D profile histograms by unique ID More...
std::string | m_histo1DTableFormat
| format for printout of 1D-histograms as a table More...
std::string | m_histo1DTableFormatShort
| format for printout of 1D-histograms as a table More...
std::string | m_histo1DTableHeader
| the header for the table of 1-D historgrams More...
bool | m_useNumericAutoIDs
| Flag to switch back to the old style sequencial numerical automatic IDs. More...
std::map< std::string, std::string > | m_idReplaceInfo
| Map of strings to search and replace when using the title as the basis of automatically generated literal IDs. More...

## Detailed Description

### template<class PBASE>
class GaudiHistos< PBASE >

Templated base class providing common histogramming methods for GaudiAlgorithm and GaudiTool like classes.

Author
  Chris Jones Chris.nosp@m.toph.nosp@m.er.Ro.nosp@m.b.Jo.nosp@m.nes@c.nosp@m.ern..nosp@m.ch
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@i.nosp@m.tep..nosp@m.ru

Date
  2005-08-08

Definition at line 48 of file GaudiHistos.h.

## Member Typedef Documentation

template<class PBASE>

typedef GaudiAlg::Histo1DMapID GaudiHistos< PBASE >::Histo1DMapID

the actual type for (ID)->(1D histogram) mapping

Definition at line 56 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Histo1DMapTitle GaudiHistos< PBASE >::Histo1DMapTitle

the actual type for title->(1D histogram) mapping

Definition at line 58 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Histo2DMapID GaudiHistos< PBASE >::Histo2DMapID

the actual type for (ID)->(2D histogram) mapping

Definition at line 61 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Histo2DMapTitle GaudiHistos< PBASE >::Histo2DMapTitle

the actual type for title->(2D histogram) mapping

Definition at line 63 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Histo3DMapID GaudiHistos< PBASE >::Histo3DMapID

the actual type for (ID)->(3D histogram) mapping

Definition at line 66 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Histo3DMapTitle GaudiHistos< PBASE >::Histo3DMapTitle

the actual type for title->(3D histogram) mapping

Definition at line 68 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::HistoBinEdges GaudiHistos< PBASE >::HistoBinEdges

Edges for variable binning.

Definition at line 81 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::HistoID GaudiHistos< PBASE >::HistoID

the actual type for histogram identifier

Definition at line 53 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Profile1DMapID GaudiHistos< PBASE >::Profile1DMapID

the actual type for (ID)->(1D profile histogram) mapping

Definition at line 71 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Profile1DMapTitle GaudiHistos< PBASE >::Profile1DMapTitle

the actual type for title->(1D profile histogram) mapping

Definition at line 73 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Profile2DMapID GaudiHistos< PBASE >::Profile2DMapID

the actual type for (ID)->(2D profile histogram) mapping

Definition at line 76 of file GaudiHistos.h.

template<class PBASE>

typedef GaudiAlg::Profile2DMapTitle GaudiHistos< PBASE >::Profile2DMapTitle

the actual type for title->(2D profile histogram) mapping

Definition at line 78 of file GaudiHistos.h.

## Constructor & Destructor Documentation

template<class PBASE>

GaudiHistos< PBASE >::GaudiHistos | ( | const std::string & | name,
|  | ISvcLocator * | pSvcLocator
| ) |  |

Algorithm constructor.

template<class PBASE>

GaudiHistos< PBASE >::GaudiHistos | ( | const std::string & | type,
|  | const std::string & | name,
|  | const IInterface * | parent
| ) |  |

Tool constructor.

template<class PBASE>

GaudiHistos< PBASE >::~GaudiHistos | ( |  | ) |
| override default

Destructor.

## Member Function Documentation

template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::book | ( | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`
| ) |  | const
| inline

book the 1D histogram

Wrapper method for the equivalent book1D method. Retained for backwards compatibility, please use book1D instead.

See also
  IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins

Returns
  pointer to AIDA 1D histogram

Definition at line 2029 of file GaudiHistos.h.

2033 {
2034 return book1D( title, low, high, bins );
2035 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book | ( | const Gaudi::Histo1DDef & | hdef | ) | const

book the 1D histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IHistogram1D

Parameters

  hdef | histogram description/definition

Returns
  pointer to AIDA 1D histogram

Definition at line 186 of file GaudiHistos_1DFixedBinning.icpp.

187 {
188 return book1D ( hdef.title () ,
189 hdef.lowEdge () ,
190 hdef.highEdge () ,
191 hdef.bins () ) ;
192 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
Gaudi::Histo1DDef::highEdge
double highEdge() const
get the high edge
Definition: HistoDef.h:66
Gaudi::Histo1DDef::lowEdge
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
Gaudi::Histo1DDef::title
const std::string & title() const
get the title
Definition: HistoDef.h:70
Gaudi::Histo1DDef::bins
int bins() const
get the number of bins
Definition: HistoDef.h:68
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::book | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`
| ) |  | const
| inline

book the 1D histogram with forced ID

Wrapper method for the equivalent book1D method. Retained for backwards compatibility, please use book1D instead.

See also
  IHistogram1D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins

Returns
  pointer to AIDA histogram

Definition at line 2079 of file GaudiHistos.h.

2084 {
2085 return book1D( ID, title, low, high, bins );
2086 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book | ( | const HistoID & | ID,
|  | const Gaudi::Histo1DDef & | hdef
| ) |  | const
| inline

book the 1D histogram with forced ID

See also
  IHistogram1D

Parameters

  ID | unique histogram ID
  hdef | histogram descriptor

Returns
  pointer to AIDA histogram

Definition at line 199 of file GaudiHistos_1DFixedBinning.icpp.

201 {
202 return book1D ( ID ,
203 hdef.title () ,
204 hdef.lowEdge () ,
205 hdef.highEdge () ,
206 hdef.bins () ) ;
207 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
Gaudi::Histo1DDef::highEdge
double highEdge() const
get the high edge
Definition: HistoDef.h:66
Gaudi::Histo1DDef::lowEdge
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
Gaudi::Histo1DDef::title
const std::string & title() const
get the title
Definition: HistoDef.h:70
Gaudi::Histo1DDef::bins
int bins() const
get the number of bins
Definition: HistoDef.h:68
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book1D | ( | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`
| ) |  | const

book the 1D histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins

Returns
  pointer to AIDA 1D histogram

Definition at line 8 of file GaudiHistos_1DFixedBinning.icpp.

12 {
13 //
14 if ( !produceHistos() ) { return nullptr ; } // RETURN
15 //
16 // exist?
17 auto hist = histo1D ( title ) ;
18 // histogram is already booked
19 if( hist ) { return hist ; } // RETURN !!
20
21 // propose the histogram ID
22 HistoID ID;
23 newHistoID( title, ID );
24
25 // Create a new histogram and return
26 return this -> book1D ( ID, title, low, high, bins );
27 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book1D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`
| ) |  | const

book the 1D histogram with forced ID

See also
  IHistogram1D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins

Returns
  pointer to AIDA histogram

Definition at line 33 of file GaudiHistos_1DFixedBinning.icpp.

38 {
39 //
40 if ( !produceHistos() ) { return nullptr ; } // RETURN
41 //
42
43 // Check ID
44 if ( ID.undefined() )
45 {
46 this->Error("Undefined Histogram ID : Title='"+title+"'");
47 return nullptr;
48 }
49
50 // exist?
51 auto* hist = histo1D ( ID ) ;
52 // histogram is already booked
53 if ( hist ) { return hist ; } // RETURN !!
54
55 // Histogram title
56 const std::string & htitle =
57 ( title.empty() ? "Unnamed 1D Histogram ID="+ID.idAsString() : title ) ;
58
59 // book the histogram
60 if ( ID.numeric() )
61 {
62 hist = this->histoSvc() -> book ( histoPath() ,
63 ID.numericID() ,
64 htitle ,
65 bins ,
66 low ,
67 high ) ;
68 }
69 else if ( ID.literal() )
70 {
71 hist = this->histoSvc() -> book ( histoPath()+"/"+
72 ID.literalID() ,
73 htitle ,
74 bins ,
75 low ,
76 high ) ;
77 }
78
79 // check OK
80 if( !hist )
81 { this->Error( "IHistogram1D* points to NULL! ID='" + ID.idAsString() +
82 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
83
84 // add histogram into histogram storages
85 m_histo1DMapID [ ID ] = hist ;
86 m_histo1DMapTitle [ title ] = hist ;
87
88 // Declare to monitoring service
89 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
90
91 // Printout and return
92 if ( this->msgLevel(MSG::DEBUG) )
93 { this->debug() << "Booked 1D Histogram : ID='" << ID
94 << "' Path=" << histoPath()
95 << " Title='"
96 << Gaudi::Utils::Histos::htitle ( hist )
97 << "'" << endmsg; }
98 return hist ;
99 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::m_histo1DMapID
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::m_histo1DMapTitle
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book1D | ( | const std::string & | title,
|  | const HistoBinEdges & | edges
| ) |  | const

book the 1D variable binning histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges

Returns
  pointer to AIDA 1D histogram

Definition at line 8 of file GaudiHistos_1DVariableBinning.icpp.

10 {
11 //
12 if ( !produceHistos() ) { return nullptr ; } // RETURN
13 //
14 // exist?
15 auto hist = histo1D ( title ) ;
16 // histogram is already booked
17 if( hist ) { return hist ; } // RETURN !!
18
19 // propose the histogram ID
20 HistoID ID;
21 newHistoID( title, ID );
22
23 // Create a new histogram and return
24 return this -> book1D ( ID, title, edges );
25 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::book1D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges
| ) |  | const

book the 1D variable binning histogram with given ID

See also
  AIDA::IHistogram1D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges

Returns
  pointer to AIDA 1D histogram

Definition at line 31 of file GaudiHistos_1DVariableBinning.icpp.

34 {
35 //
36 if ( !produceHistos() ) { return nullptr ; } // RETURN
37 //
38 // Check ID
39 if (ID.undefined())
40 {
41 this->Error("Undefined Histogram ID : Title='"+title+"'");
42 return nullptr;
43 }
44
45 // exist?
46 auto hist = histo1D ( ID ) ;
47 // histogram is already booked
48 if ( hist ) { return hist ; } // RETURN !!
49
50 // Histogram title
51 const std::string & htitle =
52 ( title.empty() ? "Unnamed 1D Histogram ID="+ID.idAsString() : title ) ;
53
54 // book the histogram
55 if ( ID.numeric() )
56 {
57 hist = this->histoSvc() -> book ( histoPath() ,
58 ID.numericID() ,
59 htitle ,
60 edges ) ;
61 }
62 else if ( ID.literal() )
63 {
64 hist = this->histoSvc() -> book ( histoPath()+"/"+
65 ID.literalID() ,
66 htitle ,
67 edges ) ;
68 }
69
70 // check OK
71 if( !hist )
72 { this->Error( "IHistogram1D* points to NULL! ID='" + ID.idAsString() +
73 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
74
75 // add histogram into histogram storages
76 m_histo1DMapID [ ID ] = hist ;
77 m_histo1DMapTitle [ title ] = hist ;
78
79 // Declare to monitoring service
80 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
81
82 // Printout and return
83 if ( this->msgLevel(MSG::DEBUG) )
84 { this->debug() << "Booked 1D Histogram : ID='" << ID
85 << "' Path=" << histoPath()
86 << " Title='"
87 << Gaudi::Utils::Histos::htitle ( hist )
88 << "'" << endmsg; }
89 return hist ;
90 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::m_histo1DMapID
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::m_histo1DMapTitle
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::book2D | ( | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `50`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `50`
| ) |  | const

book the 2D histogram

The histogram will be assigned a unique identifier

See also
  IHistogram2D

Parameters

  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsY | number of bins in y

Returns
  pointer to AIDA 2D histogram

Definition at line 8 of file GaudiHistos_2DFixedBinning.icpp.

15 {
16 //
17 if ( !produceHistos() ) { return nullptr ; } // RETURN
18 //
19 // exist?
20 auto hist = histo2D ( title ) ;
21 // histogram is already booked
22 if( hist ) { return hist ; } // RETURN !!
23
24 // propose the histogram ID
25 HistoID ID;
26 newHistoID( title, ID );
27
28 // Create a new histogram and return
29 return this -> book2D ( ID, title, lowX, highX, binsX, lowY, highY, binsY );
30 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::book2D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `50`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `50`
| ) |  | const

book the 2D histogram with forced ID

See also
  IHistogram2D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins

Returns
  pointer to AIDA histogram

Definition at line 36 of file GaudiHistos_2DFixedBinning.icpp.

44 {
45 //
46 if ( !produceHistos() ) { return nullptr ; } // RETURN
47 //
48 // Check ID
49 if (ID.undefined())
50 {
51 this->Error("Undefined Histogram ID : Title='"+title+"'");
52 return nullptr;
53 }
54
55 // exist?
56 auto hist = histo2D( ID ) ;
57 // histogram is already booked
58 if( hist ) { return hist ; } // RETURN !!
59
60 // Histogram title
61 const std::string & htitle =
62 ( title.empty() ? "Unnamed 2D Histogram ID="+ID.idAsString() : title ) ;
63
64 // book the histogram
65 if ( ID.numeric() )
66 {
67 hist = this->histoSvc() -> book ( histoPath() ,
68 ID.numericID() ,
69 htitle ,
70 binsX ,
71 lowX ,
72 highX ,
73 binsY ,
74 lowY ,
75 highY ) ;
76 }
77 else if ( ID.literal() )
78 {
79 hist = this->histoSvc() -> book ( histoPath()+"/"+
80 ID.literalID() ,
81 htitle ,
82 binsX ,
83 lowX ,
84 highX ,
85 binsY ,
86 lowY ,
87 highY ) ;
88 }
89
90 // Check OK
91 if( !hist )
92 { this->Error( "IHistogram2D* points to NULL! ID='" + ID.idAsString() +
93 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
94
95 // add histogram into histogram storages
96 m_histo2DMapID [ ID ] = hist ;
97 m_histo2DMapTitle [ title ] = hist ;
98
99 // Declare to monitoring service
100 monitorHisto( Gaudi::Utils::Histos::toBase ( hist) , ID );
101
102 // Printout and return
103 if ( this->msgLevel(MSG::DEBUG) )
104 { this->debug() << "Booked 2D Histogram : ID='"
105 << ID << "' Path=" << histoPath()
106 << " Title='"
107 << Gaudi::Utils::Histos::htitle ( hist )
108 << "'" << endmsg; }
109 // return
110 return hist ;
111 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
MSG::DEBUG
Definition: IMessageSvc.h:18
GaudiHistos::m_histo2DMapTitle
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::m_histo2DMapID
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::book2D | ( | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY
| ) |  | const

book the 2D variable binning histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IHistogram2D

Parameters

  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges

Returns
  pointer to AIDA 2D histogram

Definition at line 8 of file GaudiHistos_2DVariableBinning.icpp.

11 {
12 //
13 if ( !produceHistos() ) { return nullptr; } // RETURN
14 //
15 // exist?
16 auto hist = histo2D ( title ) ;
17 // histogram is already booked
18 if ( hist ) { return hist ; } // RETURN !!
19
20 // propose the histogram ID
21 HistoID ID;
22 newHistoID( title, ID );
23
24 // Create a new histogram and return
25 return this -> book2D ( ID, title, edgesX, edgesY );
26 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::book2D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY
| ) |  | const

book the 2D variable binning histogram with given ID

See also
  AIDA::IHistogram2D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges

Returns
  pointer to AIDA 2D histogram

Definition at line 32 of file GaudiHistos_2DVariableBinning.icpp.

36 {
37 //
38 if ( !produceHistos() ) { return nullptr; } // RETURN
39 //
40 // Check ID
41 if (ID.undefined())
42 {
43 this->Error("Undefined Histogram ID : Title='"+title+"'");
44 return nullptr;
45 }
46
47 // exist?
48 auto hist = histo2D ( ID ) ;
49 // histogram is already booked
50 if ( hist ) { return hist ; } // RETURN !!
51
52 // Histogram title
53 const std::string & htitle =
54 ( title.empty() ? "Unnamed 2D Histogram ID="+ID.idAsString() : title ) ;
55
56 // book the histogram
57 if ( ID.numeric() )
58 {
59 hist = this->histoSvc() -> book ( histoPath() ,
60 ID.numericID() ,
61 htitle ,
62 edgesX ,
63 edgesY ) ;
64 }
65 else if ( ID.literal() )
66 {
67 hist = this->histoSvc() -> book ( histoPath()+"/"+
68 ID.literalID() ,
69 htitle ,
70 edgesX ,
71 edgesY ) ;
72 }
73
74 // check OK
75 if( !hist )
76 { this->Error( "IHistogram2D* points to NULL! ID='" + ID.idAsString() +
77 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
78
79 // add histogram into histogram storages
80 m_histo2DMapID [ ID ] = hist ;
81 m_histo2DMapTitle [ title ] = hist ;
82
83 // Declare to monitoring service
84 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
85
86 // Printout and return
87 if ( this->msgLevel(MSG::DEBUG) )
88 { this->debug() << "Booked 2D Histogram : ID='" << ID
89 << "' Path=" << histoPath()
90 << " Title='"
91 << Gaudi::Utils::Histos::htitle ( hist )
92 << "'" << endmsg; }
93 return hist ;
94 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
MSG::DEBUG
Definition: IMessageSvc.h:18
GaudiHistos::m_histo2DMapTitle
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::m_histo2DMapID
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::book3D | ( | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `10`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `10`,
|  | const double | lowZ = `0`,
|  | const double | highZ = `100`,
|  | const unsigned long | binsZ = `10`
| ) |  | const

book the 3D histogram

The histogram will be assigned a unique identifier

See also
  IHistogram3D

Parameters

  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsY | number of bins in y
  lowZ | low y limit for histogram
  highZ | high y limit for histogram
  binsZ | number of bins in y

Returns
  pointer to AIDA 3D histogram

Definition at line 8 of file GaudiHistos_3DFixedBinning.icpp.

18 {
19 //
20 if ( !produceHistos() ) { return nullptr ; } // RETURN
21 //
22 // exist?
23 auto hist = histo3D ( title ) ;
24 // histogram is already booked
25 if( hist ) { return hist ; } // RETURN !!
26
27 // propose the histogram ID
28 HistoID ID;
29 newHistoID( title, ID );
30
31 // Create a new histogram and return
32 return this -> book3D ( ID, title,
33 lowX, highX, binsX,
34 lowY, highY, binsY,
35 lowZ, highZ, binsZ );
36 }
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::book3D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `10`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `10`,
|  | const double | lowZ = `0`,
|  | const double | highZ = `100`,
|  | const unsigned long | binsZ = `10`
| ) |  | const

book the 3D histogram with forced ID

See also
  IHistogram3D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsY | number of bins in y
  lowZ | low y limit for histogram
  highZ | high y limit for histogram
  binsZ | number of bins in y

Returns
  pointer to AIDA 3D histogram

Definition at line 42 of file GaudiHistos_3DFixedBinning.icpp.

53 {
54 //
55 if ( !produceHistos() ) { return nullptr; } // RETURN
56 //
57 // Check ID
58 if (ID.undefined())
59 {
60 this->Error("Undefined Histogram ID : Title='"+title+"'");
61 return nullptr;
62 }
63
64 // exist?
65 auto hist = histo3D( ID ) ;
66 // histogram is already booked
67 if( hist ) { return hist ; } // RETURN !!
68
69 // Histogram title
70 const std::string & htitle =
71 ( title.empty() ? "Unnamed 3D Histogram ID="+ID.idAsString() : title ) ;
72
73 // book the histogram
74 if ( ID.numeric() )
75 {
76 hist = this->histoSvc() -> book ( histoPath() ,
77 ID.numericID() ,
78 htitle ,
79 binsX ,
80 lowX ,
81 highX ,
82 binsY ,
83 lowY ,
84 highY ,
85 binsZ ,
86 lowZ ,
87 highZ ) ;
88 }
89 else if ( ID.literal() )
90 {
91 hist = this->histoSvc() -> book ( histoPath()+"/"+
92 ID.literalID() ,
93 htitle ,
94 binsX ,
95 lowX ,
96 highX ,
97 binsY ,
98 lowY ,
99 highY ,
100 binsZ ,
101 lowZ ,
102 highZ ) ;
103 }
104
105 // Check OK
106 if( !hist )
107 { this->Error( "IHistogram3D* points to NULL! ID='" + ID.idAsString() +
108 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
109
110 // add histogram into histogram storages
111 m_histo3DMapID [ ID ] = hist ;
112 m_histo3DMapTitle [ title ] = hist ;
113
114 // Declare to monitoring service
115 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
116
117 // Printout and return
118 if ( this->msgLevel(MSG::DEBUG) )
119 { this->debug() << "Booked 3D Histogram : ID='"
120 << ID << "' Path=" << histoPath()
121 << " Title='"
122 << Gaudi::Utils::Histos::htitle ( hist )
123 << "'" << endmsg; }
124 return hist ;
125 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
MSG::DEBUG
Definition: IMessageSvc.h:18
GaudiHistos::m_histo3DMapTitle
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::m_histo3DMapID
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::book3D | ( | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const HistoBinEdges & | edgesZ
| ) |  | const

book the 3D variable binning histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IHistogram3D

Parameters

  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  edgesZ | The histogram z bin edges

Returns
  pointer to AIDA 3D histogram

Definition at line 8 of file GaudiHistos_3DVariableBinning.icpp.

12 {
13 //
14 if ( !produceHistos() ) { return nullptr; } // RETURN
15 //
16 // exist?
17 auto hist = histo3D ( title ) ;
18 // histogram is already booked
19 if( hist ) { return hist ; } // RETURN !!
20
21 // propose the histogram ID
22 HistoID ID;
23 newHistoID( title, ID );
24
25 // Create a new histogram and return
26 return this -> book3D ( ID, title, edgesX, edgesY, edgesZ );
27 }
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::book3D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const HistoBinEdges & | edgesZ
| ) |  | const

book the 3D variable binning histogram with given ID

See also
  AIDA::IHistogram3D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  edgesZ | The histogram z bin edges

Returns
  pointer to AIDA 3D histogram

Definition at line 33 of file GaudiHistos_3DVariableBinning.icpp.

38 {
39 //
40 if ( !produceHistos() ) { return nullptr; } // RETURN
41 //
42 // Check ID
43 if (ID.undefined())
44 {
45 this->Error("Undefined Histogram ID : Title='"+title+"'");
46 return nullptr;
47 }
48
49 // exist?
50 auto hist = histo3D ( ID ) ;
51 // histogram is already booked
52 if ( hist ) { return hist ; } // RETURN !!
53
54 // Histogram title
55 const std::string & htitle =
56 ( title.empty() ? "Unnamed 3D Histogram ID="+ID.idAsString() : title ) ;
57
58 // book the histogram
59 if ( ID.numeric() )
60 {
61 hist = this->histoSvc() -> book ( histoPath() ,
62 ID.numericID() ,
63 htitle ,
64 edgesX ,
65 edgesY ,
66 edgesZ ) ;
67 }
68 else if ( ID.literal() )
69 {
70 hist = this->histoSvc() -> book ( histoPath()+"/"+
71 ID.literalID() ,
72 htitle ,
73 edgesX ,
74 edgesY ,
75 edgesZ ) ;
76 }
77
78 // check OK
79 if( !hist )
80 { this->Error( "IHistogram3D* points to NULL! ID='" + ID.idAsString() +
81 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
82
83 // add histogram into histogram storages
84 m_histo3DMapID [ ID ] = hist ;
85 m_histo3DMapTitle [ title ] = hist ;
86
87 // Declare to monitoring service
88 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
89
90 // Printout and return
91 if ( this->msgLevel(MSG::DEBUG) )
92 { this->debug() << "Booked 3D Histogram : ID='" << ID
93 << "' Path=" << histoPath()
94 << " Title='"
95 << Gaudi::Utils::Histos::htitle ( hist )
96 << "'" << endmsg; }
97 return hist ;
98 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
MSG::DEBUG
Definition: IMessageSvc.h:18
GaudiHistos::m_histo3DMapTitle
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:2029
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::m_histo3DMapID
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::bookProfile1D | ( | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`,
|  | const std::string & | opt = `""`,
|  | const double | lowY = `-std::numeric_limits<double>::max()`,
|  | const double | highY = `std::numeric_limits<double>::max()`
| ) |  | const

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also
  IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  opt | the options, used for evaluation of errors
  lowY | the min cut-off for y-values
  highY | the max cut-off for y-values

Returns
  pointer to AIDA 1D profile histogram

Definition at line 6 of file GaudiHistos_1DProfFixedBinning.icpp.

13 {
14 //
15 if ( !produceHistos() ) { return nullptr ; } // RETURN
16 //
17 // exist?
18 auto hist = profile1D ( title ) ;
19 // histogram is already booked
20 if( hist ) { return hist ; } // RETURN !!
21
22 // propose the histogram ID
23 HistoID ID;
24 newHistoID( title, ID );
25
26 // Book the histo and return
27 return this -> bookProfile1D ( ID, title, low, high, bins , opt , lowY , highY );
28 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::bookProfile1D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low = `0`,
|  | const double | high = `100`,
|  | const unsigned long | bins = `100`,
|  | const std::string & | opt = `""`,
|  | const double | lowY = `-std::numeric_limits<double>::max()`,
|  | const double | highY = `std::numeric_limits<double>::max()`
| ) |  | const

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also
  IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  opt | the options, used for evaluation of errors
  lowY | the min cut-off for y-values
  highY | the max cut-off for y-values

Returns
  pointer to AIDA 1D profile histogram

Definition at line 34 of file GaudiHistos_1DProfFixedBinning.icpp.

42 {
43 //
44 if ( !produceHistos() ) { return nullptr ; } // RETURN
45 //
46 // Check ID
47 if (ID.undefined())
48 {
49 this->Error("Undefined Histogram ID : Title='"+title+"'");
50 return nullptr;
51 }
52
53 // exist?
54 auto hist = profile1D ( ID ) ;
55 // histogram is already booked
56 if( hist ) { return hist ; } // RETURN !!
57
58 // Histogram title
59 const std::string & htitle =
60 ( title.empty() ?
61 "Unnamed 1D Profile Histogram ID="+ID.idAsString() : title ) ;
62
63 // book the histogram
64 if ( ID.numeric() )
65 {
66 hist = this->histoSvc() -> bookProf ( histoPath() ,
67 ID.numericID() ,
68 htitle ,
69 bins ,
70 low ,
71 high ,
72 lowY ,
73 highY ,
74 opt ) ;
75 }
76 else if ( ID.literal() )
77 {
78 hist = this->histoSvc() -> bookProf ( histoPath()+"/"+
79 ID.literalID() ,
80 htitle ,
81 bins ,
82 low ,
83 high ,
84 lowY ,
85 highY ,
86 opt ) ;
87 }
88
89 // test ok
90 if( !hist )
91 { this->Error( "IProfile1D* points to NULL! ID='" + ID.idAsString() +
92 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
93
94 // add histogram into histogram storages
95 m_profile1DMapID [ ID ] = hist ;
96 m_profile1DMapTitle [ title ] = hist ;
97
98 // Declare to monitoring service
99 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
100
101 // printout and return
102 if ( this->msgLevel(MSG::DEBUG) )
103 { this->debug() << "Booked 1D Profile Histogram : ID='"
104 << ID << "' Path=" << histoPath()
105 << " Title='"
106 << Gaudi::Utils::Histos::htitle ( hist )
107 << "'" << endmsg; }
108 return hist ;
109 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::m_profile1DMapID
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::m_profile1DMapTitle
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
ana.opt
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::bookProfile1D | ( | const std::string & | title,
|  | const HistoBinEdges & | edges
| ) |  | const

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also
  IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges

Returns
  pointer to AIDA 1D profile histogram

Definition at line 6 of file GaudiHistos_1DProfVariableBinning.icpp.

8 {
9 //
10 if ( !produceHistos() ) { return nullptr ; } // RETURN
11 //
12 // exist?
13 auto hist = profile1D ( title ) ;
14 // histogram is already booked
15 if ( hist ) { return hist ; } // RETURN !!
16
17 // propose the histogram ID
18 HistoID ID;
19 newHistoID( title, ID );
20
21 // Book the histo and return
22 return this -> bookProfile1D ( ID, title, edges );
23 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::bookProfile1D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges
| ) |  | const

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also
  IHistogram1D

Parameters

  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges

Returns
  pointer to AIDA 1D profile histogram

Definition at line 29 of file GaudiHistos_1DProfVariableBinning.icpp.

32 {
33 //
34 if ( !produceHistos() ) { return nullptr ; } // RETURN
35 //
36 // Check ID
37 if (ID.undefined())
38 {
39 this->Error("Undefined Histogram ID : Title='"+title+"'");
40 return nullptr;
41 }
42
43 // exist?
44 auto hist = profile1D ( ID ) ;
45 // histogram is already booked
46 if ( hist ) { return hist ; } // RETURN !!
47
48 // Histogram title
49 const std::string & htitle =
50 ( title.empty() ?
51 "Unnamed 1D Profile Histogram ID="+ID.idAsString() : title ) ;
52
53 // book the histogram
54 if ( ID.numeric() )
55 {
56 hist = this->histoSvc() -> bookProf ( histoPath() ,
57 ID.numericID() ,
58 htitle ,
59 edges ) ;
60 }
61 else if ( ID.literal() )
62 {
63 hist = this->histoSvc() -> bookProf ( histoPath()+"/"+
64 ID.literalID() ,
65 htitle ,
66 edges ) ;
67 }
68
69 // test ok
70 if( !hist )
71 { this->Error( "IProfile1D* points to NULL! ID='" + ID.idAsString() +
72 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
73
74 // add histogram into histogram storages
75 m_profile1DMapID [ ID ] = hist ;
76 m_profile1DMapTitle [ title ] = hist ;
77
78 // Declare to monitoring service
79 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
80
81 // printout and return
82 if ( this->msgLevel(MSG::DEBUG) )
83 { this->debug() << "Booked 1D Profile Histogram : ID='"
84 << ID << "' Path=" << histoPath()
85 << " Title='"
86 << Gaudi::Utils::Histos::htitle ( hist )
87 << "'" << endmsg; }
88 return hist ;
89 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
GaudiHistos::m_profile1DMapID
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::m_profile1DMapTitle
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::bookProfile2D | ( | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `50`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `50`
| ) |  | const

book the 2D profile histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IProfile2D

Parameters

  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsY | number of bins in y

Returns
  pointer to AIDA 2D histogram

Definition at line 6 of file GaudiHistos_2DProfFixedBinning.icpp.

13 {
14 //
15 if ( !produceHistos() ) { return 0 ; } // RETURN
16 //
17 // exist?
18 auto hist = profile2D ( title ) ;
19 // histogram is already booked
20 if( 0 != hist ) { return hist ; } // RETURN !!
21
22 // propose the histogram ID
23 HistoID ID;
24 newHistoID( title, ID );
25
26 // book histogram and return
27 return this -> bookProfile2D ( ID, title, lowX, highX, binsX, lowY, highY, binsY );
28 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::bookProfile2D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX = `0`,
|  | const double | highX = `100`,
|  | const unsigned long | binsX = `50`,
|  | const double | lowY = `0`,
|  | const double | highY = `100`,
|  | const unsigned long | binsY = `50`
| ) |  | const

book the 2D profile histogram with forced ID

See also
  AIDA::IProfile2D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsY | number of bins in y

Returns
  pointer to AIDA histogram

Definition at line 34 of file GaudiHistos_2DProfFixedBinning.icpp.

42 {
43 //
44 if ( !produceHistos() ) { return 0 ; } // RETURN
45 //
46 // Check ID
47 if (ID.undefined())
48 {
49 this->Error("Undefined Histogram ID : Title='"+title+"'");
50 return nullptr;
51 }
52 // exist?
53 auto hist = profile2D ( ID ) ;
54 // histogram is already booked
55 if( 0 != hist ) { return hist ; } // RETURN !!
56
57 // Histogram title
58 const std::string & htitle =
59 ( title.empty() ?
60 "Unnamed 2D Profile Histogram ID="+ID.idAsString() : title ) ;
61
62 // book the histogram
63 if ( ID.numeric() )
64 {
65 hist = this->histoSvc() -> bookProf ( histoPath() ,
66 ID.numericID() ,
67 htitle ,
68 binsX ,
69 lowX ,
70 highX ,
71 binsY ,
72 lowY ,
73 highY ) ;
74 }
75 else if ( ID.literal() )
76 {
77 hist = this->histoSvc() -> bookProf ( histoPath()+"/"+
78 ID.literalID() ,
79 htitle ,
80 binsX ,
81 lowX ,
82 highX ,
83 binsY ,
84 lowY ,
85 highY ) ;
86 }
87
88 // test OK
89 if( 0 == hist )
90 { this->Error( "IProfile2D* points to NULL! ID='" + ID.idAsString() +
91 "' title='"+htitle+"'" ) ; return 0; } // RETURN !!
92
93 // add histogram into histogram storages
94 m_profile2DMapID [ ID ] = hist ;
95 m_profile2DMapTitle [ title ] = hist ;
96
97 // Declare to monitoring service
98 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
99
100 // printout and return
101 if ( this->msgLevel(MSG::DEBUG) )
102 { this->debug() << "Booked 2D Profile Histogram : ID='" << ID
103 << "' Path=" << histoPath()
104 << " Title='"
105 << Gaudi::Utils::Histos::htitle ( hist )
106 << "'" << endmsg; }
107 return hist ;
108 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::m_profile2DMapID
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
GaudiHistos::m_profile2DMapTitle
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::bookProfile2D | ( | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY
| ) |  | const

book the 2D profile histogram

The histogram will be assigned a unique identifier

See also
  AIDA::IProfile2D

Parameters

  title | histogram title (must be unique within the algorithm)
  edgesX | x bin edges
  edgesY | y bin edges

Returns
  pointer to AIDA 2D histogram

Definition at line 6 of file GaudiHistos_2DProfVariableBinning.icpp.

9 {
10 //
11 if ( !produceHistos() ) { return 0 ; } // RETURN
12 //
13 // exist?
14 auto hist = profile2D ( title ) ;
15 // histogram is already booked
16 if( hist ) { return hist ; } // RETURN !!
17
18 // propose the histogram ID
19 HistoID ID;
20 newHistoID( title, ID );
21
22 // book histogram and return
23 return this -> bookProfile2D ( ID, title, edgesX, edgesY );
24 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::newHistoID
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
Definition: GaudiHistos.icpp:458
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::bookProfile2D | ( | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY
| ) |  | const

book the 2D profile histogram with forced ID

See also
  AIDA::IProfile2D

Parameters

  ID | unique histogram ID
  title | histogram title (must be unique within the algorithm)
  edgesX | x bin edges
  edgesY | y bin edges

Returns
  pointer to AIDA histogram

Definition at line 30 of file GaudiHistos_2DProfVariableBinning.icpp.

34 {
35 //
36 if ( !produceHistos() ) { return 0 ; } // RETURN
37 //
38 // Check ID
39 if (ID.undefined())
40 {
41 this->Error("Undefined Histogram ID : Title='"+title+"'");
42 return nullptr;
43 }
44 // exist?
45 auto hist = profile2D ( ID ) ;
46 // histogram is already booked
47 if( hist ) { return hist ; } // RETURN !!
48
49 // Histogram title
50 const std::string & htitle =
51 ( title.empty() ?
52 "Unnamed 2D Profile Histogram ID="+ID.idAsString() : title ) ;
53
54 // book the histogram
55 if ( ID.numeric() )
56 {
57 hist = this->histoSvc() -> bookProf ( histoPath() ,
58 ID.numericID() ,
59 htitle ,
60 edgesX ,
61 edgesY ) ;
62 }
63 else if ( ID.literal() )
64 {
65 hist = this->histoSvc() -> bookProf ( histoPath()+"/"+
66 ID.literalID() ,
67 htitle ,
68 edgesX ,
69 edgesY ) ;
70 }
71
72 // test OK
73 if( !hist )
74 { this->Error( "IProfile2D* points to NULL! ID='" + ID.idAsString() +
75 "' title='"+htitle+"'" ) ; return nullptr; } // RETURN !!
76
77 // add histogram into histogram storages
78 m_profile2DMapID [ ID ] = hist ;
79 m_profile2DMapTitle [ title ] = hist ;
80
81 // Declare to monitoring service
82 monitorHisto( Gaudi::Utils::Histos::toBase ( hist ) , ID );
83
84 // printout and return
85 if ( this->msgLevel(MSG::DEBUG) )
86 { this->debug() << "Booked 2D Profile Histogram : ID='" << ID
87 << "' Path=" << histoPath()
88 << " Title='"
89 << Gaudi::Utils::Histos::htitle ( hist )
90 << "'" << endmsg; }
91 return hist ;
92 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
std::string::empty
T empty(T...args)
MSG::DEBUG
Definition: IMessageSvc.h:18
std::string
STL class.
GaudiHistos::monitorHisto
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Definition: GaudiHistos.icpp:384
GaudiHistos::m_profile2DMapID
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiPython.HistoUtils.bookProf
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
GaudiHistos::m_profile2DMapTitle
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Gaudi::Utils::Histos::toBase
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE>

bool GaudiHistos< PBASE >::checkForNaN | ( |  | ) | const
| inline

get the flag for NaN checks (property "HistoCheckForNan")

Definition at line 2695 of file GaudiHistos.h.

2695 { return m_checkForNaN ; }
GaudiHistos::m_checkForNaN
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
template<class PBASE >

std::string GaudiHistos< PBASE >::convertTitleToID | ( | std::string | title | ) | const
| protected

Create an ID string from a title string.

Definition at line 485 of file GaudiHistos.icpp.

486 {
487 // clean up the ID string for all unwanted characters
488 for ( const auto& i : m_idReplaceInfo )
489 {
490 stringSearchReplace( title, i.first, i.second );
491 }
492 return title;
493 }
GaudiHistos::m_idReplaceInfo
std::map< std::string, std::string > m_idReplaceInfo
Map of strings to search and replace when using the title as the basis of automatically generated lit...
Definition: GaudiHistos.h:3120
ana.i
list i
Definition: ana.py:128
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::fill | ( | AIDA::IHistogram1D * | histo,
|  | const double | value,
|  | const double | weight,
|  | const std::string & | title = `""`
| ) |  | const

fill the 1D histogram with the value and weight

Parameters

  histo | 1D histogram to be filled
  value | value to be put into the histogram
  weight | weight to be used
  title | histogram title (to be used for error report)

Returns
  pointer to AIDA 1D histogram

Definition at line 105 of file GaudiHistos_1DFixedBinning.icpp.

109 {
110 if ( !histo ) { return nullptr ; } // RETURN
111 //
112 if ( !checkForNaN() )
113 { Gaudi::Utils::Histos::fill ( histo , value , weight ) ; }
114 else if ( std::isfinite ( value ) && std::isfinite ( weight ) )
115 { Gaudi::Utils::Histos::fill ( histo , value , weight ) ; }
116 else if ( std::isnan ( value ) || std::isnan ( weight ) )
117 {
118 this -> Warning
119 ("fill():: 'NaN' value is skipped from the histogram '"
120 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
121 }
122 else
123 {
124 this -> Warning
125 ("fill():: 'Infinite' value is skipped from the histogram '"
126 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
127 }
128 // return
129 return histo ;
130 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:36
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
std::isfinite
T isfinite(T...args)
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
std::isnan
T isnan(T...args)
GaudiHistos::checkForNaN
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::fill | ( | AIDA::IHistogram2D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | weight,
|  | const std::string & | title = `""`
| ) |  | const

fill the 2D histogram with the value and weight

Parameters

  histo | 2D histogram to be filled
  valueX | x value to be put into the histogram
  valueY | y value to be put into the histogram
  weight | weight to be used
  title | histogram title (to be used for error report)

Returns
  pointer to AIDA 2D histogram

Definition at line 117 of file GaudiHistos_2DFixedBinning.icpp.

122 {
123 //
124 if ( !histo ) { return nullptr ; } // RETURN
125 //
126 if ( !checkForNaN() )
127 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , weight ) ; }
128 else if ( std::isfinite ( valueX ) && std::isfinite ( valueY ) && std::isfinite ( weight ) )
129 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , weight ) ; }
130 else if ( std::isnan ( valueX ) || std::isnan ( valueY ) || std::isnan ( weight ) )
131 {
132 this -> Warning
133 ("fill():: 'NaN' value is skipped from the histogram '"
134 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
135 }
136 else
137 {
138 this -> Warning
139 ("fill():: 'Infinite' value is skipped from the histogram '"
140 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
141 }
142 // return
143 return histo ;
144 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:36
std::isfinite
T isfinite(T...args)
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
std::isnan
T isnan(T...args)
GaudiHistos::checkForNaN
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::fill | ( | AIDA::IHistogram3D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const double | weight,
|  | const std::string & | title = `""`
| ) |  | const

fill the 3D histogram with the value and weight

Parameters

  histo | 3D histogram to be filled
  valueX | x value to be put into the histogram
  valueY | y value to be put into the histogram
  valueZ | z value to be put into the histogram
  weight | weight to be used
  title | histogram title (to be used for error report)

Returns
  pointer to AIDA 3D histogram

Definition at line 131 of file GaudiHistos_3DFixedBinning.icpp.

137 {
138 if ( !histo ) { return nullptr ; } // RETURN
139 //
140 if ( !checkForNaN() )
141 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , valueZ , weight ) ; }
142 else if ( std::isfinite ( valueX ) && std::isfinite ( valueY ) &&
143 std::isfinite ( valueZ ) && std::isfinite ( weight ) )
144 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , valueZ , weight ) ; }
145 else if ( std::isnan ( valueX ) || std::isnan ( valueY ) ||
146 std::isnan ( valueZ ) || std::isnan ( weight ) )
147 {
148 this -> Warning
149 ("fill():: 'NaN' value is skipped from the histogram '"
150 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
151 }
152 else
153 {
154 this -> Warning
155 ("fill():: 'Infinite' value is skipped from the histogram '"
156 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
157 }
158 // return
159 return histo ;
160 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:36
std::isfinite
T isfinite(T...args)
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
std::isnan
T isnan(T...args)
GaudiHistos::checkForNaN
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::fill | ( | AIDA::IProfile1D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | weight,
|  | const std::string & | title = `""`
| ) |  | const

fill the 1D profile histogram with the values and weight

Parameters

  histo | 1D profile histogram to be filled
  valueX | x value to be put into the histogram
  valueY | y value to be put into the histogram
  weight | weight to be used
  title | histogram title (to be used for error report)

Returns
  pointer to AIDA 1D histogram

Definition at line 115 of file GaudiHistos_1DProfFixedBinning.icpp.

120 {
121 //
122 if ( !histo ) { return nullptr ; } // RETURN
123 //
124 if ( !checkForNaN() )
125 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , weight ); }
126 else if ( std::isfinite ( valueX ) && std::isfinite ( valueY ) && std::isfinite ( weight ) )
127 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , weight ); }
128 else if ( std::isnan ( valueX ) || std::isnan ( valueY ) || std::isnan ( weight ) )
129 {
130 this -> Warning
131 ("fill():: 'NaN' value is skipped from the histogram '"
132 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
133 }
134 else
135 {
136 this -> Warning
137 ("fill():: 'Infinite' value is skipped from the histogram '"
138 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
139 }
140 // return
141 return histo ;
142 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:36
std::isfinite
T isfinite(T...args)
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
std::isnan
T isnan(T...args)
GaudiHistos::checkForNaN
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::fill | ( | AIDA::IProfile2D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const double | weight,
|  | const std::string & | title = `""`
| ) |  | const

fill the 2D profile histogram with the values and weight

Parameters

  histo | 2D profile histogram to be filled
  valueX | x value to be put into the histogram
  valueY | y value to be put into the histogram
  valueZ | z value to be put into the histogram
  weight | weight to be used
  title | histogram title (to be used for error report)

Returns
  pointer to AIDA 1D histogram

Definition at line 114 of file GaudiHistos_2DProfFixedBinning.icpp.

120 {
121 if ( 0 == histo ) { return 0 ; } // RETURN
122 //
123 if ( !checkForNaN() )
124 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , valueZ , weight ); }
125 else if ( std::isfinite ( valueX ) && std::isfinite ( valueY ) &&
126 std::isfinite ( valueZ ) && std::isfinite ( weight ) )
127 { Gaudi::Utils::Histos::fill ( histo , valueX , valueY , valueZ , weight ); }
128 else if ( std::isnan ( valueX ) || std::isnan ( valueY ) ||
129 std::isnan ( valueZ ) || std::isnan ( weight ) )
130 {
131 this -> Warning
132 ("fill():: 'NaN' value is skipped from the histogram '"
133 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
134 }
135 else
136 {
137 this -> Warning
138 ("fill():: 'Infinite' value is skipped from the histogram '"
139 + Gaudi::Utils::Histos::htitle ( histo , title ) + "'" ) ;
140 }
141 // return
142 return histo ;
143 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:36
std::isfinite
T isfinite(T...args)
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
std::isnan
T isnan(T...args)
GaudiHistos::checkForNaN
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >

StatusCode GaudiHistos< PBASE >::finalize | ( |  | ) |
| override protected

standard finalization method

Returns
  status code

Definition at line 208 of file GaudiHistos.icpp.

209 {
210
211 if ( produceHistos() )
212 {
213
214 // Count how many histos of each type
215 if ( (!noHistos()) && histoCountersPrint() )
216 {
217 const unsigned int n1D = histo1DMapID () . size () ;
218 const unsigned int n2D = histo2DMapID () . size () ;
219 const unsigned int n3D = histo3DMapID () . size () ;
220 const unsigned int n1DP = profile1DMapID () . size () ;
221 const unsigned int n2DP = profile2DMapID () . size () ;
222 const unsigned int total = n1D+n2D+n3D+n1DP+n2DP;
223 if ( total>0 )
224 {
225 this->always() << "Booked " << total << " Histogram(s) : ";
226 if ( n1D>0 ) this->always() << "1D=" << n1D << " ";
227 if ( n2D>0 ) this->always() << "2D=" << n2D << " ";
228 if ( n3D>0 ) this->always() << "3D=" << n3D << " ";
229 if ( n1DP>0 ) this->always() << "1DProf=" << n1DP << " ";
230 if ( n2DP>0 ) this->always() << "2DProf=" << n2DP << " ";
231 this->always() << endmsg;
232 }
233 }
234
235 // detailed printing
236 if ( histosPrint() ) { printHistos() ; }
237
238 }
239
240 // clear all maps
241 m_histo1DMapTitle . clear () ;
242 m_histo2DMapTitle . clear () ;
243 m_histo3DMapTitle . clear () ;
244 m_histo1DMapID . clear () ;
245 m_histo2DMapID . clear () ;
246 m_histo3DMapID . clear () ;
247 m_profile1DMapTitle . clear () ;
248 m_profile2DMapTitle . clear () ;
249 m_profile1DMapID . clear () ;
250 m_profile2DMapID . clear () ;
251
252 // finalize base class
253 return PBASE::finalize();
254 }
GaudiHistos::printHistos
int printHistos(const MSG::Level level=MSG::ALWAYS) const
perform the actual printout of histograms
Definition: GaudiHistos.icpp:259
GaudiHistos::m_profile1DMapID
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
GaudiHistos::noHistos
bool noHistos() const
Check if all histogram maps are empty.
Definition: GaudiHistos.icpp:366
GaudiHistos::profile2DMapID
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
GaudiHistos::m_histo1DMapID
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
GaudiHistos::m_histo3DMapTitle
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
GaudiHistos::m_histo2DMapTitle
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
GaudiHistos::m_profile1DMapTitle
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
GaudiHistos::histo1DMapID
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
GaudiHistos::m_profile2DMapID
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
GaudiHistos::m_histo1DMapTitle
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
GaudiHistos::m_profile2DMapTitle
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
GaudiHistos::profile1DMapID
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
GaudiHistos::histoCountersPrint
bool histoCountersPrint() const
print histogram counters at finalization ?
Definition: GaudiHistos.h:2709
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::m_histo3DMapID
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
GaudiHistos::histo2DMapID
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
GaudiHistos::m_histo2DMapID
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GaudiHistos::histosPrint
bool histosPrint() const
print histograms at finalization ?
Definition: GaudiHistos.h:2707
GaudiHistos::histo3DMapID
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>

bool GaudiHistos< PBASE >::fullDetail | ( |  | ) | const
| inline

get flag to control output level of histograms

Definition at line 2693 of file GaudiHistos.h.

2693 { return m_fullDetail ; }
GaudiHistos::m_fullDetail
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::histo | ( | const std::string & | title | ) | const
| inline

access the EXISTING 1D histogram by title

Wrapper method for the equivalent histo1D method. Retained for backwards compatibility, please use histo1D instead.

return the pointer to existing 1D histogram or NULL

Definition at line 2582 of file GaudiHistos.h.

2583 {
2584 return histo1D( title );
2585 }
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::histo | ( | const HistoID & | ID | ) | const
| inline

access the EXISTING 1D histogram by ID

Wrapper method for the equivalent histo1D method. Retained for backwards compatibility, please use histo1D instead.

return the pointer to existing 1D histogram or NULL

Definition at line 2637 of file GaudiHistos.h.

2638 {
2639 return histo1D( ID );
2640 }
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::histo1D | ( | const std::string & | title | ) | const
| inline

access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL

Definition at line 2569 of file GaudiHistos.h.

2570 {
2571 auto found = histo1DMapTitle().find( title ) ;
2572 return found != histo1DMapTitle().end() ? found->second : nullptr;
2573 }
GaudiHistos::histo1DMapTitle
const Histo1DMapTitle & histo1DMapTitle() const
get access to the map of all 1D histograms indexed via their title
Definition: GaudiHistos.h:2744
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::histo1D | ( | const HistoID & | ID | ) | const

access the EXISTING 1D histogram by ID return the pointer to existing 1D histogram or NULL

Definition at line 404 of file GaudiHistos.icpp.

405 {
406 return lookup_( histo1DMapID(), ID );
407 }
GaudiHistos::histo1DMapID
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
template<class PBASE>

const Histo1DMapID& GaudiHistos< PBASE >::histo1DMapID | ( |  | ) | const
| inline

get access to the map of all 1D histograms index via ID

// iterate over the map!
for ( const auto& entry : histo1DMapID() )
{
// histogram ID
const HistoID ID = entry.first ;
// histogram itself
AIDA::IHistogram1D* h = entry.second ;
if ( 0 == h ) { continue ;}
std::cout << " Histogram ID " << ID
<< " Histogram title " << h->title() << std::endl ;
}

Definition at line 2768 of file GaudiHistos.h.

2768 { return m_histo1DMapID ; }
GaudiHistos::m_histo1DMapID
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
template<class PBASE>

const Histo1DMapTitle& GaudiHistos< PBASE >::histo1DMapTitle | ( |  | ) | const
| inline

get access to the map of all 1D histograms indexed via their title

Using this method one can inspect e.g. a list of active histograms

// iterate over the map!
for ( const auto& entry :histo1DMapTitle() )
{
// histogram title
const std::string& title = entry.first ;
// histogram itself
AIDA::IHistogram1D* hist = entry.second ;
if( !hist ) { continue ; } // ATTENTION!
std::cout << " Histogram title " << title << std::endl ;
}

Attention
  The map COULD contains NULL pointers, the check before use is mandatory!

Definition at line 2744 of file GaudiHistos.h.

2744 { return m_histo1DMapTitle; }
GaudiHistos::m_histo1DMapTitle
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
template<class PBASE>

AIDA::IHistogram2D* GaudiHistos< PBASE >::histo2D | ( | const std::string & | title | ) | const
| inline

access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL

Definition at line 2590 of file GaudiHistos.h.

2591 {
2592 auto found = histo2DMapTitle().find( title ) ;
2593 return histo2DMapTitle().end() != found ? found->second : nullptr;
2594 }
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
GaudiHistos::histo2DMapTitle
const Histo2DMapTitle & histo2DMapTitle() const
get access to the map of all 2D histograms indexed via their title
Definition: GaudiHistos.h:2795
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::histo2D | ( | const HistoID & | ID | ) | const

access the EXISTING 2D histogram by ID return the pointer to existing 2D histogram or NULL

Definition at line 412 of file GaudiHistos.icpp.

413 {
414 return lookup_( histo2DMapID(), ID );
415 }
GaudiHistos::histo2DMapID
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
template<class PBASE>

const Histo2DMapID& GaudiHistos< PBASE >::histo2DMapID | ( |  | ) | const
| inline

get access to the map of 2D histograms index via ID

// iterate over the map!
for ( const auto& entry : histo2DMapID() )
{
// histogram ID
const HistoID ID = entry.first ;
// histogram itself
AIDA::IHistogram2D* h = entry.second ;
if ( 0 == h ) { continue ;}
std::cout << " Histogram ID " << ID
<< " Histogram title " << h->title() << std::endl ;
}

Definition at line 2818 of file GaudiHistos.h.

2818 { return m_histo2DMapID ; }
GaudiHistos::m_histo2DMapID
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
template<class PBASE>

const Histo2DMapTitle& GaudiHistos< PBASE >::histo2DMapTitle | ( |  | ) | const
| inline

get access to the map of all 2D histograms indexed via their title

Using this method one can inspect e.g. a list of active histograms

// iterate over the map!
for ( const auto& entry : histo2DMapTitle() )
{
// histogram title
const std::string& title = entry.first ;
// histogram itself
AIDA::IHistogram2D* hist = entry.second ;
if( 0 == hist ) { continue ; } // ATTENTION!
std::cout << " Histogram title " << title << std::endl ;
}

Attention
  The map COULD contains NULL pointers, the check before use is mandatory!

Definition at line 2795 of file GaudiHistos.h.

2795 { return m_histo2DMapTitle ; }
GaudiHistos::m_histo2DMapTitle
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
template<class PBASE>

AIDA::IHistogram3D* GaudiHistos< PBASE >::histo3D | ( | const std::string & | title | ) | const
| inline

access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL

Definition at line 2599 of file GaudiHistos.h.

2600 {
2601 auto found = histo3DMapTitle().find( title ) ;
2602 return histo3DMapTitle().end() != found ? found->second : nullptr;
2603 }
GaudiHistos::histo3DMapTitle
const Histo3DMapTitle & histo3DMapTitle() const
get access to the map of all 3D histograms indexed via their title
Definition: GaudiHistos.h:2845
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::histo3D | ( | const HistoID & | ID | ) | const

access the EXISTING 3D histogram by ID return the pointer to existing 3D histogram or NULL

Definition at line 420 of file GaudiHistos.icpp.

421 {
422 return lookup_( histo3DMapID(), ID );
423 }
GaudiHistos::histo3DMapID
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>

const Histo3DMapID& GaudiHistos< PBASE >::histo3DMapID | ( |  | ) | const
| inline

get access to the map of all 3D histograms index via a ID

// iterate over the map!
for ( const auto& entry : histo3DMapID() )
{
// histogram ID
const HistoID ID = entry.first ;
// histogram itself
AIDA::IHistogram3D* h = entry.second ;
if ( 0 == h ) { continue ;}
std::cout << " Histogram ID " << ID
<< " Histogram title " << h->title() << std::endl ;
}

Definition at line 2868 of file GaudiHistos.h.

2868 { return m_histo3DMapID; }
GaudiHistos::m_histo3DMapID
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
template<class PBASE>

const Histo3DMapTitle& GaudiHistos< PBASE >::histo3DMapTitle | ( |  | ) | const
| inline

get access to the map of all 3D histograms indexed via their title

Using this method one can inspect e.g. a list of active histograms

// iterate over the map!
for ( const auto& entry : histo3DMapTitle() )
{
// histogram title
const std::string& title = entry.first ;
// histogram itself
AIDA::IHistogram3D* hist = entry.second ;
if( 0 == hist ) { continue ; } // ATTENTION!
std::cout << " Histogram title " << title << std::endl ;
}

Attention
  The map COULD contains NULL pointers, the check before use is mandatory!

Definition at line 2845 of file GaudiHistos.h.

2845 { return m_histo3DMapTitle ; }
GaudiHistos::m_histo3DMapTitle
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
template<class PBASE>

bool GaudiHistos< PBASE >::histoCountersPrint | ( |  | ) | const
| inline

print histogram counters at finalization ?

Definition at line 2709 of file GaudiHistos.h.

2709 { return m_histoCountersPrint ; }
GaudiHistos::m_histoCountersPrint
bool m_histoCountersPrint
print histogram counters at finalization
Definition: GaudiHistos.h:3080
template<class PBASE>

const std::string& GaudiHistos< PBASE >::histoDir | ( |  | ) | const
| inline

get histogram directory (property "HistoDir")

Definition at line 2703 of file GaudiHistos.h.

2703 { return m_histoDir ; }
GaudiHistos::m_histoDir
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
template<class PBASE>

bool GaudiHistos< PBASE >::histoExists | ( | const std::string & | title | ) | const
| inline

check the existence AND validity of the histogram with given title

Definition at line 2665 of file GaudiHistos.h.

2666 {
2667 return
2668 ( 0 != histo ( title ) ||
2669 0 != histo2D ( title ) ||
2670 0 != histo3D ( title ) ||
2671 0 != profile1D ( title ) ||
2672 0 != profile2D ( title ) );
2673 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
template<class PBASE>

bool GaudiHistos< PBASE >::histoExists | ( | const HistoID & | ID | ) | const
| inline

check the existence AND validity of the histogram with given title

Definition at line 2676 of file GaudiHistos.h.

2677 {
2678 return
2679 ( 0 != histo ( ID ) ||
2680 0 != histo2D ( ID ) ||
2681 0 != histo3D ( ID ) ||
2682 0 != profile1D ( ID ) ||
2683 0 != profile2D ( ID ) );
2684 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
GaudiHistos::histo
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
template<class PBASE>

HistoID::NumericID GaudiHistos< PBASE >::histoOffSet | ( |  | ) | const
| inline

get the value for histogram offset (property "HistoOffSet")

Definition at line 2699 of file GaudiHistos.h.

2699 { return m_histoOffSet ; }
GaudiHistos::m_histoOffSet
HistoID::NumericID m_histoOffSet
general histogram ID offset (only works for automatically assigned numeric IDs)
Definition: GaudiHistos.h:3072
template<class PBASE >

std::string GaudiHistos< PBASE >::histoPath | ( |  | ) | const

get the constructed histogram path

Definition at line 508 of file GaudiHistos.icpp.

509 {
510 std::string path = histoTopDir() + histoDir();
511 return splitHistoDir() ? dirHbookName(path) : path;
512 }
GaudiHistos::splitHistoDir
bool splitHistoDir() const
get the flag for histogram path split (property "HistoSplitDir")
Definition: GaudiHistos.h:2697
std::string
STL class.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
GaudiHistos::histoDir
const std::string & histoDir() const
get histogram directory (property "HistoDir")
Definition: GaudiHistos.h:2703
GaudiHistos::histoTopDir
const std::string & histoTopDir() const
get top-level histogram directory (property "HistoTopDir")
Definition: GaudiHistos.h:2701
template<class PBASE>

bool GaudiHistos< PBASE >::histosPrint | ( |  | ) | const
| inline

print histograms at finalization ?

Definition at line 2707 of file GaudiHistos.h.

2707 { return m_histosPrint ; }
GaudiHistos::m_histosPrint
bool m_histosPrint
print histograms at finalization
Definition: GaudiHistos.h:3078
template<class PBASE>

const std::string& GaudiHistos< PBASE >::histoTopDir | ( |  | ) | const
| inline

get top-level histogram directory (property "HistoTopDir")

Definition at line 2701 of file GaudiHistos.h.

2701 { return m_histoTopDir ; }
GaudiHistos::m_histoTopDir
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
template<class PBASE >

void GaudiHistos< PBASE >::initGaudiHistosConstructor | ( |  | ) |
| private

Constructor initialisation and job options.

Definition at line 88 of file GaudiHistos.icpp.

89 {
90 // SWITCH ON/OFF the histograms
91 this->declareProperty
92 ( "HistoProduce" ,
93 m_produceHistos = true ,
94 "Switch on/off the production of histograms" ) ;
95 // print the histograms at finalization
96 this->declareProperty
97 ( "HistoPrint" ,
98 m_histosPrint = false ,
99 "Switch on/off the printout of histograms at finalization" )
100 -> declareUpdateHandler ( &GaudiHistos<PBASE>::printHistoHandler, this ) ;
101 this->declareProperty
102 ( "HistoCountersPrint" ,
103 m_histoCountersPrint = true ,
104 "Switch on/off the printout of histogram counters at finalization" ) ;
105 // check for NaN/Finite
106 this->declareProperty
107 ( "HistoCheckForNaN" ,
108 m_checkForNaN = true ,
109 "Switch on/off the checks for NaN and Infinity for histogram fill" ) ;
110 // for HBOOK persistency, 'true' can be useful
111 this->declareProperty
112 ( "HistoSplitDir" ,
113 m_splitHistoDir = false ,
114 "Split long directory names into short pieces (suitable for HBOOK)" );
115 // general OffSet for histogram ID
116 this->declareProperty
117 ( "HistoOffSet" ,
118 m_histoOffSet = 0 ,
119 "OffSet for automatically assigned histogram numerical identifiers " ) ;
120 // top level histogram directory
121 this->declareProperty
122 ( "HistoTopDir" ,
123 m_histoTopDir = "" ,
124 "Top level histogram directory (take care that it ends with '/')" ) ;
125 // histogram directory
126 this->declareProperty
127 ( "HistoDir" ,
128 m_histoDir = boost::algorithm::replace_all_copy( this->name(), ":", "_" ) ,
129 "Histogram Directory" ) ;
130 // control output level of histograms
131 this->declareProperty ( "FullDetail" , m_fullDetail = false ) ;
132 // monitor histograms
133 this->declareProperty ( "MonitorHistograms" , m_declareMoniHists = true ) ;
134 // format for 1D-histograms printout
135 this->declareProperty
136 ( "FormatFor1DHistoTable" ,
137 m_histo1DTableFormat = Gaudi::Utils::Histos::Formats::format () ,
138 "Format string for printout of 1D histograms" ) ;
139 // "short" format for 1D-histograms printout
140 this->declareProperty
141 ( "ShortFormatFor1DHistoTable" ,
142 m_histo1DTableFormatShort = " | %1$-25.25s %2%" ,
143 "Format string for printout of 1D histograms" ) ;
144 // the header for 1D-histogram table
145 this->declareProperty
146 ( "HeaderFor1DHistoTable" ,
147 m_histo1DTableHeader = Gaudi::Utils::Histos::Formats::header () ,
148 "The table header for printout of 1D histograms " ) ;
149 this->declareProperty
150 ( "UseSequencialNumericAutoIDs", m_useNumericAutoIDs = false,
151 "Flag to allow users to switch back to the old style of creating numerical automatic IDs" );
152 this->declareProperty
153 ( "AutoStringIDPurgeMap", m_idReplaceInfo = { { "/", "=SLASH=" } } ,
154 "Map of strings to search and replace when using the title as the basis of automatically generated literal IDs" );
155 }
GaudiHistos::m_declareMoniHists
bool m_declareMoniHists
Flag to turn on/off the registration of histograms to the Monitoring Service.
Definition: GaudiHistos.h:3082
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:28
GaudiHistos::m_histoTopDir
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
GaudiHistos::m_histo1DTableFormat
std::string m_histo1DTableFormat
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3110
Gaudi::Utils::Histos::Formats::header
GAUDI_API std::string header(const int ID=Default)
get the recommended header by enum
Definition: HistoTableFormat.cpp:168
GaudiHistos::m_histoOffSet
HistoID::NumericID m_histoOffSet
general histogram ID offset (only works for automatically assigned numeric IDs)
Definition: GaudiHistos.h:3072
Gaudi::Utils::Histos::Formats::format
GAUDI_API std::string format(const int ID=Default)
get the format by enum
Definition: HistoTableFormat.cpp:145
GaudiHistos::m_histoCountersPrint
bool m_histoCountersPrint
print histogram counters at finalization
Definition: GaudiHistos.h:3080
GaudiHistos::m_histo1DTableFormatShort
std::string m_histo1DTableFormatShort
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3112
GaudiHistos::m_splitHistoDir
bool m_splitHistoDir
split histogram directory name (very useful for Hbook)
Definition: GaudiHistos.h:3070
GaudiHistos
Templated base class providing common histogramming methods for GaudiAlgorithm and GaudiTool like cla...
Definition: GaudiHistos.h:48
GaudiHistos::m_histoDir
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
GaudiHistos::m_idReplaceInfo
std::map< std::string, std::string > m_idReplaceInfo
Map of strings to search and replace when using the title as the basis of automatically generated lit...
Definition: GaudiHistos.h:3120
GaudiHistos::m_produceHistos
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
GaudiHistos::m_histo1DTableHeader
std::string m_histo1DTableHeader
the header for the table of 1-D historgrams
Definition: GaudiHistos.h:3114
GaudiHistos::m_useNumericAutoIDs
bool m_useNumericAutoIDs
Flag to switch back to the old style sequencial numerical automatic IDs.
Definition: GaudiHistos.h:3116
GaudiHistos::m_checkForNaN
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
GaudiHistos::m_fullDetail
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
GaudiHistos::m_histosPrint
bool m_histosPrint
print histograms at finalization
Definition: GaudiHistos.h:3078
template<class PBASE >

StatusCode GaudiHistos< PBASE >::initialize | ( |  | ) |
| override protected

standard initialization method

Returns
  status code

Definition at line 166 of file GaudiHistos.icpp.

167 {
168 // initialize base class
169 const StatusCode sc = PBASE::initialize();
170 if ( sc.isFailure() ) return sc;
171
172 // produce histograms?
173 if ( !produceHistos() )
174 {
175 this->debug() << "Histogram production is switched OFF" << endmsg;
176 return sc;
177 }
178
179 // check the validity of histogram service
180 if ( !this->histoSvc() )
181 { return this->Error("initialize():: IHistogramSvc* is invalid"); }
182
183 // Warn if the user has decided to use numerical automatic IDs
184 if ( useNumericAutoIDs() )
185 {
186 this ->
187 Warning( "Using numerical automatic IDs. These are not guaranteed to be totally deterministic. Use with care...",
188 StatusCode::SUCCESS ).ignore();
189 }
190
191 // Finally, print the location histogram will be written to
192 this->Print
193 ( "The histogram path is set to be '" + histoPath() + "'",
194 StatusCode( StatusCode::SUCCESS, true ) , MSG::DEBUG ).ignore();
195
196 return sc;
197 }
AnalysisTest.initialize
def initialize()
Definition: AnalysisTest.py:12
MSG::DEBUG
Definition: IMessageSvc.h:18
merge_files.sc
int sc
Definition: merge_files.py:167
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
GaudiHistos::useNumericAutoIDs
bool useNumericAutoIDs() const
Use old style sequencial numerical automatically assigned IDs ?
Definition: GaudiHistos.h:2711
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

void GaudiHistos< PBASE >::monitorHisto | ( | const AIDA::IBaseHistogram * | hist,
|  | const HistoID & | ID
| ) |  | const
| private

Declare a histogram to the monitor service.

Uses the histogram ID as the 'name' sent to the monitor service and the histogram title as the long description

Definition at line 384 of file GaudiHistos.icpp.

386 {
387 if ( hist && m_declareMoniHists )
388 {
389 if ( this->msgLevel(MSG::DEBUG) )
390 {
391 this->debug() << "Monitoring histogram '"
392 << ID.idAsString() << "' desc = '"
393 << Gaudi::Utils::Histos::htitle(hist) << "'" << endmsg;
394 }
395 this->declareInfo ( histoPath()+"/"+ID.idAsString() ,
396 hist ,
397 Gaudi::Utils::Histos::htitle(hist) ) ;
398 }
399 }
Gaudi::Utils::Histos::htitle
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
GaudiHistos::m_declareMoniHists
bool m_declareMoniHists
Flag to turn on/off the registration of histograms to the Monitoring Service.
Definition: GaudiHistos.h:3082
MSG::DEBUG
Definition: IMessageSvc.h:18
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<class PBASE >

void GaudiHistos< PBASE >::newHistoID | ( | const std::string & | title,
|  | HistoID & | ID
| ) |  | const
| private

Create a new histogram ID using the given title.

Parameters

  [in] | title | Histogram title
  [out] | ID | The ID to use for the new histogram

Definition at line 458 of file GaudiHistos.icpp.

460 {
461 if ( useNumericAutoIDs() || title.empty() )
462 {
463 if ( !useNumericAutoIDs() )
464 {
465 this -> Warning( "Cannot generate automatic literal ID from an empty title ! Using numeric ID instead for histogram ID",
466 StatusCode::SUCCESS );
467 }
468 // propose the histogram ID (always numeric)
469 ID = HistoID( totalNumberOfHistos() + 1 + histoOffSet() );
470 // adjust the proposed ID
471 while ( histoExists( ID ) ) { ID = HistoID ( ID.numeric() + 1 ) ; }
472 }
473 else
474 {
475 // use the title to create a unique literal ID
476 ID = HistoID( this->convertTitleToID(title) );
477 // Just in case ...
478 while ( histoExists( ID ) ) { ID = HistoID(ID.idAsString()+"_"); }
479 }
480 }
GaudiHistos::histoOffSet
HistoID::NumericID histoOffSet() const
get the value for histogram offset (property "HistoOffSet")
Definition: GaudiHistos.h:2699
std::string::empty
T empty(T...args)
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
StatusCode::SUCCESS
Definition: StatusCode.h:30
GaudiHistos::totalNumberOfHistos
unsigned int totalNumberOfHistos() const
Returns the total number of histograms (of all types) currently booked.
Definition: GaudiHistos.icpp:444
GaudiHistos::useNumericAutoIDs
bool useNumericAutoIDs() const
Use old style sequencial numerical automatically assigned IDs ?
Definition: GaudiHistos.h:2711
GaudiHistos::histoExists
bool histoExists(const std::string &title) const
check the existence AND validity of the histogram with given title
Definition: GaudiHistos.h:2665
GaudiHistos::convertTitleToID
std::string convertTitleToID(std::string title) const
Create an ID string from a title string.
Definition: GaudiHistos.icpp:485
template<class PBASE >

bool GaudiHistos< PBASE >::noHistos | ( |  | ) | const
| private

Check if all histogram maps are empty.

Definition at line 366 of file GaudiHistos.icpp.

367 {
368 return ( histo1DMapTitle () . empty() &&
369 histo2DMapTitle () . empty() &&
370 histo3DMapTitle () . empty() &&
371 profile1DMapTitle () . empty() &&
372 profile2DMapTitle () . empty() &&
373 histo1DMapID () . empty() &&
374 histo2DMapID () . empty() &&
375 histo3DMapID () . empty() &&
376 profile1DMapID () . empty() &&
377 profile2DMapID () . empty() );
378 }
GaudiHistos::profile2DMapID
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
GaudiHistos::histo3DMapTitle
const Histo3DMapTitle & histo3DMapTitle() const
get access to the map of all 3D histograms indexed via their title
Definition: GaudiHistos.h:2845
GaudiHistos::profile2DMapTitle
const Profile2DMapTitle & profile2DMapTitle() const
get access to the map of all 2D profile histograms indexed via their title
Definition: GaudiHistos.h:2947
GaudiHistos::histo1DMapTitle
const Histo1DMapTitle & histo1DMapTitle() const
get access to the map of all 1D histograms indexed via their title
Definition: GaudiHistos.h:2744
GaudiHistos::histo1DMapID
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
GaudiHistos::profile1DMapTitle
const Profile1DMapTitle & profile1DMapTitle() const
get access to the map of all 1D profile histograms indexed via their title
Definition: GaudiHistos.h:2897
GaudiHistos::profile1DMapID
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
GaudiHistos::histo2DMapID
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
GaudiHistos::histo2DMapTitle
const Histo2DMapTitle & histo2DMapTitle() const
get access to the map of all 2D histograms indexed via their title
Definition: GaudiHistos.h:2795
GaudiHistos::histo3DMapID
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const double | value,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`,
|  | const double | weight = `1.0`
| ) |  | const
| inline

fill the 1D histogram (book on demand)

Wrapper method for the equivalent plot1D method. Retained for backwards compatibility, please use plot1D instead.

Parameters

  value | value to be filled
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 152 of file GaudiHistos.h.

158 {
159 return plot1D ( value, title, low, high, bins, weight );
160 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const double | value,
|  | const Gaudi::Histo1DDef & | hdef,
|  | const double | weight = `1.0`
| ) |  | const
| inline

fill the 1D histogram (book on demand)

Wrapper method for the equivalent plot1D method. Retained for backwards compatibility, please use plot1D instead.

Parameters

  value | value to be filled
  hdef | histogram descriptor
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 202 of file GaudiHistos.h.

205 {
206 return plot1D ( value, hdef, weight );
207 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const double | value,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`,
|  | const double | weight = `1.0`
| ) |  | const
| inline

fill the 1D histogram with forced ID assignment (book on demand)

Wrapper method for the equivalent plot1D method. Retained for backwards compatibility, please use plot1D instead.

Parameters

  value | value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 298 of file GaudiHistos.h.

305 {
306 return plot1D ( value, ID, title, low, high, bins, weight );
307 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE>

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const double | value,
|  | const HistoID & | ID,
|  | const Gaudi::Histo1DDef & | hdef,
|  | const double | weight = `1.0`
| ) |  | const
| inline

fill the 1D histogram (book on demand)

Wrapper method for the equivalent plot1D method. Retained for backwards compatibility, please use plot1D instead.

Parameters

  value | value to be filled
  ID | histogram identifier
  hdef | histogram descriptor
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 352 of file GaudiHistos.h.

356 {
357 return plot1D ( value, ID, hdef, weight );
358 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE>
template<class FUNCTION , class OBJECT >

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const FUNCTION & | func,
|  | OBJECT | first,
|  | OBJECT | last,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`
| ) |  | const
| inline

fill the 1D histogram with information from [first,last) sequence

std::vector<double> v = ... ;
plot( sin , // function
v.begin() , v.end() , // sequence
" bla-bla " , // title
-1. , 1.0 , // low and high limits
100 ) // number of bins

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

Sequence, objects and function can be non-trivial:

Particles* p = ... ;
plot( PT , // function
p->begin() , p->end() , // sequence
" bla-bla " , // title
-1. , 1.0 , // low and high limits
100 ) ; // number of bins

where `PT` can be any function or function object for which the expression `PT(p)` , with `p` of type `Particle*` have some sense and can be evaluated to the values, which is convertible to `double`

Attention
  These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.

See also
  AIDA::IHistogram1D

Parameters

  func | function to be plotted
  first | begin of the sequence
  last | end of the sequence
  title | histogram title
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins for histogram

Definition at line 424 of file GaudiHistos.h.

431 {
432 AIDA::IHistogram1D* h = nullptr;
433 if ( produceHistos() )
434 {
435 // retrieve or book the histogram
436 h = histo1D ( title ) ;
437 if ( !h ) { h = book1D ( title , low , high , bins ); }
438 // fill histogram
439 while( first != last && h )
440 { h = fill ( h , func( *first ) , 1.0 , title ) ; ++first ; }
441 }
442 return h ;
443 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiPluginService.cpluginsvc.func
tuple func
Definition: cpluginsvc.py:218
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE>
template<class FUNCTION , class OBJECT >

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const FUNCTION & | func,
|  | OBJECT | first,
|  | OBJECT | last,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`
| ) |  | const
| inline

fill the 1D histogram with forced ID and information from [first,last) sequence

std::vector<double> v = ... ;
// Example with numeric ID
plot( sin , // function
v.begin() , v.end() , // sequence
100 , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 ); // number of bins
// Example with literal ID
plot( sin , // function
v.begin() , v.end() , // sequence
"sin" , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 ); // number of bins

Sequence, objects and function can be non-trivial:

Particles* p = ... ;
plot( PT , // function
p->begin() , p->end() , // sequence
100 , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 ) ; // number of bins

Attention
  These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.

See also
  AIDA::IHistogram1D

Parameters

  func | function to be plotted
  first | begin of the sequence
  last | end of the sequence
  ID | histogram identifier
  title | histogram title
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins for histogram

Definition at line 502 of file GaudiHistos.h.

510 {
511 AIDA::IHistogram1D* h(0);
512 if ( produceHistos() )
513 {
514 // retrieve or book the histogram
515 h = histo1D ( ID ) ;
516 if ( !h ) { h = book1D ( ID , title , low , high , bins ); }
517 // fill histogram
518 while( first != last && h )
519 { h = fill( h , func( *first ) , 1.0 , title ) ; ++first ; }
520 }
521 return h;
522 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiPluginService.cpluginsvc.func
tuple func
Definition: cpluginsvc.py:218
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE>
template<class FUNCTION , class OBJECT , class WEIGHT >

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const FUNCTION & | func,
|  | OBJECT | first,
|  | OBJECT | last,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins,
|  | const WEIGHT & | weight
| ) |  | const
| inline

book and fill the 1D histogram with information from [first,last) sequence with given weight

std::vector<double> v = ... ;
plot( sin , // function
v.begin() , v.end() , // sequence
" bla-bla " , // title
-1. , 1.0 , // low and high limits
100 , // number of bins
tanh ); // weight function

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

Sequence, objects and function can be non-trivial:

Particles* p = ... ;
plot( PT , // function
p->begin() , p->end() , // sequence
" bla-bla " , // title
-1. , 1.0 , // low and high limits
100 , // number of bins
MASS ) ; // weight function

where `PT` and `MASS` can be any function or function object for which the expressions `PT(p)` and `MASS` with `p` of type `Particle*` have some sense and can be evaluated to the values, which is convertible to `double`

Attention
  These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.

See also
  AIDA::IHistogram1D

Parameters

  first | begin of the sequence
  last | end of the sequence
  title | histogram title
  func | function to be plotted
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins for histogram
  weight | weight function

Definition at line 594 of file GaudiHistos.h.

602 {
603 AIDA::IHistogram1D* h = nullptr;
604 if ( produceHistos() )
605 {
606 // retrieve or book the histogram
607 h = histo1D ( title ) ;
608 if ( !h ) { h = book1D ( title , low , high , bins ); }
609 // fill histogram
610 while ( first != last && h )
611 { h = fill ( h ,
612 func ( *first ) ,
613 weight ( *first ) , title ) ; ++first ; }
614 }
615 return h;
616 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiPluginService.cpluginsvc.func
tuple func
Definition: cpluginsvc.py:218
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE>
template<class FUNCTION , class OBJECT , class WEIGHT >

AIDA::IHistogram1D* GaudiHistos< PBASE >::plot | ( | const FUNCTION & | func,
|  | OBJECT | first,
|  | OBJECT | last,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins,
|  | const WEIGHT & | weight
| ) |  | const
| inline

book and fill the 1D histogram with forced ID and information from [first,last) sequence with given weight

std::vector<double> v = ... ;
// example with numerical ID
plot( sin , // function
v.begin() , v.end() , // sequence
100 , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 , // number of bins
sinh ); // weight function
// example with literal ID
plot( sin , // function
v.begin() , v.end() , // sequence
"sin" , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 , // number of bins
sinh ); // weight function

Attention
  no checks for NaN or Finite are performed!

Sequence, objects and function can be non-trivial:

Particles* p = ... ;
plot( PT , // function
p->begin() , p->end() , // sequence
100 , " bla-bla " , // ID and title
-1. , 1.0 , // low and high limits
100 , // number of bins
MASS ) ; // weight function

where `PT` and `MASS` can be any function or function object for which the expressions `PT(p)` and `MASS` with `p` of type `Particle*` have some sense and can be evaluated to the values, which is convertible to `double`

Attention
  These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.

See also
  AIDA::IHistogram1D

Parameters

  first | begin of the sequence
  last | end of the sequence
  ID | histogram identifier
  title | histogram title
  func | function to be plotted
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins for histogram
  weight | weight function

Definition at line 686 of file GaudiHistos.h.

695 {
696 AIDA::IHistogram1D* h = nullptr;
697 if ( produceHistos() )
698 {
699 // retrieve or book the histogram
700 h = histo1D ( ID ) ;
701 if ( !h ) { h = book1D ( ID , title , low , high , bins ); }
702 // fill histogram
703 while( first != last && h )
704 { h = fill ( h ,
705 func ( *first ) ,
706 weight ( *first ) , title ) ; ++first ; }
707 }
708 return h ;
709 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
GaudiPluginService.cpluginsvc.func
tuple func
Definition: cpluginsvc.py:218
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D histogram (book on demand)

const double mass = ... ;
plot1D( mass , "Invariant Mass" , 2.5 , 3.5 , 100 )

This example illustrates the filling of the histogram titled `"InvariantMass"` with value `mass` .

If the histogram with given title does not exist yet it will be automatically booked with parameters `low` equal to 2.5, parameters `high` equal to 3.5 and `bins` equal to 100.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram1D

Parameters

  value | value to be filled
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 137 of file GaudiHistos_1DFixedBinning.icpp.

143 {
144 AIDA::IHistogram1D * h(nullptr);
145 if ( produceHistos() )
146 {
147 // retrieve or book the histogram
148 h = histo1D ( title ) ;
149 if ( !h ) { h = book1D ( title , low , high , bins ) ; }
150 // fill the histogram
151 h = fill ( h , value , weight , title );
152 }
153 return h;
154 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const Gaudi::Histo1DDef & | hdef,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D histogram (book on demand)

const Gaudi::Histo1DDef& hdef = ... ;
const double mass = ... ;
plot1D ( mass , hdef ) ;

The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title.

The histogram descriptor comes e.g. from the component properties.

See also
  AIDA::IHistogram1D

Parameters

  value | value to be filled
  hdef | histogram descriptor
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 214 of file GaudiHistos_1DFixedBinning.icpp.

217 {
218 return plot1D
219 ( value ,
220 hdef.title() , hdef.lowEdge() , hdef.highEdge() , hdef.bins() ,
221 weight ) ;
222 }
Gaudi::Histo1DDef::highEdge
double highEdge() const
get the high edge
Definition: HistoDef.h:66
Gaudi::Histo1DDef::lowEdge
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
Gaudi::Histo1DDef::title
const std::string & title() const
get the title
Definition: HistoDef.h:70
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Gaudi::Histo1DDef::bins
int bins() const
get the number of bins
Definition: HistoDef.h:68
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | low,
|  | const double | high,
|  | const unsigned long | bins = `100`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D histogram with forced ID assignment (book on demand)

const double mass = ... ;
plot1D( mass , 15 , "Invariant Mass" , 2.5 , 3.5 , 100 )

This example illustrates the filling of the 1D histogram ID=15 titled `"Invariant Mass"` with value `mass` .

If the histogram with given ID does not exist yet it will be automatically booked with parameters `low` equal to 2.5, parameters `high` equal to 3.5 and `bins` equal to 100.

It is also possible to use literal IDs. For example :-

const double mass = ... ;
plot1D( mass , "mass" , "Invariant Mass" , 2.5 , 3.5 , 100 )

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double mass = ... ;
plot1D( mass , "subdir/mass" , "Invariant Mass" , 2.5 , 3.5 , 100 )

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together. It is still desirable to use the unique histogram title to avoid a bad interference.

See also
  AIDA::IHistogram1D

Parameters

  value | value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  low | low limit for histogram
  high | high limit for histogram
  bins | number of bins
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 161 of file GaudiHistos_1DFixedBinning.icpp.

168 {
169 AIDA::IHistogram1D* h(nullptr);
170 if ( produceHistos() )
171 {
172 // retrieve or book the histogram
173 h = histo1D ( ID ) ;
174 if ( !h ) { h = book1D ( ID , title , low , high , bins ) ; }
175 // fill
176 h = fill ( h , value , weight , title ) ;
177 }
178 return h;
179 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const HistoID & | ID,
|  | const Gaudi::Histo1DDef & | hdef,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D histogram with forced ID assignment (book on demand)

// get the histogram descriptor
const Gaudi::Histo1DDef& hdef = ... ;
// get the histogram ID
const HistoID ID = ... ;
const double mass = ... ;
plot1D ( mass , ID , hdef )

See also
  AIDA::IHistogram1D

The histogram descriptor comes e.g. from component properties

Parameters

  value | value to be filled
  ID | histogram identifier
  hdef | histogram descriptor
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 229 of file GaudiHistos_1DFixedBinning.icpp.

233 {
234 return plot1D
235 ( value , ID ,
236 hdef.title() , hdef.lowEdge() , hdef.highEdge() , hdef.bins() ,
237 weight ) ;
238 }
Gaudi::Histo1DDef::highEdge
double highEdge() const
get the high edge
Definition: HistoDef.h:66
Gaudi::Histo1DDef::lowEdge
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
Gaudi::Histo1DDef::title
const std::string & title() const
get the title
Definition: HistoDef.h:70
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Gaudi::Histo1DDef::bins
int bins() const
get the number of bins
Definition: HistoDef.h:68
GaudiHistos::plot1D
AIDA::IHistogram1D * plot1D(const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
fill the 1D histogram (book on demand)
Definition: GaudiHistos_1DFixedBinning.icpp:137
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges,
|  | const double | weight = `1.0`
| ) |  | const

Fill the 1D variable binning histogram (book on demand)

const GaudiAlg::HistoBinEdges edges = ...;
const double mass = ... ;
plot1D( mass , "Invariant Mass" , edges )

This example illustrates the filling of the histogram titled `"InvariantMass"` with value `mass`.

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram1D

Parameters

  value | value to be filled
  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 97 of file GaudiHistos_1DVariableBinning.icpp.

101 {
102 AIDA::IHistogram1D * h(nullptr);
103 if ( produceHistos() )
104 {
105 // retrieve or book the histogram
106 h = histo1D ( title ) ;
107 if ( !h ) { h = book1D ( title , edges ) ; }
108 // fill the histogram
109 h = fill ( h , value , weight , title );
110 }
111 return h;
112 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram1D * GaudiHistos< PBASE >::plot1D | ( | const double | value,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D variable binning histogram with forced ID assignment (book on demand)

const GaudiAlg::HistoBinEdges edges = ...;
const double mass = ... ;
plot1D( mass , 15 , "Invariant Mass" , edges )

This example illustrates the filling of the 1D histogram ID=15 titled `"Invariant Mass"` with value `mass`.

If the histogram with given ID does not exist yet it will be automatically booked with the given histogram bin edges.

It is also possible to use literal IDs. For example :-

const GaudiAlg::HistoBinEdges edges = ...;
const double mass = ... ;
plot1D( mass , "mass" , "Invariant Mass" , edges )

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const GaudiAlg::HistoBinEdges edges = ...;
const double mass = ... ;
plot1D( mass , "subdir/mass" , "Invariant Mass" , edges )

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together. It is still desirable to use the unique histogram title to avoid a bad interference.

See also
  AIDA::IHistogram1D

Parameters

  value | value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges
  weight | weight

Returns
  pointer to AIDA 1D histogram

Definition at line 119 of file GaudiHistos_1DVariableBinning.icpp.

124 {
125 AIDA::IHistogram1D* h(nullptr);
126 if ( produceHistos() )
127 {
128 // retrieve or book the histogram
129 h = histo1D ( ID ) ;
130 if ( !h ) { h = book1D ( ID , title , edges ) ; }
131 // fill
132 h = fill ( h , value , weight , title ) ;
133 }
134 return h;
135 }
GaudiHistos::book1D
AIDA::IHistogram1D * book1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos_1DFixedBinning.icpp:8
GaudiHistos::histo1D
AIDA::IHistogram1D * histo1D(const std::string &title) const
access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL ...
Definition: GaudiHistos.h:2569
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::plot2D | ( | const double | valueX,
|  | const double | valueY,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const unsigned long | binsX = `50`,
|  | const unsigned long | binsY = `50`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D histogram (book on demand)

const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2,
"Invariant Mass2 versus Mass1" ,2.5 ,3.5, 4.5, 5.5, 100, 200 );

This example illustrates the filling of the 2D histogram titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `binsX` equal to 100 and `binsY` equal to 200.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  weight | weight

Returns
  pointer to AIDA 2D histogram

Definition at line 150 of file GaudiHistos_2DFixedBinning.icpp.

160 {
161 AIDA::IHistogram2D * h(nullptr);
162 if ( produceHistos() )
163 {
164 // retrieve or book the histogram
165 h = histo2D ( title ) ;
166 if ( !h )
167 { h = book2D ( title , lowX , highX , binsX , lowY , highY , binsY ) ; }
168 // fill the histogram
169 h = fill ( h , valueX , valueY , weight , title ) ;
170 }
171 return h;
172 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::plot2D | ( | const double | valueX,
|  | const double | valueY,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const unsigned long | binsX = `50`,
|  | const unsigned long | binsY = `50`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D histogram with forced ID assignment (book on demand)

const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, 15,
"Invariant Mass2 versus Mass1" ,2.5 ,3.5, 4.5, 5.5, 100, 200 );

This example illustrates the filling of the 2D histogram ID=15 titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `binsX` equal to 100 and `binsY` equal to 200.

It is also possible to use literal IDs. For example :-

const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, "mass",
"Invariant Mass2 versus Mass1" ,2.5 ,3.5, 4.5, 5.5, 100, 200 );

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, "subdir/mass",
"Invariant Mass2 versus Mass1" ,2.5 ,3.5, 4.5, 5.5, 100, 200 );

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference

See also
  AIDA::IHistogram2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  ID | Histogram ID to use
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  weight | weight

Returns
  pointer to AIDA 2D histogram

Definition at line 178 of file GaudiHistos_2DFixedBinning.icpp.

189 {
190 AIDA::IHistogram2D * h(nullptr);
191 // produce histograms ?
192 if ( produceHistos() )
193 {
194 // retrieve or book the histogram
195 h = histo2D ( ID ) ;
196 if ( !h ) { h = book2D ( ID , title ,
197 lowX , highX , binsX ,
198 lowY , highY , binsY ) ; }
199 // fill the histogram
200 h = fill ( h , valueX , valueY , weight , title ) ;
201 }
202 return h;
203 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::plot2D | ( | const double | valueX,
|  | const double | valueY,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const double | weight = `1.0`
| ) |  | const

Fill the 2D variable binning histogram (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2,
"Invariant Mass2 versus Mass1" , edgesX, edgesY );

This example illustrates the filling of the 2D histogram titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  weight | weight

Returns
  pointer to AIDA 2D histogram

Definition at line 101 of file GaudiHistos_2DVariableBinning.icpp.

107 {
108 AIDA::IHistogram2D * h(nullptr);
109 if ( produceHistos() )
110 {
111 // retrieve or book the histogram
112 h = histo2D ( title ) ;
113 if ( !h ) { h = book2D ( title , edgesX , edgesY ) ; }
114 // fill the histogram
115 h = fill ( h , valueX , valueY , weight , title );
116 }
117 return h;
118 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram2D * GaudiHistos< PBASE >::plot2D | ( | const double | valueX,
|  | const double | valueY,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D variable histogram with forced ID assignment (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, 15,
"Invariant Mass2 versus Mass1", edgesX, edgesY );

This example illustrates the filling of the 2D histogram ID=15 titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

It is also possible to use literal IDs. For example :-

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, "mass",
"Invariant Mass2 versus Mass1", edgesX, edgesY );

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double mass1 = ... ;
const double mass2 = ... ;
plot2D( mass1, mass2, "subdir/mass",
"Invariant Mass2 versus Mass1", edgesX, edgesY );

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference

See also
  AIDA::IHistogram2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  ID | Histogram ID to use
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  weight | weight

Returns
  pointer to AIDA 2D histogram

Definition at line 125 of file GaudiHistos_2DVariableBinning.icpp.

132 {
133 AIDA::IHistogram2D * h(nullptr);
134 if ( produceHistos() )
135 {
136 // retrieve or book the histogram
137 h = histo2D ( ID ) ;
138 if ( !h ) { h = book2D ( ID , title , edgesX , edgesY ) ; }
139 // fill
140 h = fill ( h , valueX , valueY , weight , title ) ;
141 }
142 return h;
143 }
GaudiHistos::histo2D
AIDA::IHistogram2D * histo2D(const std::string &title) const
access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL ...
Definition: GaudiHistos.h:2590
GaudiHistos::book2D
AIDA::IHistogram2D * book2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D histogram
Definition: GaudiHistos_2DFixedBinning.icpp:8
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::plot3D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const double | lowZ,
|  | const double | highZ,
|  | const unsigned long | binsX = `10`,
|  | const unsigned long | binsY = `10`,
|  | const unsigned long | binsZ = `10`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 3D histogram (book on demand)

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z, "Space Points" ,
2.5 , 3.5 ,
4.5 , 5.5 ,
6.5 , 7.5 ,
10, 20, 30 );

This example illustrates the filling of the 3D histogram titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `lowZ` equal to 6.5, `highZ` equal to 7.5, `binsX` equal to 10, `binsY` equal to 20 and `binsZ` equal to 30.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram3D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  lowZ | low z limit for histogram
  highZ | high z limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  binsZ | number of bins in z
  weight | weight

Returns
  pointer to AIDA 3D histogram

Definition at line 166 of file GaudiHistos_3DFixedBinning.icpp.

180 {
181 AIDA::IHistogram3D * h(nullptr);
182 if ( produceHistos() )
183 {
184 // retrieve or book the histogram
185 h = histo3D ( title ) ;
186 if ( !h ) { h = book3D ( title ,
187 lowX , highX , binsX ,
188 lowY , highY , binsY ,
189 lowZ , highZ , binsZ ) ; }
190 // fill the histogram
191 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
192 }
193 return h;
194 }
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::plot3D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const double | lowZ,
|  | const double | highZ,
|  | const unsigned long | binsX = `10`,
|  | const unsigned long | binsY = `10`,
|  | const unsigned long | binsZ = `10`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 3D histogram with forced ID assignment (book on demand)

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z,
15 , "Space Points" ,
2.5 ,3.5, 4.5, 5.5, 6.5, 7.5, 10, 20, 30 );

This example illustrates the filling of the 3D histogram ID=15 titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `lowZ` equal to 6.5, `highZ` equal to 7.5, `binsX` equal to 10, `binsY` equal to 20 and `binsZ` equal to 30.

It is also possible to use literal IDs. For example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z,
"space", "Space Points" ,
2.5 ,3.5, 4.5, 5.5, 6.5, 7.5, 10, 20, 30 );

Will book the same histogram, using the id "space".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z,
"subdir/space", "Space Points" ,
2.5 ,3.5, 4.5, 5.5, 6.5, 7.5, 10, 20, 30 );

Which will create the histogram "space" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference

See also
  AIDA::IHistogram3D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  ID | Histogram ID to use
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  lowZ | low z limit for histogram
  highZ | high z limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  binsZ | number of bins in z
  weight | weight

Returns
  pointer to AIDA 3D histogram

Definition at line 200 of file GaudiHistos_3DFixedBinning.icpp.

215 {
216 AIDA::IHistogram3D * h(nullptr);
217 if ( produceHistos() )
218 {
219 // retrieve or book the histogram
220 h = histo3D ( ID ) ;
221 if ( !h ) { h = book3D ( ID , title ,
222 lowX , highX , binsX ,
223 lowY , highY , binsY ,
224 lowZ , highZ , binsZ ) ; }
225 // fill the histogram
226 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
227 }
228 return h;
229 }
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::plot3D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const HistoBinEdges & | edgesZ,
|  | const double | weight = `1.0`
| ) |  | const

Fill the 3D variable binning histogram (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const GaudiAlg::HistoBinEdges edgesZ = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z, "Space Points", edgesX, edgesY, edgesZ );

This example illustrates the filling of the 3D histogram titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IHistogram3D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  edgesZ | The histogram z bin edges
  weight | weight

Returns
  pointer to AIDA 3D histogram

Definition at line 105 of file GaudiHistos_3DVariableBinning.icpp.

113 {
114 AIDA::IHistogram3D * h(nullptr);
115 if ( produceHistos() )
116 {
117 // retrieve or book the histogram
118 h = histo3D ( title ) ;
119 if ( !h ) { h = book3D ( title , edgesX , edgesY , edgesZ ) ; }
120 // fill the histogram
121 h = fill ( h , valueX , valueY , valueZ , weight , title );
122 }
123 return h;
124 }
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IHistogram3D * GaudiHistos< PBASE >::plot3D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const HistoBinEdges & | edgesZ,
|  | const double | weight = `1.0`
| ) |  | const

fill the 3D histogram with forced ID assignment (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const GaudiAlg::HistoBinEdges edgesZ = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z, "Space Points", edgesX, edgesY, edgesZ );

This example illustrates the filling of the 3D histogram ID=15 titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges and histogram ID.

It is also possible to use literal IDs. For example :-

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const GaudiAlg::HistoBinEdges edgesZ = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z,
"space", "Space Points" ,
edgesX, edgesY, edgesZ );

Will book the same histogram, using the id "space".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const GaudiAlg::HistoBinEdges edgesZ = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
plot3D( X, Y, Z,
"subdir/space", "Space Points" ,
edgesX, edgesY, edgesZ );

Which will create the histogram "space" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

Attention
  If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference

See also
  AIDA::IHistogram3D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  ID | Histogram ID to use
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  edgesZ | The histogram z bin edges
  weight | weight

Returns
  pointer to AIDA 3D histogram

Definition at line 131 of file GaudiHistos_3DVariableBinning.icpp.

140 {
141 AIDA::IHistogram3D * h(nullptr);
142 if ( produceHistos() )
143 {
144 // retrieve or book the histogram
145 h = histo3D ( ID ) ;
146 if ( !h ) { h = book3D ( ID , title , edgesX , edgesY , edgesZ ) ; }
147 // fill
148 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
149 }
150 return h;
151 }
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::book3D
AIDA::IHistogram3D * book3D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
book the 3D histogram
Definition: GaudiHistos_3DFixedBinning.icpp:8
GaudiHistos::histo3D
AIDA::IHistogram3D * histo3D(const std::string &title) const
access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL ...
Definition: GaudiHistos.h:2599
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

void GaudiHistos< PBASE >::printHistoHandler | ( | Property & |  | ) |
| private

the handler for "HistoPrint" property

Definition at line 498 of file GaudiHistos.icpp.

499 {
500 // no action if not yet initialized
501 if ( this -> FSMState() < Gaudi::StateMachine::INITIALIZED ) { return ; }
502 if ( this -> histosPrint() ) { this -> printHistos ( MSG::ALWAYS ) ; }
503 }
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:15
GaudiHistos::printHistos
int printHistos(const MSG::Level level=MSG::ALWAYS) const
perform the actual printout of histograms
Definition: GaudiHistos.icpp:259
MSG::ALWAYS
Definition: IMessageSvc.h:23
GaudiHistos::histosPrint
bool histosPrint() const
print histograms at finalization ?
Definition: GaudiHistos.h:2707
template<class PBASE >

int GaudiHistos< PBASE >::printHistos | ( | const MSG::Level | level = `MSG::ALWAYS` | ) | const

perform the actual printout of histograms

Parameters

  level | The message level to print at

Returns
  number of active histograms

Definition at line 259 of file GaudiHistos.icpp.

260 {
261 using namespace Gaudi::Utils::Histos ;
262
263 if ( noHistos() )
264 {
265 if ( this->msgLevel(MSG::DEBUG) )
266 { this->msgStream(level) << "No histograms are booked" << endmsg ; }
267 return 0 ; // RETURN
268 }
269
270 MsgStream & msg = this->msgStream(level);
271
272 // Printout all histograms
273
274 Gaudi::Utils::Histos::Table table
275 ( m_histo1DTableFormat ,
276 m_histo1DTableHeader ) ;
277
278 if ( !histo1DMapID().empty() )
279 {
280 msg << "List of booked 1D histograms in directory "
281 << "\"" << histoPath() << "\" :-" ;
282
283 if ( !table.header().empty() )
284 {
285 msg << std::endl << Gaudi::Utils::Histos::format
286 ( "ID" , table.header() , m_histo1DTableFormatShort ) ;
287 }
288 for ( const auto& entry : ordered( histo1DMapID() ))
289 {
290 const auto* aida = entry.second ;
291 if ( !aida )
292 { this->error() << "IHistogram1D points to NULL" << endmsg ; continue ; }
293 // format and print the row
294 msg << std::endl << table.toString
295 ( aida ,
296 HistoID ( entry.first ) ,
297 m_histo1DTableFormatShort ) ;
298 }
299 msg << endmsg ;
300 }
301 // ==========================================================================
302 if ( !histo2DMapID().empty() )
303 {
304 msg << "List of booked 2D histograms in directory "
305 << "\"" << histoPath() << "\" :-" ;
306
307 for ( const auto& entry : ordered( histo2DMapID() ) )
308 {
309 const auto* aida = entry.second ;
310 if ( !aida )
311 { this->error() << "IHistogram2D points to NULL" << endmsg ; continue ; }
312 msg << std::endl
313 << GaudiAlg::Print2D::toString ( aida , entry.first );
314 }
315 msg << endmsg ;
316 }
317 // ==========================================================================
318 if ( !histo3DMapID().empty() )
319 {
320 msg << "List of booked 3D histograms in directory "
321 << "\"" << histoPath() << "\" :-" ;
322 for ( const auto& entry : ordered( histo3DMapID() ) )
323 {
324 const auto* aida = entry.second ;
325 if ( !aida )
326 { this->error() << "IHistogram3D points to NULL" << endmsg ; continue ; }
327 msg << std::endl << GaudiAlg::Print3D::toString ( aida , entry.first );
328 }
329 msg << endmsg ;
330 }
331 // ==========================================================================
332 if ( !profile1DMapID().empty() )
333 {
334 msg << "List of booked 1D profile histograms in directory "
335 << "\"" << histoPath() << "\" :-" ;
336 for ( const auto& entry : ordered( profile1DMapID() ) )
337 {
338 const auto* aida = entry.second ;
339 if ( !aida )
340 { this->error() << "IProfile1D points to NULL" << endmsg ; continue ; }
341 msg << std::endl << GaudiAlg::Print1DProf::toString ( aida , entry.first );
342 }
343 msg << endmsg ;
344 }
345 // ==========================================================================
346 if ( !profile2DMapID().empty() )
347 {
348 msg << "List of booked 2D profile histograms in directory "
349 << "\"" << histoPath() << "\" :-" ;
350 for ( const auto& entry : ordered(profile2DMapID() ) )
351 {
352 const auto* aida = entry.second ;
353 if ( !aida )
354 { this->error() << "IProfile2D points to NULL" << endmsg ; continue ; }
355 msg << std::endl << GaudiAlg::Print2DProf::toString ( aida , entry.first );
356 }
357 msg << endmsg ;
358 }
359 //
360 return this->totalNumberOfHistos() ;
361 }
MsgStream
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
GaudiMP.FdsRegistry.msg
tuple msg
Definition: FdsRegistry.py:8
GaudiHistos::noHistos
bool noHistos() const
Check if all histogram maps are empty.
Definition: GaudiHistos.icpp:366
GaudiHistos::HistoID
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
GaudiHistos::profile2DMapID
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
Gaudi::Utils::Histos::format
GAUDI_API std::string format(const AIDA::IHistogram1D *histo, const std::string &fmt)
Make the string representation of the historgam according to the specified format.
Definition: HistoTableFormat.cpp:209
MSG::DEBUG
Definition: IMessageSvc.h:18
std::endl
T endl(T...args)
Gaudi::Utils::Histos
Collection of useful utilities for manipulations with AIDA hisgograms.
Definition: Fill.h:27
GaudiHistos::m_histo1DTableFormat
std::string m_histo1DTableFormat
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3110
GaudiHistos::totalNumberOfHistos
unsigned int totalNumberOfHistos() const
Returns the total number of histograms (of all types) currently booked.
Definition: GaudiHistos.icpp:444
GaudiHistos::histo1DMapID
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
Gaudi::Utils::Histos::Table
Simple class for the customizeble printout of the histogram tables.
Definition: HistoTableFormat.h:409
GaudiAlg::Print3D::toString
static std::string toString(const AIDA::IHistogram3D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:107
GaudiHistos::m_histo1DTableFormatShort
std::string m_histo1DTableFormatShort
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3112
GaudiHistos::histoPath
std::string histoPath() const
get the constructed histogram path
Definition: GaudiHistos.icpp:508
GaudiHistos::profile1DMapID
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
GaudiHistos::histo2DMapID
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
GaudiAlg::Print2D::toString
static std::string toString(const AIDA::IHistogram2D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:87
gaudirun.level
level
Definition: gaudirun.py:261
GaudiAlg::Print1DProf::toString
static std::string toString(const AIDA::IProfile1D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:128
GaudiHistos::m_histo1DTableHeader
std::string m_histo1DTableHeader
the header for the table of 1-D historgrams
Definition: GaudiHistos.h:3114
GaudiAlg::Print2DProf::toString
static std::string toString(const AIDA::IProfile2D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:147
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GaudiHistos::histo3DMapID
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>

bool GaudiHistos< PBASE >::produceHistos | ( |  | ) | const
| inline

get the flag for histogram production (property "HistoProduce")

Definition at line 2691 of file GaudiHistos.h.

2691 { return m_produceHistos ; }
GaudiHistos::m_produceHistos
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::profile1D | ( | const double | valueX,
|  | const double | valueY,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const unsigned long | binsX = `100`,
|  | const std::string & | opt = `""`,
|  | const double | lowY = `-std::numeric_limits<double>::max()`,
|  | const double | highY = `std::numeric_limits<double>::max()`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D profile histogram (book on demand)

const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2, "Invariant Mass2 versus Mass1" ,2.5 ,3.5, 100 );

This example illustrates the filling of the 1D profile histogram titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `binsX` equal to 100

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IProfile1D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  opt | the options, used for evaluation of errors
  lowY | the min cut-off for y-values
  highY | the max cut-off for y-values
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 148 of file GaudiHistos_1DProfFixedBinning.icpp.

158 {
159 AIDA::IProfile1D * h = nullptr;
160 if ( produceHistos() )
161 {
162 // retrieve or book the histogram
163 h = profile1D ( title ) ;
164 if ( !h )
165 { h = bookProfile1D ( title , lowX , highX , binsX , opt , lowY , highY ) ; }
166 // fill the histogram
167 h = fill ( h , valueX , valueY , weight , title ) ;
168 }
169 return h;
170 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::profile1D | ( | const double | valueX,
|  | const double | valueY,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const unsigned long | binsX = `100`,
|  | const std::string & | opt = `""`,
|  | const double | lowY = `-std::numeric_limits<double>::max()`,
|  | const double | highY = `std::numeric_limits<double>::max()`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D profile histogram with forced ID assignment (book on demand)

const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
15, "Invariant Mass2 versus Mass1" ,2.5 ,3.5, 100 );

This example illustrates the filling of the 1D profile histogram with ID=15 titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `binsX` equal to 100

It is also possible to use literal IDs. For example :-

const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
"mass", "Invariant Mass2 versus Mass1" ,2.5 ,3.5, 100 );

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
"subdir/mass", "Invariant Mass2 versus Mass1" ,2.5 ,3.5, 100 );

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

See also
  AIDA::IProfile1D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  binsX | number of bins in x
  opt | the options, used for evaluation of errors
  lowY | the min cut-off for y-values
  highY | the max cut-off for y-values
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 176 of file GaudiHistos_1DProfFixedBinning.icpp.

187 {
188 AIDA::IProfile1D * h = nullptr;
189 if ( produceHistos() )
190 {
191 // retrieve or book the histogram
192 h = profile1D ( ID ) ;
193 if ( !h )
194 { h = bookProfile1D ( ID , title , lowX , highX , binsX , opt , lowY , highY ) ; }
195 // fill the histogram
196 h = fill ( h , valueX , valueY , weight , title ) ;
197 }
198 return h;
199 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::profile1D | ( | const double | valueX,
|  | const double | valueY,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D variable binning profile histogram (book on demand)

const GaudiAlg::HistoBinEdges edges = ...;
const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2, "Invariant Mass2 versus Mass1", edges );

This example illustrates the filling of the 1D profile histogram titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IProfile1D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 95 of file GaudiHistos_1DProfVariableBinning.icpp.

100 {
101 AIDA::IProfile1D * h(nullptr);
102 if ( produceHistos() )
103 {
104 // retrieve or book the histogram
105 h = profile1D ( title ) ;
106 if ( !h ) { h = bookProfile1D ( title , edges ) ; }
107 // fill the histogram
108 h = fill ( h , valueX , valueY , weight , title ) ;
109 }
110 return h;
111 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::profile1D | ( | const double | valueX,
|  | const double | valueY,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edges,
|  | const double | weight = `1.0`
| ) |  | const

fill the 1D variable binning profile histogram with forced ID assignment (book on demand)

const GaudiAlg::HistoBinEdges edges = ...;
const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
15, "Invariant Mass2 versus Mass1", edges );

This example illustrates the filling of the 1D profile histogram with ID=15 titled `"Invariant Mass2 versus Mass1"` with values `mass1` and `mass2` .

If the histogram with given ID does not exist yet it will be automatically booked with the given histogram bin edges.

It is also possible to use literal IDs. For example :-

const GaudiAlg::HistoBinEdges edges = ...;
const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
"mass", "Invariant Mass2 versus Mass1", edges );

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const GaudiAlg::HistoBinEdges edges = ...;
const double mass1 = ... ;
const double mass2 = ... ;
profile1D( mass1, mass2,
"subdir/mass", "Invariant Mass2 versus Mass1", edges );

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

See also
  AIDA::IProfile1D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  edges | The histogram bin edges
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 117 of file GaudiHistos_1DProfVariableBinning.icpp.

123 {
124 AIDA::IProfile1D * h(nullptr);
125 if ( produceHistos() )
126 {
127 // retrieve or book the histogram
128 h = profile1D ( ID ) ;
129 if ( !h ) { h = bookProfile1D ( ID , title , edges ) ; }
130 // fill the histogram
131 h = fill ( h , valueX , valueY , weight , title ) ;
132 }
133 return h;
134 }
GaudiHistos::profile1D
AIDA::IProfile1D * profile1D(const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
fill the 1D profile histogram (book on demand)
Definition: GaudiHistos_1DProfFixedBinning.icpp:148
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::bookProfile1D
AIDA::IProfile1D * bookProfile1D(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
book the 1D profile histogram
Definition: GaudiHistos_1DProfFixedBinning.icpp:6
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE>

AIDA::IProfile1D* GaudiHistos< PBASE >::profile1D | ( | const std::string & | title | ) | const
| inline

access the EXISTING 1D profile histogram by title return the pointer to existing 1D profile histogram or NULL

Definition at line 2608 of file GaudiHistos.h.

2609 {
2610 auto found = profile1DMapTitle().find( title ) ;
2611 return profile1DMapTitle().end() != found ? found->second : nullptr;
2612 }
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
GaudiHistos::profile1DMapTitle
const Profile1DMapTitle & profile1DMapTitle() const
get access to the map of all 1D profile histograms indexed via their title
Definition: GaudiHistos.h:2897
template<class PBASE >

AIDA::IProfile1D * GaudiHistos< PBASE >::profile1D | ( | const HistoID & | ID | ) | const

access the EXISTING 1D profile histogram by ID return the pointer to existing 1D profile histogram or NULL

Definition at line 428 of file GaudiHistos.icpp.

429 {
430 return lookup_( profile1DMapID(), ID );
431 }
GaudiHistos::profile1DMapID
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
template<class PBASE>

const Profile1DMapID& GaudiHistos< PBASE >::profile1DMapID | ( |  | ) | const
| inline

get access to the map of 1D profile histograms index via a ID

// iterate over the map!
for ( const auto& entry : profile1DMapID() )
{
// histogram ID
const HistoID ID = entry.first ;
// histogram itself
AIDA::IProfile1D* h = entry.second ;
if ( 0 == h ) { continue ;}
std::cout << " Histogram ID " << ID
<< " Histogram title " << h->title() << std::endl ;
}

Definition at line 2920 of file GaudiHistos.h.

2920 { return m_profile1DMapID; }
GaudiHistos::m_profile1DMapID
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
template<class PBASE>

const Profile1DMapTitle& GaudiHistos< PBASE >::profile1DMapTitle | ( |  | ) | const
| inline

get access to the map of all 1D profile histograms indexed via their title

Using this method one can inspect e.g. a list of active histograms

const Profile1DMapTitle& histos = profile1DMapTitle() ;
// iterate over the map!
for ( Profile1DMapTitle::const_iterator entry = histos.begin() ;
histos.end() != entry ; ++entry )
{
// histogram title
const std::string& title = entry->first ;
// histogram itself
AIDA::IProfile1D* hist = entry->second ;
if( 0 == hist ) { continue ; } // ATTENTION!
std::cout << " Histogram title " << title << std::endl ;
}

Attention
  The map COULD contains NULL pointers, the check before use is mandatory!

Definition at line 2897 of file GaudiHistos.h.

2897 { return m_profile1DMapTitle; }
GaudiHistos::m_profile1DMapTitle
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::profile2D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const unsigned long | binsX = `50`,
|  | const unsigned long | binsY = `50`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D profile histogram (book on demand)

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2( X, Y, Z, "Space Points" ,2.5 ,3.5, 4.5, 5.5, 10, 20 );

This example illustrates the filling of the 2D profile histogram titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `binsX` equal to 10, `binsY` equal to 20.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IProfile2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  weight | weight

Returns
  pointer to AIDA 2D profile histogram

Definition at line 149 of file GaudiHistos_2DProfFixedBinning.icpp.

160 {
161 AIDA::IProfile2D * h = nullptr;
162 if ( produceHistos() )
163 {
164 // retrieve or book the histogram
165 h = profile2D ( title ) ;
166 if ( 0 == h ) { h = bookProfile2D ( title ,
167 lowX , highX , binsX ,
168 lowY , highY , binsY ) ; }
169 // fill the histogram
170 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
171 }
172 return h;
173 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::profile2D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const double | lowX,
|  | const double | highX,
|  | const double | lowY,
|  | const double | highY,
|  | const unsigned long | binsX = `50`,
|  | const unsigned long | binsY = `50`,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D profile histogram with forced ID assignment (book on demand)

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z, 15, "Space Points" ,2.5 ,3.5, 4.5, 5.5, 10, 20 );

This example illustrates the filling of the 2D profile histogram with ID=15 titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with parameters `lowX` equal to 2.5, `highX` equal to 3.5, `lowY` equal to 4.5, `highY` equal to 5.5, `binsX` equal to 10, `binsY` equal to 20.

It is also possible to use literal IDs. For example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z, "space", "Space Points" ,2.5 ,3.5, 4.5, 5.5, 10, 20 );

Will book the same histogram, using the id "space".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z,
"subdir/space", "Space Points" ,2.5 ,3.5, 4.5, 5.5, 10, 20 );

Which will create the histogram "space" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

See also
  AIDA::IProfile2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  lowX | low x limit for histogram
  highX | high x limit for histogram
  lowY | low y limit for histogram
  highY | high y limit for histogram
  binsX | number of bins in x
  binsY | number of bins in y
  weight | weight

Returns
  pointer to AIDA 2D profile histogram

Definition at line 179 of file GaudiHistos_2DProfFixedBinning.icpp.

191 {
192 AIDA::IProfile2D * h = nullptr;
193 if ( produceHistos() )
194 {
195 // retrieve or book the histogram
196 h = profile2D ( ID ) ;
197 if ( 0 == h ) { h = bookProfile2D ( ID , title ,
198 lowX , highX , binsX ,
199 lowY , highY , binsY ) ; }
200 // fill the histogram
201 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
202 }
203 return h;
204 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::profile2D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D variable binning profile histogram (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z, "Space Points", edgesX, edgesY );

This example illustrates the filling of the 2D profile histogram titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given title does not exist yet it will be automatically booked with the given histogram bin edges.

Attention
  The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.

See also
  AIDA::IProfile2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram x bin edges
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 98 of file GaudiHistos_2DProfVariableBinning.icpp.

105 {
106 AIDA::IProfile2D * h(nullptr);
107 if ( produceHistos() )
108 {
109 // retrieve or book the histogram
110 h = profile2D ( title ) ;
111 if ( !h ) { h = bookProfile2D ( title, edgesX, edgesY ) ; }
112 // fill the histogram
113 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
114 }
115 return h;
116 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::profile2D | ( | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const HistoID & | ID,
|  | const std::string & | title,
|  | const HistoBinEdges & | edgesX,
|  | const HistoBinEdges & | edgesY,
|  | const double | weight = `1.0`
| ) |  | const

fill the 2D variable binning profile histogram with forced ID assignment (book on demand)

const GaudiAlg::HistoBinEdges edgesX = ...;
const GaudiAlg::HistoBinEdges edgesY = ...;
const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2( X, Y, Z, "Space Points", edgesX, edgesY );

This example illustrates the filling of the 2D profile histogram titled `"Space Points"` with values `X`, `Y` and `Z`.

If the histogram with given ID does not exist yet it will be automatically booked with the given histogram bin edges.

It is also possible to use literal IDs. For example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z, "space", "Space Points", edgesX, edgesY );

Will book the same histogram, using the id "mass".

It is also possible using literal IDs, to place histograms in sub-directories from the main histogram directory, using for example :-

const double X = ... ;
const double Y = ... ;
const double Z = ... ;
profile2D( X, Y, Z,
"subdir/space", "Space Points", edgesX, edgesY );

Which will create the histogram "mass" in the sub-directory "subdir". Histograms can also be created in sub-directories with numeric IDs if IDs such as "subdir/1" are used.

See also
  AIDA::IProfile2D

Parameters

  valueX | x value to be filled
  valueY | y value to be filled
  valueZ | z value to be filled
  ID | histogram identifier
  title | histogram title (must be unique within the algorithm)
  edgesX | The histogram x bin edges
  edgesY | The histogram y bin edges
  weight | weight

Returns
  pointer to AIDA 1D profile histogram

Definition at line 122 of file GaudiHistos_2DProfVariableBinning.icpp.

130 {
131 AIDA::IProfile2D * h(nullptr);
132 if ( produceHistos() )
133 {
134 // retrieve or book the histogram
135 h = profile2D ( ID ) ;
136 if ( !h ) { h = bookProfile2D ( ID , title , edgesX , edgesY ) ; }
137
138 // fill the histogram
139 h = fill ( h , valueX , valueY , valueZ , weight , title ) ;
140 }
141 return h;
142 }
GaudiHistos::bookProfile2D
AIDA::IProfile2D * bookProfile2D(const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
book the 2D profile histogram
Definition: GaudiHistos_2DProfFixedBinning.icpp:6
HiveAlgSequencer.h
tuple h
Definition: HiveAlgSequencer.py:24
GaudiHistos::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GaudiHistos::profile2D
AIDA::IProfile2D * profile2D(const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
fill the 2D profile histogram (book on demand)
Definition: GaudiHistos_2DProfFixedBinning.icpp:149
GaudiHistos::fill
AIDA::IHistogram1D * fill(AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
fill the 1D histogram with the value and weight
Definition: GaudiHistos_1DFixedBinning.icpp:105
template<class PBASE>

AIDA::IProfile2D* GaudiHistos< PBASE >::profile2D | ( | const std::string & | title | ) | const
| inline

access the EXISTING 2D profile histogram by title return the pointer to existing 2D profile histogram or NULL

Definition at line 2617 of file GaudiHistos.h.

2618 {
2619 auto found = profile2DMapTitle().find( title ) ;
2620 return profile2DMapTitle().end() != found ? found->second : nullptr;
2621 }
GaudiHistos::profile2DMapTitle
const Profile2DMapTitle & profile2DMapTitle() const
get access to the map of all 2D profile histograms indexed via their title
Definition: GaudiHistos.h:2947
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
template<class PBASE >

AIDA::IProfile2D * GaudiHistos< PBASE >::profile2D | ( | const HistoID & | ID | ) | const

access the EXISTING 2D profile histogram by ID return the pointer to existing 2D profile histogram or NULL

Definition at line 436 of file GaudiHistos.icpp.

437 {
438 return lookup_( profile2DMapID(), ID );
439 }
GaudiHistos::profile2DMapID
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
template<class PBASE>

const Profile2DMapID& GaudiHistos< PBASE >::profile2DMapID | ( |  | ) | const
| inline

get access to the map of 2D profile histograms index via a ID

// iterate over the map!
for ( const auto& entry : profile2DMapID() )
{
// histogram ID
const HistoID ID = entry.first ;
// histogram itself
AIDA::IProfile2D* h = entry.second ;
if ( 0 == h ) { continue ;}
std::cout << " Histogram ID " << ID
<< " Histogram title " << h->title() << std::endl ;
}

Definition at line 2970 of file GaudiHistos.h.

2970 { return m_profile2DMapID; }
GaudiHistos::m_profile2DMapID
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
template<class PBASE>

const Profile2DMapTitle& GaudiHistos< PBASE >::profile2DMapTitle | ( |  | ) | const
| inline

get access to the map of all 2D profile histograms indexed via their title

Using this method one can inspect e.g. a list of active histograms

// iterate over the map!
for ( const auto& entry : profile2DMapTitle() )
{
// histogram title
const std::string& title = entry.first ;
// histogram itself
AIDA::IProfile2D* hist = entry.second ;
if( 0 == hist ) { continue ; } // ATTENTION!
std::cout << " Histogram title " << title << std::endl ;
}

Attention
  The map COULD contains NULL pointers, the check before use is mandatory!

Definition at line 2947 of file GaudiHistos.h.

2947 { return m_profile2DMapTitle; }
GaudiHistos::m_profile2DMapTitle
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
template<class PBASE>

void GaudiHistos< PBASE >::setCheckForNaN | ( | const bool | val | ) |
| inline

set the flag for NaN checks (property "HistoCheckForNan")

Definition at line 2979 of file GaudiHistos.h.

2979 { m_checkForNaN = val ; }
GaudiHistos::m_checkForNaN
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
template<class PBASE>

void GaudiHistos< PBASE >::setFullDetail | ( | const bool | val | ) |
| inline

set flag to control output level of histograms

Definition at line 2977 of file GaudiHistos.h.

2977 { m_fullDetail = val ; }
GaudiHistos::m_fullDetail
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
template<class PBASE>

void GaudiHistos< PBASE >::setHistoDir | ( | const std::string & | val | ) |
| inline

set histogram directory (property "HistoDir")

Definition at line 2990 of file GaudiHistos.h.

2990 { m_histoDir = val ; }
GaudiHistos::m_histoDir
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
template<class PBASE>

void GaudiHistos< PBASE >::setHistoOffSet | ( | const HistoID::NumericID | val | ) |
| inline

set a value for histogram offset (property "HistoOffSet"

Definition at line 2983 of file GaudiHistos.h.

2984 { m_histoOffSet = val ; }
GaudiHistos::m_histoOffSet
HistoID::NumericID m_histoOffSet
general histogram ID offset (only works for automatically assigned numeric IDs)
Definition: GaudiHistos.h:3072
template<class PBASE>

void GaudiHistos< PBASE >::setHistoTopDir | ( | const std::string & | val | ) |
| inline

set top-level histogram directory (property "HistoTopDir")

Definition at line 2987 of file GaudiHistos.h.

2987 { m_histoTopDir = val ; }
GaudiHistos::m_histoTopDir
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
template<class PBASE>

void GaudiHistos< PBASE >::setProduceHistos | ( | const bool | val | ) |
| inline

set the flag for histogram production (property "HistoProduce")

Definition at line 2975 of file GaudiHistos.h.

2975 { m_produceHistos = val ; }
GaudiHistos::m_produceHistos
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
template<class PBASE>

void GaudiHistos< PBASE >::setSplitHistoDir | ( | const bool | val | ) |
| inline

set the flag for histogram path split (property "HistoSplitDir")

Definition at line 2981 of file GaudiHistos.h.

2981 { m_splitHistoDir = val ; }
GaudiHistos::m_splitHistoDir
bool m_splitHistoDir
split histogram directory name (very useful for Hbook)
Definition: GaudiHistos.h:3070
template<class PBASE>

bool GaudiHistos< PBASE >::splitHistoDir | ( |  | ) | const
| inline

get the flag for histogram path split (property "HistoSplitDir")

Definition at line 2697 of file GaudiHistos.h.

2697 { return m_splitHistoDir ; }
GaudiHistos::m_splitHistoDir
bool m_splitHistoDir
split histogram directory name (very useful for Hbook)
Definition: GaudiHistos.h:3070
template<class PBASE >

unsigned int GaudiHistos< PBASE >::totalNumberOfHistos | ( |  | ) | const

Returns the total number of histograms (of all types) currently booked.

Definition at line 444 of file GaudiHistos.icpp.

445 {
446 return
447 histo1DMapID () . size () +
448 histo2DMapID () . size () +
449 histo3DMapID () . size () +
450 profile1DMapID () . size () +
451 profile2DMapID () . size () ;
452 }
GaudiHistos::profile2DMapID
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
GaudiHistos::histo1DMapID
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
GaudiHistos::profile1DMapID
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
GaudiHistos::histo2DMapID
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
GaudiHistos::histo3DMapID
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>

bool GaudiHistos< PBASE >::useNumericAutoIDs | ( |  | ) | const
| inline

Use old style sequencial numerical automatically assigned IDs ?

Definition at line 2711 of file GaudiHistos.h.

2711 { return m_useNumericAutoIDs; }
GaudiHistos::m_useNumericAutoIDs
bool m_useNumericAutoIDs
Flag to switch back to the old style sequencial numerical automatic IDs.
Definition: GaudiHistos.h:3116

## Member Data Documentation

template<class PBASE>

bool GaudiHistos< PBASE >::m_checkForNaN
| private

flag to control check for Nan/Finite while filling the histogram

Definition at line 3068 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_declareMoniHists
| private

Flag to turn on/off the registration of histograms to the Monitoring Service.

Definition at line 3082 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_fullDetail
| private

flag to control output level of histograms

Definition at line 3066 of file GaudiHistos.h.

template<class PBASE>

Histo1DMapID GaudiHistos< PBASE >::m_histo1DMapID
| mutable private

the actual storage/access of 1D histograms by unique ID

Definition at line 3087 of file GaudiHistos.h.

template<class PBASE>

Histo1DMapTitle GaudiHistos< PBASE >::m_histo1DMapTitle
| mutable private

the actual storage/access of 1D histograms by unique title

Definition at line 3085 of file GaudiHistos.h.

template<class PBASE>

std::string GaudiHistos< PBASE >::m_histo1DTableFormat
| private

format for printout of 1D-histograms as a table

Definition at line 3110 of file GaudiHistos.h.

template<class PBASE>

std::string GaudiHistos< PBASE >::m_histo1DTableFormatShort
| private

format for printout of 1D-histograms as a table

Definition at line 3112 of file GaudiHistos.h.

template<class PBASE>

std::string GaudiHistos< PBASE >::m_histo1DTableHeader
| private

the header for the table of 1-D historgrams

Definition at line 3114 of file GaudiHistos.h.

template<class PBASE>

Histo2DMapID GaudiHistos< PBASE >::m_histo2DMapID
| mutable private

the actual storage/access of 2D histograms by unique ID

Definition at line 3092 of file GaudiHistos.h.

template<class PBASE>

Histo2DMapTitle GaudiHistos< PBASE >::m_histo2DMapTitle
| mutable private

the actual storage/access of 2D histograms by unique title

Definition at line 3090 of file GaudiHistos.h.

template<class PBASE>

Histo3DMapID GaudiHistos< PBASE >::m_histo3DMapID
| mutable private

the actual storage/access of 3D histograms by unique ID

Definition at line 3097 of file GaudiHistos.h.

template<class PBASE>

Histo3DMapTitle GaudiHistos< PBASE >::m_histo3DMapTitle
| mutable private

the actual storage/access of 3D histograms by unique title

Definition at line 3095 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_histoCountersPrint
| private

print histogram counters at finalization

Definition at line 3080 of file GaudiHistos.h.

template<class PBASE>

std::string GaudiHistos< PBASE >::m_histoDir
| private

histogram directory

Definition at line 3076 of file GaudiHistos.h.

template<class PBASE>

HistoID::NumericID GaudiHistos< PBASE >::m_histoOffSet
| private

general histogram ID offset (only works for automatically assigned numeric IDs)

Definition at line 3072 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_histosPrint
| private

print histograms at finalization

Definition at line 3078 of file GaudiHistos.h.

template<class PBASE>

std::string GaudiHistos< PBASE >::m_histoTopDir
| private

histogram top level directory

Definition at line 3074 of file GaudiHistos.h.

template<class PBASE>

std::map<std::string,std::string> GaudiHistos< PBASE >::m_idReplaceInfo
| private

Map of strings to search and replace when using the title as the basis of automatically generated literal IDs.

Definition at line 3120 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_produceHistos
| private

flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking

Definition at line 3064 of file GaudiHistos.h.

template<class PBASE>

Profile1DMapID GaudiHistos< PBASE >::m_profile1DMapID
| mutable private

the actual storage/access of 1D profile histograms by unique ID

Definition at line 3102 of file GaudiHistos.h.

template<class PBASE>

Profile1DMapTitle GaudiHistos< PBASE >::m_profile1DMapTitle
| mutable private

the actual storage/access of 1D profile histograms by unique title

Definition at line 3100 of file GaudiHistos.h.

template<class PBASE>

Profile2DMapID GaudiHistos< PBASE >::m_profile2DMapID
| mutable private

the actual storage/access of 2D profile histograms by unique ID

Definition at line 3107 of file GaudiHistos.h.

template<class PBASE>

Profile2DMapTitle GaudiHistos< PBASE >::m_profile2DMapTitle
| mutable private

the actual storage/access of 2D profile histograms by unique title

Definition at line 3105 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_splitHistoDir
| private

split histogram directory name (very useful for Hbook)

Definition at line 3070 of file GaudiHistos.h.

template<class PBASE>

bool GaudiHistos< PBASE >::m_useNumericAutoIDs
| private

Flag to switch back to the old style sequencial numerical automatic IDs.

Definition at line 3116 of file GaudiHistos.h.

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

- GaudiAlg/GaudiAlg/GaudiHistos.h
- GaudiAlg/GaudiAlg/GaudiHistos.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_1DFixedBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_1DProfFixedBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_1DProfVariableBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_1DVariableBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_2DFixedBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_2DProfFixedBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_2DProfVariableBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_2DVariableBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_3DFixedBinning.icpp
- GaudiAlg/GaudiAlg/GaudiHistos_3DVariableBinning.icpp