1 #ifndef GAUDISVC_THISTSVC_H
2 #define GAUDISVC_THISTSVC_H
4 #include "GaudiKernel/Service.h"
5 #include "GaudiKernel/ITHistSvc.h"
6 #include "GaudiKernel/IFileMgr.h"
7 #include "GaudiKernel/IIncidentListener.h"
8 #include "GaudiKernel/IIoComponent.h"
9 #include "GaudiKernel/MsgStream.h"
55 std::vector<std::string>
getHists()
const override;
56 std::vector<std::string>
getTrees()
const override;
57 std::vector<std::string>
getGraphs()
const override;
60 bool recurse=
false)
const override;
62 bool recurse=
false)
const override;
65 bool recurse=
false,
bool reg=
false)
override;
67 bool recurse=
false,
bool reg=
false)
override;
70 bool recurse=
false)
const override;
72 bool recurse=
false)
const override;
75 bool recurse=
false,
bool reg=
false)
override;
77 bool recurse=
false,
bool reg=
false)
override;
79 bool exists(
const std::string& name)
const override;
123 obj(rhs.obj), file(rhs.file), mode(rhs.mode) {}
124 THistID(std::string&
i,
bool& t, TObject* o, TFile* f)
125 : id(i), temp(t), obj(o), file(f), mode(
INVALID){
128 : id(i), temp(t), obj(o), file(f), mode(m){
132 return (obj < rhs.
obj);
137 template <
typename T>
139 template <
typename T>
141 template <
typename T>
154 std::string
dirname(std::string& dir)
const;
160 std::string& rem, TFile*&
file)
const;
161 void parseString(
const std::string&
id, std::string&
root, std::string& rem)
194 typedef std::map<std::string, THistID>
uidMap;
195 typedef std::multimap<std::string, THistID>
idMap;
196 typedef std::map<TObject*, THistID>
objMap;
197 typedef std::multimap<std::string, std::string>
streamMap;
203 std::map<std::string, std::pair<TFile*,Mode> >
m_files;
221 #ifndef GAUDISVC_THISTSVC_ICC
#define FILEMGR_CALLBACK_ARGS
Definition of the MsgStream class used to transmit messages.
std::vector< std::string > getTrees() const override
StatusCode initialize() override
THistID(std::string &i, bool &t, TObject *o, TFile *f, Mode m)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
THistID(const THistID &rhs)
IntegerProperty m_autoFlush
IntegerProperty m_autoSave
bool findStream(const std::string &name, std::string &root, std::string &rem, TFile *&file) const
bool browseTDir(TDirectory *dir) const
StatusCode getTTrees(TDirectory *td, TList &, bool recurse=false) const override
StatusCode getGraph(const std::string &name, TGraph *&) const override
void setupCompressionLevel(Property &cmp)
StatusCode rootOpenAction(FILEMGR_CALLBACK_ARGS)
void copyFileLayout(TDirectory *, TDirectory *)
helper function to recursively copy the layout of a TFile into a new TFile
TDirectory * changeDir(const THistSvc::THistID &hid) const
std::multimap< std::string, THistID > idMap
StatusCode getTHists(TDirectory *td, TList &, bool recurse=false) const override
std::vector< std::string > m_Wstream
StringArrayProperty m_inputfile
StringArrayProperty m_outputfile
~THistSvc() override=default
void setupOutputFile(Property &outputfile)
call-back method to handle output stream property
std::string dirname(std::string &dir) const
StatusCode readTree(const std::string &name, TTree *&) const
StatusCode getTree(const std::string &name, TTree *&) const override
std::vector< std::string > m_Rstream
This class is used for returning status codes from appropriate routines.
std::map< std::string, std::pair< TFile *, Mode > > m_files
void handle(const Incident &) override
IntegerProperty m_maxFileSize
std::vector< std::string > getHists() const override
std::multimap< std::string, std::string > streamMap
~GlobalDirectoryRestore()
StatusCode rootOpenErrAction(FILEMGR_CALLBACK_ARGS)
void parseString(const std::string &id, std::string &root, std::string &rem) const
StatusCode getHist_i(const std::string &name, T *&hist, bool quiet=false) const
THistID(std::string &i, bool &t, TObject *o, TFile *f)
StatusCode finalize() override
IntegerProperty m_compressionLevel
bool operator<(THistID const &rhs) const
StatusCode regHist(const std::string &name) override
std::map< std::string, std::string > m_sharedFiles
Property base class allowing Property* collections to be "homogeneous".
StatusCode reinitialize() override
StatusCode regHist_i(T *hist, const std::string &name)
Base class used to extend a class implementing other interfaces.
StatusCode readHist_i(const std::string &name, T *&hist) const
Base class for all Incidents (computing events).
std::map< TObject *, THistID > objMap
StatusCode connect(const std::string &)
StatusCode readHist(const std::string &name, TH1 *&) const
std::set< std::string > m_alreadyConnectedOutFiles
list of already connected files.
StatusCode deReg(TObject *obj) override
StatusCode regTree(const std::string &name) override
bool exists(const std::string &name) const override
std::map< std::string, THistID > uidMap
std::set< std::string > m_alreadyConnectedInFiles
list of already connected files.
StatusCode regGraph(const std::string &name) override
THistSvc(const std::string &name, ISvcLocator *svc)
void setupInputFile(Property &inputfile)
call-back method to handle input stream property
StatusCode io_reinit() override
callback method to reinitialize the internal state of the component for I/O purposes (e...
StatusCode getHist(const std::string &name, TH1 *&) const override
The interface implemented by the IncidentSvc service.
void MergeRootFile(TDirectory *target, TDirectory *source)
void removeDoubleSlash(std::string &) const
std::vector< std::string > getGraphs() const override