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
+38 -64
View File
@@ -28,7 +28,7 @@
#include "G4CsvAnalysisManager.hh"
#include "G4CsvFileManager.hh"
#include "G4CsvNtupleManager.hh"
#include "G4CsvNtupleFileManager.hh"
#include "G4AnalysisVerbose.hh"
#include "G4AnalysisManagerState.hh"
#include "G4UnitsTable.hh"
@@ -75,8 +75,8 @@ G4bool G4CsvAnalysisManager::IsInstance()
//_____________________________________________________________________________
G4CsvAnalysisManager::G4CsvAnalysisManager(G4bool isMaster)
: G4ToolsAnalysisManager("Csv", isMaster),
fNtupleManager(nullptr),
fFileManager(nullptr)
fFileManager(nullptr),
fNtupleFileManager(nullptr)
{
if ( ( isMaster && fgMasterInstance ) || ( fgInstance ) ) {
G4ExceptionDescription description;
@@ -89,14 +89,15 @@ G4CsvAnalysisManager::G4CsvAnalysisManager(G4bool isMaster)
if ( isMaster ) fgMasterInstance = this;
fgInstance = this;
fNtupleManager = new G4CsvNtupleManager(fState);
// File Manager
fFileManager = std::make_shared<G4CsvFileManager>(fState);
fNtupleManager->SetFileManager(fFileManager);
// The managers will be deleted by the base class
// Set managers to base class which takes then their ownreship
SetNtupleManager(fNtupleManager);
SetFileManager(fFileManager);
// Ntuple file manager
fNtupleFileManager = std::make_shared<G4CsvNtupleFileManager>(fState);
fNtupleFileManager->SetFileManager(fFileManager);
fNtupleFileManager->SetBookingManager(fNtupleBookingManager);
}
//_____________________________________________________________________________
@@ -110,30 +111,6 @@ G4CsvAnalysisManager::~G4CsvAnalysisManager()
// private methods
//
//_____________________________________________________________________________
G4bool G4CsvAnalysisManager::CloseNtupleFiles()
{
auto ntupleVector
= fNtupleManager->GetNtupleDescriptionVector();
// Close ntuple files
for ( auto ntupleDescription : ntupleVector) {
fFileManager->CloseNtupleFile(ntupleDescription);
}
return true;
}
//
// protected methods
//
//
// private methods
//
//_____________________________________________________________________________
G4bool G4CsvAnalysisManager::WriteH1()
{
@@ -264,7 +241,7 @@ G4bool G4CsvAnalysisManager::Reset()
auto result = G4ToolsAnalysisManager::Reset();
finalResult = finalResult && result;
result = fNtupleManager->Reset(true);
result = fNtupleFileManager->Reset();
finalResult = finalResult && result;
return finalResult;
@@ -273,24 +250,23 @@ G4bool G4CsvAnalysisManager::Reset()
//_____________________________________________________________________________
G4bool G4CsvAnalysisManager::OpenFileImpl(const G4String& fileName)
{
// Create ntuple manager(s)
// and set it to base class which takes then their ownership
SetNtupleManager(fNtupleFileManager->CreateNtupleManager());
auto finalResult = true;
auto result = fFileManager->SetFileName(fileName);
// Save file name in file manager
auto result = fFileManager->OpenFile(fileName);
finalResult = finalResult && result;
// Only lock file name in file manager
result = fFileManager->OpenFile(fileName);
// Open ntuple files and create ntuples from bookings
result = fNtupleFileManager->ActionAtOpenFile(fFileManager->GetFullFileName());
finalResult = finalResult && result;
// Histogram and profile files are created/closed indivudually for each
// object in WriteHn{Pn] function
// Create ntuples if they are booked
// (The files will be created with creating ntuples)
fNtupleManager->CreateNtuplesFromBooking();
return finalResult;
}
}
//_____________________________________________________________________________
G4bool G4CsvAnalysisManager::WriteImpl()
{
@@ -298,8 +274,9 @@ G4bool G4CsvAnalysisManager::WriteImpl()
auto finalResult = true;
#ifdef G4VERBOSE
if ( fState.GetVerboseL4() )
if ( fState.GetVerboseL4() ) {
fState.GetVerboseL4()->Message("write", "files", "");
}
#endif
@@ -347,9 +324,9 @@ G4bool G4CsvAnalysisManager::WriteImpl()
//}
#ifdef G4VERBOSE
if ( fState.GetVerboseL1() )
fState.GetVerboseL1()
->Message("write", "files", "", finalResult);
if ( fState.GetVerboseL2() ) {
fState.GetVerboseL2()->Message("write", "files", "", finalResult);
}
#endif
return result;
@@ -360,29 +337,26 @@ G4bool G4CsvAnalysisManager::CloseFileImpl(G4bool reset)
{
auto finalResult = true;
// Unlock file name only
auto result = fFileManager->CloseFile();
// close open files
auto result = fFileManager->CloseFiles();
finalResult = finalResult && result;
// Histogram and profile files are created/closed indivudually for each
// object in WriteHn{Pn] function
// In sequential mode or in MT mode only on workers
result = CloseNtupleFiles();
result = fNtupleFileManager->ActionAtCloseFile(reset);
finalResult = finalResult && result;
// reset data
// Reset data
if ( reset ) {
result = Reset();
} else {
// ntuple must be reset
result = fNtupleManager->Reset(true);
if ( ! result ) {
G4ExceptionDescription description;
description << " " << "Resetting data failed";
G4Exception("G4CsvAnalysisManager::CloseFile()",
"Analysis_W021", JustWarning, description);
}
}
if ( ! result ) {
G4ExceptionDescription description;
description << " " << "Resetting data failed";
G4Exception("G4CsvAnalysisManager::CloseFile()",
"Analysis_W021", JustWarning, description);
}
finalResult = finalResult && result;
return finalResult;