The Gaudi Framework  v38r1p1 (ae26267b)
SequencerTimerTool Class Reference

#include </builds/gaudi/Gaudi/GaudiAlg/src/components/SequencerTimerTool.h>

Inheritance diagram for SequencerTimerTool:
Collaboration diagram for SequencerTimerTool:

Public Member Functions

 SequencerTimerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor. More...
 
StatusCode initialize () override
 initialize method, to compute the normalization factor More...
 
StatusCode finalize () override
 finalize method, to print the time summary table More...
 
int addTimer (const std::string &name) override
 add a timer entry with the specified name More...
 
void increaseIndent () override
 Increase the indentation of the name. More...
 
void decreaseIndent () override
 Decrease the indentation of the name. More...
 
void start (int index) override
 start the counter, i.e. More...
 
double stop (int index) override
 stop the counter, return the elapsed time More...
 
double lastTime (int index) override
 returns the last time More...
 
const std::stringname (int index) override
 returns the name of the counter More...
 
int indexByName (const std::string &name) override
 returns the index of the counter with that name, or -1 More...
 
bool globalTiming () override
 returns the flag telling that global timing is wanted More...
 
void saveHistograms () override
 prepares and saves the timing histograms More...
 
virtual const std::stringname (int index)=0
 returns the name of the counter More...
 
virtual void start (int index)=0
 start the counter, i.e. More...
 
virtual StatusCode start ()=0
 Start (from INITIALIZED to RUNNING). More...
 
virtual double stop (int index)=0
 stop the counter, return the elapsed time More...
 
virtual StatusCode stop ()=0
 Stop (from RUNNING to INITIALIZED). More...
 
- Public Member Functions inherited from GaudiHistoTool
 GaudiHistoTool ()=delete
 
 GaudiHistoTool (const GaudiHistoTool &)=delete
 
GaudiHistoTooloperator= (const GaudiHistoTool &)=delete
 
- Public Member Functions inherited from GaudiHistos< GaudiTool >
AIDA::IHistogram1D * plot1D (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
 fill the 1D histogram (book on demand) More...
 
AIDA::IHistogram1D * plot1D (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
 fill the 1D histogram (book on demand) More...
 
AIDA::IHistogram1D * plot1D (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
 fill the 1D histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram1D * plot1D (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
 fill the 1D histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram1D * plot1D (const double value, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
 Fill the 1D variable binning histogram (book on demand) More...
 
AIDA::IHistogram1D * plot1D (const double value, const HistoID &ID, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
 fill the 1D variable binning histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram1D * plot (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
 fill the 1D histogram (book on demand) More...
 
AIDA::IHistogram1D * plot (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
 fill the 1D histogram (book on demand) More...
 
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
 fill the 1D histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
 fill the 1D histogram (book on demand) More...
 
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins=100) const
 fill the 1D histogram with information from [first,last) sequence More...
 
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100) const
 fill the 1D histogram with forced ID and information from [first,last) sequence More...
 
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
 book and fill the 1D histogram with information from [first,last) sequence with given weight More...
 
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
 book and fill the 1D histogram with forced ID and information from [first,last) sequence with given weight More...
 
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
 fill the 2D histogram (book on demand) More...
 
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
 fill the 2D histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
 Fill the 2D variable binning histogram (book on demand) More...
 
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
 fill the 2D variable histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
 fill the 3D histogram (book on demand) More...
 
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
 fill the 3D histogram with forced ID assignment (book on demand) More...
 
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ, const double weight=1.0) const
 Fill the 3D variable binning histogram (book on demand) More...
 
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ, const double weight=1.0) const
 fill the 3D histogram with forced ID assignment (book on demand) More...
 
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
 fill the 1D profile histogram (book on demand) More...
 
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
 fill the 1D profile histogram with forced ID assignment (book on demand) More...
 
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
 fill the 1D variable binning profile histogram (book on demand) More...
 
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const HistoBinEdges &edges, const double weight=1.0) const
 fill the 1D variable binning profile histogram with forced ID assignment (book on demand) More...
 
AIDA::IProfile1D * profile1D (const std::string &title) const
 access the EXISTING 1D profile histogram by title return the pointer to existing 1D profile histogram or NULL More...
 
AIDA::IProfile1D * profile1D (const HistoID &ID) const
 access the EXISTING 1D profile histogram by ID return the pointer to existing 1D profile histogram or NULL More...
 
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
 fill the 2D profile histogram (book on demand) More...
 
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
 fill the 2D profile histogram with forced ID assignment (book on demand) More...
 
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
 fill the 2D variable binning profile histogram (book on demand) More...
 
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const double weight=1.0) const
 fill the 2D variable binning profile histogram with forced ID assignment (book on demand) More...
 
AIDA::IProfile2D * profile2D (const std::string &title) const
 access the EXISTING 2D profile histogram by title return the pointer to existing 2D profile histogram or NULL More...
 
AIDA::IProfile2D * profile2D (const HistoID &ID) const
 access the EXISTING 2D profile histogram by ID return the pointer to existing 2D profile histogram or NULL More...
 
AIDA::IHistogram1D * book1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
 book the 1D histogram More...
 
AIDA::IHistogram1D * book1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
 book the 1D histogram with forced ID More...
 
AIDA::IHistogram1D * book1D (const std::string &title, const HistoBinEdges &edges) const
 book the 1D variable binning histogram More...
 
AIDA::IHistogram1D * book1D (const HistoID &ID, const std::string &title, const HistoBinEdges &edges) const
 book the 1D variable binning histogram with given ID More...
 
AIDA::IHistogram1D * book (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
 book the 1D histogram More...
 
AIDA::IHistogram1D * book (const Gaudi::Histo1DDef &hdef) const
 book the 1D histogram More...
 
AIDA::IHistogram1D * book (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
 book the 1D histogram with forced ID More...
 
AIDA::IHistogram1D * book (const HistoID &ID, const Gaudi::Histo1DDef &hdef) const
 book the 1D histogram with forced ID More...
 
AIDA::IHistogram2D * book2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
 book the 2D histogram More...
 
AIDA::IHistogram2D * book2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
 book the 2D histogram with forced ID More...
 
AIDA::IHistogram2D * book2D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
 book the 2D variable binning histogram More...
 
AIDA::IHistogram2D * book2D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
 book the 2D variable binning histogram with given ID More...
 
AIDA::IHistogram3D * book3D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
 book the 3D histogram More...
 
AIDA::IHistogram3D * book3D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
 book the 3D histogram with forced ID More...
 
AIDA::IHistogram3D * book3D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ) const
 book the 3D variable binning histogram More...
 
AIDA::IHistogram3D * book3D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY, const HistoBinEdges &edgesZ) const
 book the 3D variable binning histogram with given ID More...
 
AIDA::IProfile1D * bookProfile1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
 book the 1D profile histogram More...
 
AIDA::IProfile1D * bookProfile1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
 book the 1D profile histogram More...
 
AIDA::IProfile1D * bookProfile1D (const std::string &title, const HistoBinEdges &edges) const
 book the 1D profile histogram More...
 
AIDA::IProfile1D * bookProfile1D (const HistoID &ID, const std::string &title, const HistoBinEdges &edges) const
 book the 1D profile histogram More...
 
AIDA::IProfile2D * bookProfile2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
 book the 2D profile histogram More...
 
AIDA::IProfile2D * bookProfile2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
 book the 2D profile histogram with forced ID More...
 
AIDA::IProfile2D * bookProfile2D (const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
 book the 2D profile histogram More...
 
AIDA::IProfile2D * bookProfile2D (const HistoID &ID, const std::string &title, const HistoBinEdges &edgesX, const HistoBinEdges &edgesY) const
 book the 2D profile histogram with forced ID More...
 
AIDA::IHistogram1D * fill (AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
 fill the 1D histogram with the value and weight More...
 
AIDA::IHistogram2D * fill (AIDA::IHistogram2D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
 fill the 2D histogram with the value and weight More...
 
AIDA::IHistogram3D * fill (AIDA::IHistogram3D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
 fill the 3D histogram with the value and weight More...
 
AIDA::IProfile1D * fill (AIDA::IProfile1D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
 fill the 1D profile histogram with the values and weight More...
 
AIDA::IProfile2D * fill (AIDA::IProfile2D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
 fill the 2D profile histogram with the values and weight More...
 
AIDA::IHistogram1D * histo1D (const std::string &title) const
 access the EXISTING 1D histogram by title return the pointer to existing 1D histogram or NULL More...
 
AIDA::IHistogram1D * histo1D (const HistoID &ID) const
 access the EXISTING 1D histogram by ID return the pointer to existing 1D histogram or NULL More...
 
AIDA::IHistogram1D * histo (const std::string &title) const
 access the EXISTING 1D histogram by title More...
 
AIDA::IHistogram1D * histo (const HistoID &ID) const
 access the EXISTING 1D histogram by ID More...
 
AIDA::IHistogram2D * histo2D (const std::string &title) const
 access the EXISTING 2D histogram by title return the pointer to existing 2D histogram or NULL More...
 
AIDA::IHistogram2D * histo2D (const HistoID &ID) const
 access the EXISTING 2D histogram by ID return the pointer to existing 2D histogram or NULL More...
 
AIDA::IHistogram3D * histo3D (const std::string &title) const
 access the EXISTING 3D histogram by title return the pointer to existing 3D histogram or NULL More...
 
AIDA::IHistogram3D * histo3D (const HistoID &ID) const
 access the EXISTING 3D histogram by ID return the pointer to existing 3D histogram or NULL More...
 
bool histoExists (const std::string &title) const
 check the existence AND validity of the histogram with given title More...
 
bool histoExists (const HistoID &ID) const
 check the existence AND validity of the histogram with given title More...
 
unsigned int totalNumberOfHistos () const
 Returns the total number of histograms (of all types) currently booked. More...
 
bool produceHistos () const
 get the flag for histogram production (property "HistoProduce") More...
 
bool fullDetail () const
 get flag to control output level of histograms More...
 
bool checkForNaN () const
 get the flag for NaN checks (property "HistoCheckForNan") More...
 
bool splitHistoDir () const
 get the flag for histogram path split (property "HistoSplitDir") More...
 
HistoID::NumericID histoOffSet () const
 get the value for histogram offset (property "HistoOffSet") More...
 
const std::stringhistoTopDir () const
 get top-level histogram directory (property "HistoTopDir") More...
 
const std::stringhistoDir () const
 get histogram directory (property "HistoDir") More...
 
std::string histoPath () const
 get the constructed histogram path More...
 
bool histosPrint () const
 print histograms at finalization ? More...
 
bool histoCountersPrint () const
 print histogram counters at finalization ? More...
 
bool useNumericAutoIDs () const
 Use old style sequencial numerical automatically assigned IDs ? More...
 
int printHistos (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of histograms More...
 
const Histo1DMapTitlehisto1DMapTitle () const
 get access to the map of all 1D histograms indexed via their title More...
 
const Histo1DMapIDhisto1DMapID () const
 get access to the map of all 1D histograms index via ID More...
 
const Histo2DMapTitlehisto2DMapTitle () const
 get access to the map of all 2D histograms indexed via their title More...
 
const Histo2DMapIDhisto2DMapID () const
 get access to the map of 2D histograms index via ID More...
 
const Histo3DMapTitlehisto3DMapTitle () const
 get access to the map of all 3D histograms indexed via their title More...
 
const Histo3DMapIDhisto3DMapID () const
 get access to the map of all 3D histograms index via a ID More...
 
const Profile1DMapTitleprofile1DMapTitle () const
 get access to the map of all 1D profile histograms indexed via their title More...
 
const Profile1DMapIDprofile1DMapID () const
 get access to the map of 1D profile histograms index via a ID More...
 
const Profile2DMapTitleprofile2DMapTitle () const
 get access to the map of all 2D profile histograms indexed via their title More...
 
const Profile2DMapIDprofile2DMapID () const
 get access to the map of 2D profile histograms index via a ID More...
 
void setProduceHistos (const bool val)
 set the flag for histogram production (property "HistoProduce") More...
 
void setFullDetail (const bool val)
 set flag to control output level of histograms More...
 
void setCheckForNaN (const bool val)
 set the flag for NaN checks (property "HistoCheckForNan") More...
 
void setSplitHistoDir (const bool val)
 set the flag for histogram path split (property "HistoSplitDir") More...
 
void setHistoOffSet (const HistoID::NumericID val)
 set a value for histogram offset (property "HistoOffSet" More...
 
void setHistoTopDir (const std::string &val)
 set top-level histogram directory (property "HistoTopDir") More...
 
void setHistoDir (const std::string &val)
 set histogram directory (property "HistoDir") More...
 
 GaudiHistos (const std::string &name, ISvcLocator *pSvcLocator)
 Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined if PBASE derives from GaudiAlgorithm. More...
 
 GaudiHistos (const std::string &type, const std::string &name, const IInterface *parent)
 Tool constructor - SFINAE-ed to insure this constructor is only defined if PBASE derives from GaudiTool. More...
 
- Public Member Functions inherited from GaudiTool
StatusCode initialize () override
 standard initialization method More...
 
StatusCode finalize () override
 standard finalization method More...
 
INTupleSvcntupleSvc () const
 Access the standard N-Tuple. More...
 
INTupleSvcevtColSvc () const
 Access the standard event collection service. More...
 
IDataProviderSvcdetSvc () const
 accessor to detector service More...
 
IIncidentSvcincSvc () const
 accessor to Incident Service More...
 
IChronoStatSvcchronoSvc () const
 accessor to Chrono & Stat Service More...
 
IHistogramSvchistoSvc () const
 acessor to the histogram service More...
 
IAlgContextSvccontextSvc () const
 acessor to the Algorithm Context Service More...
 
void put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store. More...
 
void put (IDataProviderSvc *svc, std::unique_ptr< DataObject > object, const std::string &address, const bool useRootInTES=true) const
 
const DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store. More...
 
const DataObjectput (std::unique_ptr< DataObject > object, const std::string &address, const bool useRootInTES=true) const
 
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. More...
 
template<class TYPE >
Gaudi::Utils::GetData< TYPE >::return_type getIfExists (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
 Templated access to the data in Gaudi Transient Store. More...
 
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. More...
 
template<class TYPE >
Gaudi::Utils::GetData< TYPE >::return_type getIfExists (const std::string &location, const bool useRootInTES=true) const
 Templated access to the data in Gaudi Transient Store. More...
 
template<class TYPE >
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store. More...
 
template<class TYPE >
Gaudi::Utils::GetData< TYPE >::return_type getDetIfExists (IDataProviderSvc *svc, const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store. More...
 
template<class TYPE >
TYPE * getDet (const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store. More...
 
template<class TYPE >
Gaudi::Utils::GetData< TYPE >::return_type getDetIfExists (const std::string &location) const
 Templated access to the detector data from the Gaudi Detector Transient Store. More...
 
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. More...
 
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. More...
 
template<class TYPE >
bool existDet (IDataProviderSvc *svc, const std::string &location) const
 Check the existence of detector objects in the Gaudi Transient Detector Store. More...
 
template<class TYPE >
bool existDet (const std::string &location) const
 Check the existence of detector objects in the Gaudi Transient Detector Store. More...
 
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE >::return_type getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
 Get the existing data object from Gaudi Event Transient store. More...
 
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE >::return_type getOrCreate (const std::string &location, const bool useRootInTES=true) const
 Get the existing data object from Gaudi Event Transient store. More...
 
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. More...
 
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. More...
 
StatusCode Info (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const size_t mx=10) const
 Print the info message and return with the given StatusCode. More...
 
 GaudiTool (std::string type, std::string name, const IInterface *parent)
 Standard constructor. More...
 
 ~GaudiTool () override
 destructor, virtual and protected More...
 
- Public Member Functions inherited from GaudiCommon< AlgTool >
Gaudi::Utils::GetData< TYPE >::return_type get (IDataProviderSvc *svc, std::string_view location, const bool useRootInTES=true) const
 Templated access to the data in Gaudi Transient Store. More...
 
Gaudi::Utils::GetData< TYPE >::return_type getIfExists (IDataProviderSvc *svc, std::string_view location, const bool useRootInTES=true) const
 Quicker version of the get function which bypasses the check on the retrieved data. More...
 
bool exist (IDataProviderSvc *svc, std::string_view location, const bool useRootInTES=true) const
 Check the existence of a data object or container in the Gaudi Transient Event Store. More...
 
Gaudi::Utils::GetData< TYPE >::return_type getOrCreate (IDataProviderSvc *svc, std::string_view location, const bool useRootInTES=true) const
 Get the existing data object from Gaudi Event Transient store. More...
 
DataObjectput (IDataProviderSvc *svc, std::unique_ptr< DataObject > object, std::string_view location, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store. More...
 
DataObjectput (IDataProviderSvc *svc, DataObject *object, std::string_view location, const bool useRootInTES=true) const
 
TOOL * tool (std::string_view type, std::string_view name, const IInterface *parent=0, bool create=true) const
 Useful method for the easy location of tools. More...
 
TOOL * tool (std::string_view type, const IInterface *parent=0, bool create=true) const
 A useful method for the easy location of tools. More...
 
SmartIF< SERVICE > svc (std::string_view name, const bool create=true) const
 A useful method for the easy location of services. More...
 
IUpdateManagerSvcupdMgrSvc () const
 Short-cut to locate the Update Manager Service. More...
 
StatusCode Error (std::string_view msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
 Print the error message and return with the given StatusCode. More...
 
StatusCode Warning (std::string_view msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
 Print the warning message and return with the given StatusCode. More...
 
StatusCode Info (std::string_view msg, const StatusCode st=StatusCode::SUCCESS, const size_t mx=10) const
 Print the info message and return with the given StatusCode. More...
 
StatusCode Print (std::string_view msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
 Print the message and return with the given StatusCode. More...
 
void Assert (const bool ok, std::string_view message="", const StatusCode sc=StatusCode::FAILURE) const
 Assertion - throw exception if the given condition is not fulfilled. More...
 
void Exception (std::string_view msg, const GaudiException &exc, const StatusCode sc=StatusCode::FAILURE) const
 Create and (re)-throw a given GaudiException. More...
 
void Exception (std::string_view msg, const std::exception &exc, const StatusCode sc=StatusCode::FAILURE) const
 Create and (re)-throw a given exception. More...
 
void Exception (std::string_view msg="no message", const StatusCode sc=StatusCode::FAILURE) const
 Create and throw an exception with the given message. More...
 
StatEntitycounter (std::string_view tag) const
 accessor to certain counter by name More...
 
StatEntitycounter (std::string_view tag)
 
long printErrors (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of error counters More...
 
long printProps (const MSG::Level level=MSG::ALWAYS) const
 perform the actual printout of properties More...
 
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=nullptr)
 register the current instance to the UpdateManagerSvc as a consumer for a condition. More...
 
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. More...
 
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
 just to avoid conflicts with the version using a pointer to a template class. More...
 
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
 register the current instance to the UpdateManagerSvc as a consumer for a condition. More...
 
StatusCode runUpdate ()
 asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident. More...
 
 GaudiCommon (std::string name, ISvcLocator *pSvcLocator)
 Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined if PBASE derives from Algorithm. More...
 
 GaudiCommon (std::string type, std::string name, const IInterface *ancestor)
 Tool constructor - SFINAE-ed to insure this constructor is only defined if PBASE derives from AlgTool. More...
 
 GaudiCommon ()=delete
 
 GaudiCommon (const GaudiCommon &)=delete
 
StatusCode initialize () override
 standard initialization method More...
 
StatusCode finalize () override
 standard finalization method More...
 
GaudiCommonoperator= (const GaudiCommon &)=delete
 
StatusCode release (const IInterface *interface) const
 Manual forced (and 'safe') release of the active tool or service. More...
 
const Servicesservices () const
 get the list of aquired services More...
 
const std::stringcontext () const
 Returns the "context" string. Used to identify different processing states. More...
 
- Public Member Functions inherited from FixTESPath< AlgTool >
 FixTESPath (std::string name, ISvcLocator *pSvcLocator)
 Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined if BASE derives from Algorithm. More...
 
 FixTESPath (std::string type, std::string name, const IInterface *ancestor)
 Tool constructor - SFINAE-ed to insure this constructor is only defined if BASE derives from AlgTool. More...
 
StatusCode initialize () override
 
const std::stringrootInTES () const
 Returns the "rootInTES" string. More...
 
std::string fullTESLocation (std::string_view location, bool useRootInTES) const
 Returns the full correct event location given the rootInTes settings. More...
 
- Public Member Functions inherited from AlgTool
StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown) override
 Query for a given interface. More...
 
const std::stringname () const override
 Retrieve full identifying name of the concrete tool object. More...
 
const std::stringtype () const override
 Retrieve type (concrete class) of the sub-algtool. More...
 
const IInterfaceparent () const override
 Retrieve parent of the sub-algtool. More...
 
StatusCode configure () override
 
StatusCode initialize () override
 
StatusCode start () override
 
StatusCode stop () override
 
StatusCode finalize () override
 
StatusCode terminate () override
 
StatusCode reinitialize () override
 
StatusCode restart () override
 
Gaudi::StateMachine::State FSMState () const override
 
Gaudi::StateMachine::State targetFSMState () const override
 
StatusCode sysInitialize () override
 Initialize AlgTool. More...
 
StatusCode sysStart () override
 Start AlgTool. More...
 
StatusCode sysStop () override
 Stop AlgTool. More...
 
StatusCode sysFinalize () override
 Finalize AlgTool. More...
 
StatusCode sysReinitialize () override
 Initialize AlgTool. More...
 
StatusCode sysRestart () override
 Start AlgTool. More...
 
 AlgTool (std::string type, std::string name, const IInterface *parent)
 Standard Constructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator. More...
 
ISvcLocatorsvcLoc () const
 shortcut for the method service locator More...
 
IDataProviderSvcevtSvc () const
 accessor to event service service More...
 
IToolSvctoolSvc () const
 The standard ToolSvc service, Return a pointer to the service if present. More...
 
template<class T >
StatusCode service (std::string_view name, T *&svc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (std::string_view type, std::string_view name, T *&svc) const
 Access a service by name, type creating it if it doesn't already exist. More...
 
SmartIF< IServiceservice (std::string_view name, const bool createIf=true, const bool quiet=false) const
 Return a pointer to the service identified by name (or "type/name") More...
 
template<typename T >
SmartIF< T > service (std::string_view name, const bool createIf=true, const bool quiet=false) const
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, bool createIf=true)
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
 
template<class T >
void addToolsArray (ToolHandleArray< T > &hndlArr)
 
void acceptDHVisitor (IDataHandleVisitor *) const override
 
void registerTool (IAlgTool *tool) const
 
void deregisterTool (IAlgTool *tool) const
 
const std::vector< IAlgTool * > & tools () const
 
IAuditorSvcauditorSvc () const
 Access the auditor service. More...
 
IMonitorSvcmonitorSvc () const
 Access the monitor service. More...
 
template<class T >
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
 Declare monitoring information. More...
 
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
 Declare monitoring information (special case) More...
 
 ~AlgTool () override
 
- Public Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
std::vector< Gaudi::DataHandle * > inputHandles () const override
 
std::vector< Gaudi::DataHandle * > outputHandles () const override
 
virtual const DataObjIDCollextraInputDeps () const override
 
virtual const DataObjIDCollextraOutputDeps () const override
 
void declare (Gaudi::DataHandle &handle) override
 
void renounce (Gaudi::DataHandle &handle) override
 
bool renounceInput (const DataObjID &id) override
 
const DataObjIDCollinputDataObjs () const override
 
const DataObjIDColloutputDataObjs () const override
 
void addDependency (const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
 
- Public Member Functions inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
- Public Member Functions inherited from ISequencerTimerTool
 DeclareInterfaceID (ISequencerTimerTool, 3, 0)
 InterfaceID. More...
 
auto scopedTimer (int index, bool enable=true)
 Start timer by index. The timer stops on destruction of returned object. More...
 
virtual StatusCode start ()=0
 Start (from INITIALIZED to RUNNING). More...
 
virtual StatusCode stop ()=0
 Stop (from RUNNING to INITIALIZED). More...
 
- Public Member Functions inherited from IAlgTool
 DeclareInterfaceID (IAlgTool, 4, 0)
 InterfaceID. More...
 
virtual const std::stringtype () const =0
 The type of an AlgTool, meaning the concrete AlgTool class. More...
 
virtual const IInterfaceparent () const =0
 The parent of the concrete AlgTool. More...
 
virtual StatusCode configure ()=0
 Configuration (from OFFLINE to CONFIGURED). More...
 
virtual StatusCode start ()=0
 Start (from INITIALIZED to RUNNING). More...
 
virtual StatusCode stop ()=0
 Stop (from RUNNING to INITIALIZED). More...
 
virtual StatusCode terminate ()=0
 Initialization (from CONFIGURED to OFFLINE). More...
 
virtual StatusCode reinitialize ()=0
 Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED). More...
 
virtual StatusCode restart ()=0
 Initialization (from RUNNING to RUNNING, via INITIALIZED). More...
 
virtual Gaudi::StateMachine::State FSMState () const =0
 Get the current state. More...
 
virtual StatusCode sysInitialize ()=0
 Initialization of the Tool. More...
 
virtual StatusCode sysStart ()=0
 Initialization of the Tool. More...
 
virtual StatusCode sysStop ()=0
 Initialization of the Tool. More...
 
virtual StatusCode sysFinalize ()=0
 Finalization of the Tool. More...
 
virtual StatusCode sysReinitialize ()=0
 Initialization of the Tool. More...
 
virtual StatusCode sysRestart ()=0
 Initialization of the Tool. More...
 
- Public Member Functions inherited from INamedInterface
 DeclareInterfaceID (INamedInterface, 1, 0)
 InterfaceID. More...
 
virtual const std::stringname () const =0
 Retrieve the name of the instance. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Private Attributes

Gaudi::Property< int > m_shots { this, "Shots", 3500000, "number of shots for CPU normalization" }
 
Gaudi::Property< bool > m_normalised { this, "Normalised", false, "normalise the time to a nominal PIII" }
 
Gaudi::Property< bool > m_globalTiming { this, "GlobalTiming", false }
 
Gaudi::Property< std::string::size_type > m_headerSize
 
int m_indent = 0
 Amount of indentation. More...
 
std::vector< TimerForSequencerm_timerList
 
double m_normFactor = 0.001
 Factor to convert to standard CPU (1 GHz PIII) More...
 
double m_speedRatio = 0
 

Additional Inherited Members

- Public Types inherited from GaudiHistos< GaudiTool >
typedef GaudiAlg::HistoID HistoID
 the actual type for histogram identifier More...
 
typedef GaudiAlg::Histo1DMapID Histo1DMapID
 the actual type for (ID)->(1D histogram) mapping More...
 
typedef GaudiAlg::Histo1DMapTitle Histo1DMapTitle
 the actual type for title->(1D histogram) mapping More...
 
typedef GaudiAlg::Histo2DMapID Histo2DMapID
 the actual type for (ID)->(2D histogram) mapping More...
 
typedef GaudiAlg::Histo2DMapTitle Histo2DMapTitle
 the actual type for title->(2D histogram) mapping More...
 
typedef GaudiAlg::Histo3DMapID Histo3DMapID
 the actual type for (ID)->(3D histogram) mapping More...
 
typedef GaudiAlg::Histo3DMapTitle Histo3DMapTitle
 the actual type for title->(3D histogram) mapping More...
 
typedef GaudiAlg::Profile1DMapID Profile1DMapID
 the actual type for (ID)->(1D profile histogram) mapping More...
 
typedef GaudiAlg::Profile1DMapTitle Profile1DMapTitle
 the actual type for title->(1D profile histogram) mapping More...
 
typedef GaudiAlg::Profile2DMapID Profile2DMapID
 the actual type for (ID)->(2D profile histogram) mapping More...
 
typedef GaudiAlg::Profile2DMapTitle Profile2DMapTitle
 the actual type for title->(2D profile histogram) mapping More...
 
typedef GaudiAlg::HistoBinEdges HistoBinEdges
 Edges for variable binning. More...
 
- Public Types inherited from AlgTool
using Factory = Gaudi::PluginService::Factory< IAlgTool *(const std::string &, const std::string &, const IInterface *)>
 
- Public Types inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 
- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 
- Static Public Member Functions inherited from GaudiTool
static bool enableSummary (bool)
 enable/disable summary More...
 
static bool summaryEnabled ()
 is summary enabled? More...
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 
- Protected Types inherited from GaudiCommon< AlgTool >
using base_class = FixTESPath< AlgTool >
 
typedef std::map< std::string, StatEntity, std::less<> > StatisticsOwn
 the actual type of general counters More...
 
typedef std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > Statistics
 
typedef std::map< std::string, unsigned int, std::less<> > Counter
 the actual type error/warning counter More...
 
typedef std::vector< IAlgTool * > AlgTools
 storage for active tools More...
 
typedef std::vector< SmartIF< IService > > Services
 storage for active services More...
 
- Protected Member Functions inherited from GaudiHistos< GaudiTool >
StatusCode initialize () override
 standard initialization method More...
 
StatusCode finalize () override
 standard finalization method More...
 
std::string convertTitleToID (std::string title) const
 Create an ID string from a title string. More...
 
- Protected Member Functions inherited from GaudiCommon< AlgTool >
StatusCode releaseTool (const IAlgTool *tool) const
 manual forced (and 'safe') release of the tool More...
 
StatusCode releaseSvc (const IInterface *svc) const
 manual forced (and 'safe') release of the service More...
 
- Protected Member Functions inherited from AlgTool
template<typename I >
void declareInterface (I *i)
 
std::vector< IAlgTool * > & tools ()
 
- Protected Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
void initDataHandleHolder ()
 initializes all handles - called by the sysInitialize method of any descendant of this More...
 
- Protected Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
- Protected Attributes inherited from GaudiCommon< AlgTool >
SmartIF< ICounterSummarySvcm_counterSummarySvc
 a pointer to the CounterSummarySvc More...
 
Gaudi::Property< bool > m_errorsPrint
 
Gaudi::Property< bool > m_propsPrint
 
Gaudi::Property< bool > m_typePrint
 
Gaudi::Property< std::stringm_context
 
Gaudi::Property< std::vector< std::string > > m_counterList
 
- Protected Attributes inherited from AlgTool
std::unique_ptr< IDataHandleVisitorm_updateDataHandles
 Hook for for derived classes to provide a custom visitor for data handles. More...
 
- Protected Attributes inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
DataObjIDColl m_inputDataObjs
 
DataObjIDColl m_outputDataObjs
 
- Static Protected Attributes inherited from GaudiCommon< AlgTool >
static const bool IgnoreRootInTES
 Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods. More...
 
static const bool UseRootInTES
 Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods. More...
 

Detailed Description

Implements the time measurement inside a sequencer

The width of the timing table column printing the algorithm name is 30 by default. That can be changed via

TimingAuditor().addTool(SequencerTimerTool, name = "TIMER")
TimingAuditor().TIMER.NameSize = 50 
@author Olivier Callot
@date   2004-05-19

Definition at line 35 of file SequencerTimerTool.h.

Constructor & Destructor Documentation

◆ SequencerTimerTool()

SequencerTimerTool::SequencerTimerTool ( const std::string type,
const std::string name,
const IInterface parent 
)

Standard constructor.

Definition at line 36 of file SequencerTimerTool.cpp.

38  declareInterface<ISequencerTimerTool>( this );
39 
40  // Histograms are disabled by default in this tool.
41  setProperty( "HistoProduce", false ).ignore();
42 }

Member Function Documentation

◆ addTimer()

int SequencerTimerTool::addTimer ( const std::string name)
overridevirtual

add a timer entry with the specified name

Implements ISequencerTimerTool.

Definition at line 130 of file SequencerTimerTool.cpp.

130  {
131  std::string myName( 2 * m_indent, ' ' );
132  myName += name;
133  if ( myName.size() < m_headerSize ) { myName += std::string( m_headerSize - myName.size(), ' ' ); }
135  return m_timerList.size() - 1;
136 }

◆ decreaseIndent()

void SequencerTimerTool::decreaseIndent ( )
inlineoverridevirtual

Decrease the indentation of the name.

Implements ISequencerTimerTool.

Definition at line 59 of file SequencerTimerTool.h.

59 { m_indent = std::max( m_indent - 1, 0 ); }

◆ finalize()

StatusCode SequencerTimerTool::finalize ( )
overridevirtual

finalize method, to print the time summary table

Implements IAlgTool.

Definition at line 71 of file SequencerTimerTool.cpp.

71  {
72 
73  if ( !m_timerList.empty() ) {
74  std::string line( m_headerSize + 68, '-' );
75  info() << line << endmsg << "This machine has a speed about " << format( "%6.2f", 1000. * m_speedRatio )
76  << " times the speed of a 2.8 GHz Xeon.";
77  if ( m_normalised ) info() << " *** All times are renormalized ***";
79 
80  std::string lastName;
81  for ( const auto& timr : m_timerList ) {
82  if ( lastName == timr.name() ) continue; // suppress duplicate
83  lastName = timr.name();
84  info() << timr << endmsg;
85  }
86  info() << line << endmsg;
87  }
88  return GaudiHistoTool::finalize();
89 }

◆ globalTiming()

bool SequencerTimerTool::globalTiming ( )
inlineoverridevirtual

returns the flag telling that global timing is wanted

Implements ISequencerTimerTool.

Definition at line 77 of file SequencerTimerTool.h.

77 { return m_globalTiming; };

◆ increaseIndent()

void SequencerTimerTool::increaseIndent ( )
inlineoverridevirtual

Increase the indentation of the name.

Implements ISequencerTimerTool.

Definition at line 56 of file SequencerTimerTool.h.

56 { m_indent += 1; }

◆ indexByName()

int SequencerTimerTool::indexByName ( const std::string name)
overridevirtual

returns the index of the counter with that name, or -1

Implements ISequencerTimerTool.

Definition at line 94 of file SequencerTimerTool.cpp.

94  {
95  auto beg = name.find_first_not_of( " \t" );
96  auto end = name.find_last_not_of( " \t" );
97  auto temp = name.substr( beg, end - beg + 1 );
98  auto i = std::find_if( std::begin( m_timerList ), std::end( m_timerList ), [&]( const TimerForSequencer& timer ) {
99  beg = timer.name().find_first_not_of( " \t" );
100  end = timer.name().find_last_not_of( " \t" );
101  return timer.name().compare( beg, end - beg + 1, temp ) == 0;
102  } );
103  return i != std::end( m_timerList ) ? std::distance( std::begin( m_timerList ), i ) : -1;
104 }

◆ initialize()

StatusCode SequencerTimerTool::initialize ( )
overridevirtual

initialize method, to compute the normalization factor

Implements IAlgTool.

Definition at line 46 of file SequencerTimerTool.cpp.

46  {
48  if ( sc.isFailure() ) return sc;
49  double sum = 0;
50  TimerForSequencer norm( "normalize", m_headerSize, m_normFactor );
51  norm.start();
52  IRndmGenSvc* rsvc = svc<IRndmGenSvc>( "RndmGenSvc", true );
53  { // Use dummy loop suggested by Vanya Belyaev:
55  gauss.initialize( rsvc, Rndm::Gauss( 0., 1.0 ) ).ignore();
56  unsigned int shots = m_shots;
57  while ( 0 < --shots ) { sum += gauss() * sum; }
58  }
59  norm.stop();
60  double time = norm.lastCpu();
61  m_speedRatio = 1. / time;
62  info() << "This machine has a speed about " << format( "%6.2f", 1000. * m_speedRatio )
63  << " times the speed of a 2.8 GHz Xeon." << endmsg;
65  return sc;
66 }

◆ lastTime()

double SequencerTimerTool::lastTime ( int  index)
inlineoverridevirtual

returns the last time

Implements ISequencerTimerTool.

Definition at line 68 of file SequencerTimerTool.h.

68 { return m_timerList[index].lastTime(); }

◆ name() [1/2]

const std::string& SequencerTimerTool::name ( int  index)
inlineoverridevirtual

returns the name of the counter

Implements ISequencerTimerTool.

Definition at line 71 of file SequencerTimerTool.h.

71 { return m_timerList[index].name(); }

◆ name() [2/2]

virtual const std::string& ISequencerTimerTool::name

returns the name of the counter

◆ saveHistograms()

void SequencerTimerTool::saveHistograms ( )
overridevirtual

prepares and saves the timing histograms

Implements ISequencerTimerTool.

Definition at line 109 of file SequencerTimerTool.cpp.

109  {
110  if ( produceHistos() ) {
111  info() << "Saving Timing histograms" << endmsg;
112  const size_t bins = m_timerList.size();
113  AIDA::IHistogram1D* histoTime = book( "ElapsedTime", 0, bins, bins );
114  AIDA::IHistogram1D* histoCPU = book( "CPUTime", 0, bins, bins );
115  AIDA::IHistogram1D* histoCount = book( "Count", 0, bins, bins );
116  TH1D* tHtime = Gaudi::Utils::Aida2ROOT::aida2root( histoTime );
117  TH1D* tHCPU = Gaudi::Utils::Aida2ROOT::aida2root( histoCPU );
118  TH1D* tHCount = Gaudi::Utils::Aida2ROOT::aida2root( histoCount );
119  for ( const auto& tfsq : m_timerList ) {
120  tHtime->Fill( tfsq.name().c_str(), tfsq.elapsedTotal() );
121  tHCPU->Fill( tfsq.name().c_str(), tfsq.cpuTotal() );
122  tHCount->Fill( tfsq.name().c_str(), tfsq.count() );
123  }
124  }
125 }

◆ start() [1/3]

virtual StatusCode IAlgTool::start

Start (from INITIALIZED to RUNNING).

◆ start() [2/3]

void SequencerTimerTool::start ( int  index)
inlineoverridevirtual

start the counter, i.e.

register the current time

Implements ISequencerTimerTool.

Definition at line 62 of file SequencerTimerTool.h.

62 { m_timerList[index].start(); }

◆ start() [3/3]

virtual void ISequencerTimerTool::start

start the counter, i.e.

register the current time

◆ stop() [1/3]

virtual StatusCode IAlgTool::stop

Stop (from RUNNING to INITIALIZED).

◆ stop() [2/3]

double SequencerTimerTool::stop ( int  index)
inlineoverridevirtual

stop the counter, return the elapsed time

Implements ISequencerTimerTool.

Definition at line 65 of file SequencerTimerTool.h.

65 { return m_timerList[index].stop(); }

◆ stop() [3/3]

virtual double ISequencerTimerTool::stop

stop the counter, return the elapsed time

Member Data Documentation

◆ m_globalTiming

Gaudi::Property<bool> SequencerTimerTool::m_globalTiming { this, "GlobalTiming", false }
private

Definition at line 85 of file SequencerTimerTool.h.

◆ m_headerSize

Gaudi::Property<std::string::size_type> SequencerTimerTool::m_headerSize
private
Initial value:
{ this, "NameSize", 30,
"number of characters to be used in algorithm name column" }

Definition at line 86 of file SequencerTimerTool.h.

◆ m_indent

int SequencerTimerTool::m_indent = 0
private

Amount of indentation.

Definition at line 89 of file SequencerTimerTool.h.

◆ m_normalised

Gaudi::Property<bool> SequencerTimerTool::m_normalised { this, "Normalised", false, "normalise the time to a nominal PIII" }
private

Definition at line 84 of file SequencerTimerTool.h.

◆ m_normFactor

double SequencerTimerTool::m_normFactor = 0.001
private

Factor to convert to standard CPU (1 GHz PIII)

Definition at line 91 of file SequencerTimerTool.h.

◆ m_shots

Gaudi::Property<int> SequencerTimerTool::m_shots { this, "Shots", 3500000, "number of shots for CPU normalization" }
private

Definition at line 83 of file SequencerTimerTool.h.

◆ m_speedRatio

double SequencerTimerTool::m_speedRatio = 0
private

Definition at line 92 of file SequencerTimerTool.h.

◆ m_timerList

std::vector<TimerForSequencer> SequencerTimerTool::m_timerList
private

Definition at line 90 of file SequencerTimerTool.h.


The documentation for this class was generated from the following files:
SequencerTimerTool::m_globalTiming
Gaudi::Property< bool > m_globalTiming
Definition: SequencerTimerTool.h:85
TimerForSequencer::name
const std::string & name() const
returns the name
Definition: TimerForSequencer.h:51
std::string
STL class.
std::move
T move(T... args)
std::string::find_last_not_of
T find_last_not_of(T... args)
SequencerTimerTool::m_headerSize
Gaudi::Property< std::string::size_type > m_headerSize
Definition: SequencerTimerTool.h:86
std::find_if
T find_if(T... args)
std::vector::size
T size(T... args)
PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >::setProperty
StatusCode setProperty(const Gaudi::Details::PropertyBase &p)
Set the property from a property.
Definition: IProperty.h:39
GaudiHistoTool::GaudiHistoTool
GaudiHistoTool()=delete
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.
std::distance
T distance(T... args)
GaudiHistos< GaudiTool >::produceHistos
bool produceHistos() const
get the flag for histogram production (property "HistoProduce")
Definition: GaudiHistos.h:2381
std::string::find_first_not_of
T find_first_not_of(T... args)
Gaudi::Utils::Aida2ROOT::aida2root
static TH1D * aida2root(AIDA::IHistogram1D *aida)
get the underlying pointer for 1D-histogram
Definition: Aida2ROOT.cpp:68
SequencerTimerTool::m_indent
int m_indent
Amount of indentation.
Definition: SequencerTimerTool.h:89
StatusCode
Definition: StatusCode.h:65
Rndm::Gauss
Parameters for the Gauss random number generation.
Definition: RndmGenerators.h:32
SequencerTimerTool::m_speedRatio
double m_speedRatio
Definition: SequencerTimerTool.h:92
Rndm::Numbers
Random number accessor This small class encapsulates the use of the random number generator.
Definition: RndmGenerators.h:359
TimerForSequencer
Auxiliary class.
Definition: TimerForSequencer.h:30
IRndmGenSvc
Definition: IRndmGenSvc.h:45
GaudiHistos< GaudiTool >::book
AIDA::IHistogram1D * book(const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
book the 1D histogram
Definition: GaudiHistos.h:1859
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:203
SequencerTimerTool::m_timerList
std::vector< TimerForSequencer > m_timerList
Definition: SequencerTimerTool.h:90
plotSpeedupsPyRoot.time
time
Definition: plotSpeedupsPyRoot.py:180
StatusCode::ignore
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Definition: StatusCode.h:139
IAlgTool::type
virtual const std::string & type() const =0
The type of an AlgTool, meaning the concrete AlgTool class.
std::string::substr
T substr(T... args)
SequencerTimerTool::m_normFactor
double m_normFactor
Factor to convert to standard CPU (1 GHz PIII)
Definition: SequencerTimerTool.h:91
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:129
std::vector::emplace_back
T emplace_back(T... args)
IAlgTool::parent
virtual const IInterface * parent() const =0
The parent of the concrete AlgTool.
Gaudi::Units::gauss
constexpr double gauss
Definition: SystemOfUnits.h:252
std::begin
T begin(T... args)
std::vector::empty
T empty(T... args)
plotSpeedupsPyRoot.line
line
Definition: plotSpeedupsPyRoot.py:198
TimerForSequencer::header
static std::string header(std::string::size_type size)
header matching the previous format
Definition: TimerForSequencer.cpp:70
std::end
T end(T... args)
IOTest.end
end
Definition: IOTest.py:123
GaudiHistos< GaudiTool >::finalize
StatusCode finalize() override
standard finalization method
Definition: GaudiHistos.icpp:128
std::max
T max(T... args)
SequencerTimerTool::m_normalised
Gaudi::Property< bool > m_normalised
Definition: SequencerTimerTool.h:84
GaudiHistos< GaudiTool >::initialize
StatusCode initialize() override
standard initialization method
Definition: GaudiHistos.icpp:91
SequencerTimerTool::m_shots
Gaudi::Property< int > m_shots
Definition: SequencerTimerTool.h:83
Gaudi::ParticleProperties::index
size_t index(const Gaudi::ParticleProperty *property, const Gaudi::Interfaces::IParticlePropertySvc *service)
helper utility for mapping of Gaudi::ParticleProperty object into non-negative integral sequential id...
Definition: IParticlePropertySvc.cpp:39