| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

GaudiHistoTool Class Reference

Simple class to extend the functionality of class GaudiTool. More...

#include <GaudiTools/GaudiHistoTool.h>

Inheritance diagram for GaudiHistoTool:

[legend]
Collaboration diagram for GaudiHistoTool:
[legend]
List of all members.

Public Types

typedef GaudiAlg::HistoID HistoID
 the actual type for histogram identifier
typedef GaudiAlg::Histo1DMapNumericID Histo1DMapNumID
 the actual type for (Numeric ID)->(1D histogram) mapping
typedef GaudiAlg::Histo1DMapLiteralID Histo1DMapLitID
 the actual type for (Literal ID)->(1D histogram) mapping
typedef GaudiAlg::Histo1DMapTitle Histo1DMapTitle
 the actual type for title->(1D histogram) mapping
typedef GaudiAlg::Histo2DMapNumericID Histo2DMapNumID
 the actual type for (Numeric ID)->(2D histogram) mapping
typedef GaudiAlg::Histo2DMapLiteralID Histo2DMapLitID
 the actual type for (Literal ID)->(2D histogram) mapping
typedef GaudiAlg::Histo2DMapTitle Histo2DMapTitle
 the actual type for title->(2D histogram) mapping
typedef GaudiAlg::Histo3DMapNumericID Histo3DMapNumID
 the actual type for (Numeric ID)->(3D histogram) mapping
typedef GaudiAlg::Histo3DMapLiteralID Histo3DMapLitID
 the actual type for (Literal ID)->(3D histogram) mapping
typedef GaudiAlg::Histo3DMapTitle Histo3DMapTitle
 the actual type for title->(3D histogram) mapping
typedef GaudiAlg::Profile1DMapNumericID Profile1DMapNumID
 the actual type for (Numeric ID)->(1D profile histogram) mapping
typedef GaudiAlg::Profile1DMapLiteralID Profile1DMapLitID
 the actual type for (Literal ID)->(1D profile histogram) mapping
typedef GaudiAlg::Profile1DMapTitle Profile1DMapTitle
 the actual type for title->(1D profile histogram) mapping
typedef GaudiAlg::Profile2DMapNumericID Profile2DMapNumID
 the actual type for (Numeric ID)->(2D profile histogram) mapping
typedef GaudiAlg::Profile2DMapLiteralID Profile2DMapLitID
 the actual type for (Literal ID)->(2D profile histogram) mapping
typedef GaudiAlg::Profile2DMapTitle Profile2DMapTitle
 the actual type for title->(2D profile histogram) mapping
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

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)
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)
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)
AIDA::IHistogram1D * plot (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
 fill the 1D histogram (book on demand)
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)
AIDA::IHistogram1D * plot (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)
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
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
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
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
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)
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)
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)
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)
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::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)
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
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
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::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)
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
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
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 * 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
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
AIDA::IHistogram1D * book (const Gaudi::Histo1DDef &hdef) const
 book the 1D histogram
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
AIDA::IHistogram1D * book (const HistoID &ID, const Gaudi::Histo1DDef &hdef) const
 book the 1D histogram with forced ID
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
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
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 * 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
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::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
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
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
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
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
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
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
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
AIDA::IHistogram1D * histo1D (const std::string &title) const
 access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL
AIDA::IHistogram1D * histo1D (const HistoID &ID) const
 access the EXISTING 1D histogram by ID return the pointer to existing 1D histogram or NULL
AIDA::IHistogram1D * histo (const std::string &title) const
 access the EXISTING 1D histogram by title
AIDA::IHistogram1D * histo (const HistoID &ID) const
 access the EXISTING 1D histogram by ID
AIDA::IHistogram2D * histo2D (const std::string &title) const
 access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL
AIDA::IHistogram2D * histo2D (const HistoID &ID) const
 access the EXISTING 2D histogram by ID return the pointer to existing 2D histogram or NULL
AIDA::IHistogram3D * histo3D (const std::string &title) const
 access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL
AIDA::IHistogram3D * histo3D (const HistoID &ID) const
 access the EXISTING 3D histogram by ID return the pointer to existing 3D histogram or NULL
bool histoExists (const std::string &title) const
 check the existence AND validity of the histogram with given title
bool histoExists (const HistoID &ID) const
 check the existence AND validity of the histogram with given title
unsigned int totalNumberOfHistos () const
 Returns the total number of histograms (of all types) currently booked.
bool produceHistos () const
 get the flag for histogram production (property "HistoProduce")
bool fullDetail () const
 get flag to control output level of histograms
bool checkForNaN () const
 get the flag for NaN checks (property "HistoCheckForNan")
bool splitHistoDir () const
 get the flag for histogram path split (property "HistoSplitDir")
HistoID::NumericID histoOffSet () const
 get the value for histogram offset (property "HistoOffSet")
const std::string & histoTopDir () const
 get top-level histogram directory (property "HistoTopDir")
const std::string & histoDir () const
 get histogram directory (property "HistoDir")
std::string histoPath () const
 get the constructed histogram path
bool histosPrint () const
 print histograms at finalization ?
bool useNumericAutoIDs () const
 Use old style sequencial numerical automatically assigned IDs ?
int printHistos (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of histograms
const Histo1DMapTitlehisto1DMapTitle () const
 get access to the map of all 1D histograms indexed via their title
const Histo1DMapNumIDhisto1DMapNumID () const
 get access to the map of 1D histograms index via a numeric ID
const Histo1DMapLitIDhisto1DMapLitID () const
 get access to the map of all 1D histograms index via a literal (string) ID
const Histo2DMapTitlehisto2DMapTitle () const
 get access to the map of all 2D histograms indexed via their title
const Histo2DMapNumIDhisto2DMapNumID () const
 get access to the map of 2D histograms index via a numeric ID
const Histo2DMapLitIDhisto2DMapLitID () const
 get access to the map of all 2D histograms index via a literal (string) ID
const Histo3DMapTitlehisto3DMapTitle () const
 get access to the map of all 3D histograms indexed via their title
const Histo3DMapNumIDhisto3DMapNumID () const
 get access to the map of 3D histograms index via a numeric ID
const Histo3DMapLitIDhisto3DMapLitID () const
 get access to the map of all 3D histograms index via a literal (string) ID
const Profile1DMapTitleprofile1DMapTitle () const
 get access to the map of all 1D profile histograms indexed via their title
const Profile1DMapNumIDprofile1DMapNumID () const
 get access to the map of 1D profile histograms index via a numeric ID
const Profile1DMapLitIDprofile1DMapLitID () const
 get access to the map of 1D profile histograms index via a literal ID
const Profile2DMapTitleprofile2DMapTitle () const
 get access to the map of all 2D profile histograms indexed via their title
const Profile2DMapNumIDprofile2DMapNumID () const
 get access to the map of 2D profile histograms index via a numeric ID
const Profile2DMapLitIDprofile2DMapLitID () const
 get access to the map of 2D profile histograms index via a literal ID
void setProduceHistos (const bool val)
 set the flag for histogram production (property "HistoProduce")
void setFullDetail (const bool val)
 set flag to control output level of histograms
void setCheckForNaN (const bool val)
 set the flag for NaN checks (property "HistoCheckForNan")
void setSplitHistoDir (const bool val)
 set the flag for histogram path split (property "HistoSplitDir")
void setHistoOffSet (const HistoID::NumericID val)
 set a value for histogram offset (property "HistoOffSet"
void setHistoTopDir (const std::string &val)
 set top-level histogram directory (property "HistoTopDir")
void setHistoDir (const std::string &val)
 set histogram directory (property "HistoDir")
INTupleSvcntupleSvc () const
 Access the standard N-Tuple.
INTupleSvcevtColSvc () const
 Access the standard event collection service.
IDataProviderSvcdetSvc () const
 accessor to detector service
IDataProviderSvcevtSvc () const
 accessor to event service service
IIncidentSvcincSvc () const
 accessor to Incident Service
IChronoStatSvcchronoSvc () const
 accessor to Chrono & Stat Service
IHistogramSvchistoSvc () const
 acessor to the histogram service
IAlgContextSvccontextSvc () const
 acessor to the Algorithm Context Service
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store.
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store.
template<class TYPE>
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
 Templated access to the data in Gaudi Transient Store.
template<class TYPE>
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
 Templated access to the data from Gaudi Event Transient Store.
template<class TYPE>
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE>
TYPE * getDet (const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE>
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
 Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE>
bool exist (const std::string &location, const bool useRootInTES=true) const
 Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE>
bool existDet (IDataProviderSvc *svc, const std::string &location) const
 Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE>
bool existDet (const std::string &location) const
 Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE, class TYPE2>
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
 Get the existing data object from Gaudi Event Transient store.
template<class TYPE, class TYPE2>
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
 Get the existing data object from Gaudi Event Transient store.
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
 Useful method for the easy location of tools.
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
 A useful method for the easy location of tools.
SERVICE * svc (const std::string &name, const bool create=true) const
 A useful method for the easy location of services.
IUpdateManagerSvcupdMgrSvc () const
 Short-cut to locate the Update Manager Service.
IDataProviderSvcfastContainersSvc () const
 Short-cut to locate the Fast Containers Service.
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
 Print the error message and return with the given StatusCode.
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
 Print the warning message and return with the given StatusCode.
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
 Print the message and return with the given StatusCode.
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
 Assertion - throw exception if the given condition is not fulfilled.
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
 Assertion - throw exception if the given condition is not fulfilled.
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
 Create and (re)-throw a given GaudiException.
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
 Create and (re)-throw a given exception.
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
 Create and throw an exception with the given message.
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts.
MsgStreamalways () const
 shortcut for the method msgStream ( MSG::ALWAYS )
MsgStreamfatal () const
 shortcut for the method msgStream ( MSG::FATAL )
MsgStreamerr () const
 shortcut for the method msgStream ( MSG::ERROR )
MsgStreamerror () const
 shortcut for the method msgStream ( MSG::ERROR )
MsgStreamwarning () const
 shortcut for the method msgStream ( MSG::WARNING )
MsgStreaminfo () const
 shortcut for the method msgStream ( MSG::INFO )
MsgStreamdebug () const
 shortcut for the method msgStream ( MSG::DEBUG )
MsgStreamverbose () const
 shortcut for the method msgStream ( MSG::VERBOSE )
MsgStreammsg () const
 shortcut for the method msgStream ( MSG::INFO )
const Statisticscounters () const
 accessor to all counters
StatEntitycounter (const std::string &tag) const
 accessor to certain counter by name
MSG::Level msgLevel () const
 The current message service output level.
bool msgLevel (const MSG::Level level) const
 Test the output level.
void resetMsgStream () const
 Reset (delete) the current message stream object.
bool typePrint () const
 Insert the actual C++ type of the algorithm/tool in the messages ?
bool propsPrint () const
 Print properties at initalization ?
bool statPrint () const
 Print statistical counters at finalization ?
bool errorsPrint () const
 Print error counters at finalization ?
long printStat (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of statistical counters
long printErrors (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of error counters
long printProps (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of properties
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
 register the current instance to the UpdateManagerSvc as a consumer for a condition.
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
 register the current instance to the UpdateManagerSvc as a consumer for a condition.
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
 just to avoid conflicts with the version using a pointer to a template class.
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
 register the current instance to the UpdateManagerSvc as a consumer for a condition.
StatusCode runUpdate ()
 asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident.
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
 Return a new TransientFastContainer for objects of type T.
StatusCode release (const IInterface *interface) const
 Manual forced (and 'safe') release of the active tool or service.
virtual unsigned long release ()
const std::string & context () const
 Returns the "context" string. Used to indentify different processing states.
const std::string & rootInTES () const
 Returns the "rootInTES" string.
double globalTimeOffset () const
 Returns the "globalTimeOffset" double.
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual unsigned long addRef ()
virtual const std::string & name () const
virtual const std::string & type () const
virtual const IInterfaceparent () const
virtual StatusCode configure ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
 the actual type of general counters
typedef std::map< std::string,
unsigned int > 
Counter
 the actual type error/warning counter
typedef std::vector< IAlgTool * > AlgTools
 storage for active tools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
 Service pointer and name.
typedef std::vector< ServiceEntryServices
 storage for active services

Protected Member Functions

 GaudiHistoTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor (protected).
virtual ~GaudiHistoTool ()
 destructor, virtual and protected
virtual StatusCode initialize ()
 standard initialization method
virtual StatusCode finalize ()
 standard finalization method
std::string convertTitleToID (const std::string &title) const
 Create an ID string from a title string.
StatusCode releaseTool (const IAlgTool *tool) const
 manual forced (and 'safe') release of the tool
StatusCode releaseSvc (const IInterface *svc) const
 manual forced (and 'safe') release of the service
int outputLevel () const
virtual unsigned long refCount () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
 Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.
static const bool UseRootInTES
 Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.

Private Member Functions

 GaudiHistoTool ()
 GaudiHistoTool (const GaudiHistoTool &)
GaudiHistoTooloperator= (const GaudiHistoTool &)

Detailed Description

Simple class to extend the functionality of class GaudiTool.

Class is instrumented with a selection of plotting functions for easy creation of histograms.

Attention:
See the class GaudiHistos, which implements the common functionality between GaudiHistoTool and GaudiHistoAlg
Author:
Vanya BELYAEV Ivan.Belyaev@itep.ru

Chris Jones Christopher.Rob.Jones@cern.ch

Date:
2004-06-28

Definition at line 44 of file GaudiHistoTool.h.


Member Typedef Documentation

typedef GaudiAlg::HistoID GaudiHistos< GaudiTool >::HistoID [inherited]

the actual type for histogram identifier

Reimplemented in HistoTool, and GaudiTuples< GaudiHistoTool >.

Definition at line 55 of file GaudiHistos.h.

typedef GaudiAlg::Histo1DMapNumericID GaudiHistos< GaudiTool >::Histo1DMapNumID [inherited]

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

Definition at line 58 of file GaudiHistos.h.

typedef GaudiAlg::Histo1DMapLiteralID GaudiHistos< GaudiTool >::Histo1DMapLitID [inherited]

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

Definition at line 60 of file GaudiHistos.h.

typedef GaudiAlg::Histo1DMapTitle GaudiHistos< GaudiTool >::Histo1DMapTitle [inherited]

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

Definition at line 62 of file GaudiHistos.h.

typedef GaudiAlg::Histo2DMapNumericID GaudiHistos< GaudiTool >::Histo2DMapNumID [inherited]

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

Definition at line 65 of file GaudiHistos.h.

typedef GaudiAlg::Histo2DMapLiteralID GaudiHistos< GaudiTool >::Histo2DMapLitID [inherited]

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

Definition at line 67 of file GaudiHistos.h.

typedef GaudiAlg::Histo2DMapTitle GaudiHistos< GaudiTool >::Histo2DMapTitle [inherited]

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

Definition at line 69 of file GaudiHistos.h.

typedef GaudiAlg::Histo3DMapNumericID GaudiHistos< GaudiTool >::Histo3DMapNumID [inherited]

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

Definition at line 72 of file GaudiHistos.h.

typedef GaudiAlg::Histo3DMapLiteralID GaudiHistos< GaudiTool >::Histo3DMapLitID [inherited]

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

Definition at line 74 of file GaudiHistos.h.

typedef GaudiAlg::Histo3DMapTitle GaudiHistos< GaudiTool >::Histo3DMapTitle [inherited]

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

Definition at line 76 of file GaudiHistos.h.

typedef GaudiAlg::Profile1DMapNumericID GaudiHistos< GaudiTool >::Profile1DMapNumID [inherited]

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

Definition at line 79 of file GaudiHistos.h.

typedef GaudiAlg::Profile1DMapLiteralID GaudiHistos< GaudiTool >::Profile1DMapLitID [inherited]

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

Definition at line 81 of file GaudiHistos.h.

typedef GaudiAlg::Profile1DMapTitle GaudiHistos< GaudiTool >::Profile1DMapTitle [inherited]

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

Definition at line 83 of file GaudiHistos.h.

typedef GaudiAlg::Profile2DMapNumericID GaudiHistos< GaudiTool >::Profile2DMapNumID [inherited]

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

Definition at line 86 of file GaudiHistos.h.

typedef GaudiAlg::Profile2DMapLiteralID GaudiHistos< GaudiTool >::Profile2DMapLitID [inherited]

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

Definition at line 88 of file GaudiHistos.h.

typedef GaudiAlg::Profile2DMapTitle GaudiHistos< GaudiTool >::Profile2DMapTitle [inherited]

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

Definition at line 90 of file GaudiHistos.h.

typedef std::map<std::string,StatEntity> GaudiCommon< AlgTool >::Statistics [protected, inherited]

the actual type of general counters

Definition at line 83 of file GaudiCommon.h.

typedef std::map<std::string,unsigned int> GaudiCommon< AlgTool >::Counter [protected, inherited]

the actual type error/warning counter

Definition at line 85 of file GaudiCommon.h.

typedef std::vector<IAlgTool*> GaudiCommon< AlgTool >::AlgTools [protected, inherited]

storage for active tools

Definition at line 87 of file GaudiCommon.h.

typedef std::pair<IInterface*,std::string> GaudiCommon< AlgTool >::ServiceEntry [protected, inherited]

Service pointer and name.

Definition at line 89 of file GaudiCommon.h.

typedef std::vector<ServiceEntry> GaudiCommon< AlgTool >::Services [protected, inherited]

storage for active services

Definition at line 91 of file GaudiCommon.h.


Constructor & Destructor Documentation

GaudiHistoTool::GaudiHistoTool ( const std::string &  type,
const std::string &  name,
const IInterface parent 
) [protected]

Standard constructor (protected).

See also:
GaudiTool

AlgTool

Parameters:
type tool type (useless)
name tool name
parent pointer to parent object (service, algorithm or tool)

Definition at line 47 of file GaudiHistoTool.cpp.

00050   : GaudiHistos<GaudiTool> ( type , name , parent ) { }

GaudiHistoTool::~GaudiHistoTool (  )  [protected, virtual]

destructor, virtual and protected

Definition at line 56 of file GaudiHistoTool.cpp.

00056 { }

GaudiHistoTool::GaudiHistoTool (  )  [private]

GaudiHistoTool::GaudiHistoTool ( const GaudiHistoTool  )  [private]


Member Function Documentation

StatusCode GaudiHistoTool::initialize (  )  [protected, virtual]

standard initialization method

See also:
Algorithm

IAlgorithm

Returns:
status code

Reimplemented from GaudiHistos< GaudiTool >.

Reimplemented in GaudiTupleTool, and GaudiTuples< GaudiHistoTool >.

Definition at line 62 of file GaudiHistoTool.cpp.

00063 {
00064   // initialize the base class and return
00065   return GaudiHistos<GaudiTool>::initialize();
00066 }

StatusCode GaudiHistoTool::finalize (  )  [protected, virtual]

standard finalization method

See also:
Algorithm

IAlgorithm

Returns:
status code

Reimplemented from GaudiHistos< GaudiTool >.

Reimplemented in GaudiTupleTool, and GaudiTuples< GaudiHistoTool >.

Definition at line 72 of file GaudiHistoTool.cpp.

00073 {
00074   // finalize the base class and return
00075   return GaudiHistos<GaudiTool>::finalize();
00076 }

GaudiHistoTool& GaudiHistoTool::operator= ( const GaudiHistoTool  )  [private]

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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 [inherited]

fill the 1D histogram (book on demand)

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

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

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

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

Reimplemented in HistoTool.

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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 [inherited]

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

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

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

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

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

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

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

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

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

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

Attention:
If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together. It is still desirable to use the unique histogram title to avoid a bad interference.
See also:
AIDA::IHistogram1D
Parameters:
value value to be filled
ID histogram identifier
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
weight weight
Returns:
pointer to AIDA 1D histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

fill the 1D histogram (book on demand)

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

Parameters:
value value to be filled
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
weight weight
Returns:
pointer to AIDA 1D histogram

Definition at line 160 of file GaudiHistos.h.

00166   {
00167     return plot1D ( value, title, low, high, bins, weight );
00168   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::plot ( const double  value,
const Gaudi::Histo1DDef &  hdef,
const double  weight = 1.0 
) const [inherited]

fill the 1D histogram (book on demand)

     const Gaudi::Histo1DDef& hdef = ... ;

     const double mass = ... ;
     plot ( mass , hdef ) ;

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

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

See also:
AIDA::IHistogram1D
Parameters:
value value to be filled
hdef histogram descriptor
low low limit for histogram
high high limit for histogram
bins number of bins
weight weight
Returns:
pointer to AIDA 1D histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

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

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

Parameters:
value value to be filled
ID histogram identifier
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
weight weight
Returns:
pointer to AIDA 1D histogram

Definition at line 291 of file GaudiHistos.h.

00298   {
00299     return plot1D ( value, ID, title, low, high, bins, weight );
00300   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::plot ( const double  value,
const HistoID ID,
const Gaudi::Histo1DDef &  hdef,
const double  weight = 1.0 
) const [inherited]

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 = ... ;
     plot ( mass , ID , hdef  )

See also:
AIDA::IHistogram1D
The histogram descriptor comes e.g. from component properties

Parameters:
value value to be filled
ID histogram identifier
hdef histogram descriptor
Returns:
pointer to AIDA 1D histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

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

  std::vector<double> v = ... ;

  plot( sin                 , // function
        v.begin() , v.end() , // sequence
        " bla-bla "         , // title
        -1. , 1.0           , // low and high limits
        100                 ) // number of bins

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

  plot( PT                  , // function
        p->begin()  , p->end() , // sequence
        " bla-bla "         , // title
        -1. , 1.0           , // low and high limits
        100                 ) ; // number of bins
where PT can be any function or function object for which the expression PT(p) , with p of type Particle* have some sense and can be evaluated to the values, which is convertible to double

Attention:
These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.
See also:
AIDA::IHistogram1D
Parameters:
func function to be plotted
first begin of the sequence
last end of the sequence
title histogram title
low low limit for histogram
high high limit for histogram
bins number of bins for histogram

Definition at line 397 of file GaudiHistos.h.

00404   {
00405     AIDA::IHistogram1D* h(0);
00406     if ( produceHistos() )
00407     {
00408       // retrieve or book the histogram
00409       h = histo1D ( title ) ;
00410       if ( 0 == h )     { h = book1D  ( title , low , high , bins ); }
00411       // fill histogram
00412       while( first != last && 0 != h  )
00413       { h = fill ( h , func( *first ) , 1.0 , title  ) ; ++first ; }
00414     }
00415     return h ;
00416   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

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

  std::vector<double> v = ... ;

  // Example with numeric ID
  plot( sin                 ,   // function
        v.begin() , v.end() ,   // sequence
        100 , " bla-bla "   ,   // ID and title
        -1. , 1.0           ,   // low and high limits
        100                 );  // number of bins

  // Example with literal ID
  plot( sin                 ,   // function
        v.begin() , v.end() ,   // sequence
        "sin" , " bla-bla " ,   // ID and title
        -1. , 1.0           ,   // low and high limits
        100                 );  // number of bins

Sequence, objects and function can be non-trivial:

  Particles* p = ... ;

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

Attention:
These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.
See also:
AIDA::IHistogram1D
Parameters:
func function to be plotted
first begin of the sequence
last end of the sequence
ID histogram identifier
title histogram title
low low limit for histogram
high high limit for histogram
bins number of bins for histogram

Definition at line 475 of file GaudiHistos.h.

00483   {
00484     AIDA::IHistogram1D* h(0);
00485     if ( produceHistos() )
00486     {
00487       // retrieve or book the histogram
00488       h = histo1D ( ID ) ;
00489       if ( 0 == h )     { h = book1D  ( ID , title , low , high , bins ); }
00490       // fill histogram
00491       while( first != last && 0 != h )
00492       { h = fill( h , func( *first ) , 1.0 , title  ) ; ++first ; }
00493     }
00494     return h;
00495   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

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

  std::vector<double> v = ... ;

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

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

  plot( PT                  ,  // function
        p->begin()  , p->end() , // sequence
        " bla-bla "         ,   // title
        -1. , 1.0           ,   // low and high limits
        100                 ,   // number of bins
        MASS                ) ; // weight function
where PT and MASS can be any function or function object for which the expressions PT(p) and MASS with p of type Particle* have some sense and can be evaluated to the values, which is convertible to double

Attention:
These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.
See also:
AIDA::IHistogram1D
Parameters:
first begin of the sequence
last end of the sequence
title histogram title
func function to be plotted
low low limit for histogram
high high limit for histogram
bins number of bins for histogram
weight weight function

Definition at line 567 of file GaudiHistos.h.

00575   {
00576     AIDA::IHistogram1D* h(0);
00577     if ( produceHistos() )
00578     {
00579       // retrieve or book the histogram
00580       h = histo1D ( title ) ;
00581       if ( 0 == h ) { h = book1D  ( title , low , high , bins ); }
00582       // fill histogram
00583       while ( first != last && 0 != h )
00584       { h = fill ( h                 ,
00585                    func   ( *first ) ,
00586                    weight ( *first ) , title  ) ; ++first ; }
00587     }
00588     return h;
00589   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::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, inherited]

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

  std::vector<double> v = ... ;

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

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

Attention:
no checks for NaN or Finite are performed!
Sequence, objects and function can be non-trivial:

  Particles* p = ... ;

  plot( PT                  ,   // function
        p->begin()   , p->end() , // sequence
        100 , " bla-bla "   ,   // ID and title
        -1. , 1.0           ,   // low and high limits
        100                 ,   // number of bins
        MASS                ) ; // weight function
where PT and MASS can be any function or function object for which the expressions PT(p) and MASS with p of type Particle* have some sense and can be evaluated to the values, which is convertible to double

Attention:
These plot methods using iterator ranges are more efficient than the simplier "value" only methods, since the associated histogram only requires locating from internal storage once per loop, as opposed to once per fill for the simplier functions. It is recommended to use these whenever possible.
See also:
AIDA::IHistogram1D
Parameters:
first begin of the sequence
last end of the sequence
ID histogram identifier
title histogram title
func function to be plotted
low low limit for histogram
high high limit for histogram
bins number of bins for histogram
weight weight function

Definition at line 659 of file GaudiHistos.h.

00668   {
00669     AIDA::IHistogram1D* h(0);
00670     if ( produceHistos() )
00671     {
00672       // retrieve or book the histogram
00673       h = histo1D ( ID ) ;
00674       if ( 0 == h ) { h = book1D  ( ID , title , low , high , bins ); }
00675       // fill histogram
00676       while( first != last && 0 != h )
00677       { h  = fill ( h                 ,
00678                     func   ( *first ) ,
00679                     weight ( *first ) , title  ) ; ++first ; }
00680     }
00681     return h ;
00682   }

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::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 [inherited]

fill the 2D histogram (book on demand)

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

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

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

Attention:
The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.
See also:
AIDA::IHistogram2D
Parameters:
valueX x value to be filled
valueY y value to be filled
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
binsX number of bins in x
binsY number of bins in y
weight weight
Returns:
pointer to AIDA 2D histogram

Reimplemented in HistoTool.

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::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 [inherited]

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

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

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

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

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

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

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

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

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

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

Attention:
If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference
See also:
AIDA::IHistogram2D
Parameters:
valueX x value to be filled
valueY y value to be filled
ID Histogram ID to use
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
binsX number of bins in x
binsY number of bins in y
weight weight
Returns:
pointer to AIDA 2D histogram

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::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 [inherited]

fill the 3D histogram (book on demand)

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

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

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

Attention:
The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.
See also:
AIDA::IHistogram3D
Parameters:
valueX x value to be filled
valueY y value to be filled
valueZ z value to be filled
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
lowZ low z limit for histogram
highZ high z limit for histogram
binsX number of bins in x
binsY number of bins in y
binsZ number of bins in z
weight weight
Returns:
pointer to AIDA 3D histogram

Reimplemented in HistoTool.

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::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 [inherited]

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

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

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

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

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

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

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

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

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

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

Attention:
If the histogram with given ID is already booked through automatic assignment of histogram ID, the error will not be detected. Therefore it is recommended to use non-trivial histogram ID offset (property "HistoOffSet") if one need to combine these techniques together It is still desirable to use the unique histogram title to avoid a bad interference
See also:
AIDA::IHistogram3D
Parameters:
valueX x value to be filled
valueY y value to be filled
valueZ z value to be filled
ID Histogram ID to use
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
lowZ low z limit for histogram
highZ high z limit for histogram
binsX number of bins in x
binsY number of bins in y
binsZ number of bins in z
weight weight
Returns:
pointer to AIDA 3D histogram

AIDA::IProfile1D* GaudiHistos< GaudiTool >::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 [inherited]

fill the 1D profile histogram (book on demand)

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

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

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

Attention:
The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.
See also:
AIDA::IProfile1D
Parameters:
valueX x value to be filled
valueY y value to be filled
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
opt the options, used for evaluation of errors
lowY the min cut-off for y-values
highY the max cut-off for y-values
weight weight
Returns:
pointer to AIDA 1D profile histogram

AIDA::IProfile1D* GaudiHistos< GaudiTool >::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 [inherited]

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

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

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

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

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

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

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

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

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

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

See also:
AIDA::IProfile1D
Parameters:
valueX x value to be filled
valueY y value to be filled
ID histogram identifier
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
opt the options, used for evaluation of errors
lowY the min cut-off for y-values
highY the max cut-off for y-values
weight weight
Returns:
pointer to AIDA 1D profile histogram

AIDA::IProfile1D* GaudiHistos< GaudiTool >::profile1D ( const std::string &  title  )  const [inline, inherited]

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

Definition at line 1718 of file GaudiHistos.h.

01719   {
01720     Profile1DMapTitle::const_iterator found = profile1DMapTitle().find( title ) ;
01721     return ( profile1DMapTitle().end() == found ? 0 : found->second );
01722   }

AIDA::IProfile1D* GaudiHistos< GaudiTool >::profile1D ( const HistoID ID  )  const [inherited]

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

AIDA::IProfile2D* GaudiHistos< GaudiTool >::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 [inherited]

fill the 2D profile histogram (book on demand)

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

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

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

Attention:
The histogram will get a unique identifier automatically assigned which by default will be equal to the histogram title. An option exists to instead use numerical IDs. In this case the first histogram booked will be ID=1 the next ID=2 and so on. Note though this scheme is not recommended as it does NOT guarantee predictability of the ID a given histogram will be given when filled under conditional statements, since in these circumstances the order in which the histograms are first filled, and thus booked, will depend on the nature of the first few events read. This is particularly problematic when users submit many parallel 'sub-jobs' and then attempt to merge the final output ROOT (or HBOOK) files, since a given histogram could have different IDs in each of the sub-jobs. Consequently it is strongly recommended that users do not use numerical automatic IDs unless they are sure they understand what they are doing.
See also:
AIDA::IProfile2D
Parameters:
valueX x value to be filled
valueY y value to be filled
valueZ z value to be filled
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
binsX number of bins in x
binsY number of bins in y
weight weight
Returns:
pointer to AIDA 2D profile histogram

AIDA::IProfile2D* GaudiHistos< GaudiTool >::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 [inherited]

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

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

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

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

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

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

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

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

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

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

See also:
AIDA::IProfile2D
Parameters:
valueX x value to be filled
valueY y value to be filled
valueZ z value to be filled
ID histogram identifier
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
lowY low y limit for histogram
highY high y limit for histogram
binsX number of bins in x
binsY number of bins in y
weight weight
Returns:
pointer to AIDA 2D profile histogram

AIDA::IProfile2D* GaudiHistos< GaudiTool >::profile2D ( const std::string &  title  )  const [inline, inherited]

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

Definition at line 1727 of file GaudiHistos.h.

01728   {
01729     Profile2DMapTitle::const_iterator found = profile2DMapTitle().find( title ) ;
01730     return ( profile2DMapTitle().end() == found ? 0 : found->second );
01731   }

AIDA::IProfile2D* GaudiHistos< GaudiTool >::profile2D ( const HistoID ID  )  const [inherited]

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

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::book1D ( const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100 
) const [inherited]

book the 1D histogram

The histogram will be assigned a unique identifier

See also:
AIDA::IHistogram1D
Parameters:
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA 1D histogram

Reimplemented in HistoTool.

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::book1D ( const HistoID ID,
const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100 
) const [inherited]

book the 1D histogram with forced ID

See also:
IHistogram1D
Parameters:
ID unique histogram ID
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::book ( const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100 
) const [inline, inherited]

book the 1D histogram

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

See also:
IHistogram1D
Parameters:
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA 1D histogram

Definition at line 1334 of file GaudiHistos.h.

01338   {
01339     return book1D( title, low, high, bins );
01340   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::book ( const Gaudi::Histo1DDef &  hdef  )  const [inherited]

book the 1D histogram

The histogram will be assigned a unique identifier

See also:
AIDA::IHistogram1D
Parameters:
hdef histogram description/definition
Returns:
pointer to AIDA 1D histogram

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

book the 1D histogram with forced ID

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

See also:
IHistogram1D
Parameters:
ID unique histogram ID
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA histogram

Definition at line 1436 of file GaudiHistos.h.

01441   {
01442     return book1D( ID, title, low, high, bins );
01443   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::book ( const HistoID ID,
const Gaudi::Histo1DDef &  hdef 
) const [inline, inherited]

book the 1D histogram with forced ID

See also:
IHistogram1D
Parameters:
ID unique histogram ID
hdef histogram descriptor
Returns:
pointer to AIDA histogram

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::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 [inherited]

book the 2D histogram

The histogram will be assigned a unique identifier

See also:
IHistogram2D
Parameters:
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
lowY low y limit for histogram
highY high y limit for histogram
binsY number of bins in y
Returns:
pointer to AIDA 2D histogram

Reimplemented in HistoTool.

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::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 [inherited]

book the 2D histogram with forced ID

See also:
IHistogram2D
Parameters:
ID unique histogram ID
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA histogram

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::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 [inherited]

book the 3D histogram

The histogram will be assigned a unique identifier

See also:
IHistogram3D
Parameters:
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
lowY low y limit for histogram
highY high y limit for histogram
binsY number of bins in y
lowZ low y limit for histogram
highZ high y limit for histogram
binsZ number of bins in y
Returns:
pointer to AIDA 3D histogram

Reimplemented in HistoTool.

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::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 [inherited]

book the 3D histogram with forced ID

See also:
IHistogram3D
Parameters:
ID unique histogram ID
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
lowY low y limit for histogram
highY high y limit for histogram
binsY number of bins in y
lowZ low y limit for histogram
highZ high y limit for histogram
binsZ number of bins in y
Returns:
pointer to AIDA 3D histogram

AIDA::IProfile1D* GaudiHistos< GaudiTool >::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 [inherited]

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also:
IHistogram1D
Parameters:
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
opt the options, used for evaluation of errors
lowY the min cut-off for y-values
highY the max cut-off for y-values
Returns:
pointer to AIDA 1D profile histogram

AIDA::IProfile1D* GaudiHistos< GaudiTool >::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 [inherited]

book the 1D profile histogram

The histogram will be assigned a unique identifier

See also:
IHistogram1D
Parameters:
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
opt the options, used for evaluation of errors
lowY the min cut-off for y-values
highY the max cut-off for y-values
Returns:
pointer to AIDA 1D profile histogram

AIDA::IProfile2D* GaudiHistos< GaudiTool >::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 [inherited]

book the 2D profile histogram

The histogram will be assigned a unique identifier

See also:
AIDA::IProfile2D
Parameters:
title histogram title (must be unique within the algorithm)
lowX low x limit for histogram
highX high x limit for histogram
binsX number of bins in x
lowY low y limit for histogram
highY high y limit for histogram
binsY number of bins in y
Returns:
pointer to AIDA 2D histogram

AIDA::IProfile2D* GaudiHistos< GaudiTool >::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 [inherited]

book the 2D profile histogram with forced ID

See also:
AIDA::IProfile2D
Parameters:
ID unique histogram ID
title histogram title (must be unique within the algorithm)
low low limit for histogram
high high limit for histogram
bins number of bins
Returns:
pointer to AIDA histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::fill ( AIDA::IHistogram1D *  histo,
const double  value,
const double  weight,
const std::string &  title = "" 
) const [inherited]

fill the 1D histogram with the value and weight

Parameters:
histo 1D histogram to be filled
value value to be put into the histogram
weight weight to be used
title histogram title (to be used for error report)
Returns:
pointer to AIDA 1D histogram

Reimplemented in HistoTool.

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::fill ( AIDA::IHistogram2D *  histo,
const double  valueX,
const double  valueY,
const double  weight,
const std::string &  title = "" 
) const [inherited]

fill the 2D histogram with the value and weight

Parameters:
histo 2D histogram to be filled
valueX x value to be put into the histogram
valueY y value to be put into the histogram
weight weight to be used
title histogram title (to be used for error report)
Returns:
pointer to AIDA 2D histogram

Reimplemented in HistoTool.

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::fill ( AIDA::IHistogram3D *  histo,
const double  valueX,
const double  valueY,
const double  valueZ,
const double  weight,
const std::string &  title = "" 
) const [inherited]

fill the 3D histogram with the value and weight

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

Reimplemented in HistoTool.

AIDA::IProfile1D* GaudiHistos< GaudiTool >::fill ( AIDA::IProfile1D *  histo,
const double  valueX,
const double  valueY,
const double  weight,
const std::string &  title = "" 
) const [inherited]

fill the 1D profile histogram with the values and weight

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

AIDA::IProfile2D* GaudiHistos< GaudiTool >::fill ( AIDA::IProfile2D *  histo,
const double  valueX,
const double  valueY,
const double  valueZ,
const double  weight,
const std::string &  title = "" 
) const [inherited]

fill the 2D profile histogram with the values and weight

Parameters:
histo 2D profile histogram to be filled
valueX x value to be put into the histogram
valueY y value to be put into the histogram
valueZ z value to be put into the histogram
weight weight to be used
title histogram title (to be used for error report)
Returns:
pointer to AIDA 1D histogram

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::histo1D ( const std::string &  title  )  const [inline, inherited]

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

Reimplemented in HistoTool.

Definition at line 1679 of file GaudiHistos.h.

01680   {
01681     Histo1DMapTitle::const_iterator found = histo1DMapTitle().find( title ) ;
01682     return ( histo1DMapTitle().end() == found ? 0 : found->second );
01683   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::histo1D ( const HistoID ID  )  const [inherited]

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

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::histo ( const std::string &  title  )  const [inline, inherited]

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 1692 of file GaudiHistos.h.

01693   {
01694     return histo1D( title );
01695   }

AIDA::IHistogram1D* GaudiHistos< GaudiTool >::histo ( const HistoID ID  )  const [inline, inherited]

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 1747 of file GaudiHistos.h.

01748   {
01749     return histo1D( ID );
01750   }

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::histo2D ( const std::string &  title  )  const [inline, inherited]

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

Reimplemented in HistoTool.

Definition at line 1700 of file GaudiHistos.h.

01701   {
01702     Histo2DMapTitle::const_iterator found = histo2DMapTitle().find( title ) ;
01703     return ( histo2DMapTitle().end() == found ? 0 : found->second );
01704   }

AIDA::IHistogram2D* GaudiHistos< GaudiTool >::histo2D ( const HistoID ID  )  const [inherited]

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

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::histo3D ( const std::string &  title  )  const [inline, inherited]

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

Reimplemented in HistoTool.

Definition at line 1709 of file GaudiHistos.h.

01710   {
01711     Histo3DMapTitle::const_iterator found = histo3DMapTitle().find( title ) ;
01712     return ( histo3DMapTitle().end() == found ? 0 : found->second );
01713   }

AIDA::IHistogram3D* GaudiHistos< GaudiTool >::histo3D ( const HistoID ID  )  const [inherited]

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

bool GaudiHistos< GaudiTool >::histoExists ( const std::string &  title  )  const [inline, inherited]

check the existence AND validity of the histogram with given title

Reimplemented in HistoTool.

Definition at line 1775 of file GaudiHistos.h.

01776   {
01777     return
01778       ( 0 != histo     ( title ) ||
01779         0 != histo2D   ( title ) ||
01780         0 != histo3D   ( title ) ||
01781         0 != profile1D ( title ) ||
01782         0 != profile2D ( title ) );
01783   }

bool GaudiHistos< GaudiTool >::histoExists ( const HistoID ID  )  const [inline, inherited]

check the existence AND validity of the histogram with given title

Definition at line 1786 of file GaudiHistos.h.

01787   {
01788     return
01789       ( 0 != histo     ( ID ) ||
01790         0 != histo2D   ( ID ) ||
01791         0 != histo3D   ( ID ) ||
01792         0 != profile1D ( ID ) ||
01793         0 != profile2D ( ID ) );
01794   }

unsigned int GaudiHistos< GaudiTool >::totalNumberOfHistos (  )  const [inherited]

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

bool GaudiHistos< GaudiTool >::produceHistos (  )  const [inline, inherited]

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

Definition at line 1801 of file GaudiHistos.h.

01801 { return m_produceHistos ; }

bool GaudiHistos< GaudiTool >::fullDetail (  )  const [inline, inherited]

get flag to control output level of histograms

Definition at line 1803 of file GaudiHistos.h.

01803 { return m_fullDetail    ; }

bool GaudiHistos< GaudiTool >::checkForNaN (  )  const [inline, inherited]

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

Definition at line 1805 of file GaudiHistos.h.

01805 { return m_checkForNaN   ; }

bool GaudiHistos< GaudiTool >::splitHistoDir (  )  const [inline, inherited]

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

Definition at line 1807 of file GaudiHistos.h.

01807 { return m_splitHistoDir ; }

HistoID::NumericID GaudiHistos< GaudiTool >::histoOffSet (  )  const [inline, inherited]

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

Definition at line 1809 of file GaudiHistos.h.

01809 { return m_histoOffSet ; }

const std::string& GaudiHistos< GaudiTool >::histoTopDir (  )  const [inline, inherited]

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

Definition at line 1811 of file GaudiHistos.h.

01811 { return m_histoTopDir   ; }

const std::string& GaudiHistos< GaudiTool >::histoDir (  )  const [inline, inherited]

get histogram directory (property "HistoDir")

Definition at line 1813 of file GaudiHistos.h.

01813 { return m_histoDir      ; }

std::string GaudiHistos< GaudiTool >::histoPath (  )  const [inline, inherited]

get the constructed histogram path

Definition at line 1815 of file GaudiHistos.h.

01816   {
01817     const std::string path = histoTopDir() + histoDir();
01818     return ( splitHistoDir() ? dirHbookName(path) : path );
01819   }

bool GaudiHistos< GaudiTool >::histosPrint (  )  const [inline, inherited]

print histograms at finalization ?

Definition at line 1821 of file GaudiHistos.h.

01821 { return m_histosPrint ; }

bool GaudiHistos< GaudiTool >::useNumericAutoIDs (  )  const [inline, inherited]

Use old style sequencial numerical automatically assigned IDs ?

Definition at line 1823 of file GaudiHistos.h.

01823 { return m_useNumericAutoIDs; }

int GaudiHistos< GaudiTool >::printHistos ( const MSG::Level  level = MSG::ALWAYS  )  const [inherited]

perform the actual printout of histograms

Parameters:
level The message level to print at
Returns:
number of active histograms

const Histo1DMapTitle& GaudiHistos< GaudiTool >::histo1DMapTitle (  )  const [inline, inherited]

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

  const Histo1DMapTitle& histos = histo1DMapTitle() ;
  // iterate over the map!
  for ( Histo1DMapTitle::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // histogram title
        const std::string&   title = entry->first ;
        // histogram itself
        AIDA::IHistogram1D* 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 1858 of file GaudiHistos.h.

01858 { return m_histo1DMapTitle; }

const Histo1DMapNumID& GaudiHistos< GaudiTool >::histo1DMapNumID (  )  const [inline, inherited]

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

Attention:
This map only contains 1D histogram booked via a numeric ID, either forced or automatically assigned.
  const Histo1DMapNumID& histos = histo1DMapNumID() ;
  // iterate over the map!
  for ( Histo1DMapNumID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 1889 of file GaudiHistos.h.

01889 { return m_histo1DMapNumID; }

const Histo1DMapLitID& GaudiHistos< GaudiTool >::histo1DMapLitID (  )  const [inline, inherited]

get access to the map of all 1D histograms index via a literal (string) ID

Attention:
This map only contains 1D histogram booked via a literal ID.
  const Histo1DMapLitID& histos = histo1DMapLitID() ;
  // iterate over the map!
  for ( Histo1DMapLitID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 1919 of file GaudiHistos.h.

01919 { return m_histo1DMapLitID; }

const Histo2DMapTitle& GaudiHistos< GaudiTool >::histo2DMapTitle (  )  const [inline, inherited]

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

  const Histo2DMapTitle& histos = histo2DMapTitle() ;
  // iterate over the map!
  for ( Histo2DMapTitle::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 1948 of file GaudiHistos.h.

01948 { return m_histo2DMapTitle ; }

const Histo2DMapNumID& GaudiHistos< GaudiTool >::histo2DMapNumID (  )  const [inline, inherited]

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

Attention:
This map only contains 2D histogram booked via a numeric ID, either forced or automatically assigned.
  const Histo2DMapNumID& histos = histo2DMapNumID() ;
  // iterate over the map!
  for ( Histo2DMapNumID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 1979 of file GaudiHistos.h.

01979 { return m_histo2DMapNumID; }

const Histo2DMapLitID& GaudiHistos< GaudiTool >::histo2DMapLitID (  )  const [inline, inherited]

get access to the map of all 2D histograms index via a literal (string) ID

Attention:
This map only contains 2D histogram booked via a literal ID.
  const Histo2DMapLitID& histos = histo2DMapLitID() ;
  // iterate over the map!
  for ( Histo2DMapLitID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2009 of file GaudiHistos.h.

02009 { return m_histo2DMapLitID; }

const Histo3DMapTitle& GaudiHistos< GaudiTool >::histo3DMapTitle (  )  const [inline, inherited]

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

  const Histo3DMapTitle& histos = histo3DMapTitle() ;
  // iterate over the map!
  for ( Histo3DMapTitle::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 2038 of file GaudiHistos.h.

02038 { return m_histo3DMapTitle ; }

const Histo3DMapNumID& GaudiHistos< GaudiTool >::histo3DMapNumID (  )  const [inline, inherited]

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

Attention:
This map only contains 3D histogram booked via a numeric ID, either forced or automatically assigned.
  const Histo3DMapNumID& histos = histo3DMapNumID() ;
  // iterate over the map!
  for ( Histo3DMapNumID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2069 of file GaudiHistos.h.

02069 { return m_histo3DMapNumID; }

const Histo3DMapLitID& GaudiHistos< GaudiTool >::histo3DMapLitID (  )  const [inline, inherited]

get access to the map of all 3D histograms index via a literal (string) ID

Attention:
This map only contains 3D histogram booked via a literal ID.
  const Histo3DMapLitID& histos = histo3DMapLitID() ;
  // iterate over the map!
  for ( Histo3DMapLitID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2099 of file GaudiHistos.h.

02099 { return m_histo3DMapLitID; }

const Profile1DMapTitle& GaudiHistos< GaudiTool >::profile1DMapTitle (  )  const [inline, inherited]

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

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

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

        std::cout << " Histogram title " << title << std::endl ;

     }

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

Definition at line 2128 of file GaudiHistos.h.

02128 { return m_profile1DMapTitle; }

const Profile1DMapNumID& GaudiHistos< GaudiTool >::profile1DMapNumID (  )  const [inline, inherited]

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

Attention:
This map only contains 2D histogram booked via a numeric ID, either forced or automatically assigned.
  const Profile1DMapNumID& histos = profile1DMapNumID() ;
  // iterate over the map!
  for ( Profile1DMapNumID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2159 of file GaudiHistos.h.

02159 { return m_profile1DMapNumID; }

const Profile1DMapLitID& GaudiHistos< GaudiTool >::profile1DMapLitID (  )  const [inline, inherited]

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

Attention:
This map only contains 2D histogram booked via a literal ID, either forced or automatically assigned.
  const Profile1DMapLitID& histos = profile1DMapLitID() ;
  // iterate over the map!
  for ( Profile1DMapLitID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2190 of file GaudiHistos.h.

02190 { return m_profile1DMapLitID; }

const Profile2DMapTitle& GaudiHistos< GaudiTool >::profile2DMapTitle (  )  const [inline, inherited]

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

  const Profile2DMapTitle& histos = profile2DMapTitle() ;
  // iterate over the map!
  for ( Profile2DMapTitle::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 2219 of file GaudiHistos.h.

02219 { return m_profile2DMapTitle; }

const Profile2DMapNumID& GaudiHistos< GaudiTool >::profile2DMapNumID (  )  const [inline, inherited]

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

Attention:
This map only contains 2D histogram booked via a numeric ID, either forced or automatically assigned.
  const Profile2DMapNumID& histos = profile2DMapNumID() ;
  // iterate over the map!
  for ( Profile2DMapNumID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2250 of file GaudiHistos.h.

02250 { return m_profile2DMapNumID; }

const Profile2DMapLitID& GaudiHistos< GaudiTool >::profile2DMapLitID (  )  const [inline, inherited]

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

Attention:
This map only contains 2D histogram booked via a literal ID, either forced or automatically assigned.
  const Profile2DMapLitID& histos = profile2DMapLitID() ;
  // iterate over the map!
  for ( Profile2DMapLitID::const_iterator entry = histos.begin() ;
        histos.end() != entry ; ++entry  )
     {
        // 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 ;

     }

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

Definition at line 2281 of file GaudiHistos.h.

02281 { return m_profile2DMapLitID; }

void GaudiHistos< GaudiTool >::setProduceHistos ( const bool  val  )  [inline, inherited]

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

Definition at line 2286 of file GaudiHistos.h.

02286 { m_produceHistos = val ; }

void GaudiHistos< GaudiTool >::setFullDetail ( const bool  val  )  [inline, inherited]

set flag to control output level of histograms

Definition at line 2288 of file GaudiHistos.h.

02288 { m_fullDetail    = val ; }

void GaudiHistos< GaudiTool >::setCheckForNaN ( const bool  val  )  [inline, inherited]

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

Definition at line 2290 of file GaudiHistos.h.

02290 { m_checkForNaN   = val ; }

void GaudiHistos< GaudiTool >::setSplitHistoDir ( const bool  val  )  [inline, inherited]

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

Definition at line 2292 of file GaudiHistos.h.

02292 { m_splitHistoDir = val ; }

void GaudiHistos< GaudiTool >::setHistoOffSet ( const HistoID::NumericID  val  )  [inline, inherited]

set a value for histogram offset (property "HistoOffSet"

Definition at line 2294 of file GaudiHistos.h.

02295   { m_histoOffSet   = val ; }

void GaudiHistos< GaudiTool >::setHistoTopDir ( const std::string &  val  )  [inline, inherited]

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

Definition at line 2298 of file GaudiHistos.h.

02298 { m_histoTopDir   = val ; }

void GaudiHistos< GaudiTool >::setHistoDir ( const std::string &  val  )  [inline, inherited]

set histogram directory (property "HistoDir")

Definition at line 2301 of file GaudiHistos.h.

02301 { m_histoDir      = val ; }

std::string GaudiHistos< GaudiTool >::convertTitleToID ( const std::string &  title  )  const [protected, inherited]

Create an ID string from a title string.

INTupleSvc * GaudiTool::ntupleSvc (  )  const [inherited]

Access the standard N-Tuple.

Returns:
pointer to N-Tuple service .

Definition at line 200 of file GaudiTool.cpp.

00201 {
00202   if ( 0 == m_ntupleSvc )
00203   {
00204     m_ntupleSvc = svc<INTupleSvc>( "NTupleSvc" , true ) ;
00205   }
00206   return m_ntupleSvc ;
00207 }

INTupleSvc * GaudiTool::evtColSvc (  )  const [inherited]

Access the standard event collection service.

Returns:
pointer to the event collection service

Definition at line 211 of file GaudiTool.cpp.

00212 {
00213   if ( 0 == m_evtColSvc )
00214   {
00215     m_evtColSvc = svc< INTupleSvc > ( "EvtTupleSvc" , true ) ;
00216   }
00217   return m_evtColSvc ;
00218 }

IDataProviderSvc * GaudiTool::detSvc (  )  const [inherited]

accessor to detector service

Returns:
pointer to detector service

Definition at line 188 of file GaudiTool.cpp.

00189 {
00190   if ( 0 == m_detSvc )
00191   {
00192     m_detSvc =
00193       svc<IDataProviderSvc>( GaudiToolServices::s_DetectorDataSvc , true ) ;
00194   }
00195   return m_detSvc ;
00196 }

IDataProviderSvc * GaudiTool::evtSvc (  )  const [inherited]

accessor to event service service

Returns:
pointer to detector service

Definition at line 222 of file GaudiTool.cpp.

00223 {
00224   if ( 0 == m_evtSvc )
00225   {
00226     m_evtSvc =
00227       svc<IDataProviderSvc>( GaudiToolServices::s_EventDataSvc , true ) ;
00228   }
00229   return m_evtSvc ;
00230 }

IIncidentSvc * GaudiTool::incSvc (  )  const [inherited]

accessor to Incident Service

Returns:
pointer to the Incident Service

Definition at line 234 of file GaudiTool.cpp.

00235 {
00236   if ( 0 == m_incSvc )
00237   {
00238     m_incSvc =
00239       svc<IIncidentSvc> ( GaudiToolServices::s_IncidentSvc , true ) ;
00240   }
00241   return m_incSvc ;
00242 }

IChronoStatSvc * GaudiTool::chronoSvc (  )  const [inherited]

accessor to Chrono & Stat Service

Returns:
pointer to the Chrono & Stat Service

Definition at line 246 of file GaudiTool.cpp.

00247 {
00248   if ( 0 == m_chronoSvc )
00249   {
00250     m_chronoSvc =
00251       svc<IChronoStatSvc> ( GaudiToolServices::s_ChronoStatSvc , true ) ;
00252   }
00253   return m_chronoSvc ;
00254 }

IHistogramSvc * GaudiTool::histoSvc (  )  const [inherited]

acessor to the histogram service

Returns:
pointer to the histogram service

Definition at line 258 of file GaudiTool.cpp.

00259 {
00260   if ( 0 == m_histoSvc )
00261   {
00262     m_histoSvc = svc<IHistogramSvc> ( GaudiToolServices::s_HistoSvc, true ) ;
00263   }
00264   return m_histoSvc;
00265 }

IAlgContextSvc * GaudiTool::contextSvc (  )  const [inherited]

acessor to the Algorithm Context Service

Returns:
pointer to the Algorithm Contetx Service

Definition at line 269 of file GaudiTool.cpp.

00270 {
00271   if ( 0 == m_contextSvc )
00272   {
00273     m_contextSvc = svc<IAlgContextSvc> ( m_contextSvcName , true ) ;
00274   }
00275   return m_contextSvc;
00276 }

DataObject* GaudiTool::put ( IDataProviderSvc svc,
DataObject object,
const std::string &  address,
const bool  useRootInTES = true 
) const [inline, inherited]

Register a data object or container into Gaudi Event Transient Store.

  MCHits * hits = new MCHits();
  put( evtSvc(), hits, "/Event/MC/Hits" );

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
See also:
IDataProviderSvc
Parameters:
svc Pointer to data provider service
object Data object or container to be registered
address Address in Gaudi Event Transient Store ("/Event" could be omitted )
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Exceptions:
GaudiException for invalid event data service
GaudiException for invalid object
GaudiException for error result from event data service
Returns:
StatusCode
Return values:
StatusCode::SUCCESS Data was successfully placed in the TES.
StatusCode::FAILURE Failed to store data in the TES.

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 196 of file GaudiTool.h.

00200   {
00201     return GaudiCommon<AlgTool>::put ( svc , object , address , useRootInTES ) ;
00202   }

DataObject* GaudiTool::put ( DataObject object,
const std::string &  address,
const bool  useRootInTES = true 
) const [inline, inherited]

Register a data object or container into Gaudi Event Transient Store.

See also:
IDataProviderSvc
  MCHits * hits = put( new MCHits(), "/Event/MC/Hits" );

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Parameters:
object Data object or container to be registered
address Address in Gaudi Event Transient Store ("/Event" could be omitted )
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Exceptions:
GaudiException for invalid event data service
GaudiException for invalid object
GaudiException for error result from event data service
Returns:
StatusCode
Return values:
StatusCode::SUCCESS Data was successfully placed in the TES.
StatusCode::FAILURE Failed to store data in the TES.

Definition at line 232 of file GaudiTool.h.

00235   {
00236     return GaudiCommon<AlgTool>::put ( evtSvc() , object , address , useRootInTES ) ;
00237   }

template<class TYPE>
Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::get ( IDataProviderSvc svc,
const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Templated access to the data in Gaudi Transient Store.

Quick and safe access to the data in Gaudi transient store. The method located the data at given address and perform the debug printout about located data

  MCHits* hits = get<MCHits>( evtSvc() , "/Event/MC/Hits" );

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
See also:
IDataProviderSvc

SmartDataPtr

Exceptions:
GaudiException for Invalid Data Provider Service
GaudiException for invalid/unavailable data
Parameters:
svc Pointer to data service (data provider)
location data location/address in Gaudi Transient Store
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns:
pointer to the data object

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 272 of file GaudiTool.h.

00275   {
00276     return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , useRootInTES ) ;
00277   }

template<class TYPE>
Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::get ( const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Templated access to the data from Gaudi Event Transient Store.

Quick and safe access to the data in Gaudi transient store.

The method located the data at the given address and perform the debug printout about located data.

  MCParticles* mcps = get<MCParticles>( MCParticleLocation::Default );

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Parameters:
location Data location/address in Gaudi Transient Store
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns:
Pointer to the data object

Definition at line 306 of file GaudiTool.h.

00308   {
00309     return GaudiCommon<AlgTool>::get<TYPE> ( evtSvc() , location , useRootInTES ) ;
00310   }

template<class TYPE>
TYPE* GaudiTool::getDet ( IDataProviderSvc svc,
const std::string &  location 
) const [inline, inherited]

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

  MyDet* mdet = getDet<MyDet>( detSvc() , "/dd/Structure/LHCb/MyDet" );

Parameters:
svc Pointer to data service (data provider)
location Detector location/address in Gaudi Transient Store
Returns:
Pointer to the detector object

Definition at line 331 of file GaudiTool.h.

00333   {
00334     return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , false ) ;
00335   }

template<class TYPE>
TYPE* GaudiTool::getDet ( const std::string &  location  )  const [inline, inherited]

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

  MyDet* mdet = getDet<MyDet>( "/dd/Structure/LHCb/MyDet" );

Parameters:
location Detector location/address in Gaudi Transient Store
Returns:
Pointer to the detector object

Definition at line 355 of file GaudiTool.h.

00356   {
00357     return GaudiCommon<AlgTool>::get<TYPE> ( detSvc() , location , false ) ;
00358   }

template<class TYPE>
bool GaudiTool::exist ( IDataProviderSvc svc,
const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Check the existence of a data object or container in the Gaudi Transient Event Store.

  bool a1 = exist<DataObject>( evtSvc(), "/Event/MyObject" ) ;
  bool a2 = exist<MyHits>    ( evtSvc(), "/Event/MyHits"   ) ;

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Parameters:
svc Pointer to data service (data provider)
location Address in Gaudi Transient Event Store
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns:
Boolean indicating status of the request
Return values:
true Data object or container exists and implements a proper interface
true Failed to locate the data object or container

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 386 of file GaudiTool.h.

00389   {
00390     return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , useRootInTES ) ;
00391   }

template<class TYPE>
bool GaudiTool::exist ( const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Check the existence of a data object or container in the Gaudi Transient Event Store.

  bool a1 = exist<DataObject>( "/Event/MyObject" ) ;
  bool a2 = exist<MyHits>    ( "/Event/MyHits"   ) ;

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Parameters:
location Address in Gaudi Transient Event Store
Returns:
Boolean indicating status of the request
Return values:
true Data object or container exists and implements a proper interface
true Failed to locate the data object or container

Definition at line 416 of file GaudiTool.h.

00418   {
00419     return GaudiCommon<AlgTool>::exist<TYPE> ( evtSvc() , location , useRootInTES ) ;
00420   }

template<class TYPE>
bool GaudiTool::existDet ( IDataProviderSvc svc,
const std::string &  location 
) const [inline, inherited]

Check the existence of detector objects in the Gaudi Transient Detector Store.

  bool a1 = existDet<DataObject> ( detSvc(), "/dd/Structure/MyObject"     ) ;
  bool a2 = existDet<Material>   ( detSvc(), "/dd/Structure/Material/Air" ) ;

Parameters:
svc Pointer to data service (data provider)
location Address in Gaudi Transient Detector Store
Returns:
Boolean indicating status of the request
Return values:
true Detector object exists and implements a proper interface
false Failed to locate the data object

Definition at line 439 of file GaudiTool.h.

00441   {
00442     return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , false ) ;
00443   }

template<class TYPE>
bool GaudiTool::existDet ( const std::string &  location  )  const [inline, inherited]

Check the existence of detector objects in the Gaudi Transient Detector Store.

  bool a1 = existDet<DataObject> ( "/dd/Structure/MyObject"     ) ;
  bool a2 = existDet<Material>   ( "/dd/Structure/Material/Air" ) ;

Parameters:
location Address in Gaudi Transient Detector Store
Returns:
Boolean indicating status of the request
Return values:
true Detector object exists and implements a proper interface
false Failed to locate the data object

Definition at line 461 of file GaudiTool.h.

00462   {
00463     return GaudiCommon<AlgTool>::exist<TYPE> ( detSvc() , location , false ) ;
00464   }

template<class TYPE, class TYPE2>
TYPE* GaudiTool::getOrCreate ( IDataProviderSvc svc,
const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Get the existing data object from Gaudi Event Transient store.

Alternatively, create new object and register it in TES and return if object does not exist.

  MyHits* hits = getOrCreate<MyHits,MyHits>( evtSvc() , "/Event/MyHits" ) ;

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Exceptions:
GaudiException for Invalid Data Provider Service
GaudiException for invalid/unavailable data
Parameters:
svc Pointer to data service (data provider)
location Location in Gaudi Transient Event Store
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns:
A valid pointer to the object

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 493 of file GaudiTool.h.

00496   {
00497     return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( svc , location , useRootInTES ) ;
00498   }

template<class TYPE, class TYPE2>
TYPE* GaudiTool::getOrCreate ( const std::string &  location,
const bool  useRootInTES = true 
) const [inline, inherited]

Get the existing data object from Gaudi Event Transient store.

Alternatively, create new object and register it in TES and return if object does not exist.

  MyHits* hits = getOrCreate<MyHits,MyHits>( "/Event/MyHits" ) ;

Attention:
The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behaviour can be suppressed by passing the arguement useRootInTES = false
Exceptions:
GaudiException for Invalid Data Provider Service
GaudiException for invalid/unavailable data
Parameters:
location Location in Gaudi Transient Event Store
useRootInTES Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns:
A valid pointer to the object

Definition at line 526 of file GaudiTool.h.

00528   {
00529     return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( evtSvc() , location , useRootInTES ) ;
00530   }

TOOL* GaudiCommon< AlgTool >::tool ( const std::string &  type,
const std::string &  name,
const IInterface parent = 0,
bool  create = true 
) const [inherited]

Useful method for the easy location of tools.

  IMyTool* myTool =
      tool<IMyTool>( "MyToolType", "MyToolName", this );

Attention:
The tools located with this method will be released automatically
See also:
IToolSvc

IAlgTool

Exceptions:
GaudiException for invalid Tool Service
GaudiException for error from Tool Service
GaudiException for invalid tool
Parameters:
type Tool type
name Tool name
parent Tool parent
create Flag for creation of nonexisting tools
Returns:
A pointer to the tool

TOOL* GaudiCommon< AlgTool >::tool ( const std::string &  type,
const IInterface parent = 0,
bool  create = true 
) const [inherited]

A useful method for the easy location of tools.

  IMyTool* myTool = tool<IMyTool>( "PublicToolType" );

Attention:
The tools located with this method will be released automatically
See also:
IToolSvc

IAlgTool

Exceptions:
GaudiException for invalid Tool Service
GaudiException for error from Tool Service
GaudiException for invalid tool
Parameters:
type Tool type, could be of "Type/Name" format
parent Tool parent
create Flag for creation of nonexisting tools
Returns:
A pointer to the tool

SERVICE* GaudiCommon< AlgTool >::svc ( const std::string &  name,
const bool  create = true 
) const [inherited]

A useful method for the easy location of services.

  IMyService* mySvc = svc<IMyService>( "MyServiceType" );

Attention:
The services located with this method will be released automatically
See also:
IService

ISevcLocator

Service

Exceptions:
GaudiException for error in Algorithms::service
GaudiException for invalid service
Parameters:
name service type name
create Flag for creation of non-existing services
Returns:
A pointer to the service

IUpdateManagerSvc* GaudiCommon< AlgTool >::updMgrSvc (  )  const [inline, inherited]

Short-cut to locate the Update Manager Service.

IDataProviderSvc* GaudiCommon< AlgTool >::fastContainersSvc (  )  const [inline, inherited]

Short-cut to locate the Fast Containers Service.

StatusCode GaudiCommon< AlgTool >::Error ( const std::string &  msg,
const StatusCode  st = StatusCode::FAILURE,
const size_t  mx = 10 
) const [inherited]

Print the error message and return with the given StatusCode.

Also performs statistical analysis of the error messages and suppression after the defined number of error instances.

   if( a < 0 ) { return Error("a is negative!") ;}
   if( b < 0 ) { return Error("b is illegal!" , StatusCode(25) );
   if( c < 0 )
      { return Error("c is negative" , StatusCode(35) , 50 );

See also:
MsgStream

IMessageSvc

StatusCode

Parameters:
msg Error message
st StatusCode to return
mx Maximum number of printouts for this message
Returns:
StatusCode

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Warning ( const std::string &  msg,
const StatusCode  st = StatusCode::FAILURE,
const size_t  mx = 10 
) const [inherited]

Print the warning message and return with the given StatusCode.

Also performs statistical analysis of the error messages and suppression after the defined number of error instances.

   if( a < 0 ) { return Warning("a is negative!") ;}
   if( b < 0 ) { return Warning("b is illegal!" , StatusCode(25) );
   if( c < 0 )
      { return Warning("c is negative" , StatusCode(35) , 50 );

See also:
MsgStream

IMessageSvc

StatusCode

Parameters:
msg Warning message
st StatusCode to return
mx Maximum number of printouts for this message
Returns:
The given StatusCode

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Print ( const std::string &  msg,
const StatusCode  st = StatusCode::SUCCESS,
const MSG::Level  lev = MSG::INFO 
) const [inherited]

Print the message and return with the given StatusCode.

See also:
MsgStream

IMessageSvc

StatusCode

Parameters:
msg Message to print
st StatusCode to return
lev Printout level for the given message
Returns:
The given StatusCode

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Assert ( const bool  ok,
const std::string &  message = "",
const StatusCode  sc = StatusCode(StatusCode::FAILURE, true) 
) const [inline, inherited]

Assertion - throw exception if the given condition is not fulfilled.

See also:
GaudiException
Exceptions:
Exception for invalid condition
Parameters:
ok Condition which should be "true"
message Message to be associated with the exception
sc StatusCode to be returned (artificial)
Returns:
StatusCode

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Assert ( const bool  ok,
const char *  message,
const StatusCode  sc = StatusCode(StatusCode::FAILURE, true) 
) const [inline, inherited]

Assertion - throw exception if the given condition is not fulfilled.

See also:
GaudiException
Exceptions:
Exception for invalid condition
Parameters:
ok Condition which should be "true"
message Message to be associated with the exception
sc StatusCode to be returned (artificial)
Returns:
StatusCode

StatusCode GaudiCommon< AlgTool >::Exception ( const std::string &  msg,
const GaudiException exc,
const StatusCode  sc = StatusCode(StatusCode::FAILURE, true) 
) const [inherited]

Create and (re)-throw a given GaudiException.

See also:
GaudiException
Exceptions:
CaudiException always thrown!
Parameters:
msg Exception message
exc (previous) exception of type GaudiException
sc StatusCode
Returns:
StatusCode (fictive)

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Exception ( const std::string &  msg,
const std::exception &  exc,
const StatusCode  sc = StatusCode(StatusCode::FAILURE, true) 
) const [inherited]

Create and (re)-throw a given exception.

See also:
GaudiException
Exceptions:
std::exception always thrown!
Parameters:
msg Exception message
exc (previous) exception of type std::exception
sc StatusCode
Returns:
StatusCode (fictive)

Reimplemented in ErrorTool.

StatusCode GaudiCommon< AlgTool >::Exception ( const std::string &  msg = "no message",
const StatusCode  sc = StatusCode(StatusCode::FAILURE, true) 
) const [inherited]

Create and throw an exception with the given message.

See also:
GaudiException
Exceptions:
GaudiException always thrown!
Parameters:
msg Exception message
sc StatusCode
Returns:
StatusCode (fictive)

Reimplemented in ErrorTool.

MsgStream& GaudiCommon< AlgTool >::msgStream ( const MSG::Level  level  )  const [inline, inherited]

Predefined configurable message stream for the efficient printouts.

  if ( a < 0 ) { msgStream( MSG::ERROR ) << "a = " << endreq ; }

Returns:
Reference to the predefined stream

MsgStream& GaudiCommon< AlgTool >::always (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::ALWAYS )

Definition at line 457 of file GaudiCommon.h.

00457 { return msgStream ( MSG::  ALWAYS ) ; }

MsgStream& GaudiCommon< AlgTool >::fatal (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::FATAL )

Definition at line 459 of file GaudiCommon.h.

00459 { return msgStream ( MSG::   FATAL ) ; }

MsgStream& GaudiCommon< AlgTool >::err (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::ERROR )

Definition at line 461 of file GaudiCommon.h.

00461 { return msgStream ( MSG::   ERROR ) ; }

MsgStream& GaudiCommon< AlgTool >::error (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::ERROR )

Definition at line 463 of file GaudiCommon.h.

00463 { return msgStream ( MSG::   ERROR ) ; }

MsgStream& GaudiCommon< AlgTool >::warning (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::WARNING )

Definition at line 465 of file GaudiCommon.h.

00465 { return msgStream ( MSG:: WARNING ) ; }

MsgStream& GaudiCommon< AlgTool >::info (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::INFO )

Definition at line 467 of file GaudiCommon.h.

00467 { return msgStream ( MSG::    INFO ) ; }

MsgStream& GaudiCommon< AlgTool >::debug (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::DEBUG )

Definition at line 469 of file GaudiCommon.h.

00469 { return msgStream ( MSG::   DEBUG ) ; }

MsgStream& GaudiCommon< AlgTool >::verbose (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::VERBOSE )

Definition at line 471 of file GaudiCommon.h.

00471 { return msgStream ( MSG:: VERBOSE ) ; }

MsgStream& GaudiCommon< AlgTool >::msg (  )  const [inline, inherited]

shortcut for the method msgStream ( MSG::INFO )

Definition at line 473 of file GaudiCommon.h.

00473 { return msgStream ( MSG::    INFO ) ; }

const Statistics& GaudiCommon< AlgTool >::counters (  )  const [inline, inherited]

accessor to all counters

Definition at line 476 of file GaudiCommon.h.

00476 { return m_counters ; }

StatEntity& GaudiCommon< AlgTool >::counter ( const std::string &  tag  )  const [inline, inherited]

accessor to certain counter by name

  if ( OK ) { ++counter("OK") ; }

  // additive counter ('Flag')
  counter("#Tracks") += tracks->size() ;

  // multiplicative counter  ('Weight')
  counter("ProbTot") *= probability ;

See also:
StatEntuty
Parameters:
tag counter name
Returns:
the counter itself

Definition at line 495 of file GaudiCommon.h.

00495 { return m_counters[tag] ; }

MSG::Level GaudiCommon< AlgTool >::msgLevel (  )  const [inline, inherited]

The current message service output level.

Returns:
The current message level

Definition at line 500 of file GaudiCommon.h.

00500 { return m_msgLevel ; }

bool GaudiCommon< AlgTool >::msgLevel ( const MSG::Level  level  )  const [inline, inherited]

Test the output level.

Parameters:
level The message level to test against
Returns:
boolean Indicting if messages at given level will be printed
Return values:
true Messages at level "level" will be printed
true Messages at level "level" will NOT be printed

Definition at line 507 of file GaudiCommon.h.

00507 { return msgLevel() <= level ; }

void GaudiCommon< AlgTool >::resetMsgStream (  )  const [inherited]

Reset (delete) the current message stream object.

Useful for example to force a new object following a change in the message level settings

bool GaudiCommon< AlgTool >::typePrint (  )  const [inline, inherited]

Insert the actual C++ type of the algorithm/tool in the messages ?

Definition at line 514 of file GaudiCommon.h.

00514 { return m_typePrint    ; }

bool GaudiCommon< AlgTool >::propsPrint (  )  const [inline, inherited]

Print properties at initalization ?

Definition at line 516 of file GaudiCommon.h.

00516 { return m_propsPrint   ; }

bool GaudiCommon< AlgTool >::statPrint (  )  const [inline, inherited]

Print statistical counters at finalization ?

Definition at line 518 of file GaudiCommon.h.

00518 { return m_statPrint    ; }

bool GaudiCommon< AlgTool >::errorsPrint (  )  const [inline, inherited]

Print error counters at finalization ?

Definition at line 520 of file GaudiCommon.h.

00520 { return m_errorsPrint  ; }

long GaudiCommon< AlgTool >::printStat ( const MSG::Level  level = MSG::ALWAYS  )  const [inherited]

perform the actual printout of statistical counters

Parameters:
level The message level to print at
Returns:
number of active statistical counters

long GaudiCommon< AlgTool >::printErrors ( const MSG::Level  level = MSG::ALWAYS  )  const [inherited]

perform the actual printout of error counters

Parameters:
level The message level to print at
Returns:
number of error counters

long GaudiCommon< AlgTool >::printProps ( const MSG::Level  level = MSG::ALWAYS  )  const [inherited]

perform the actual printout of properties

Parameters:
level The message level to print at
Returns:
number of properties

void GaudiCommon< AlgTool >::registerCondition ( const std::string &  condition,
StatusCode(CallerClass::*)()  mf = NULL 
) [inline, inherited]

register the current instance to the UpdateManagerSvc as a consumer for a condition.

Parameters:
condition the path inside the Transient Detector Store to the condition object.
mf optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitely provide the class name to the method.
  StatusCode MyAlg::initialize(){
     // ...
     registerCondition("/dd/Conditions/Readout/MyDet/MyCond",&MyAlg::i_CallBack);
     registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond");
     // ...
     return StatusCode.SUCCESS;
  }

Definition at line 560 of file GaudiCommon.h.

00560                                                                                                   {
00561     updMgrSvc()->registerCondition(dynamic_cast<CallerClass*>(this),condition,mf);
00562   }

void GaudiCommon< AlgTool >::registerCondition ( const std::string &  condition,
CondType *&  condPtrDest,
StatusCode(CallerClass::*)()  mf = NULL 
) [inline, inherited]

register the current instance to the UpdateManagerSvc as a consumer for a condition.

This version of the method allow the user to specify where to put a copy of the pointer to the condition object.

Parameters:
condition the path inside the Transient Detector Store to the condition object.
condPtrDest pointer to fill with the location of the condition object. Note: the pointer can be safely used only in the execute method or in the member function triggered by the update.
mf optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitely provide the class name to the method.
  class MyAlg: public GaudiAlgorithm {
     // ...
  public:
     virtual StatusCode i_CallBack();
  private:
     Condition *m_MyCond;
     SpecialCondition *m_MyOtherCond;
     // ...
  };

  StatusCode MyAlg::initialize(){
     // ...
     registerCondition("/dd/Conditions/Readout/MyDet/MyCond",m_MyCond,&MyAlg::i_CallBack);
     registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond",m_MyOtherCond);
     // ...
     return StatusCode.SUCCESS;
  }

Definition at line 594 of file GaudiCommon.h.

00595                                                                       {
00596     updMgrSvc()->registerCondition(dynamic_cast<CallerClass*>(this),condition,mf,condPtrDest);
00597   }

void GaudiCommon< AlgTool >::registerCondition ( char *  condition,
StatusCode(CallerClass::*)()  mf = NULL 
) [inline, inherited]

just to avoid conflicts with the version using a pointer to a template class.

Definition at line 600 of file GaudiCommon.h.

00600                                                                                        {
00601     updMgrSvc()->registerCondition(dynamic_cast<CallerClass*>(this),std::string(condition),mf);
00602   }

void GaudiCommon< AlgTool >::registerCondition ( TargetClass *  condition,
StatusCode(CallerClass::*)()  mf = NULL 
) [inline, inherited]

register the current instance to the UpdateManagerSvc as a consumer for a condition.

Parameters:
condition the path inside the Transient Detector Store to the condition object.
mf optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitely provide the class name to the method.
  StatusCode MyAlg::initialize(){
     // ...
     registerCondition("/dd/Conditions/Readout/MyDet/MyCond",&MyAlg::i_CallBack);
     registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond");
     // ...
     return StatusCode.SUCCESS;
  }

Definition at line 619 of file GaudiCommon.h.

00619                                                                                               {
00620     updMgrSvc()->registerCondition(dynamic_cast<CallerClass*>(this),condition,mf);
00621   }

StatusCode GaudiCommon< AlgTool >::runUpdate (  )  [inline, inherited]

asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident.

It is useful if the instance can be instantiated after a BeginEvent incident, and used before the next one (for example with tools).

  StatusCode MyTool::initialize(){
    // ...
    return runUpdate();
  }

Definition at line 633 of file GaudiCommon.h.

00633 { return updMgrSvc()->update(this); }

TransientFastContainer<T>* GaudiCommon< AlgTool >::getFastContainer ( const std::string &  location,
typename TransientFastContainer< T >::size_type  initial = 0 
) [inherited]

Return a new TransientFastContainer for objects of type T.

The container is created if it is not in the transient store. If a container with the same name but a different type

StatusCode GaudiCommon< AlgTool >::releaseTool ( const IAlgTool tool  )  const [protected, inherited]

manual forced (and 'safe') release of the tool

StatusCode GaudiCommon< AlgTool >::releaseSvc ( const IInterface svc  )  const [protected, inherited]

manual forced (and 'safe') release of the service

StatusCode GaudiCommon< AlgTool >::release ( const IInterface interface  )  const [inherited]

Manual forced (and 'safe') release of the active tool or service.

  IMyTool* mytool = tool<IMyTool>( .... ) ;
  mytool->spendCPUtime() ;
  release ( mytool ) ;

  IMySvc* msvc = svc<IMySvc>( .... ) ;
  msvc->spendCPUtime() ;
  release ( msvc ) ;

Parameters:
interface Interface pointer to the interface to be released
Returns:
StatusCode
Return values:
StatusCode::SUCCESS Tool or service was successfully released
StatusCode::FAILURE Error releasing too or service

const std::string& GaudiCommon< AlgTool >::context (  )  const [inline, inherited]

Returns the "context" string. Used to indentify different processing states.

Definition at line 696 of file GaudiCommon.h.

00696 { return m_context; }

const std::string& GaudiCommon< AlgTool >::rootInTES (  )  const [inline, inherited]

Returns the "rootInTES" string.

Used as the directory root in the TES for which all data access refers to (both saving and retrieving).

Definition at line 700 of file GaudiCommon.h.

00700 { return m_rootInTES; }

double GaudiCommon< AlgTool >::globalTimeOffset (  )  const [inline, inherited]

Returns the "globalTimeOffset" double.

Definition at line 702 of file GaudiCommon.h.

00702 { return m_globalTimeOffset; }


Member Data Documentation

const bool GaudiCommon< AlgTool >::IgnoreRootInTES [static, protected, inherited]

Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.

If used with cause the RootInTES option to be IGNORED.

Useful to aid with code readablity. e.g.

  // Get data, ignoring the setting of rootInTES()
  MyData * data = get<MyData>( "/Event/MyData", IgnoreRootInTES );

Definition at line 68 of file GaudiCommon.h.

const bool GaudiCommon< AlgTool >::UseRootInTES [static, protected, inherited]

Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.

If used with cause the RootInTES option to be USED

Useful to aid with code readablity. e.g.

  // Get data, using the setting of rootInTES()
  MyData * data = get<MyData>( "/Event/MyData", UseRootInTES );
  // note the default setting is true, so this is equivalent to
  MyData * data = get<MyData>( "/Event/MyData" );

Definition at line 80 of file GaudiCommon.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:58:18 2011 for GaudiAlg by doxygen 1.4.7