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)
@@ -34,24 +34,28 @@
#include "G4ToolsAnalysisManager.hh"
#include "G4THnManager.hh"
#include "G4Threading.hh"
#include "G4AnalysisUtilities.hh"
#include "globals.hh"
#include <memory>
#include <string_view>
class G4GenericAnalysisManager;
class G4GenericFileManager;
class G4HnInformation;
class G4VNtupleFileManager;
template <class T>
class G4ThreadLocalSingleton;
class G4GenericAnalysisManager : public G4ToolsAnalysisManager
{
friend class G4RootMpiAnalysisManager;
friend class G4ThreadLocalSingleton<G4GenericAnalysisManager>;
public:
explicit G4GenericAnalysisManager(G4bool isMaster = true);
virtual ~G4GenericAnalysisManager();
// static methods
// Static methods
static G4GenericAnalysisManager* Instance();
static G4bool IsInstance();
@@ -62,51 +66,53 @@ class G4GenericAnalysisManager : public G4ToolsAnalysisManager
virtual void SetBasketSize(unsigned int basketSize) override;
virtual void SetBasketEntries(unsigned int basketEntries) override;
// new functions
G4bool Merge();
// write in an extra file
// write in an extra file
G4bool WriteH1(G4int id, const G4String& fileName);
G4bool WriteH2(G4int id, const G4String& fileName);
G4bool WriteH3(G4int id, const G4String& fileName);
G4bool WriteP1(G4int id, const G4String& fileName);
G4bool WriteP2(G4int id, const G4String& fileName);
// set default output type (backward compatibility)
// Set default output type (backward compatibility)
// this type will be used for file names without extension
void SetDefaultFileType(const G4String& value);
G4String GetDefaultFileType() const;
protected:
// virtual methods from base class
// Virtual methods from base class
virtual G4bool OpenFileImpl(const G4String& fileName) override;
virtual G4bool WriteImpl() final;
virtual G4bool CloseFileImpl(G4bool reset = true) override;
virtual G4bool CloseFileImpl(G4bool reset = true) override;
virtual G4bool ResetImpl() final;
virtual G4bool IsOpenFileImpl() const final;
virtual G4bool Reset() final;
// File manager access
virtual std::shared_ptr<G4VFileManager> GetFileManager(const G4String& fileName) final;
private:
// methods
G4GenericAnalysisManager();
// Methods
void CreateNtupleFileManager(const G4String& fileName);
// static data members
static G4GenericAnalysisManager* fgMasterInstance;
static G4ThreadLocal G4GenericAnalysisManager* fgInstance;
// Static data members
inline static G4GenericAnalysisManager* fgMasterInstance { nullptr };
inline static G4ThreadLocal G4bool fgIsInstance { false };
static constexpr std::string_view fkClass { "G4GenericAnalysisManager" };
// data members
std::shared_ptr<G4GenericFileManager> fFileManager;
// Data members
std::shared_ptr<G4GenericFileManager> fFileManager { nullptr };
// add G4GenericNtupleManager
// this class will be analogic to file managers but with ntuples
std::shared_ptr<G4VNtupleFileManager> fNtupleFileManager;
std::shared_ptr<G4VNtupleFileManager> fNtupleFileManager { nullptr };
// data members
G4bool fIsNtupleMergingSet = false;
G4int fNofNtupleFiles = 0;
G4bool fMergeNtuples = false;
G4bool fNtupleRowWise = false;
G4bool fNtupleRowMode = true;
unsigned int fBasketSize = fgkDefaultBasketSize;
unsigned int fBasketEntries = fgkDefaultBasketEntries;
// Data members
G4bool fIsNtupleMergingSet { false };
G4int fNofNtupleFiles { 0 };
G4bool fMergeNtuples { false };
G4bool fNtupleRowWise { false };
G4bool fNtupleRowMode { true };
unsigned int fBasketSize { G4Analysis::kDefaultBasketSize };
unsigned int fBasketEntries { G4Analysis::kDefaultBasketEntries };
};
#include "G4GenericAnalysisManager.icc"