The Gaudi Framework  v30r3 (a5ef0a68)
ITHistSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ITHISTSVC_H
2 #define GAUDIKERNEL_ITHISTSVC_H
3 
4 #include <memory>
5 #include <string>
6 #include <vector>
7 
8 #ifndef GAUDIKERNEL_ISERVICE_H
9 #include "GaudiKernel/IService.h"
10 #endif
11 
13 
14 class TObject;
15 class TH1;
16 class TH2;
17 class TH3;
18 class TTree;
19 class TList;
20 class TDirectory;
21 class TGraph;
22 
23 class GAUDI_API ITHistSvc : virtual public IService
24 {
25 public:
28 
31 
33  virtual StatusCode regHist( const std::string& name ) = 0;
37  virtual StatusCode regHist( const std::string& name, std::unique_ptr<TH1> hist ) = 0;
42  virtual StatusCode regHist( const std::string& name, std::unique_ptr<TH1> hist, TH1* hist_ptr ) = 0;
45  virtual StatusCode regHist( const std::string& name, TH1* ) = 0;
47  virtual StatusCode getHist( const std::string& name, TH1*&, size_t index = 0 ) const = 0;
49  virtual StatusCode getHist( const std::string& name, TH2*&, size_t index = 0 ) const = 0;
51  virtual StatusCode getHist( const std::string& name, TH3*&, size_t index = 0 ) const = 0;
52 
54 
57 
59  virtual StatusCode regTree( const std::string& name ) = 0;
61  virtual StatusCode regTree( const std::string& name, std::unique_ptr<TTree> ) = 0;
64  virtual StatusCode regTree( const std::string& name, TTree* ) = 0;
66  virtual StatusCode getTree( const std::string& name, TTree*& ) const = 0;
67 
69 
72 
74  virtual StatusCode regGraph( const std::string& name ) = 0;
76  virtual StatusCode regGraph( const std::string& name, std::unique_ptr<TGraph> ) = 0;
79  virtual StatusCode regGraph( const std::string& name, TGraph* ) = 0;
81  virtual StatusCode getGraph( const std::string& name, TGraph*& ) const = 0;
82 
84 
87 
89  virtual StatusCode regShared( const std::string& name, std::unique_ptr<TH1>, LockedHandle<TH1>& ) = 0;
91  virtual StatusCode regShared( const std::string& name, std::unique_ptr<TH2>, LockedHandle<TH2>& ) = 0;
93  virtual StatusCode regShared( const std::string& name, std::unique_ptr<TH3>, LockedHandle<TH3>& ) = 0;
95  virtual StatusCode regShared( const std::string& name, std::unique_ptr<TGraph>, LockedHandle<TGraph>& ) = 0;
97  virtual StatusCode getShared( const std::string& name, LockedHandle<TH1>& ) const = 0;
99  virtual StatusCode getShared( const std::string& name, LockedHandle<TH2>& ) const = 0;
101  virtual StatusCode getShared( const std::string& name, LockedHandle<TH3>& ) const = 0;
103  virtual StatusCode getShared( const std::string& name, LockedHandle<TGraph>& ) const = 0;
104 
106 
109 
111  virtual StatusCode deReg( const std::string& name ) = 0;
113  virtual StatusCode deReg( TObject* obj ) = 0;
114 
116  virtual StatusCode merge( const std::string& id ) = 0;
118  virtual StatusCode merge( TObject* ) = 0;
119 
121  virtual bool exists( const std::string& name ) const = 0;
122 
124 
127 
128  virtual std::vector<std::string> getHists() const = 0;
129  virtual std::vector<std::string> getTrees() const = 0;
130  virtual std::vector<std::string> getGraphs() const = 0;
131 
132  virtual StatusCode getTHists( TDirectory* td, TList&, bool recurse = false ) const = 0;
133  virtual StatusCode getTHists( const std::string& name, TList&, bool recurse = false ) const = 0;
134  virtual StatusCode getTHists( TDirectory* td, TList&, bool recurse = false, bool reg = false ) = 0;
135  virtual StatusCode getTHists( const std::string& name, TList&, bool recurse = false, bool reg = false ) = 0;
136 
137  virtual StatusCode getTTrees( TDirectory* td, TList&, bool recurse = false ) const = 0;
138  virtual StatusCode getTTrees( const std::string& name, TList&, bool recurse = false ) const = 0;
139  virtual StatusCode getTTrees( TDirectory* td, TList&, bool recurse = false, bool reg = false ) = 0;
140  virtual StatusCode getTTrees( const std::string& name, TList&, bool recurse = false, bool reg = false ) = 0;
141 
143 
145  virtual ~ITHistSvc() = default;
146 };
147 
148 #endif // GAUDIKERNEL_ITHISTSVC_H
STL class.
General service interface definition.
Definition: IService.h:18
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:51
Provides automatic lock/unlock access to a class upon deref of ptr.
Definition: LockedHandle.h:28
STL class.
DeclareInterfaceID(IService, 4, 0)
InterfaceID.
#define GAUDI_API
Definition: Kernel.h:104