| The Gaudi Framework v32r1 (f65d50dc)

AlgDecorators.h
Go to the documentation of this file.
1 // ============================================================================
2 #ifndef GAUDIPYTHON_ALGDECORATORS_H
3 #define GAUDIPYTHON_ALGDECORATORS_H 1
4 // ============================================================================
5 // Include files
6 // ============================================================================
7 // STD & STL
8 // ============================================================================
9 #include <string>
10 // ============================================================================
11 // GaudiAlg
12 // ============================================================================
13 #include "GaudiAlg/GaudiAlgorithm.h"
14 // ============================================================================
15 // GaudiPython
16 // ============================================================================
17 #include "GaudiPython/GaudiPython.h"
18 // ============================================================================
19 // forward declarations
20 // ============================================================================
21 class IInterface;
22 class IProperty;
23 class IAlgTool;
24 class IAlgorithm;
25 class GaudiAlgorithm;
26 class GaudiTool;
27 class DataObject;
28 // ============================================================================
36 // ============================================================================
37 namespace GaudiPython {
38 // ==========================================================================
45 class GAUDI_API AlgDecorator {
46 public:
47 // ========================================================================
49 typedef std::vector<Gaudi::Accumulators::PrintableCounter*> Counters;
50 typedef std::vector<IAlgTool*> Tools;
51 typedef std::vector<IService*> Services;
52 // ========================================================================
53 // the general functional methods
54 // ========================================================================
55 public:
64 static IAlgTool* tool_( const GaudiAlgorithm* alg, const std::string& type, const std::string& name,
65 const IInterface* parent = 0, const bool create = true );
73 static IAlgTool* tool_( const GaudiAlgorithm* alg, const std::string& typeAndName, const IInterface* parent = 0,
74 const bool create = true );
81 static IInterface* svc_( const GaudiAlgorithm* alg, const std::string& name, const bool create = false );
82 // ========================================================================
83 // get the data from TES
84 // ========================================================================
85 public:
92 static DataObject* get_( const GaudiAlgorithm* alg, const std::string& location, const bool useRootInTes );
93 // ========================================================================
94 public:
95 // ========================================================================
102 static bool exist( const GaudiAlgorithm* alg, const std::string& location, const bool useRootInTes );
103 // ========================================================================
104 public: // inspection: get all counters:
105 // ========================================================================
106 static size_t _counters_a_( const GaudiAlgorithm* alg, std::vector<std::string>& names, Counters& out );
107 static size_t _counters_t_( const GaudiTool* alg, std::vector<std::string>& names, Counters& out );
108 static size_t _counters_a_( const IAlgorithm* alg, std::vector<std::string>& names, Counters& out );
109 static size_t _counters_t_( const IAlgTool* alg, std::vector<std::string>& names, Counters& out );
110 // ========================================================================
111 public: // inspection: get the counter
112 // ========================================================================
113 static StatEntity* _counter_a_( const GaudiAlgorithm* alg, const std::string& name );
114 static StatEntity* _counter_t_( const GaudiTool* alg, const std::string& name );
115 static StatEntity* _counter_a_( const IAlgorithm* alg, const std::string& name );
116 static StatEntity* _counter_t_( const IAlgTool* alg, const std::string& name );
117 // ========================================================================
118 public: // inspection: get all tools
119 // ========================================================================
120 static size_t _tools_a_( const GaudiAlgorithm*, Tools& tools );
121 static size_t _tools_t_( const GaudiTool*, Tools& tools );
122 static size_t _tools_a_( const IAlgorithm*, Tools& tools );
123 static size_t _tools_t_( const IAlgTool*, Tools& tools );
124 // ========================================================================
125 };
126 // ==========================================================================
127 } // end of namespace GaudiPython
128 // ============================================================================
129 // The END
130 // ============================================================================
131 #endif // GAUDIPYTHON_ALGDECORATORS_H
GaudiPython::AlgDecorator::Services
std::vector< IService * > Services
Definition: AlgDecorators.h:51
GaudiPython::AlgDecorator::Counters
std::vector< Gaudi::Accumulators::PrintableCounter * > Counters
the actual type of vector of counters
Definition: AlgDecorators.h:49
ManySmallAlgs.alg
alg
Definition: ManySmallAlgs.py:69
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
GaudiAlgorithm.h
Header file for class GaudiAlgorithm.
GaudiPython.HistoUtils.location
location
Definition: HistoUtils.py:936
std::string
STL class.
GaudiPython::AlgDecorator::Tools
std::vector< IAlgTool * > Tools
Definition: AlgDecorators.h:50
IInterface
Definition of the basic interface.
Definition: IInterface.h:244
gaudirun.type
type
Definition: gaudirun.py:142
GaudiAlgorithm
The useful base class for data processing algorithms.
Definition: GaudiAlgorithm.h:94
GaudiPython::AlgDecorator
Definition: AlgDecorators.h:45
IAlgorithm
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:28
GaudiPython.h
GaudiPython
GaudiPython.h GaudiPython/GaudiPython.h.
Definition: AlgDecorators.h:37
std::vector
STL class.
IAlgTool
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
GaudiTool
The useful base class for tools.
Definition: GaudiTool.h:101
IProperty
The IProperty is the basic interface for all components which have properties that can be set or get.
Definition: IProperty.h:20
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30