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 >:
Collaboration diagram for GaudiHistos< PBASE >:

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...
 
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 Histo1DMapTitlehisto1DMapTitle () const
 get access to the map of all 1D histograms indexed via their title More...
 
const Histo1DMapIDhisto1DMapID () const
 get access to the map of all 1D histograms index via ID More...
 
const Histo2DMapTitlehisto2DMapTitle () const
 get access to the map of all 2D histograms indexed via their title More...
 
const Histo2DMapIDhisto2DMapID () const
 get access to the map of 2D histograms index via ID More...
 
const Histo3DMapTitlehisto3DMapTitle () const
 get access to the map of all 3D histograms indexed via their title More...
 
const Histo3DMapIDhisto3DMapID () const
 get access to the map of all 3D histograms index via a ID More...
 
const Profile1DMapTitleprofile1DMapTitle () const
 get access to the map of all 1D profile histograms indexed via their title More...
 
const Profile1DMapIDprofile1DMapID () const
 get access to the map of 1D profile histograms index via a ID More...
 
const Profile2DMapTitleprofile2DMapTitle () const
 get access to the map of all 2D profile histograms indexed via their title More...
 
const Profile2DMapIDprofile2DMapID () 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...
 
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 Histo1DMapTitlehisto1DMapTitle () const
 get access to the map of all 1D histograms indexed via their title More...
 
const Histo1DMapIDhisto1DMapID () const
 get access to the map of all 1D histograms index via ID More...
 
const Histo2DMapTitlehisto2DMapTitle () const
 get access to the map of all 2D histograms indexed via their title More...
 
const Histo2DMapIDhisto2DMapID () const
 get access to the map of 2D histograms index via ID More...
 
const Histo3DMapTitlehisto3DMapTitle () const
 get access to the map of all 3D histograms indexed via their title More...
 
const Histo3DMapIDhisto3DMapID () const
 get access to the map of all 3D histograms index via a ID More...
 
const Profile1DMapTitleprofile1DMapTitle () const
 get access to the map of all 1D profile histograms indexed via their title More...
 
const Profile1DMapIDprofile1DMapID () const
 get access to the map of 1D profile histograms index via a ID More...
 
const Profile2DMapTitleprofile2DMapTitle () const
 get access to the map of all 2D profile histograms indexed via their title More...
 
const Profile2DMapIDprofile2DMapID () 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...
 
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...
 
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::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::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::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::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::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::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::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::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::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::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::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.

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 ( )
overridedefault

Destructor.

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 ( )
overridedefault

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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
hdefhistogram 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 }
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
double highEdge() const
get the high edge
Definition: HistoDef.h:66
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
const std::string & title() const
get the title
Definition: HistoDef.h:70
int bins() const
get the number of bins
Definition: HistoDef.h:68
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
hdefhistogram description/definition
Returns
pointer to AIDA 1D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
IDunique histogram ID
hdefhistogram 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 }
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
double highEdge() const
get the high edge
Definition: HistoDef.h:66
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
const std::string & title() const
get the title
Definition: HistoDef.h:70
int bins() const
get the number of bins
Definition: HistoDef.h:68
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
IDunique histogram ID
hdefhistogram descriptor
Returns
pointer to AIDA histogram
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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
Returns
pointer to AIDA 1D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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
90 
91  // Printout and return
92  if ( this->msgLevel(MSG::DEBUG) )
93  { this->debug() << "Booked 1D Histogram : ID='" << ID
94  << "' Path=" << histoPath()
95  << " Title='"
97  << "'" << endmsg; }
98  return hist ;
99 }
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
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
std::string histoPath() const
get the constructed histogram path
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
Returns
pointer to AIDA histogram
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
titlehistogram title (must be unique within the algorithm)
edgesThe 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
Returns
pointer to AIDA 1D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
Returns
pointer to AIDA 1D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesThe 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
81 
82  // Printout and return
83  if ( this->msgLevel(MSG::DEBUG) )
84  { this->debug() << "Booked 1D Histogram : ID='" << ID
85  << "' Path=" << histoPath()
86  << " Title='"
88  << "'" << endmsg; }
89  return hist ;
90 }
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
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
std::string histoPath() const
get the constructed histogram path
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
Returns
pointer to AIDA 2D histogram
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
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
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
Returns
pointer to AIDA histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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
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 }
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
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
Returns
pointer to AIDA 2D histogram
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
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
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
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
Returns
pointer to AIDA 2D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe 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
85 
86  // Printout and return
87  if ( this->msgLevel(MSG::DEBUG) )
88  { this->debug() << "Booked 2D Histogram : ID='" << ID
89  << "' Path=" << histoPath()
90  << " Title='"
92  << "'" << endmsg; }
93  return hist ;
94 }
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
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
lowZlow y limit for histogram
highZhigh y limit for histogram
binsZnumber of bins in y
Returns
pointer to AIDA 3D histogram
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
lowZlow y limit for histogram
highZhigh y limit for histogram
binsZnumber 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 }
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
lowZlow y limit for histogram
highZhigh y limit for histogram
binsZnumber of bins in y
Returns
pointer to AIDA 3D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
lowZlow y limit for histogram
highZhigh y limit for histogram
binsZnumber 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
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 }
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
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
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
Returns
pointer to AIDA 3D histogram
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
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe 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 }
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
Returns
pointer to AIDA 3D histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe 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
89 
90  // Printout and return
91  if ( this->msgLevel(MSG::DEBUG) )
92  { this->debug() << "Booked 3D Histogram : ID='" << ID
93  << "' Path=" << histoPath()
94  << " Title='"
96  << "'" << endmsg; }
97  return hist ;
98 }
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
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
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
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
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
Returns
pointer to AIDA 1D profile histogram
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
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe 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 }
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)
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
Returns
pointer to AIDA 1D profile histogram
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
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe 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
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 }
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
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)
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
Returns
pointer to AIDA 1D profile histogram
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
titlehistogram title (must be unique within the algorithm)
edgesThe 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 }
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)
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
Returns
pointer to AIDA 1D profile histogram
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
titlehistogram title (must be unique within the algorithm)
edgesThe 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
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='"
87  << "'" << endmsg; }
88  return hist ;
89 }
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
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)
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
Returns
pointer to AIDA 2D histogram
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
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber of bins in y
Returns
pointer to AIDA histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
lowYlow y limit for histogram
highYhigh y limit for histogram
binsYnumber 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
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 }
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
std::string histoPath() const
get the constructed histogram path
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
titlehistogram title (must be unique within the algorithm)
edgesXx bin edges
edgesYy bin edges
Returns
pointer to AIDA 2D histogram
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
titlehistogram title (must be unique within the algorithm)
edgesXx bin edges
edgesYy 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 }
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
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
void newHistoID(const std::string &title, HistoID &ID) const
Create a new histogram ID using the given title.
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXx bin edges
edgesYy bin edges
Returns
pointer to AIDA histogram
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
IDunique histogram ID
titlehistogram title (must be unique within the algorithm)
edgesXx bin edges
edgesYy 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
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='"
90  << "'" << endmsg; }
91  return hist ;
92 }
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
GAUDI_API AIDA::IBaseHistogram * toBase(AIDA::IHistogram1D *histo)
Definition: Fill.cpp:193
void monitorHisto(const AIDA::IBaseHistogram *hist, const HistoID &ID) const
Declare a histogram to the monitor service.
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
std::string histoPath() const
get the constructed histogram path
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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 ; }
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
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 ; }
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 }
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
list i
Definition: ana.py:128
template<class PBASE>
std::string GaudiHistos< PBASE >::convertTitleToID ( std::string  title) const
protected

Create an ID string from a title string.

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
histo1D histogram to be filled
valuevalue to be put into the histogram
weightweight to be used
titlehistogram 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_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
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
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
histo1D histogram to be filled
valuevalue to be put into the histogram
weightweight to be used
titlehistogram title (to be used for error report)
Returns
pointer to AIDA 1D histogram
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
histo2D histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
weightweight to be used
titlehistogram title (to be used for error report)
Returns
pointer to AIDA 2D histogram
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
histo2D histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
weightweight to be used
titlehistogram 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_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
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
histo3D histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
valueZz value to be put into the histogram
weightweight to be used
titlehistogram title (to be used for error report)
Returns
pointer to AIDA 3D histogram
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
histo3D histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
valueZz value to be put into the histogram
weightweight to be used
titlehistogram 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_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
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
histo1D profile histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
weightweight to be used
titlehistogram title (to be used for error report)
Returns
pointer to AIDA 1D histogram
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
histo1D profile histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
weightweight to be used
titlehistogram 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_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
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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
histo2D profile histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
valueZz value to be put into the histogram
weightweight to be used
titlehistogram title (to be used for error report)
Returns
pointer to AIDA 1D histogram
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
histo2D profile histogram to be filled
valueXx value to be put into the histogram
valueYy value to be put into the histogram
valueZz value to be put into the histogram
weightweight to be used
titlehistogram 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_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
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
bool checkForNaN() const
get the flag for NaN checks (property "HistoCheckForNan")
Definition: GaudiHistos.h:2695
template<class PBASE >
StatusCode GaudiHistos< PBASE >::finalize ( )
overrideprotected

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 }
int printHistos(const MSG::Level level=MSG::ALWAYS) const
perform the actual printout of histograms
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
bool noHistos() const
Check if all histogram maps are empty.
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
bool histoCountersPrint() const
print histogram counters at finalization ?
Definition: GaudiHistos.h:2709
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
bool histosPrint() const
print histograms at finalization ?
Definition: GaudiHistos.h:2707
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>
StatusCode GaudiHistos< PBASE >::finalize ( )
overrideprotected

standard finalization method

Returns
status code
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 ; }
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
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 ; }
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  }
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 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  }
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  }
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  }
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  }
const Histo1DMapTitle & histo1DMapTitle() const
get access to the map of all 1D histograms indexed via their title
Definition: GaudiHistos.h:2744
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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  }
const Histo1DMapTitle & histo1DMapTitle() const
get access to the map of all 1D histograms indexed via their title
Definition: GaudiHistos.h:2744
iterator end()
Definition: Map.h:132
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 }
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
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

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 ; }
Histo1DMapID m_histo1DMapID
the actual storage/access of 1D histograms by unique ID
Definition: GaudiHistos.h:3087
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 ; }
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; }
Histo1DMapTitle m_histo1DMapTitle
the actual storage/access of 1D histograms by unique title
Definition: GaudiHistos.h:3085
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; }
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  }
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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 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  }
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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 }
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
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

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 ; }
Histo2DMapID m_histo2DMapID
the actual storage/access of 2D histograms by unique ID
Definition: GaudiHistos.h:3092
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 ; }
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 ; }
Histo2DMapTitle m_histo2DMapTitle
the actual storage/access of 2D histograms by unique title
Definition: GaudiHistos.h:3090
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 ; }
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  }
const Histo3DMapTitle & histo3DMapTitle() const
get access to the map of all 3D histograms indexed via their title
Definition: GaudiHistos.h:2845
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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  }
const Histo3DMapTitle & histo3DMapTitle() const
get access to the map of all 3D histograms indexed via their title
Definition: GaudiHistos.h:2845
iterator end()
Definition: Map.h:132
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 }
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::IHistogram3D* GaudiHistos< PBASE >::histo3D ( const HistoID ID) const

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

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; }
Histo3DMapID m_histo3DMapID
the actual storage/access of 3D histograms by unique ID
Definition: GaudiHistos.h:3097
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; }
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 ; }
Histo3DMapTitle m_histo3DMapTitle
the actual storage/access of 3D histograms by unique title
Definition: GaudiHistos.h:3095
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 ; }
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 ; }
bool m_histoCountersPrint
print histogram counters at finalization
Definition: GaudiHistos.h:3080
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 ; }
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 ; }
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
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 ; }
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  }
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
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)
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
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)
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 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  }
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
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)
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
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)
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  }
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
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)
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
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)
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  }
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
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)
AIDA::IHistogram1D * histo(const std::string &title) const
access the EXISTING 1D histogram by title
Definition: GaudiHistos.h:2582
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)
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 ; }
HistoID::NumericID m_histoOffSet
general histogram ID offset (only works for automatically assigned numeric IDs)
Definition: GaudiHistos.h:3072
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 ; }
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 }
list path
Definition: __init__.py:15
bool splitHistoDir() const
get the flag for histogram path split (property "HistoSplitDir")
Definition: GaudiHistos.h:2697
const std::string & histoDir() const
get histogram directory (property "HistoDir")
Definition: GaudiHistos.h:2703
const std::string & histoTopDir() const
get top-level histogram directory (property "HistoTopDir")
Definition: GaudiHistos.h:2701
template<class PBASE>
std::string GaudiHistos< PBASE >::histoPath ( ) const

get the constructed histogram path

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 ; }
bool m_histosPrint
print histograms at finalization
Definition: GaudiHistos.h:3078
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 ; }
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 ; }
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
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 ; }
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" ,
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" ,
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 }
bool m_declareMoniHists
Flag to turn on/off the registration of histograms to the Monitoring Service.
Definition: GaudiHistos.h:3082
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
std::string m_histo1DTableFormat
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3110
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
HistoID::NumericID m_histoOffSet
general histogram ID offset (only works for automatically assigned numeric IDs)
Definition: GaudiHistos.h:3072
bool m_histoCountersPrint
print histogram counters at finalization
Definition: GaudiHistos.h:3080
std::string m_histo1DTableFormatShort
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3112
bool m_splitHistoDir
split histogram directory name (very useful for Hbook)
Definition: GaudiHistos.h:3070
GAUDI_API std::string format(const int ID=Default)
get the format by enum
Templated base class providing common histogramming methods for GaudiAlgorithm and GaudiTool like cla...
Definition: GaudiHistos.h:48
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
GAUDI_API std::string header(const int ID=Default)
get the recommended header by enum
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
std::string m_histo1DTableHeader
the header for the table of 1-D historgrams
Definition: GaudiHistos.h:3114
bool m_useNumericAutoIDs
Flag to switch back to the old style sequencial numerical automatic IDs.
Definition: GaudiHistos.h:3116
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
bool m_histosPrint
print histograms at finalization
Definition: GaudiHistos.h:3078
template<class PBASE>
void GaudiHistos< PBASE >::initGaudiHistosConstructor ( )
private

Constructor initialisation and job options.

template<class PBASE >
StatusCode GaudiHistos< PBASE >::initialize ( )
overrideprotected

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 }
def initialize()
Definition: AnalysisTest.py:12
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
bool useNumericAutoIDs() const
Use old style sequencial numerical automatically assigned IDs ?
Definition: GaudiHistos.h:2711
std::string histoPath() const
get the constructed histogram path
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
template<class PBASE>
StatusCode GaudiHistos< PBASE >::initialize ( )
overrideprotected

standard initialization method

Returns
status code
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

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 ,
398  }
399 }
bool m_declareMoniHists
Flag to turn on/off the registration of histograms to the Monitoring Service.
Definition: GaudiHistos.h:3082
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
std::string histoPath() const
get the constructed histogram path
GAUDI_API std::string htitle(const AIDA::IBaseHistogram *histo, const std::string &title="")
get the title
Definition: Fill.cpp:138
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]titleHistogram title
[out]IDThe 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",
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 }
HistoID::NumericID histoOffSet() const
get the value for histogram offset (property "HistoOffSet")
Definition: GaudiHistos.h:2699
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
unsigned int totalNumberOfHistos() const
Returns the total number of histograms (of all types) currently booked.
bool useNumericAutoIDs() const
Use old style sequencial numerical automatically assigned IDs ?
Definition: GaudiHistos.h:2711
bool histoExists(const std::string &title) const
check the existence AND validity of the histogram with given title
Definition: GaudiHistos.h:2665
std::string convertTitleToID(std::string title) const
Create an ID string from a title string.
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]titleHistogram title
[out]IDThe ID to use for the new histogram
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 }
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
const Histo3DMapTitle & histo3DMapTitle() const
get access to the map of all 3D histograms indexed via their title
Definition: GaudiHistos.h:2845
const Profile2DMapTitle & profile2DMapTitle() const
get access to the map of all 2D profile histograms indexed via their title
Definition: GaudiHistos.h:2947
const Histo1DMapTitle & histo1DMapTitle() const
get access to the map of all 1D histograms indexed via their title
Definition: GaudiHistos.h:2744
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
const Profile1DMapTitle & profile1DMapTitle() const
get access to the map of all 1D profile histograms indexed via their title
Definition: GaudiHistos.h:2897
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
const Histo2DMapTitle & histo2DMapTitle() const
get access to the map of all 2D histograms indexed via their title
Definition: GaudiHistos.h:2795
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 >::noHistos ( ) const
private

Check if all histogram maps are empty.

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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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  }
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)
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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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  }
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)
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
valuevalue to be filled
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram

Definition at line 202 of file GaudiHistos.h.

205  {
206  return plot1D ( value, hdef, weight );
207  }
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)
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
valuevalue to be filled
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram

Definition at line 202 of file GaudiHistos.h.

205  {
206  return plot1D ( value, hdef, weight );
207  }
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)
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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  }
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)
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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  }
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)
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
valuevalue to be filled
IDhistogram identifier
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram

Definition at line 352 of file GaudiHistos.h.

356  {
357  return plot1D ( value, ID, hdef, weight );
358  }
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)
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
valuevalue to be filled
IDhistogram identifier
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram

Definition at line 352 of file GaudiHistos.h.

356  {
357  return plot1D ( value, ID, hdef, weight );
358  }
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)
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
funcfunction to be plotted
firstbegin of the sequence
lastend of the sequence
titlehistogram title
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
funcfunction to be plotted
firstbegin of the sequence
lastend of the sequence
titlehistogram title
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
funcfunction to be plotted
firstbegin of the sequence
lastend of the sequence
IDhistogram identifier
titlehistogram title
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
funcfunction to be plotted
firstbegin of the sequence
lastend of the sequence
IDhistogram identifier
titlehistogram title
lowlow limit for histogram
highhigh limit for histogram
binsnumber 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
firstbegin of the sequence
lastend of the sequence
titlehistogram title
funcfunction to be plotted
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins for histogram
weightweight 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
firstbegin of the sequence
lastend of the sequence
titlehistogram title
funcfunction to be plotted
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins for histogram
weightweight 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
firstbegin of the sequence
lastend of the sequence
IDhistogram identifier
titlehistogram title
funcfunction to be plotted
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins for histogram
weightweight 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
firstbegin of the sequence
lastend of the sequence
IDhistogram identifier
titlehistogram title
funcfunction to be plotted
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins for histogram
weightweight 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  }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
Returns
pointer to AIDA 1D histogram
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
valuevalue to be filled
hdefhistogram descriptor
weightweight
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 }
double highEdge() const
get the high edge
Definition: HistoDef.h:66
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
const std::string & title() const
get the title
Definition: HistoDef.h:70
int bins() const
get the number of bins
Definition: HistoDef.h:68
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)
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
valuevalue to be filled
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
Returns
pointer to AIDA 1D histogram
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowlow limit for histogram
highhigh limit for histogram
binsnumber of bins
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valuevalue to be filled
IDhistogram identifier
hdefhistogram descriptor
weightweight
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 }
double highEdge() const
get the high edge
Definition: HistoDef.h:66
double lowEdge() const
get the low edge
Definition: HistoDef.h:64
const std::string & title() const
get the title
Definition: HistoDef.h:70
int bins() const
get the number of bins
Definition: HistoDef.h:68
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)
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
valuevalue to be filled
IDhistogram identifier
hdefhistogram descriptor
weightweight
Returns
pointer to AIDA 1D histogram
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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valuevalue to be filled
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
Returns
pointer to AIDA 1D histogram
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valuevalue to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
Returns
pointer to AIDA 1D histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
Returns
pointer to AIDA 2D histogram
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
valueXx value to be filled
valueYy value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valueXx value to be filled
valueYy value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
Returns
pointer to AIDA 2D histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
Returns
pointer to AIDA 2D histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valueXx value to be filled
valueYy value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
Returns
pointer to AIDA 2D histogram
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
valueXx value to be filled
valueYy value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
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 }
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
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
lowZlow z limit for histogram
highZhigh z limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
binsZnumber of bins in z
weightweight
Returns
pointer to AIDA 3D histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
lowZlow z limit for histogram
highZhigh z limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
binsZnumber of bins in z
weightweight
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 }
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
lowZlow z limit for histogram
highZhigh z limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
binsZnumber of bins in z
weightweight
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 }
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
lowZlow z limit for histogram
highZhigh z limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
binsZnumber of bins in z
weightweight
Returns
pointer to AIDA 3D histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
weightweight
Returns
pointer to AIDA 3D histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
weightweight
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 }
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
weightweight
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 }
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDHistogram ID to use
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
edgesZThe histogram z bin edges
weightweight
Returns
pointer to AIDA 3D histogram
template<class PBASE>
void GaudiHistos< PBASE >::printHistoHandler ( Property )
private

the handler for "HistoPrint" property

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 }
int printHistos(const MSG::Level level=MSG::ALWAYS) const
perform the actual printout of histograms
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
levelThe 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 
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 ) ,
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 }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
bool noHistos() const
Check if all histogram maps are empty.
GaudiAlg::HistoID HistoID
the actual type for histogram identifier
Definition: GaudiHistos.h:53
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
Collection of useful utilities for manipulations with AIDA hisgograms.
Definition: Fill.h:27
std::string m_histo1DTableFormat
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3110
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.
unsigned int totalNumberOfHistos() const
Returns the total number of histograms (of all types) currently booked.
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
Simple class for the customizeble printout of the histogram tables.
static std::string toString(const AIDA::IHistogram3D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:107
std::string m_histo1DTableFormatShort
format for printout of 1D-histograms as a table
Definition: GaudiHistos.h:3112
std::string histoPath() const
get the constructed histogram path
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
static std::string toString(const AIDA::IHistogram2D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:87
static std::string toString(const AIDA::IProfile1D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:128
std::string m_histo1DTableHeader
the header for the table of 1-D historgrams
Definition: GaudiHistos.h:3114
static std::string toString(const AIDA::IProfile2D *aida, const GaudiAlg::HistoID &ID)
Definition: Print.cpp:147
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>
int GaudiHistos< PBASE >::printHistos ( const MSG::Level  level = MSG::ALWAYS) const

perform the actual printout of histograms

Parameters
levelThe message level to print at
Returns
number of active histograms
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 ; }
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
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 ; }
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
weightweight
Returns
pointer to AIDA 1D profile histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
weightweight
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 }
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)
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
valueXx value to be filled
valueYy value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
weightweight
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 }
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)
string opt
print 'Summary: %32s [s] d d steps'%(summary.protocol,summary.type,summary.nevt,len(summary.data),)
Definition: ana.py:116
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
valueXx value to be filled
valueYy value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
binsXnumber of bins in x
optthe options, used for evaluation of errors
lowYthe min cut-off for y-values
highYthe max cut-off for y-values
weightweight
Returns
pointer to AIDA 1D profile histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
Returns
pointer to AIDA 1D profile histogram
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
valueXx value to be filled
valueYy value to be filled
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
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 }
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)
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
valueXx value to be filled
valueYy value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
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 }
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)
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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
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
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
valueXx value to be filled
valueYy value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesThe histogram bin edges
weightweight
Returns
pointer to AIDA 1D profile histogram
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  }
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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 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  }
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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 }
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
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

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; }
Profile1DMapID m_profile1DMapID
the actual storage/access of 1D profile histograms by unique ID
Definition: GaudiHistos.h:3102
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; }
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

// iterate over the map!
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; }
Profile1DMapTitle m_profile1DMapTitle
the actual storage/access of 1D profile histograms by unique title
Definition: GaudiHistos.h:3100
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

// iterate over the map!
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; }
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
Returns
pointer to AIDA 2D profile histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
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 }
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
Returns
pointer to AIDA 2D profile histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
lowXlow x limit for histogram
highXhigh x limit for histogram
lowYlow y limit for histogram
highYhigh y limit for histogram
binsXnumber of bins in x
binsYnumber of bins in y
weightweight
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 }
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram x bin edges
weightweight
Returns
pointer to AIDA 1D profile histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram x bin edges
weightweight
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 }
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
Returns
pointer to AIDA 1D profile histogram
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
valueXx value to be filled
valueYy value to be filled
valueZz value to be filled
IDhistogram identifier
titlehistogram title (must be unique within the algorithm)
edgesXThe histogram x bin edges
edgesYThe histogram y bin edges
weightweight
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 }
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
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2691
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)
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
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  }
const Profile2DMapTitle & profile2DMapTitle() const
get access to the map of all 2D profile histograms indexed via their title
Definition: GaudiHistos.h:2947
iterator end()
Definition: Map.h:132
iterator find(const key_type &key)
Definition: Map.h:149
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  }
const Profile2DMapTitle & profile2DMapTitle() const
get access to the map of all 2D profile histograms indexed via their title
Definition: GaudiHistos.h:2947
iterator end()
Definition: Map.h:132
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 }
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
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

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; }
Profile2DMapID m_profile2DMapID
the actual storage/access of 2D profile histograms by unique ID
Definition: GaudiHistos.h:3107
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; }
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; }
Profile2DMapTitle m_profile2DMapTitle
the actual storage/access of 2D profile histograms by unique title
Definition: GaudiHistos.h:3105
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; }
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 ; }
bool m_checkForNaN
flag to control check for Nan/Finite while filling the histogram
Definition: GaudiHistos.h:3068
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 ; }
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 ; }
bool m_fullDetail
flag to control output level of histograms
Definition: GaudiHistos.h:3066
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 ; }
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 ; }
std::string m_histoDir
histogram directory
Definition: GaudiHistos.h:3076
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 ; }
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 ; }
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 >::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 ; }
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 ; }
std::string m_histoTopDir
histogram top level directory
Definition: GaudiHistos.h:3074
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 ; }
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 ; }
bool m_produceHistos
flag to SWITCH ON/SWITCH OFF the histogrm fillling and booking
Definition: GaudiHistos.h:3064
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 ; }
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 ; }
bool m_splitHistoDir
split histogram directory name (very useful for Hbook)
Definition: GaudiHistos.h:3070
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 ; }
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 ; }
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 ; }
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 }
const Profile2DMapID & profile2DMapID() const
get access to the map of 2D profile histograms index via a ID
Definition: GaudiHistos.h:2970
const Histo1DMapID & histo1DMapID() const
get access to the map of all 1D histograms index via ID
Definition: GaudiHistos.h:2768
const Profile1DMapID & profile1DMapID() const
get access to the map of 1D profile histograms index via a ID
Definition: GaudiHistos.h:2920
const Histo2DMapID & histo2DMapID() const
get access to the map of 2D histograms index via ID
Definition: GaudiHistos.h:2818
const Histo3DMapID & histo3DMapID() const
get access to the map of all 3D histograms index via a ID
Definition: GaudiHistos.h:2868
template<class PBASE>
unsigned int GaudiHistos< PBASE >::totalNumberOfHistos ( ) const

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

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; }
bool m_useNumericAutoIDs
Flag to switch back to the old style sequencial numerical automatic IDs.
Definition: GaudiHistos.h:3116
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; }
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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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
mutableprivate

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: