Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:15:12

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_ISTATSVC_H
0012 #define GAUDIKERNEL_ISTATSVC_H 1
0013 // ============================================================================
0014 // Include files
0015 // ============================================================================
0016 // STD&STL
0017 // ============================================================================
0018 #include <string>
0019 // ============================================================================
0020 // GaudiKernel
0021 // ============================================================================
0022 #include <GaudiKernel/IInterface.h>
0023 // ============================================================================
0024 // forward declaration
0025 // ============================================================================
0026 class StatEntity;
0027 // ============================================================================
0028 /** @class IStatSvc IStatSvc.h GaudiKernel/IStatSvc.h
0029  *  "Stat"-related part of interface IChronoStatSvc
0030  *
0031  *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
0032  *  @date December 1, 1999
0033  *  @date   2007-07-08
0034  */
0035 class GAUDI_API IStatSvc : virtual public IInterface {
0036 public:
0037   /// InterfaceID
0038   DeclareInterfaceID( IStatSvc, 2, 0 );
0039   /// the actual identificator of Stat
0040   typedef std::string StatTag;
0041   /// the actual value type used for Stat
0042   typedef double StatFlag;
0043 
0044 public:
0045   /** add statistical information to the entity , tagged by its name
0046    *   @param t stat tag(name)
0047    *   @param f flag (quantity to be accumulated)
0048    *   @return status of stat
0049    */
0050   virtual void stat( const StatTag& t, const StatFlag& f ) = 0;
0051   /** prints (using message service)  info about statistical entity, tagged by its name
0052    *  @param t stat tag(name)
0053    *  @return status code
0054    */
0055   virtual void statPrint( const StatTag& t ) = 0;
0056   /** extract the stat   entity for the given tag (name)
0057    *  @param t stat   tag(name)
0058    *  @return pointer to stat   entity
0059    */
0060   virtual StatEntity* stat( const StatTag& t ) = 0;
0061 };
0062 // ============================================================================
0063 // The END
0064 // ============================================================================
0065 #endif // GAUDIKERNEL_ISTATSVC_H