Import Geant4 11.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2021-12-10 14:46:44 +01:00
committed by Ben Morgan
parent 6399a014b6
commit 80e2389dd8
3932 changed files with 202519 additions and 246221 deletions
@@ -25,7 +25,7 @@
//
// The main manager for Root analysis.
// It delegates most of functions to the object specific managers.
// It delegates most of functions to the object specific managers.
// Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr)
@@ -39,25 +39,29 @@
#include "tools/histo/hmpi"
#include <memory>
#include <string_view>
class G4RootAnalysisManager;
class G4RootFileManager;
class G4RootNtupleFileManager;
template <class T>
class G4ThreadLocalSingleton;
namespace tools {
namespace wroot {
class directory;
class directory;
}
}
class G4RootAnalysisManager : public G4ToolsAnalysisManager
{
friend class G4RootMpiAnalysisManager;
friend class G4ThreadLocalSingleton<G4RootAnalysisManager>;
public:
explicit G4RootAnalysisManager(G4bool isMaster = true);
virtual ~G4RootAnalysisManager();
// static methods
// Static methods
static G4RootAnalysisManager* Instance();
static G4bool IsInstance();
@@ -72,7 +76,7 @@ class G4RootAnalysisManager : public G4ToolsAnalysisManager
std::vector<tools::wroot::ntuple*>::const_iterator EndConstNtuple() const;
// MT/MPI
virtual void SetNtupleMerging(G4bool mergeNtuples,
virtual void SetNtupleMerging(G4bool mergeNtuples,
G4int nofReducedNtupleFiles = 0) override;
virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode = true) override;
virtual void SetBasketSize(unsigned int basketSize) override;
@@ -82,31 +86,21 @@ class G4RootAnalysisManager : public G4ToolsAnalysisManager
// virtual methods from base class
virtual G4bool OpenFileImpl(const G4String& fileName) override;
virtual G4bool WriteImpl() override;
virtual G4bool CloseFileImpl(G4bool reset) override;
virtual G4bool CloseFileImpl(G4bool reset) override;
virtual G4bool ResetImpl() override;
virtual G4bool IsOpenFileImpl() const final;
// virtual functions (overriden in MPI implementation)
virtual G4bool Reset();
private:
// static data members
static G4RootAnalysisManager* fgMasterInstance;
static G4ThreadLocal G4RootAnalysisManager* fgInstance;
G4RootAnalysisManager();
// methods
template <typename T>
G4bool WriteT(const std::vector<T*>& htVector,
const std::vector<G4HnInformation*>& hnVector,
const G4String& hnType);
G4bool WriteH1();
G4bool WriteH2();
G4bool WriteH3();
G4bool WriteP1();
G4bool WriteP2();
// Static data members
inline static G4RootAnalysisManager* fgMasterInstance { nullptr };
inline static G4ThreadLocal G4bool fgIsInstance { false };
static constexpr std::string_view fkClass { "G4RootAnalysisManager" };
// data members
std::shared_ptr<G4RootFileManager> fFileManager;
std::shared_ptr<G4RootNtupleFileManager> fNtupleFileManager;
// data members
std::shared_ptr<G4RootFileManager> fFileManager { nullptr };
std::shared_ptr<G4RootNtupleFileManager> fNtupleFileManager { nullptr };
};
#include "G4RootAnalysisManager.icc"