Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
G4Hdf5FileManager Class Reference

#include <G4Hdf5FileManager.hh>

Inheritance diagram for G4Hdf5FileManager:
G4VTFileManager< G4Hdf5File > G4VFileManager G4TFileManager< G4Hdf5File > G4BaseFileManager

Public Member Functions

void AddFileName (const G4String &fileName)
 
virtual void Clear () final
 
void ClearData ()
 
virtual G4bool CloseFile (const G4String &fileName) final
 
virtual G4bool CloseFile (const G4String &fileName)=0
 
virtual G4bool CloseFiles () final
 
G4bool CloseNtupleFile (Hdf5NtupleDescription *ntupleDescription)
 
G4bool CloseTFile (const G4String &fileName)
 
virtual G4bool CreateFile (const G4String &fileName) final
 
G4bool CreateNtupleFile (Hdf5NtupleDescription *ntupleDescription)
 
std::shared_ptr< G4Hdf5FileCreateTFile (const G4String &fileName)
 
virtual G4bool DeleteEmptyFiles () final
 
 G4Hdf5FileManager ()=delete
 
 G4Hdf5FileManager (const G4AnalysisManagerState &state)
 
unsigned int GetBasketSize () const
 
std::shared_ptr< G4Hdf5FileGetFile () const
 
G4String GetFileName () const
 
const std::vector< G4String > & GetFileNames () const
 
virtual G4String GetFileType () const final
 
G4String GetFullFileName (const G4String &baseFileName="", G4bool isPerThread=true) const
 
hid_t GetHistoDirectory () const
 
G4String GetHistoDirectoryName () const
 
template<typename HT >
std::shared_ptr< G4VTHnFileManager< HT > > GetHnFileManager () const
 
G4String GetHnFileName (const G4String &hnType, const G4String &hnName) const
 
hid_t GetNtupleDirectory () const
 
G4String GetNtupleDirectoryName () const
 
G4String GetNtupleFileName (const G4String &ntupleName) const
 
G4String GetNtupleFileName (G4int ntupleFileNumber) const
 
G4String GetPlotFileName () const
 
std::shared_ptr< G4Hdf5FileGetTFile (const G4String &fileName, G4bool warn=true) const
 
G4bool IsOpenFile () const
 
void LockDirectoryNames ()
 
virtual G4bool OpenFile (const G4String &fileName) final
 
G4bool OpenFiles ()
 
void SetBasketSize (unsigned int basketSize)
 
virtual G4bool SetFileName (const G4String &fileName) final
 
virtual G4bool SetHistoDirectoryName (const G4String &dirName)
 
virtual G4bool SetIsEmpty (const G4String &fileName, G4bool isEmpty) final
 
virtual G4bool SetNtupleDirectoryName (const G4String &dirName)
 
void UnlockDirectoryNames ()
 
virtual G4bool WriteFile (const G4String &fileName) final
 
virtual G4bool WriteFile (const G4String &fileName)=0
 
virtual G4bool WriteFiles () final
 
G4bool WriteTFile (const G4String &fileName)
 
 ~G4Hdf5FileManager ()=default
 

Protected Member Functions

virtual G4bool CloseFileImpl (std::shared_ptr< G4Hdf5File > file) final
 
virtual std::shared_ptr< G4Hdf5FileCreateFileImpl (const G4String &fileName) final
 
void Message (G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
 
virtual G4bool WriteFileImpl (std::shared_ptr< G4Hdf5File > file) final
 

Protected Attributes

std::shared_ptr< G4Hdf5FilefFile
 
G4String fFileName
 
std::vector< G4StringfFileNames
 
std::shared_ptr< G4VTHnFileManager< tools::histo::h1d > > fH1FileManager { nullptr }
 
std::shared_ptr< G4VTHnFileManager< tools::histo::h2d > > fH2FileManager { nullptr }
 
std::shared_ptr< G4VTHnFileManager< tools::histo::h3d > > fH3FileManager { nullptr }
 
G4String fHistoDirectoryName
 
G4bool fIsOpenFile { false }
 
G4bool fLockDirectoryNames { false }
 
G4String fNtupleDirectoryName
 
std::shared_ptr< G4VTHnFileManager< tools::histo::p1d > > fP1FileManager { nullptr }
 
std::shared_ptr< G4VTHnFileManager< tools::histo::p2d > > fP2FileManager { nullptr }
 
const G4AnalysisManagerStatefState
 

Private Member Functions

G4bool CloseTFile (std::shared_ptr< G4Hdf5File > file, const G4String &fileName)
 
hid_t CreateDirectory (hid_t &file, const G4String &directoryName, const G4String &objectType)
 
G4bool DeleteEmptyFile (const G4String &fileName)
 
void FileNotFoundWarning (const G4String &fileName, std::string_view functionName) const
 
G4TFileInformation< G4Hdf5File > * GetFileInfoInFunction (const G4String &fileName, std::string_view functionName, G4bool warn=true) const
 
std::shared_ptr< G4Hdf5FileGetFileInFunction (const G4String &fileName, std::string_view functionName, G4bool warn=true) const
 
G4String GetNtupleFileName (Hdf5NtupleDescription *ntupleDescription)
 
G4bool WriteTFile (std::shared_ptr< G4Hdf5File > file, const G4String &fileName)
 

Private Attributes

const G4AnalysisManagerStatefAMState
 
unsigned int fBasketSize { G4Analysis::kDefaultBasketSize }
 
std::map< G4String, G4TFileInformation< G4Hdf5File > * > fFileMap
 

Static Private Attributes

static const G4String fgkDefaultDirectoryName { "default" }
 
static constexpr std::string_view fkClass { "G4Hdf5FileManager" }
 

Detailed Description

Definition at line 47 of file G4Hdf5FileManager.hh.

Constructor & Destructor Documentation

◆ G4Hdf5FileManager() [1/2]

G4Hdf5FileManager::G4Hdf5FileManager ( const G4AnalysisManagerState state)
explicit

Definition at line 48 of file G4Hdf5FileManager.cc.

50{
51 // Create helpers defined in the base class
52 fH1FileManager = std::make_shared<G4Hdf5HnFileManager<histo::h1d>>(this);
53 fH2FileManager = std::make_shared<G4Hdf5HnFileManager<histo::h2d>>(this);
54 fH3FileManager = std::make_shared<G4Hdf5HnFileManager<histo::h3d>>(this);
55 fP1FileManager = std::make_shared<G4Hdf5HnFileManager<histo::p1d>>(this);
56 fP2FileManager = std::make_shared<G4Hdf5HnFileManager<histo::p2d>>(this);
57}
std::shared_ptr< G4VTHnFileManager< tools::histo::h3d > > fH3FileManager
std::shared_ptr< G4VTHnFileManager< tools::histo::h1d > > fH1FileManager
std::shared_ptr< G4VTHnFileManager< tools::histo::p1d > > fP1FileManager
std::shared_ptr< G4VTHnFileManager< tools::histo::p2d > > fP2FileManager
std::shared_ptr< G4VTHnFileManager< tools::histo::h2d > > fH2FileManager

References G4VFileManager::fH1FileManager, G4VFileManager::fH2FileManager, G4VFileManager::fH3FileManager, G4VFileManager::fP1FileManager, and G4VFileManager::fP2FileManager.

◆ G4Hdf5FileManager() [2/2]

G4Hdf5FileManager::G4Hdf5FileManager ( )
delete

◆ ~G4Hdf5FileManager()

G4Hdf5FileManager::~G4Hdf5FileManager ( )
default

Member Function Documentation

◆ AddFileName()

void G4BaseFileManager::AddFileName ( const G4String fileName)
inherited

Definition at line 44 of file G4BaseFileManager.cc.

45{
46 // G4cout << "registering " << fileName << " in manager of " << GetFileType() << G4endl;
47
48 // Do nothing in file name is already present
49 for ( const auto& name : fFileNames ) {
50 if ( name == fileName ) return;
51 }
52
53 fFileNames.push_back(fileName);
54}
std::vector< G4String > fFileNames
const char * name(G4int ptype)

References G4BaseFileManager::fFileNames, and G4InuclParticleNames::name().

◆ Clear()

void G4VTFileManager< G4Hdf5File >::Clear
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 65 of file G4VTFileManager.hh.

◆ ClearData()

void G4TFileManager< G4Hdf5File >::ClearData ( )
inherited

◆ CloseFile() [1/2]

G4bool G4VTFileManager< G4Hdf5File >::CloseFile ( const G4String fileName)
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 56 of file G4VTFileManager.hh.

96{
97 return G4TFileManager<FT>::CloseTFile(fileName);
98}
G4bool CloseTFile(const G4String &fileName)

◆ CloseFile() [2/2]

virtual G4bool G4VFileManager::CloseFile ( const G4String fileName)
virtualinherited

Implements G4VFileManager.

◆ CloseFileImpl()

G4bool G4Hdf5FileManager::CloseFileImpl ( std::shared_ptr< G4Hdf5File file)
finalprotectedvirtual

Implements G4TFileManager< G4Hdf5File >.

Definition at line 175 of file G4Hdf5FileManager.cc.

176{
177 if ( ! file ) return false;
178
180
181 ::H5Gclose(std::get<1>(*file));
182 ::H5Gclose(std::get<2>(*file));
183 ::H5Fclose(std::get<0>(*file));
184
185 lock.unlock();
186
187 return true;
188}

References anonymous_namespace{G4Hdf5FileManager.cc}::closeFileMutex, geant4_check_module_cycles::file, and G4TemplateAutoLock< _Mutex_t >::unlock().

◆ CloseFiles()

G4bool G4VTFileManager< G4Hdf5File >::CloseFiles
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 61 of file G4VTFileManager.hh.

120{
121 auto result = G4TFileManager<FT>::CloseFiles();
122
123 fIsOpenFile = false;
124 fFile.reset();
125
126 return result;
127}
G4bool CloseFiles()
std::shared_ptr< G4Hdf5File > fFile

◆ CloseNtupleFile()

G4bool G4Hdf5FileManager::CloseNtupleFile ( Hdf5NtupleDescription ntupleDescription)

Definition at line 236 of file G4Hdf5FileManager.cc.

238{
239 // Do nothing if there is no file
240 if ( ntupleDescription->fFile == nullptr ) return true;
241
242 // Ntuple files will be closed with CloseFiles() calls
243 ntupleDescription->fFile.reset();
244
245 // Notify not empty file
246 auto ntupleFileName = GetNtupleFileName(ntupleDescription);
247 auto result = SetIsEmpty(ntupleFileName, ! ntupleDescription->fHasFill);
248
249 return result;
250}
G4String GetNtupleFileName(Hdf5NtupleDescription *ntupleDescription)
virtual G4bool SetIsEmpty(const G4String &fileName, G4bool isEmpty) final
std::shared_ptr< FT > fFile

References G4TNtupleDescription< NT, FT >::fFile, G4TNtupleDescription< NT, FT >::fHasFill, GetNtupleFileName(), and G4VTFileManager< G4Hdf5File >::SetIsEmpty().

◆ CloseTFile() [1/2]

G4bool G4TFileManager< G4Hdf5File >::CloseTFile ( const G4String fileName)
inherited

◆ CloseTFile() [2/2]

G4bool G4TFileManager< G4Hdf5File >::CloseTFile ( std::shared_ptr< G4Hdf5File file,
const G4String fileName 
)
privateinherited

◆ CreateDirectory()

hid_t G4Hdf5FileManager::CreateDirectory ( hid_t &  file,
const G4String directoryName,
const G4String objectType 
)
private

Definition at line 64 of file G4Hdf5FileManager.cc.

66{
67// Method for both histograms and ntuples directories.
68
69 // return if no file provided
70 if ( file < 0 ) return false;
71
72 // use default directory name if not provided
73 auto newDirectoryName = directoryName;
74 if ( newDirectoryName == "" ) {
75 newDirectoryName = fgkDefaultDirectoryName;
76 newDirectoryName += "_";
77 newDirectoryName += objectType;
78 }
79
80 Message(kVL4, "create", "directory for " + objectType, newDirectoryName);
81
82 auto success = true;
83
84 // create directory
85 auto directory = tools_H5Gcreate(file, newDirectoryName, 0);
86 // 0 seems to be an optional parameter. The web doc does not say what should
87 // be the default value but 0 is what is found in examples, and in the code, if we pass 0, clearly some
88 // default value is taken.
89 if ( directory < 0 ) {
90 Warn("Cannot create directory " + directoryName,
91 fkClass, "CreateDirectory");
92 success = false;
93 }
94 else {
95 // write atb (header?)
96 auto result = hdf5::write_atb(directory, "type", "directory");
97 if ( !result) {
98 Warn("Write_atb class failed for " + directoryName,
99 fkClass, "CreateDirectory");
100 success = false;
101 }
102 }
103
104 Message(kVL2, "create", "directory for " + objectType, newDirectoryName, success);
105
106 return directory;
107}
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
static constexpr std::string_view fkClass
static const G4String fgkDefaultDirectoryName
constexpr G4int kVL2
constexpr G4int kVL4
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)

References fgkDefaultDirectoryName, geant4_check_module_cycles::file, fkClass, G4Analysis::kVL2, G4Analysis::kVL4, G4BaseFileManager::Message(), and G4Analysis::Warn().

Referenced by CreateFileImpl().

◆ CreateFile()

G4bool G4VTFileManager< G4Hdf5File >::CreateFile ( const G4String fileName)
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 54 of file G4VTFileManager.hh.

80{
81 return (G4TFileManager<FT>::CreateTFile(fileName) != nullptr);
82}

◆ CreateFileImpl()

std::shared_ptr< G4Hdf5File > G4Hdf5FileManager::CreateFileImpl ( const G4String fileName)
finalprotectedvirtual

Implements G4TFileManager< G4Hdf5File >.

Definition at line 129 of file G4Hdf5FileManager.cc.

130{
131 // create a new file
132 hid_t file = ::H5Fcreate(fileName, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
133
134 // Do nothing if there is no file
135 // (the error should be handled by caller)
136 if ( file < 0 ) {
137 Warn("::H5Fcreate failed " + fileName, fkClass, "CreateFileImpl");
138 return std::make_shared<G4Hdf5File>(-1, -1, -1);
139 }
140
141 // create a header with general infos
142 if(!tools::hdf5::write_header(file)) {
143 Warn("tools::hdf5::write_header() failed for " + fileName,
144 fkClass, "CreateFileImpl");
145 return std::make_shared<G4Hdf5File>(-1, -1, -1);
146 }
147
148 // create histo directory
149 auto hdirectory
150 = CreateDirectory(file, fHistoDirectoryName, "histograms");
151 if ( hdirectory < 0 ) {
152 // Warning is issued in CreateDirectory
153 return std::make_shared<G4Hdf5File>(-1, -1, -1);
154 }
155
156 // create ntuple directory
157 auto ndirectory
159 if ( ndirectory < 0 ) {
160 // Warnin is issued in CreateDirectory
161 return std::make_shared<G4Hdf5File>(-1, -1, -1);
162 }
163
164 return std::make_shared<G4Hdf5File>(file, hdirectory, ndirectory);
165}
hid_t CreateDirectory(hid_t &file, const G4String &directoryName, const G4String &objectType)
G4String fNtupleDirectoryName
G4String fHistoDirectoryName

References CreateDirectory(), G4VFileManager::fHistoDirectoryName, geant4_check_module_cycles::file, fkClass, G4VFileManager::fNtupleDirectoryName, and G4Analysis::Warn().

◆ CreateNtupleFile()

G4bool G4Hdf5FileManager::CreateNtupleFile ( Hdf5NtupleDescription ntupleDescription)

Definition at line 220 of file G4Hdf5FileManager.cc.

222{
223 // get ntuple file name per object
224 auto ntupleFileName = GetNtupleFileName(ntupleDescription);
225
226 auto file = GetTFile(ntupleFileName, false);
227 if (! file) {
228 file = CreateTFile(ntupleFileName);
229 }
230 ntupleDescription->fFile = file;
231
232 return (ntupleDescription->fFile != nullptr);
233}
std::shared_ptr< G4Hdf5File > GetTFile(const G4String &fileName, G4bool warn=true) const
std::shared_ptr< G4Hdf5File > CreateTFile(const G4String &fileName)

References G4TFileManager< G4Hdf5File >::CreateTFile(), G4TNtupleDescription< NT, FT >::fFile, geant4_check_module_cycles::file, GetNtupleFileName(), and G4TFileManager< G4Hdf5File >::GetTFile().

◆ CreateTFile()

std::shared_ptr< G4Hdf5File > G4TFileManager< G4Hdf5File >::CreateTFile ( const G4String fileName)
inherited

◆ DeleteEmptyFile()

G4bool G4TFileManager< G4Hdf5File >::DeleteEmptyFile ( const G4String fileName)
privateinherited

◆ DeleteEmptyFiles()

G4bool G4VTFileManager< G4Hdf5File >::DeleteEmptyFiles
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 62 of file G4VTFileManager.hh.

133{
135}
G4bool DeleteEmptyFiles()

◆ FileNotFoundWarning()

void G4TFileManager< G4Hdf5File >::FileNotFoundWarning ( const G4String fileName,
std::string_view  functionName 
) const
privateinherited

◆ GetBasketSize()

unsigned int G4Hdf5FileManager::GetBasketSize ( ) const
inline

Definition at line 101 of file G4Hdf5FileManager.hh.

102{ return fBasketSize; }
unsigned int fBasketSize

References fBasketSize.

◆ GetFile()

std::shared_ptr< G4Hdf5File > G4VTFileManager< G4Hdf5File >::GetFile
inlineinherited

Definition at line 68 of file G4VTFileManager.hh.

149{
150 return fFile;
151}

◆ GetFileInfoInFunction()

G4TFileInformation< G4Hdf5File > * G4TFileManager< G4Hdf5File >::GetFileInfoInFunction ( const G4String fileName,
std::string_view  functionName,
G4bool  warn = true 
) const
privateinherited

◆ GetFileInFunction()

std::shared_ptr< G4Hdf5File > G4TFileManager< G4Hdf5File >::GetFileInFunction ( const G4String fileName,
std::string_view  functionName,
G4bool  warn = true 
) const
privateinherited

◆ GetFileName()

G4String G4BaseFileManager::GetFileName ( ) const
inlineinherited

Definition at line 105 of file G4BaseFileManager.hh.

105 {
106 return fFileName;
107}

References G4BaseFileManager::fFileName.

◆ GetFileNames()

const std::vector< G4String > & G4BaseFileManager::GetFileNames ( ) const
inlineinherited

Definition at line 109 of file G4BaseFileManager.hh.

109 {
110 return fFileNames;
111}

References G4BaseFileManager::fFileNames.

Referenced by G4GenericFileManager::OpenFiles().

◆ GetFileType()

virtual G4String G4Hdf5FileManager::GetFileType ( ) const
inlinefinalvirtual

Reimplemented from G4BaseFileManager.

Definition at line 61 of file G4Hdf5FileManager.hh.

61{ return "hdf5"; }

Referenced by GetNtupleFileName().

◆ GetFullFileName()

G4String G4BaseFileManager::GetFullFileName ( const G4String baseFileName = "",
G4bool  isPerThread = true 
) const
inherited

Definition at line 63 of file G4BaseFileManager.cc.

65{
66 G4String fileName(baseFileName);
67 if ( fileName == "" ) fileName = fFileName;
68
69 // Take out file extension
70 auto name = G4Analysis::GetBaseName(fileName);
71
72 // Add thread Id to a file name if MT processing
73 if ( isPerThread && ! fState.GetIsMaster() ) {
74 std::ostringstream os;
76 name.append("_t");
77 name.append(os.str());
78 }
79
80 // Add (back if it was present or is defined) file extension
81 auto extension = G4Analysis::GetExtension(fileName, GetFileType());
82 if ( extension.size() ) {
83 name.append(".");
84 name.append(extension);
85 }
86
87 return name;
88}
virtual G4String GetFileType() const
const G4AnalysisManagerState & fState
G4String GetExtension(const G4String &fileName, const G4String &defaultExtension="")
G4String GetBaseName(const G4String &fileName)
G4int G4GetThreadId()
Definition: G4Threading.cc:122

References G4BaseFileManager::fFileName, G4Analysis::GetBaseName(), and G4InuclParticleNames::name().

Referenced by GetNtupleFileName(), G4RootFileManager::GetNtupleFileName(), G4XmlRFileManager::GetRFile(), G4Hdf5RFileManager::GetRFile(), G4RootRFileManager::GetRFile(), OpenFile(), G4RootFileManager::OpenFile(), G4XmlFileManager::OpenFile(), G4XmlRFileManager::OpenRFile(), G4Hdf5RFileManager::OpenRFile(), and G4RootRFileManager::OpenRFile().

◆ GetHistoDirectory()

hid_t G4Hdf5FileManager::GetHistoDirectory ( ) const

Definition at line 253 of file G4Hdf5FileManager.cc.

254{
255 if ( ! fFile ) return kInvalidId;
256
257 return std::get<1>(*fFile);
258}
constexpr G4int kInvalidId

References G4VTFileManager< G4Hdf5File >::fFile, and G4Analysis::kInvalidId.

◆ GetHistoDirectoryName()

G4String G4VFileManager::GetHistoDirectoryName ( ) const
inlineinherited

◆ GetHnFileManager()

template<typename HT >
std::shared_ptr< G4VTHnFileManager< HT > > G4VFileManager::GetHnFileManager ( ) const
inherited

◆ GetHnFileName()

G4String G4BaseFileManager::GetHnFileName ( const G4String hnType,
const G4String hnName 
) const
inherited

Definition at line 91 of file G4BaseFileManager.cc.

93{
94 return G4Analysis::GetHnFileName(fFileName, GetFileType(), hnType, hnName);
95}
G4String GetHnFileName(const G4String &fileName, const G4String &fileType, const G4String &hnType, const G4String &hnName)

References G4BaseFileManager::fFileName, G4BaseFileManager::GetFileType(), and G4Analysis::GetHnFileName().

◆ GetNtupleDirectory()

hid_t G4Hdf5FileManager::GetNtupleDirectory ( ) const

Definition at line 261 of file G4Hdf5FileManager.cc.

262{
263 if ( ! fFile ) return kInvalidId;
264
265 return std::get<2>(*fFile);
266}

References G4VTFileManager< G4Hdf5File >::fFile, and G4Analysis::kInvalidId.

◆ GetNtupleDirectoryName()

G4String G4VFileManager::GetNtupleDirectoryName ( ) const
inlineinherited

◆ GetNtupleFileName() [1/3]

G4String G4BaseFileManager::GetNtupleFileName ( const G4String ntupleName) const

Definition at line 71 of file G4BaseFileManager.cc.

99{
101}
virtual G4String GetFileType() const final
G4String GetNtupleFileName(const G4String &fileName, const G4String &fileType, const G4String &ntupleName)

◆ GetNtupleFileName() [2/3]

G4String G4BaseFileManager::GetNtupleFileName ( G4int  ntupleFileNumber) const

Definition at line 77 of file G4BaseFileManager.cc.

105{
106 return G4Analysis::GetNtupleFileName(fFileName, GetFileType(), ntupleFileNumber);
107}

◆ GetNtupleFileName() [3/3]

G4String G4Hdf5FileManager::GetNtupleFileName ( Hdf5NtupleDescription ntupleDescription)
private

Definition at line 110 of file G4Hdf5FileManager.cc.

111{
112 // get ntuple file name
113 auto ntupleFileName = ntupleDescription->fFileName;
114 if ( ntupleFileName.size() ) {
115 // update filename per object per thread
116 ntupleFileName = GetTnFileName(ntupleFileName, GetFileType());
117 } else {
118 // get default file name
119 ntupleFileName = GetFullFileName();
120 }
121 return ntupleFileName;
122}
G4String GetFullFileName(const G4String &baseFileName="", G4bool isPerThread=true) const
G4String GetTnFileName(const G4String &fileName, const G4String &fileType)

References G4TNtupleDescription< NT, FT >::fFileName, GetFileType(), G4BaseFileManager::GetFullFileName(), and G4Analysis::GetTnFileName().

Referenced by CloseNtupleFile(), and CreateNtupleFile().

◆ GetPlotFileName()

G4String G4BaseFileManager::GetPlotFileName ( ) const
inherited

Definition at line 110 of file G4BaseFileManager.cc.

111{
113}
G4String GetPlotFileName(const G4String &fileName)

References G4BaseFileManager::fFileName, and G4Analysis::GetPlotFileName().

◆ GetTFile()

std::shared_ptr< G4Hdf5File > G4TFileManager< G4Hdf5File >::GetTFile ( const G4String fileName,
G4bool  warn = true 
) const
inherited

◆ IsOpenFile()

G4bool G4VFileManager::IsOpenFile ( ) const
inlineinherited

Definition at line 117 of file G4VFileManager.hh.

118{ return fIsOpenFile; }

References G4VFileManager::fIsOpenFile.

◆ LockDirectoryNames()

void G4VFileManager::LockDirectoryNames ( )
inlineinherited

◆ Message()

void G4BaseFileManager::Message ( G4int  level,
const G4String action,
const G4String objectType,
const G4String objectName = "",
G4bool  success = true 
) const
inlineprotectedinherited

◆ OpenFile()

G4bool G4Hdf5FileManager::OpenFile ( const G4String fileName)
finalvirtual

Implements G4VFileManager.

Definition at line 195 of file G4Hdf5FileManager.cc.

196{
197 // Keep file name
198 fFileName = fileName;
199 auto name = GetFullFileName();
200
201 if ( fFile ) {
202 Warn("File " + fileName + " already exists.", fkClass, "OpenFile");
203 fFile.reset();
204 }
205
206 // create new file
208 if ( ! fFile ) {
209 Warn("Failed to create file " + fileName, fkClass, "OpenFile");
210 return false;
211 }
212
214 fIsOpenFile = true;
215
216 return true;
217}
void LockDirectoryNames()

References G4TFileManager< G4Hdf5File >::CreateTFile(), G4VTFileManager< G4Hdf5File >::fFile, G4BaseFileManager::fFileName, G4VFileManager::fIsOpenFile, fkClass, G4BaseFileManager::GetFullFileName(), G4VFileManager::LockDirectoryNames(), G4InuclParticleNames::name(), and G4Analysis::Warn().

◆ OpenFiles()

G4bool G4TFileManager< G4Hdf5File >::OpenFiles ( )
inherited

◆ SetBasketSize()

void G4Hdf5FileManager::SetBasketSize ( unsigned int  basketSize)
inline

Definition at line 97 of file G4Hdf5FileManager.hh.

98{ fBasketSize = basketSize; }

References fBasketSize.

◆ SetFileName()

G4bool G4VFileManager::SetFileName ( const G4String fileName)
finalvirtualinherited

Reimplemented from G4BaseFileManager.

Definition at line 45 of file G4VFileManager.cc.

46{
47 // Check extension
48 auto name = fileName;
49 auto extension = G4Analysis::GetExtension(fileName);
50 if ( extension.size() && GetFileType().size() && extension != GetFileType() ) {
51 // replace extension
52 name = G4Analysis::GetBaseName(fileName) + "." + GetFileType();
53 Warn(fileName + " file extension is not valid for " + GetFileType() + " output.\n" +
54 name + " will be used.", fkClass, "SetFileName");
55 }
56
58}
virtual G4bool SetFileName(const G4String &fileName)
static constexpr std::string_view fkClass

References G4VFileManager::fkClass, G4Analysis::GetBaseName(), G4Analysis::GetExtension(), G4BaseFileManager::GetFileType(), G4InuclParticleNames::name(), G4BaseFileManager::SetFileName(), and G4Analysis::Warn().

Referenced by G4GenericFileManager::OpenFile().

◆ SetHistoDirectoryName()

G4bool G4VFileManager::SetHistoDirectoryName ( const G4String dirName)
virtualinherited

Reimplemented in G4GenericFileManager, and G4CsvFileManager.

Definition at line 61 of file G4VFileManager.cc.

62{
63 if ( fLockDirectoryNames ) {
64 Warn("Cannot set Histo directory name as its value was already used.",
65 fkClass, "SetHistoDirectoryName");
66 return false;
67 }
68
69 fHistoDirectoryName = dirName;
70 return true;
71}

References G4VFileManager::fHistoDirectoryName, G4VFileManager::fkClass, G4VFileManager::fLockDirectoryNames, and G4Analysis::Warn().

Referenced by G4GenericFileManager::SetHistoDirectoryName(), and G4CsvFileManager::SetHistoDirectoryName().

◆ SetIsEmpty()

G4bool G4VTFileManager< G4Hdf5File >::SetIsEmpty ( const G4String fileName,
G4bool  isEmpty 
)
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 57 of file G4VTFileManager.hh.

104{
105 return G4TFileManager<FT>::SetIsEmpty(fileName, isEmpty);
106}
G4bool SetIsEmpty(const G4String &fileName, G4bool isEmpty)

◆ SetNtupleDirectoryName()

G4bool G4VFileManager::SetNtupleDirectoryName ( const G4String dirName)
virtualinherited

Reimplemented in G4GenericFileManager, and G4CsvFileManager.

Definition at line 74 of file G4VFileManager.cc.

75{
76 if ( fLockDirectoryNames ) {
77 Warn("Cannot set Ntuple directory name as its value was already used.",
78 fkClass, "SetNtupleDirectoryName");
79 return false;
80 }
81
82 fNtupleDirectoryName = dirName;
83 return true;
84}

References G4VFileManager::fkClass, G4VFileManager::fLockDirectoryNames, G4VFileManager::fNtupleDirectoryName, and G4Analysis::Warn().

Referenced by G4GenericFileManager::SetNtupleDirectoryName(), and G4CsvFileManager::SetNtupleDirectoryName().

◆ UnlockDirectoryNames()

void G4VFileManager::UnlockDirectoryNames ( )
inlineinherited

Definition at line 114 of file G4VFileManager.hh.

115{ fLockDirectoryNames = false; }

References G4VFileManager::fLockDirectoryNames.

Referenced by G4GenericFileManager::Clear().

◆ WriteFile() [1/2]

G4bool G4VTFileManager< G4Hdf5File >::WriteFile ( const G4String fileName)
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 55 of file G4VTFileManager.hh.

88{
89 return G4TFileManager<FT>::WriteTFile(fileName);
90}
G4bool WriteTFile(const G4String &fileName)

◆ WriteFile() [2/2]

virtual G4bool G4VFileManager::WriteFile ( const G4String fileName)
virtualinherited

Implements G4VFileManager.

◆ WriteFileImpl()

G4bool G4Hdf5FileManager::WriteFileImpl ( std::shared_ptr< G4Hdf5File file)
finalprotectedvirtual

Implements G4TFileManager< G4Hdf5File >.

Definition at line 168 of file G4Hdf5FileManager.cc.

169{
170 // Nothing to be done here
171 return true;
172}

◆ WriteFiles()

G4bool G4VTFileManager< G4Hdf5File >::WriteFiles
inlinefinalvirtualinherited

Implements G4VFileManager.

Definition at line 60 of file G4VTFileManager.hh.

112{
114}
G4bool WriteFiles()

◆ WriteTFile() [1/2]

G4bool G4TFileManager< G4Hdf5File >::WriteTFile ( const G4String fileName)
inherited

◆ WriteTFile() [2/2]

G4bool G4TFileManager< G4Hdf5File >::WriteTFile ( std::shared_ptr< G4Hdf5File file,
const G4String fileName 
)
privateinherited

Field Documentation

◆ fAMState

const G4AnalysisManagerState& G4TFileManager< G4Hdf5File >::fAMState
privateinherited

Definition at line 87 of file G4TFileManager.hh.

◆ fBasketSize

unsigned int G4Hdf5FileManager::fBasketSize { G4Analysis::kDefaultBasketSize }
private

Definition at line 91 of file G4Hdf5FileManager.hh.

Referenced by GetBasketSize(), and SetBasketSize().

◆ fFile

std::shared_ptr<G4Hdf5File > G4VTFileManager< G4Hdf5File >::fFile
protectedinherited

Definition at line 73 of file G4VTFileManager.hh.

◆ fFileMap

std::map<G4String, G4TFileInformation<G4Hdf5File >*> G4TFileManager< G4Hdf5File >::fFileMap
privateinherited

Definition at line 88 of file G4TFileManager.hh.

◆ fFileName

G4String G4BaseFileManager::fFileName
protectedinherited

◆ fFileNames

std::vector<G4String> G4BaseFileManager::fFileNames
protectedinherited

◆ fgkDefaultDirectoryName

const G4String G4Hdf5FileManager::fgkDefaultDirectoryName { "default" }
inlinestaticprivate

Definition at line 88 of file G4Hdf5FileManager.hh.

Referenced by CreateDirectory().

◆ fH1FileManager

std::shared_ptr<G4VTHnFileManager<tools::histo::h1d> > G4VFileManager::fH1FileManager { nullptr }
protectedinherited

◆ fH2FileManager

std::shared_ptr<G4VTHnFileManager<tools::histo::h2d> > G4VFileManager::fH2FileManager { nullptr }
protectedinherited

◆ fH3FileManager

std::shared_ptr<G4VTHnFileManager<tools::histo::h3d> > G4VFileManager::fH3FileManager { nullptr }
protectedinherited

◆ fHistoDirectoryName

G4String G4VFileManager::fHistoDirectoryName
protectedinherited

◆ fIsOpenFile

G4bool G4VFileManager::fIsOpenFile { false }
protectedinherited

◆ fkClass

constexpr std::string_view G4Hdf5FileManager::fkClass { "G4Hdf5FileManager" }
staticconstexprprivate

Definition at line 87 of file G4Hdf5FileManager.hh.

Referenced by CreateDirectory(), CreateFileImpl(), and OpenFile().

◆ fLockDirectoryNames

G4bool G4VFileManager::fLockDirectoryNames { false }
protectedinherited

◆ fNtupleDirectoryName

G4String G4VFileManager::fNtupleDirectoryName
protectedinherited

◆ fP1FileManager

std::shared_ptr<G4VTHnFileManager<tools::histo::p1d> > G4VFileManager::fP1FileManager { nullptr }
protectedinherited

◆ fP2FileManager

std::shared_ptr<G4VTHnFileManager<tools::histo::p2d> > G4VFileManager::fP2FileManager { nullptr }
protectedinherited

◆ fState

const G4AnalysisManagerState& G4BaseFileManager::fState
protectedinherited

The documentation for this class was generated from the following files: