Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
G4VFileManager Class Referenceabstract

#include <G4VFileManager.hh>

Inheritance diagram for G4VFileManager:
G4BaseFileManager G4VTFileManager< std::ofstream > G4VTFileManager< G4Hdf5File > G4VTFileManager< G4RootFile > G4GenericFileManager G4VTFileManager< FT > G4CsvFileManager G4XmlFileManager G4Hdf5FileManager G4RootFileManager

Public Member Functions

void AddFileName (const G4String &fileName)
 
virtual void Clear ()=0
 
virtual G4bool CloseFile (const G4String &fileName)=0
 
virtual G4bool CloseFiles ()=0
 
virtual G4bool CreateFile (const G4String &fileName)=0
 
virtual G4bool DeleteEmptyFiles ()=0
 
 G4VFileManager ()=delete
 
 G4VFileManager (const G4AnalysisManagerState &state)
 
G4String GetFileName () const
 
const std::vector< G4String > & GetFileNames () const
 
virtual G4String GetFileType () const
 
G4String GetFullFileName (const G4String &baseFileName="", G4bool isPerThread=true) const
 
G4String GetHistoDirectoryName () const
 
template<typename HT >
std::shared_ptr< G4VTHnFileManager< HT > > GetHnFileManager () const
 
G4String GetHnFileName (const G4String &hnType, const G4String &hnName) const
 
G4String GetNtupleDirectoryName () const
 
G4String GetNtupleFileName (const G4String &ntupleName) const
 
G4String GetNtupleFileName (G4int ntupleFileNumber) const
 
G4String GetPlotFileName () const
 
G4bool IsOpenFile () const
 
void LockDirectoryNames ()
 
virtual G4bool OpenFile (const G4String &fileName)=0
 
virtual G4bool SetFileName (const G4String &fileName) final
 
virtual G4bool SetHistoDirectoryName (const G4String &dirName)
 
virtual G4bool SetIsEmpty (const G4String &fileName, G4bool isEmpty)=0
 
virtual G4bool SetNtupleDirectoryName (const G4String &dirName)
 
void UnlockDirectoryNames ()
 
virtual G4bool WriteFile (const G4String &fileName)=0
 
virtual G4bool WriteFiles ()=0
 
virtual ~G4VFileManager ()=default
 

Protected Member Functions

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

Protected Attributes

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
 

Static Protected Attributes

static constexpr std::string_view fkClass { "G4VFileManager" }
 

Detailed Description

Definition at line 51 of file G4VFileManager.hh.

Constructor & Destructor Documentation

◆ G4VFileManager() [1/2]

G4VFileManager::G4VFileManager ( const G4AnalysisManagerState state)
explicit

Definition at line 36 of file G4VFileManager.cc.

37 : G4BaseFileManager(state)
38{}
G4BaseFileManager()=delete

◆ G4VFileManager() [2/2]

G4VFileManager::G4VFileManager ( )
delete

◆ ~G4VFileManager()

virtual G4VFileManager::~G4VFileManager ( )
virtualdefault

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()

virtual void G4VFileManager::Clear ( )
pure virtual

◆ CloseFile()

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

◆ CloseFiles()

virtual G4bool G4VFileManager::CloseFiles ( )
pure virtual

◆ CreateFile()

virtual G4bool G4VFileManager::CreateFile ( const G4String fileName)
pure virtual

◆ DeleteEmptyFiles()

virtual G4bool G4VFileManager::DeleteEmptyFiles ( )
pure virtual

◆ 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()

G4String G4BaseFileManager::GetFileType ( ) const
virtualinherited

◆ 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
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 G4Hdf5FileManager::GetNtupleFileName(), G4RootFileManager::GetNtupleFileName(), G4XmlRFileManager::GetRFile(), G4Hdf5RFileManager::GetRFile(), G4RootRFileManager::GetRFile(), G4Hdf5FileManager::OpenFile(), G4RootFileManager::OpenFile(), G4XmlFileManager::OpenFile(), G4XmlRFileManager::OpenRFile(), G4Hdf5RFileManager::OpenRFile(), and G4RootRFileManager::OpenRFile().

◆ GetHistoDirectoryName()

G4String G4VFileManager::GetHistoDirectoryName ( ) const
inline

Definition at line 120 of file G4VFileManager.hh.

121{ return fHistoDirectoryName; }
G4String fHistoDirectoryName

References fHistoDirectoryName.

Referenced by G4GenericFileManager::CreateFileManager().

◆ GetHnFileManager()

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

◆ 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().

◆ GetNtupleDirectoryName()

G4String G4VFileManager::GetNtupleDirectoryName ( ) const
inline

◆ GetNtupleFileName() [1/2]

G4String G4BaseFileManager::GetNtupleFileName ( const G4String ntupleName) const
inherited

Definition at line 98 of file G4BaseFileManager.cc.

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

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

◆ GetNtupleFileName() [2/2]

G4String G4BaseFileManager::GetNtupleFileName ( G4int  ntupleFileNumber) const
inherited

◆ 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().

◆ IsOpenFile()

G4bool G4VFileManager::IsOpenFile ( ) const
inline

Definition at line 117 of file G4VFileManager.hh.

118{ return fIsOpenFile; }

References fIsOpenFile.

◆ LockDirectoryNames()

void G4VFileManager::LockDirectoryNames ( )
inline

◆ Message()

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

◆ OpenFile()

virtual G4bool G4VFileManager::OpenFile ( const G4String fileName)
pure virtual

◆ SetFileName()

G4bool G4VFileManager::SetFileName ( const G4String fileName)
finalvirtual

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
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)

References 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)
virtual

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 fHistoDirectoryName, fkClass, fLockDirectoryNames, and G4Analysis::Warn().

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

◆ SetIsEmpty()

virtual G4bool G4VFileManager::SetIsEmpty ( const G4String fileName,
G4bool  isEmpty 
)
pure virtual

◆ SetNtupleDirectoryName()

G4bool G4VFileManager::SetNtupleDirectoryName ( const G4String dirName)
virtual

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 fkClass, fLockDirectoryNames, fNtupleDirectoryName, and G4Analysis::Warn().

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

◆ UnlockDirectoryNames()

void G4VFileManager::UnlockDirectoryNames ( )
inline

Definition at line 114 of file G4VFileManager.hh.

115{ fLockDirectoryNames = false; }

References fLockDirectoryNames.

Referenced by G4GenericFileManager::Clear().

◆ WriteFile()

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

◆ WriteFiles()

virtual G4bool G4VFileManager::WriteFiles ( )
pure virtual

Field Documentation

◆ fFileName

G4String G4BaseFileManager::fFileName
protectedinherited

◆ fFileNames

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

◆ fH1FileManager

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

◆ fH2FileManager

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

◆ fH3FileManager

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

◆ fHistoDirectoryName

G4String G4VFileManager::fHistoDirectoryName
protected

◆ fIsOpenFile

G4bool G4VFileManager::fIsOpenFile { false }
protected

◆ fkClass

constexpr std::string_view G4VFileManager::fkClass { "G4VFileManager" }
staticconstexprprotected

Definition at line 93 of file G4VFileManager.hh.

Referenced by SetFileName(), SetHistoDirectoryName(), and SetNtupleDirectoryName().

◆ fLockDirectoryNames

G4bool G4VFileManager::fLockDirectoryNames { false }
protected

◆ fNtupleDirectoryName

G4String G4VFileManager::fNtupleDirectoryName
protected

◆ fP1FileManager

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

◆ fP2FileManager

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

◆ fState

const G4AnalysisManagerState& G4BaseFileManager::fState
protectedinherited

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