Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
+24 -12
View File
@@ -31,31 +31,43 @@
#ifndef G4CsvFileManager_h
#define G4CsvFileManager_h 1
#include "G4VFileManager.hh"
#include "G4VTFileManager.hh"
#include "G4TNtupleDescription.hh"
#include "globals.hh"
#include "tools/wcsv_ntuple"
class G4CsvFileManager : public G4VFileManager
// Type aliases
using CsvNtupleDescription = G4TNtupleDescription<tools::wcsv::ntuple, std::ofstream>;
class G4CsvFileManager : public G4VTFileManager<std::ofstream>
{
public:
explicit G4CsvFileManager(const G4AnalysisManagerState& state);
~G4CsvFileManager();
// Type aliases
using NtupleType = tools::wcsv::ntuple;
using NtupleDescriptionType = G4TNtupleDescription<NtupleType>;
// Methods to manipulate files
using G4BaseFileManager::GetNtupleFileName;
using G4VTFileManager<std::ofstream>::WriteFile;
using G4VTFileManager<std::ofstream>::CloseFile;
// Methods to manipulate output files
virtual G4bool OpenFile(const G4String& fileName) final;
virtual G4bool WriteFile() final;
virtual G4bool CloseFile() final;
virtual G4String GetFileType() const final { return "csv"; }
// Specific methods for files per objects
G4bool CreateNtupleFile(NtupleDescriptionType* ntupleDescription);
G4bool CloseNtupleFile(NtupleDescriptionType* ntupleDescription);
G4bool CreateNtupleFile(CsvNtupleDescription* ntupleDescription);
G4bool CloseNtupleFile(CsvNtupleDescription* ntupleDescription);
protected:
// Methods derived from templated base class
virtual std::shared_ptr<std::ofstream> CreateFileImpl(const G4String& fileName) final;
virtual G4bool WriteFileImpl(std::shared_ptr<std::ofstream> file) final;
virtual G4bool CloseFileImpl(std::shared_ptr<std::ofstream> file) final;
private:
// Utility method
G4String GetNtupleFileName(CsvNtupleDescription* ntupleDescription);
};
#endif