Geant4  10.02.p03
G4RootAnalysisManager Class Reference

#include <G4RootAnalysisManager.hh>

Inheritance diagram for G4RootAnalysisManager:
Collaboration diagram for G4RootAnalysisManager:

Public Member Functions

 G4RootAnalysisManager (G4bool isMaster=true)
 
virtual ~G4RootAnalysisManager ()
 
tools::wroot::ntupleGetNtuple () const
 
tools::wroot::ntupleGetNtuple (G4int ntupleId) const
 
std::vector< tools::wroot::ntuple * >::iterator BeginNtuple ()
 
std::vector< tools::wroot::ntuple * >::iterator EndNtuple ()
 
std::vector< tools::wroot::ntuple * >::const_iterator BeginConstNtuple () const
 
std::vector< tools::wroot::ntuple * >::const_iterator EndConstNtuple () const
 
- Public Member Functions inherited from G4ToolsAnalysisManager
 G4ToolsAnalysisManager (const G4String &type, G4bool isMaster=true)
 
virtual ~G4ToolsAnalysisManager ()
 
tools::histo::h1dGetH1 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::histo::h2d * GetH2 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::histo::h3d * GetH3 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::histo::p1d * GetP1 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::histo::p2d * GetP2 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
std::vector< tools::histo::h1d * >::iterator BeginH1 ()
 
std::vector< tools::histo::h1d * >::iterator EndH1 ()
 
std::vector< tools::histo::h1d * >::const_iterator BeginConstH1 () const
 
std::vector< tools::histo::h1d * >::const_iterator EndConstH1 () const
 
std::vector< tools::histo::h2d * >::iterator BeginH2 ()
 
std::vector< tools::histo::h2d * >::iterator EndH2 ()
 
std::vector< tools::histo::h2d * >::const_iterator BeginConstH2 () const
 
std::vector< tools::histo::h2d * >::const_iterator EndConstH2 () const
 
std::vector< tools::histo::h3d * >::iterator BeginH3 ()
 
std::vector< tools::histo::h3d * >::iterator EndH3 ()
 
std::vector< tools::histo::h3d * >::const_iterator BeginConstH3 () const
 
std::vector< tools::histo::h3d * >::const_iterator EndConstH3 () const
 
std::vector< tools::histo::p1d * >::iterator BeginP1 ()
 
std::vector< tools::histo::p1d * >::iterator EndP1 ()
 
std::vector< tools::histo::p1d * >::const_iterator BeginConstP1 () const
 
std::vector< tools::histo::p1d * >::const_iterator EndConstP1 () const
 
std::vector< tools::histo::p2d * >::iterator BeginP2 ()
 
std::vector< tools::histo::p2d * >::iterator EndP2 ()
 
std::vector< tools::histo::p2d * >::const_iterator BeginConstP2 () const
 
std::vector< tools::histo::p2d * >::const_iterator EndConstP2 () const
 
std::vector< tools::wroot::ntuple * >::iterator BeginNtuple ()
 
std::vector< tools::wroot::ntuple * >::iterator EndNtuple ()
 
std::vector< tools::wroot::ntuple * >::const_iterator BeginConstNtuple () const
 
std::vector< tools::wroot::ntuple * >::const_iterator EndConstNtuple () const
 
- Public Member Functions inherited from G4VAnalysisManager
 G4VAnalysisManager (const G4String &type, G4bool isMaster)
 
virtual ~G4VAnalysisManager ()
 
G4bool OpenFile (const G4String &fileName="")
 
G4bool Write ()
 
G4bool CloseFile ()
 
G4bool Merge (tools::histo::hmpi *hmpi)
 
G4bool Plot ()
 
G4bool IsOpenFile () const
 
G4bool SetFileName (const G4String &fileName)
 
G4bool SetHistoDirectoryName (const G4String &dirName)
 
G4bool SetNtupleDirectoryName (const G4String &dirName)
 
void SetCompressionLevel (G4int level)
 
G4String GetFileName () const
 
G4String GetHistoDirectoryName () const
 
G4String GetNtupleDirectoryName () const
 
G4int GetCompressionLevel () const
 
G4int CreateH1 (const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
 
G4int CreateH1 (const G4String &name, const G4String &title, const std::vector< G4double > &edges, const G4String &unitName="none", const G4String &fcnName="none")
 
G4int CreateH2 (const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
 
G4int CreateH2 (const G4String &name, const G4String &title, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none")
 
G4int CreateH3 (const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4int nzbins, G4double zmin, G4double zmax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
 
G4int CreateH3 (const G4String &name, const G4String &title, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const std::vector< G4double > &zedges, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none")
 
G4bool SetH1 (G4int id, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
 
G4bool SetH1 (G4int id, const std::vector< G4double > &edges, const G4String &unitName="none", const G4String &fcnName="none")
 
G4bool SetH2 (G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
 
G4bool SetH2 (G4int id, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none")
 
G4bool SetH3 (G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nzbins, G4double zmin, G4double zmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
 
G4bool SetH3 (G4int id, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const std::vector< G4double > &zedges, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none")
 
G4bool ScaleH1 (G4int id, G4double factor)
 
G4bool ScaleH2 (G4int id, G4double factor)
 
G4bool ScaleH3 (G4int id, G4double factor)
 
G4int CreateP1 (const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
 
G4int CreateP1 (const G4String &name, const G4String &title, const std::vector< G4double > &edges, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none")
 
G4int CreateP2 (const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
 
G4int CreateP2 (const G4String &name, const G4String &title, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none")
 
G4bool SetP1 (G4int id, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
 
G4bool SetP1 (G4int id, const std::vector< G4double > &edges, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none")
 
G4bool SetP2 (G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
 
G4bool SetP2 (G4int id, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none")
 
G4bool ScaleP1 (G4int id, G4double factor)
 
G4bool ScaleP2 (G4int id, G4double factor)
 
G4int CreateNtuple (const G4String &name, const G4String &title)
 
G4int CreateNtupleIColumn (const G4String &name)
 
G4int CreateNtupleFColumn (const G4String &name)
 
G4int CreateNtupleDColumn (const G4String &name)
 
G4int CreateNtupleSColumn (const G4String &name)
 
G4int CreateNtupleIColumn (const G4String &name, std::vector< int > &vector)
 
G4int CreateNtupleFColumn (const G4String &name, std::vector< float > &vector)
 
G4int CreateNtupleDColumn (const G4String &name, std::vector< double > &vector)
 
void FinishNtuple ()
 
G4int CreateNtupleIColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleFColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleDColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleSColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleIColumn (G4int ntupleId, const G4String &name, std::vector< int > &vector)
 
G4int CreateNtupleFColumn (G4int ntupleId, const G4String &name, std::vector< float > &vector)
 
G4int CreateNtupleDColumn (G4int ntupleId, const G4String &name, std::vector< double > &vector)
 
void FinishNtuple (G4int ntupleId)
 
G4bool SetFirstHistoId (G4int firstId)
 
G4bool SetFirstH1Id (G4int firstId)
 
G4bool SetFirstH2Id (G4int firstId)
 
G4bool SetFirstH3Id (G4int firstId)
 
G4bool SetFirstProfileId (G4int firstId)
 
G4bool SetFirstP1Id (G4int firstId)
 
G4bool SetFirstP2Id (G4int firstId)
 
G4bool SetFirstNtupleId (G4int firstId)
 
G4bool SetFirstNtupleColumnId (G4int firstId)
 
G4bool FillH1 (G4int id, G4double value, G4double weight=1.0)
 
G4bool FillH2 (G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
 
G4bool FillH3 (G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
 
G4bool FillP1 (G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
 
G4bool FillP2 (G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
 
G4bool FillNtupleIColumn (G4int id, G4int value)
 
G4bool FillNtupleFColumn (G4int id, G4float value)
 
G4bool FillNtupleDColumn (G4int id, G4double value)
 
G4bool FillNtupleSColumn (G4int id, const G4String &value)
 
G4bool AddNtupleRow ()
 
G4bool FillNtupleIColumn (G4int ntupleId, G4int columnId, G4int value)
 
G4bool FillNtupleFColumn (G4int ntupleId, G4int columnId, G4float value)
 
G4bool FillNtupleDColumn (G4int ntupleId, G4int columnId, G4double value)
 
G4bool FillNtupleSColumn (G4int ntupleId, G4int id, const G4String &value)
 
G4bool AddNtupleRow (G4int ntupleId)
 
void SetActivation (G4bool activation)
 
G4bool GetActivation () const
 
G4bool IsActive () const
 
G4bool IsAscii () const
 
G4bool IsPlotting () const
 
G4int GetFirstH1Id () const
 
G4int GetFirstH2Id () const
 
G4int GetFirstH3Id () const
 
G4int GetFirstP1Id () const
 
G4int GetFirstP2Id () const
 
G4int GetFirstNtupleId () const
 
G4int GetFirstNtupleColumnId () const
 
G4int GetNofH1s () const
 
G4int GetNofH2s () const
 
G4int GetNofH3s () const
 
G4int GetNofP1s () const
 
G4int GetNofP2s () const
 
G4int GetNofNtuples () const
 
G4int GetH1Id (const G4String &name, G4bool warn=true) const
 
G4int GetH2Id (const G4String &name, G4bool warn=true) const
 
G4int GetH3Id (const G4String &name, G4bool warn=true) const
 
void SetH1Activation (G4bool activation)
 
void SetH1Activation (G4int id, G4bool activation)
 
void SetH1Ascii (G4int id, G4bool ascii)
 
void SetH1Plotting (G4int id, G4bool plotting)
 
void SetH2Activation (G4bool activation)
 
void SetH2Activation (G4int id, G4bool activation)
 
void SetH2Ascii (G4int id, G4bool ascii)
 
void SetH2Plotting (G4int id, G4bool plotting)
 
void SetH3Activation (G4bool activation)
 
void SetH3Activation (G4int id, G4bool activation)
 
void SetH3Ascii (G4int id, G4bool ascii)
 
void SetH3Plotting (G4int id, G4bool plotting)
 
void SetP1Activation (G4bool activation)
 
void SetP1Activation (G4int id, G4bool activation)
 
void SetP1Ascii (G4int id, G4bool ascii)
 
void SetP1Plotting (G4int id, G4bool plotting)
 
void SetP2Activation (G4bool activation)
 
void SetP2Activation (G4int id, G4bool activation)
 
void SetP2Ascii (G4int id, G4bool ascii)
 
void SetP2Plotting (G4int id, G4bool plotting)
 
void SetNtupleActivation (G4bool activation)
 
void SetNtupleActivation (G4int id, G4bool activation)
 
G4int GetH1Nbins (G4int id) const
 
G4double GetH1Xmin (G4int id) const
 
G4double GetH1Xmax (G4int id) const
 
G4double GetH1Width (G4int id) const
 
G4int GetH2Nxbins (G4int id) const
 
G4double GetH2Xmin (G4int id) const
 
G4double GetH2Xmax (G4int id) const
 
G4double GetH2XWidth (G4int id) const
 
G4int GetH2Nybins (G4int id) const
 
G4double GetH2Ymin (G4int id) const
 
G4double GetH2Ymax (G4int id) const
 
G4double GetH2YWidth (G4int id) const
 
G4int GetH3Nxbins (G4int id) const
 
G4double GetH3Xmin (G4int id) const
 
G4double GetH3Xmax (G4int id) const
 
G4double GetH3XWidth (G4int id) const
 
G4int GetH3Nybins (G4int id) const
 
G4double GetH3Ymin (G4int id) const
 
G4double GetH3Ymax (G4int id) const
 
G4double GetH3YWidth (G4int id) const
 
G4int GetH3Nzbins (G4int id) const
 
G4double GetH3Zmin (G4int id) const
 
G4double GetH3Zmax (G4int id) const
 
G4double GetH3ZWidth (G4int id) const
 
G4int GetP1Nbins (G4int id) const
 
G4double GetP1Xmin (G4int id) const
 
G4double GetP1Xmax (G4int id) const
 
G4double GetP1XWidth (G4int id) const
 
G4double GetP1Ymin (G4int id) const
 
G4double GetP1Ymax (G4int id) const
 
G4int GetP2Nxbins (G4int id) const
 
G4double GetP2Xmin (G4int id) const
 
G4double GetP2Xmax (G4int id) const
 
G4double GetP2XWidth (G4int id) const
 
G4int GetP2Nybins (G4int id) const
 
G4double GetP2Ymin (G4int id) const
 
G4double GetP2Ymax (G4int id) const
 
G4double GetP2YWidth (G4int id) const
 
G4double GetP2Zmin (G4int id) const
 
G4double GetP2Zmax (G4int id) const
 
G4String GetH1Name (G4int id) const
 
G4double GetH1Unit (G4int id) const
 
G4bool GetH1Activation (G4int id) const
 
G4bool GetH1Ascii (G4int id) const
 
G4bool GetH1Plotting (G4int id) const
 
G4String GetH2Name (G4int id) const
 
G4double GetH2XUnit (G4int id) const
 
G4double GetH2YUnit (G4int id) const
 
G4bool GetH2Activation (G4int id) const
 
G4bool GetH2Ascii (G4int id) const
 
G4bool GetH2Plotting (G4int id) const
 
G4String GetH3Name (G4int id) const
 
G4double GetH3XUnit (G4int id) const
 
G4double GetH3YUnit (G4int id) const
 
G4double GetH3ZUnit (G4int id) const
 
G4bool GetH3Activation (G4int id) const
 
G4bool GetH3Ascii (G4int id) const
 
G4bool GetH3Plotting (G4int id) const
 
G4String GetP1Name (G4int id) const
 
G4double GetP1XUnit (G4int id) const
 
G4double GetP1YUnit (G4int id) const
 
G4bool GetP1Activation (G4int id) const
 
G4bool GetP1Ascii (G4int id) const
 
G4bool GetP1Plotting (G4int id) const
 
G4String GetP2Name (G4int id) const
 
G4double GetP2XUnit (G4int id) const
 
G4double GetP2YUnit (G4int id) const
 
G4double GetP2ZUnit (G4int id) const
 
G4bool GetP2Activation (G4int id) const
 
G4bool GetP2Ascii (G4int id) const
 
G4bool GetP2Plotting (G4int id) const
 
G4bool GetNtupleActivation (G4int id) const
 
G4bool SetH1Title (G4int id, const G4String &title)
 
G4bool SetH1XAxisTitle (G4int id, const G4String &title)
 
G4bool SetH1YAxisTitle (G4int id, const G4String &title)
 
G4bool SetH2Title (G4int id, const G4String &title)
 
G4bool SetH2XAxisTitle (G4int id, const G4String &title)
 
G4bool SetH2YAxisTitle (G4int id, const G4String &title)
 
G4bool SetH2ZAxisTitle (G4int id, const G4String &title)
 
G4bool SetH3Title (G4int id, const G4String &title)
 
G4bool SetH3XAxisTitle (G4int id, const G4String &title)
 
G4bool SetH3YAxisTitle (G4int id, const G4String &title)
 
G4bool SetH3ZAxisTitle (G4int id, const G4String &title)
 
G4bool SetP1Title (G4int id, const G4String &title)
 
G4bool SetP1XAxisTitle (G4int id, const G4String &title)
 
G4bool SetP1YAxisTitle (G4int id, const G4String &title)
 
G4bool SetP2Title (G4int id, const G4String &title)
 
G4bool SetP2XAxisTitle (G4int id, const G4String &title)
 
G4bool SetP2YAxisTitle (G4int id, const G4String &title)
 
G4bool SetP2ZAxisTitle (G4int id, const G4String &title)
 
G4String GetH1Title (G4int id) const
 
G4String GetH1XAxisTitle (G4int id) const
 
G4String GetH1YAxisTitle (G4int id) const
 
G4String GetH2Title (G4int id) const
 
G4String GetH2XAxisTitle (G4int id) const
 
G4String GetH2YAxisTitle (G4int id) const
 
G4String GetH2ZAxisTitle (G4int id) const
 
G4String GetH3Title (G4int id) const
 
G4String GetH3XAxisTitle (G4int id) const
 
G4String GetH3YAxisTitle (G4int id) const
 
G4String GetH3ZAxisTitle (G4int id) const
 
G4String GetP1Title (G4int id) const
 
G4String GetP1XAxisTitle (G4int id) const
 
G4String GetP1YAxisTitle (G4int id) const
 
G4String GetP1ZAxisTitle (G4int id) const
 
G4String GetP2Title (G4int id) const
 
G4String GetP2XAxisTitle (G4int id) const
 
G4String GetP2YAxisTitle (G4int id) const
 
G4String GetP2ZAxisTitle (G4int id) const
 
void SetVerboseLevel (G4int verboseLevel)
 
G4int GetVerboseLevel () const
 
G4String GetType () const
 
G4String GetFileType () const
 

Static Public Member Functions

static G4RootAnalysisManagerInstance ()
 
static G4bool IsInstance ()
 

Protected Member Functions

virtual G4bool OpenFileImpl (const G4String &fileName) final
 
virtual G4bool WriteImpl () final
 
virtual G4bool CloseFileImpl () final
 
virtual G4bool IsOpenFileImpl () const final
 
- Protected Member Functions inherited from G4ToolsAnalysisManager
virtual G4bool PlotImpl () final
 
virtual G4bool MergeImpl (tools::histo::hmpi *hmpi) final
 
G4bool Reset ()
 
- Protected Member Functions inherited from G4VAnalysisManager
void SetH1Manager (G4VH1Manager *h1Manager)
 
void SetH2Manager (G4VH2Manager *h2Manager)
 
void SetH3Manager (G4VH3Manager *h3Manager)
 
void SetP1Manager (G4VP1Manager *p1Manager)
 
void SetP2Manager (G4VP2Manager *p2Manager)
 
void SetNtupleManager (G4VNtupleManager *ntupleManager)
 
void SetFileManager (std::shared_ptr< G4VFileManager > fileManager)
 
G4bool WriteAscii (const G4String &fileName)
 

Private Member Functions

template<typename T >
G4bool WriteT (const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
 
G4bool WriteH1 ()
 
G4bool WriteH2 ()
 
G4bool WriteH3 ()
 
G4bool WriteP1 ()
 
G4bool WriteP2 ()
 
G4bool Reset ()
 

Private Attributes

G4RootNtupleManagerfNtupleManager
 
std::shared_ptr< G4RootFileManagerfFileManager
 

Static Private Attributes

static G4RootAnalysisManagerfgMasterInstance = nullptr
 
static G4ThreadLocal G4RootAnalysisManagerfgInstance = nullptr
 

Additional Inherited Members

- Protected Attributes inherited from G4ToolsAnalysisManager
G4H1ToolsManagerfH1Manager
 
G4H2ToolsManagerfH2Manager
 
G4H3ToolsManagerfH3Manager
 
G4P1ToolsManagerfP1Manager
 
G4P2ToolsManagerfP2Manager
 
- Protected Attributes inherited from G4VAnalysisManager
G4AnalysisManagerState fState
 
std::shared_ptr< G4VFileManagerfVFileManager
 

Detailed Description

Definition at line 53 of file G4RootAnalysisManager.hh.

Constructor & Destructor Documentation

◆ G4RootAnalysisManager()

G4RootAnalysisManager::G4RootAnalysisManager ( G4bool  isMaster = true)
explicit

Definition at line 77 of file G4RootAnalysisManager.cc.

78  : G4ToolsAnalysisManager("Root", isMaster),
79  fNtupleManager(nullptr),
80  fFileManager(nullptr)
81 {
82  if ( ( isMaster && fgMasterInstance ) || ( fgInstance ) ) {
83  G4ExceptionDescription description;
84  description
85  << " "
86  << "G4RootAnalysisManager already exists."
87  << "Cannot create another instance.";
88  G4Exception("G4RootAnalysisManager::G4RootAnalysisManager()",
89  "Analysis_F001", FatalException, description);
90  }
91  if ( isMaster ) fgMasterInstance = this;
92  fgInstance = this;
93 
94  // Create managers
96  fFileManager = std::make_shared<G4RootFileManager>(fState);
97  // The managers will be deleted by the base class
98 
99  // Set managers to base class which takes then their ownership
102 }
static G4RootAnalysisManager * fgMasterInstance
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
static G4ThreadLocal G4RootAnalysisManager * fgInstance
G4RootNtupleManager * fNtupleManager
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetFileManager(std::shared_ptr< G4VFileManager > fileManager)
G4AnalysisManagerState fState
G4ToolsAnalysisManager(const G4String &type, G4bool isMaster=true)
void SetNtupleManager(G4VNtupleManager *ntupleManager)
std::shared_ptr< G4RootFileManager > fFileManager
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~G4RootAnalysisManager()

G4RootAnalysisManager::~G4RootAnalysisManager ( )
virtual

Definition at line 105 of file G4RootAnalysisManager.cc.

106 {
107  if ( fState.GetIsMaster() ) fgMasterInstance = nullptr;
108  fgInstance = nullptr;
109 }
static G4RootAnalysisManager * fgMasterInstance
static G4ThreadLocal G4RootAnalysisManager * fgInstance
G4AnalysisManagerState fState
Here is the call graph for this function:

Member Function Documentation

◆ BeginConstNtuple()

std::vector<tools::wroot::ntuple*>::const_iterator G4RootAnalysisManager::BeginConstNtuple ( ) const

◆ BeginNtuple()

std::vector<tools::wroot::ntuple*>::iterator G4RootAnalysisManager::BeginNtuple ( )

◆ CloseFileImpl()

G4bool G4RootAnalysisManager::CloseFileImpl ( )
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 340 of file G4RootAnalysisManager.cc.

341 {
342  auto finalResult = true;
343 
344 #ifdef G4VERBOSE
345  if ( fState.GetVerboseL4() )
347  ->Message("close", "file", fFileManager->GetFullFileName());
348 #endif
349 
350  // reset data
351  auto result = Reset();
352  if ( ! result ) {
353  G4ExceptionDescription description;
354  description << " " << "Resetting data failed";
355  G4Exception("G4RootAnalysisManager::Write()",
356  "Analysis_W021", JustWarning, description);
357  }
358  finalResult = finalResult && result;
359 
360  // close file
361  fFileManager->CloseFile();
362 
363  // No files clean-up in sequential mode
364  if ( ! G4Threading::IsMultithreadedApplication() ) return finalResult;
365 
366  // Delete files if empty in MT mode
367  if ( ( fState.GetIsMaster() &&
370  ( ( ! fState.GetIsMaster() ) && fNtupleManager->IsEmpty() ) ) {
371  result = ! std::remove(fFileManager->GetFullFileName());
372  // std::remove returns 0 when success
373  if ( ! result ) {
374  G4ExceptionDescription description;
375  description << " " << "Removing file "
376  << fFileManager->GetFullFileName() << " failed";
377  G4Exception("G4XmlAnalysisManager::CloseFile()",
378  "Analysis_W021", JustWarning, description);
379  }
380  finalResult = finalResult && result;
381 #ifdef G4VERBOSE
382  if ( fState.GetVerboseL1() )
384  ->Message("delete", "empty file", fFileManager->GetFullFileName());
385 #endif
386  }
387  else {
388 #ifdef G4VERBOSE
389  if ( fState.GetVerboseL1() )
391  ->Message("close", "file", fFileManager->GetFullFileName());
392 #endif
393  }
394 
395  return finalResult;
396 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4RootNtupleManager * fNtupleManager
G4bool IsEmpty() const
const G4AnalysisVerbose * GetVerboseL1() const
G4bool IsMultithreadedApplication()
Definition: G4Threading.cc:142
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4AnalysisVerbose * GetVerboseL4() const
G4AnalysisManagerState fState
G4bool IsEmpty() const
std::shared_ptr< G4RootFileManager > fFileManager
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
Here is the call graph for this function:

◆ EndConstNtuple()

std::vector<tools::wroot::ntuple*>::const_iterator G4RootAnalysisManager::EndConstNtuple ( ) const

◆ EndNtuple()

std::vector<tools::wroot::ntuple*>::iterator G4RootAnalysisManager::EndNtuple ( )

◆ GetNtuple() [1/2]

tools::wroot::ntuple* G4RootAnalysisManager::GetNtuple ( ) const

◆ GetNtuple() [2/2]

tools::wroot::ntuple* G4RootAnalysisManager::GetNtuple ( G4int  ntupleId) const

◆ Instance()

G4RootAnalysisManager * G4RootAnalysisManager::Instance ( void  )
static

Definition at line 60 of file G4RootAnalysisManager.cc.

61 {
62  if ( fgInstance == nullptr ) {
63  G4bool isMaster = ! G4Threading::IsWorkerThread();
64  fgInstance = new G4RootAnalysisManager(isMaster);
65  }
66 
67  return fgInstance;
68 }
static G4ThreadLocal G4RootAnalysisManager * fgInstance
bool G4bool
Definition: G4Types.hh:79
G4RootAnalysisManager(G4bool isMaster=true)
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsInstance()

G4bool G4RootAnalysisManager::IsInstance ( )
static

Definition at line 71 of file G4RootAnalysisManager.cc.

72 {
73  return ( fgInstance != 0 );
74 }
static G4ThreadLocal G4RootAnalysisManager * fgInstance

◆ IsOpenFileImpl()

virtual G4bool G4RootAnalysisManager::IsOpenFileImpl ( ) const
finalprotectedvirtual

Implements G4VAnalysisManager.

◆ OpenFileImpl()

G4bool G4RootAnalysisManager::OpenFileImpl ( const G4String fileName)
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 261 of file G4RootAnalysisManager.cc.

262 {
263  auto finalResult = true;
264  auto result = fFileManager->SetFileName(fileName);
265  finalResult = finalResult && result;
266 
267 #ifdef G4VERBOSE
268  G4String name = fFileManager->GetFullFileName();
269  if ( fState.GetVerboseL4() )
270  fState.GetVerboseL4()->Message("open", "analysis file", name);
271 #endif
272 
273  result = fFileManager->OpenFile(fileName);
274  finalResult = finalResult && result;
275 
276  fNtupleManager->SetNtupleDirectory(fFileManager->GetNtupleDirectory());
278 
279 #ifdef G4VERBOSE
280  if ( fState.GetVerboseL1() )
281  fState.GetVerboseL1()->Message("open", "analysis file", name);
282 #endif
283 
284  return finalResult;
285 }
G4String name
Definition: TRTMaterials.hh:40
void CreateNtuplesFromBooking()
G4RootNtupleManager * fNtupleManager
const G4AnalysisVerbose * GetVerboseL1() const
const G4AnalysisVerbose * GetVerboseL4() const
G4AnalysisManagerState fState
std::shared_ptr< G4RootFileManager > fFileManager
void SetNtupleDirectory(tools::wroot::directory *directory)
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
Here is the call graph for this function:

◆ Reset()

G4bool G4RootAnalysisManager::Reset ( )
private

Definition at line 241 of file G4RootAnalysisManager.cc.

242 {
243 // Reset histograms and ntuple
244 
245  auto finalResult = true;
246 
247  auto result = G4ToolsAnalysisManager::Reset();
248  finalResult = finalResult && result;
249 
250  result = fNtupleManager->Reset(false);
251  finalResult = finalResult && result;
252 
253  return finalResult;
254 }
G4bool Reset(G4bool deleteNtuple)
G4RootNtupleManager * fNtupleManager
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteH1()

G4bool G4RootAnalysisManager::WriteH1 ( )
private

Definition at line 116 of file G4RootAnalysisManager.cc.

117 {
118  auto h1Vector = fH1Manager->GetH1Vector();
119  auto hnVector = fH1Manager->GetHnVector();
120 
121  if ( ! h1Vector.size() ) return true;
122 
123  auto result = true;
124 
125  if ( ! G4Threading::IsWorkerThread() ) {
126  auto directory = fFileManager->GetHistoDirectory();
127  result = WriteT(h1Vector, hnVector, directory, "h1");
128  }
129  else {
130  // The worker manager just adds its histograms to the master
131  // This operation needs a lock
132  G4AutoLock lH1(&mergeH1Mutex);
134  lH1.unlock();
135  }
136 
137  return result;
138 }
static G4RootAnalysisManager * fgMasterInstance
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
const std::vector< tools::histo::h1d * > & GetH1Vector() const
void AddH1Vector(const std::vector< tools::histo::h1d *> &h1Vector)
std::shared_ptr< G4RootFileManager > fFileManager
const std::vector< G4HnInformation * > & GetHnVector() const
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteH2()

G4bool G4RootAnalysisManager::WriteH2 ( )
private

Definition at line 141 of file G4RootAnalysisManager.cc.

142 {
143  auto h2Vector = fH2Manager->GetH2Vector();
144  auto hnVector = fH2Manager->GetHnVector();
145 
146  if ( ! h2Vector.size() ) return true;
147 
148  auto result = true;
149 
150  if ( ! G4Threading::IsWorkerThread() ) {
151  auto directory = fFileManager->GetHistoDirectory();
152  result = WriteT(h2Vector, hnVector, directory, "h2");
153  }
154  else {
155  // The worker manager just adds its histograms to the master
156  // This operation needs a lock
157  G4AutoLock lH2(&mergeH2Mutex);
159  lH2.unlock();
160  }
161 
162  return result;
163 }
static G4RootAnalysisManager * fgMasterInstance
void AddH2Vector(const std::vector< tools::histo::h2d *> &h2Vector)
const std::vector< G4HnInformation * > & GetHnVector() const
const std::vector< tools::histo::h2d * > & GetH2Vector() const
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
std::shared_ptr< G4RootFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteH3()

G4bool G4RootAnalysisManager::WriteH3 ( )
private

Definition at line 166 of file G4RootAnalysisManager.cc.

167 {
168  auto h3Vector = fH3Manager->GetH3Vector();
169  auto hnVector = fH3Manager->GetHnVector();
170 
171  if ( ! h3Vector.size() ) return true;
172 
173  auto result = true;
174 
175  if ( ! G4Threading::IsWorkerThread() ) {
176  auto directory = fFileManager->GetHistoDirectory();
177  result = WriteT(h3Vector, hnVector, directory, "h3");
178  }
179  else {
180  // The worker manager just adds its histograms to the master
181  // This operation needs a lock
182  G4AutoLock lH3(&mergeH3Mutex);
184  lH3.unlock();
185  }
186 
187  return result;
188 }
static G4RootAnalysisManager * fgMasterInstance
const std::vector< G4HnInformation * > & GetHnVector() const
const std::vector< tools::histo::h3d * > & GetH3Vector() const
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
void AddH3Vector(const std::vector< tools::histo::h3d *> &h3Vector)
std::shared_ptr< G4RootFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteImpl()

G4bool G4RootAnalysisManager::WriteImpl ( )
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 288 of file G4RootAnalysisManager.cc.

289 {
290 
291  auto finalResult = true;
292 
293  if ( ! fgMasterInstance &&
294  ( ( ! fH1Manager->IsEmpty() ) || ( ! fH2Manager->IsEmpty() ) ||
295  ( ! fH3Manager->IsEmpty() ) || ( ! fP1Manager->IsEmpty() ) ||
296  ( ! fP2Manager->IsEmpty() ) ) ) {
297  G4ExceptionDescription description;
298  description
299  << " " << "No master G4RootAnalysisManager instance exists."
300  << G4endl
301  << " " << "Histogram/profile data will not be merged.";
302  G4Exception("G4RootAnalysisManager::Write()",
303  "Analysis_W031", JustWarning, description);
304  }
305 
306  // H1
307  auto result = WriteH1();
308  finalResult = finalResult && result;
309 
310  // H2
311  result = WriteH2();
312  finalResult = finalResult && result;
313 
314  // H3
315  result = WriteH3();
316  finalResult = finalResult && result;
317 
318  // P1
319  result = WriteP1();
320  finalResult = finalResult && result;
321 
322  // P2
323  result = WriteP2();
324  finalResult = finalResult && result;
325 
326  // File
327  result = fFileManager->WriteFile();
328  finalResult = finalResult && result;
329 
330  // Write ASCII if activated
331  if ( IsAscii() ) {
332  result = WriteAscii(fFileManager->GetFileName());
333  finalResult = finalResult && result;
334  }
335 
336  return finalResult;
337 }
static G4RootAnalysisManager * fgMasterInstance
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
G4bool IsEmpty() const
std::shared_ptr< G4RootFileManager > fFileManager
G4bool WriteAscii(const G4String &fileName)
Here is the call graph for this function:

◆ WriteP1()

G4bool G4RootAnalysisManager::WriteP1 ( )
private

Definition at line 191 of file G4RootAnalysisManager.cc.

192 {
193  auto p1Vector = fP1Manager->GetP1Vector();
194  auto hnVector = fP1Manager->GetHnVector();
195 
196  if ( ! p1Vector.size() ) return true;
197 
198  auto result = true;
199 
200  if ( ! G4Threading::IsWorkerThread() ) {
201  auto directory = fFileManager->GetHistoDirectory();
202  result = WriteT(p1Vector, hnVector, directory, "p1");
203  }
204  else {
205  // The worker manager just adds its histograms to the master
206  // This operation needs a lock
207  G4AutoLock lP1(&mergeP1Mutex);
209  lP1.unlock();
210  }
211 
212  return result;
213 }
static G4RootAnalysisManager * fgMasterInstance
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
const std::vector< G4HnInformation * > & GetHnVector() const
const std::vector< tools::histo::p1d * > & GetP1Vector() const
void AddP1Vector(const std::vector< tools::histo::p1d *> &p1Vector)
std::shared_ptr< G4RootFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteP2()

G4bool G4RootAnalysisManager::WriteP2 ( )
private

Definition at line 216 of file G4RootAnalysisManager.cc.

217 {
218  auto p2Vector = fP2Manager->GetP2Vector();
219  auto hnVector = fP2Manager->GetHnVector();
220 
221  if ( ! p2Vector.size() ) return true;
222 
223  auto result = true;
224 
225  if ( ! G4Threading::IsWorkerThread() ) {
226  auto directory = fFileManager->GetHistoDirectory();
227  result = WriteT(p2Vector, hnVector, directory, "p2");
228  }
229  else {
230  // The worker manager just adds its histograms to the master
231  // This operation needs a lock
232  G4AutoLock lP2(&mergeP2Mutex);
234  lP2.unlock();
235  }
236 
237  return result;
238 }
static G4RootAnalysisManager * fgMasterInstance
void AddP2Vector(const std::vector< tools::histo::p2d *> &p2Vector)
const std::vector< G4HnInformation * > & GetHnVector() const
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
std::shared_ptr< G4RootFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, tools::wroot::directory *directory, const G4String &hnType)
const std::vector< tools::histo::p2d * > & GetP2Vector() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteT()

template<typename T >
G4bool G4RootAnalysisManager::WriteT ( const std::vector< T *> &  htVector,
const std::vector< G4HnInformation *> &  hnVector,
tools::wroot::directory *  directory,
const G4String hnType 
)
private
Here is the caller graph for this function:

Member Data Documentation

◆ fFileManager

std::shared_ptr<G4RootFileManager> G4RootAnalysisManager::fFileManager
private

Definition at line 100 of file G4RootAnalysisManager.hh.

◆ fgInstance

G4ThreadLocal G4RootAnalysisManager * G4RootAnalysisManager::fgInstance = nullptr
staticprivate

Definition at line 83 of file G4RootAnalysisManager.hh.

◆ fgMasterInstance

G4RootAnalysisManager * G4RootAnalysisManager::fgMasterInstance = nullptr
staticprivate

Definition at line 82 of file G4RootAnalysisManager.hh.

◆ fNtupleManager

G4RootNtupleManager* G4RootAnalysisManager::fNtupleManager
private

Definition at line 99 of file G4RootAnalysisManager.hh.


The documentation for this class was generated from the following files: