Import Geant4 11.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2022-12-09 14:43:28 +01:00
parent c07cea1fe0
commit 9f34590941
3810 changed files with 200490 additions and 182326 deletions
@@ -75,22 +75,20 @@ G4Hdf5AnalysisManager::G4Hdf5AnalysisManager()
#endif
#endif
if ( ! G4Threading::IsWorkerThread() ) fgMasterInstance = this;
// File manager
fFileManager = std::make_shared<G4Hdf5FileManager>(fState);
SetFileManager(fFileManager);
auto fileManager = std::make_shared<G4Hdf5FileManager>(fState);
SetFileManager(fileManager);
// Ntuple file manager
fNtupleFileManager = std::make_shared<G4Hdf5NtupleFileManager>(fState);
fNtupleFileManager->SetFileManager(fFileManager);
SetNtupleFileManager(fNtupleFileManager);
fNtupleFileManager->SetFileManager(fileManager);
fNtupleFileManager->SetBookingManager(fNtupleBookingManager);
}
//_____________________________________________________________________________
G4Hdf5AnalysisManager::~G4Hdf5AnalysisManager()
{
if ( fState.GetIsMaster() ) fgMasterInstance = nullptr;
fgIsInstance = false;
}
@@ -101,79 +99,19 @@ G4Hdf5AnalysisManager::~G4Hdf5AnalysisManager()
//_____________________________________________________________________________
G4bool G4Hdf5AnalysisManager::OpenFileImpl(const G4String& fileName)
{
// Create ntuple manager(s)
// and set it to base class which takes then their ownership
SetNtupleManager(fNtupleFileManager->CreateNtupleManager());
auto result = true;
G4AutoLock lock(&openFileMutex);
result &= fFileManager->OpenFile(fileName);
result &= fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName());
auto result = G4ToolsAnalysisManager::OpenFileImpl(fileName);
lock.unlock();
return result;
}
//_____________________________________________________________________________
G4bool G4Hdf5AnalysisManager::WriteImpl()
{
auto result = true;
Message(kVL4, "write", "files");
if ( G4Threading::IsWorkerThread() ) {
result &= G4ToolsAnalysisManager::Merge();
}
else {
// Open all files registered with objects
fFileManager->OpenFiles();
// Write all histograms/profile on master
result &= G4ToolsAnalysisManager::WriteImpl();
}
// Write ASCII if activated
if ( IsAscii() ) {
result &= WriteAscii(fFileManager->GetFileName());
}
Message(kVL3, "write", "files", "", result);
return result;
}
//_____________________________________________________________________________
G4bool G4Hdf5AnalysisManager::CloseFileImpl(G4bool reset)
{
auto result = true;
G4AutoLock lock(&closeFileMutex);
result &= fFileManager->CloseFiles();
if ( reset ) {
// reset data
result = ResetImpl();
if ( ! result ) {
Warn("Resetting data failed", fkClass, "OpenDirectory");
}
}
result &= fNtupleFileManager->ActionAtCloseFile(reset);
auto result = G4ToolsAnalysisManager::CloseFileImpl(reset);
lock.unlock();
return result;
}
//_____________________________________________________________________________
G4bool G4Hdf5AnalysisManager::ResetImpl()
{
auto result = true;
result &= G4ToolsAnalysisManager::ResetImpl();
if ( fNtupleFileManager != nullptr ) {
result &= fNtupleFileManager->Reset();
}
return result;
}