Geant4  10.02.p03
G4XmlAnalysisManager Class Reference

#include <G4XmlAnalysisManager.hh>

Inheritance diagram for G4XmlAnalysisManager:
Collaboration diagram for G4XmlAnalysisManager:

Public Member Functions

 G4XmlAnalysisManager (G4bool isMaster=true)
 
 ~G4XmlAnalysisManager ()
 
tools::waxml::ntupleGetNtuple () const
 
tools::waxml::ntupleGetNtuple (G4int ntupleId) const
 
std::vector< tools::waxml::ntuple * >::iterator BeginNtuple ()
 
std::vector< tools::waxml::ntuple * >::iterator EndNtuple ()
 
std::vector< tools::waxml::ntuple * >::const_iterator BeginConstNtuple () const
 
std::vector< tools::waxml::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 G4XmlAnalysisManagerInstance ()
 
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, const G4String &directoryName, const G4String &hnType)
 
G4bool WriteH1 ()
 
G4bool WriteH2 ()
 
G4bool WriteH3 ()
 
G4bool WriteP1 ()
 
G4bool WriteP2 ()
 
G4bool WriteNtuple ()
 
G4bool CloseNtupleFiles ()
 
G4bool Reset ()
 

Private Attributes

G4XmlNtupleManagerfNtupleManager
 
std::shared_ptr< G4XmlFileManagerfFileManager
 

Static Private Attributes

static G4XmlAnalysisManagerfgMasterInstance = nullptr
 
static G4ThreadLocal G4XmlAnalysisManagerfgInstance = 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 46 of file G4XmlAnalysisManager.hh.

Constructor & Destructor Documentation

◆ G4XmlAnalysisManager()

G4XmlAnalysisManager::G4XmlAnalysisManager ( G4bool  isMaster = true)
explicit

Definition at line 73 of file G4XmlAnalysisManager.cc.

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

◆ ~G4XmlAnalysisManager()

G4XmlAnalysisManager::~G4XmlAnalysisManager ( )

Definition at line 102 of file G4XmlAnalysisManager.cc.

103 {
104  if ( fState.GetIsMaster() ) fgMasterInstance = nullptr;
105  fgInstance = nullptr;
106 }
static G4XmlAnalysisManager * fgMasterInstance
static G4ThreadLocal G4XmlAnalysisManager * fgInstance
G4AnalysisManagerState fState
Here is the call graph for this function:

Member Function Documentation

◆ BeginConstNtuple()

std::vector<tools::waxml::ntuple*>::const_iterator G4XmlAnalysisManager::BeginConstNtuple ( ) const

◆ BeginNtuple()

std::vector<tools::waxml::ntuple*>::iterator G4XmlAnalysisManager::BeginNtuple ( )

◆ CloseFileImpl()

G4bool G4XmlAnalysisManager::CloseFileImpl ( )
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 387 of file G4XmlAnalysisManager.cc.

388 {
389  auto finalResult = true;
390 
391 #ifdef G4VERBOSE
392  if ( fState.GetVerboseL4() )
393  fState.GetVerboseL4()->Message("close", "files", "");
394 #endif
395 
396  // Unlock file name only
397  auto result = fFileManager->CloseFile();
398  finalResult = finalResult && result;
399 
400  // Close Hn file
401  result = fFileManager->CloseHnFile();
402  finalResult = finalResult && result;
403 
404  // Close ntuple files
405  result = CloseNtupleFiles();
406  finalResult = finalResult && result;
407 
408  // reset data
409  result = Reset();
410  if ( ! result ) {
411  G4ExceptionDescription description;
412  description << " " << "Resetting data failed";
413  G4Exception("G4XmlAnalysisManager::CloseFile()",
414  "Analysis_W021", JustWarning, description);
415  }
416  finalResult = finalResult && result;
417 
418  // delete files if empty
419  // (ntuple files are created only if an ntuple is created)
420  if ( fFileManager->GetHnFile().get() &&
422  fP1Manager->IsEmpty() && fP2Manager->IsEmpty() ) {
423  result = ! std::remove(fFileManager->GetFullFileName());
424  // std::remove returns 0 when success
425  if ( ! result ) {
426  G4ExceptionDescription description;
427  description << " " << "Removing file "
428  << fFileManager->GetFullFileName() << " failed";
429  G4Exception("G4XmlAnalysisManager::CloseFile()",
430  "Analysis_W021", JustWarning, description);
431  }
432  finalResult = finalResult && result;
433 #ifdef G4VERBOSE
434  if ( fState.GetVerboseL1() )
436  ->Message("delete", "empty file", fFileManager->GetFullFileName());
437 #endif
438  }
439  else {
440 #ifdef G4VERBOSE
441  if ( fState.GetVerboseL2() )
443  ->Message("close", "files", "");
444 #endif
445  }
446 
447  return finalResult;
448 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL1() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::shared_ptr< G4XmlFileManager > fFileManager
const G4AnalysisVerbose * GetVerboseL4() const
G4AnalysisManagerState fState
G4bool IsEmpty() const
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
Here is the call graph for this function:

◆ CloseNtupleFiles()

G4bool G4XmlAnalysisManager::CloseNtupleFiles ( )
private

Definition at line 250 of file G4XmlAnalysisManager.cc.

251 {
252  auto ntupleDescriptionVector = fNtupleManager->GetNtupleDescriptionVector();
253 
254  // Close ntuple files
255  for ( auto ntupleDescription : ntupleDescriptionVector) {
256  fFileManager->CloseNtupleFile((ntupleDescription));
257  }
258 
259  return true;
260 }
const std::vector< NtupleDescriptionType * > & GetNtupleDescriptionVector() const
G4XmlNtupleManager * fNtupleManager
std::shared_ptr< G4XmlFileManager > fFileManager
Here is the call graph for this function:
Here is the caller graph for this function:

◆ EndConstNtuple()

std::vector<tools::waxml::ntuple*>::const_iterator G4XmlAnalysisManager::EndConstNtuple ( ) const

◆ EndNtuple()

std::vector<tools::waxml::ntuple*>::iterator G4XmlAnalysisManager::EndNtuple ( )

◆ GetNtuple() [1/2]

tools::waxml::ntuple* G4XmlAnalysisManager::GetNtuple ( ) const

◆ GetNtuple() [2/2]

tools::waxml::ntuple* G4XmlAnalysisManager::GetNtuple ( G4int  ntupleId) const

◆ Instance()

G4XmlAnalysisManager * G4XmlAnalysisManager::Instance ( void  )
static

Definition at line 56 of file G4XmlAnalysisManager.cc.

57 {
58  if ( fgInstance == nullptr ) {
59  G4bool isMaster = ! G4Threading::IsWorkerThread();
60  fgInstance = new G4XmlAnalysisManager(isMaster);
61  }
62 
63  return fgInstance;
64 }
G4XmlAnalysisManager(G4bool isMaster=true)
static G4ThreadLocal G4XmlAnalysisManager * fgInstance
bool G4bool
Definition: G4Types.hh:79
G4bool IsWorkerThread()
Definition: G4Threading.cc:135
Here is the call graph for this function:

◆ IsInstance()

G4bool G4XmlAnalysisManager::IsInstance ( )
static

Definition at line 67 of file G4XmlAnalysisManager.cc.

68 {
69  return ( fgInstance != 0 );
70 }
static G4ThreadLocal G4XmlAnalysisManager * fgInstance

◆ IsOpenFileImpl()

virtual G4bool G4XmlAnalysisManager::IsOpenFileImpl ( ) const
finalprotectedvirtual

Implements G4VAnalysisManager.

◆ OpenFileImpl()

G4bool G4XmlAnalysisManager::OpenFileImpl ( const G4String fileName)
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 284 of file G4XmlAnalysisManager.cc.

285 {
286  auto finalResult = true;
287  auto result = fFileManager->SetFileName(fileName);
288  finalResult = finalResult && result;
289 
290 #ifdef G4VERBOSE
291  auto name = fFileManager->GetFullFileName();
292  if ( fState.GetVerboseL4() ) {
293  fState.GetVerboseL4()->Message("open", "analysis file", name);
294  }
295 #endif
296 
297  // Only lock file name in file manager
298  result = fFileManager->OpenFile(fileName);
299  finalResult = finalResult && result;
300 
301  // Create histograms file (on master)
302  if ( fState.GetIsMaster() ) {
303  result = fFileManager->CreateHnFile();
304  finalResult = finalResult && result;
305  }
306 
307  // Create ntuples if they are booked
308  // (The files will be created with creating ntuples)
310 
311 #ifdef G4VERBOSE
312  if ( fState.GetVerboseL1() )
313  fState.GetVerboseL1()->Message("open", "analysis file", name);
314 #endif
315 
316  return finalResult;
317 }
G4String name
Definition: TRTMaterials.hh:40
void CreateNtuplesFromBooking()
const G4AnalysisVerbose * GetVerboseL1() const
G4XmlNtupleManager * fNtupleManager
std::shared_ptr< G4XmlFileManager > fFileManager
const G4AnalysisVerbose * GetVerboseL4() const
G4AnalysisManagerState fState
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 G4XmlAnalysisManager::Reset ( )
private

Definition at line 264 of file G4XmlAnalysisManager.cc.

265 {
266 // Reset histograms and ntuple
267 
268  auto finalResult = true;
269 
270  auto result = G4ToolsAnalysisManager::Reset();
271  finalResult = finalResult && result;
272 
273  result = fNtupleManager->Reset(true);
274  finalResult = finalResult && result;
275 
276  return finalResult;
277 }
G4bool Reset(G4bool deleteNtuple)
G4XmlNtupleManager * fNtupleManager
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteH1()

G4bool G4XmlAnalysisManager::WriteH1 ( )
private

Definition at line 113 of file G4XmlAnalysisManager.cc.

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

◆ WriteH2()

G4bool G4XmlAnalysisManager::WriteH2 ( )
private

Definition at line 138 of file G4XmlAnalysisManager.cc.

139 {
140  auto h2Vector = fH2Manager->GetH2Vector();
141  auto hnVector = fH2Manager->GetHnVector();
142 
143  if ( ! h2Vector.size() ) return true;
144 
145  auto result = true;
146 
147  if ( ! G4Threading::IsWorkerThread() ) {
148  auto directoryName = fFileManager->GetHistoDirectoryName();
149  result = WriteT(h2Vector, hnVector, directoryName, "h2");
150  }
151  else {
152  // The worker manager just adds its histograms to the master
153  // This operation needs a lock
154  G4AutoLock lH2(&mergeH2Mutex);
156  lH2.unlock();
157  }
158 
159  return result;
160 }
static G4XmlAnalysisManager * 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< G4XmlFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, const G4String &directoryName, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteH3()

G4bool G4XmlAnalysisManager::WriteH3 ( )
private

Definition at line 163 of file G4XmlAnalysisManager.cc.

164 {
165  auto h3Vector = fH3Manager->GetH3Vector();
166  auto hnVector = fH3Manager->GetHnVector();
167 
168  if ( ! h3Vector.size() ) return true;
169 
170  auto result = true;
171 
172  if ( ! G4Threading::IsWorkerThread() ) {
173  auto directoryName = fFileManager->GetHistoDirectoryName();
174  result = WriteT(h3Vector, hnVector, directoryName, "h3");
175  }
176  else {
177  // The worker manager just adds its histograms to the master
178  // This operation needs a lock
179  G4AutoLock lH3(&mergeH3Mutex);
181  lH3.unlock();
182  }
183 
184  return result;
185 }
static G4XmlAnalysisManager * 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< G4XmlFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, const G4String &directoryName, const G4String &hnType)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteImpl()

G4bool G4XmlAnalysisManager::WriteImpl ( )
finalprotectedvirtual

Implements G4VAnalysisManager.

Definition at line 320 of file G4XmlAnalysisManager.cc.

321 {
322  auto finalResult = true;
323 
324 #ifdef G4VERBOSE
325  auto name = fFileManager->GetFullFileName();
326  if ( fState.GetVerboseL4() )
327  fState.GetVerboseL4()->Message("write", "files", name);
328 #endif
329 
330  // ntuples
331  WriteNtuple();
332 
333  if ( ! fgMasterInstance &&
334  ( ( ! fH1Manager->IsEmpty() ) || ( ! fH2Manager->IsEmpty() ) ||
335  ( ! fH3Manager->IsEmpty() ) || ( ! fP1Manager->IsEmpty() ) ||
336  ( ! fP2Manager->IsEmpty() ) ) ) {
337 
338  G4ExceptionDescription description;
339  description
340  << " " << "No master G4XmlAnalysisManager instance exists."
341  << G4endl
342  << " " << "Histogram data will not be merged.";
343  G4Exception("G4XmlAnalysisManager::Write()",
344  "Analysis_W031", JustWarning, description);
345 
346  // Create Hn file per thread
347  auto result = fFileManager->CreateHnFile();
348  if ( ! result ) return false;
349  }
350 
351  // H1
352  auto result = WriteH1();
353  finalResult = finalResult && result;
354 
355  // H2
356  result = WriteH2();
357  finalResult = finalResult && result;
358 
359  // H3
360  result = WriteH3();
361  finalResult = finalResult && result;
362 
363  // P1
364  result = WriteP1();
365  finalResult = finalResult && result;
366 
367  // P2
368  result = WriteP2();
369  finalResult = finalResult && result;
370 
371  // Write ASCII if activated
372  if ( IsAscii() ) {
373  result = WriteAscii(fFileManager->GetFileName());
374  finalResult = finalResult && result;
375  }
376 
377 #ifdef G4VERBOSE
378  if ( fState.GetVerboseL1() )
380  ->Message("write", "file", fFileManager->GetFullFileName(), finalResult);
381 #endif
382 
383  return finalResult;
384 }
static G4XmlAnalysisManager * fgMasterInstance
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4String name
Definition: TRTMaterials.hh:40
const G4AnalysisVerbose * GetVerboseL1() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::shared_ptr< G4XmlFileManager > fFileManager
#define G4endl
Definition: G4ios.hh:61
const G4AnalysisVerbose * GetVerboseL4() const
G4AnalysisManagerState fState
G4bool IsEmpty() const
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
G4bool WriteAscii(const G4String &fileName)
Here is the call graph for this function:

◆ WriteNtuple()

G4bool G4XmlAnalysisManager::WriteNtuple ( )
private

Definition at line 238 of file G4XmlAnalysisManager.cc.

239 {
240  auto ntupleVector = fNtupleManager->GetNtupleDescriptionVector();
241 
242  for ( auto ntuple : ntupleVector ) {
243  if ( ntuple->fNtuple ) ntuple->fNtuple->write_trailer();
244  }
245 
246  return true;
247 }
const std::vector< NtupleDescriptionType * > & GetNtupleDescriptionVector() const
G4XmlNtupleManager * fNtupleManager
TTree * ntuple
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteP1()

G4bool G4XmlAnalysisManager::WriteP1 ( )
private

Definition at line 188 of file G4XmlAnalysisManager.cc.

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

◆ WriteP2()

G4bool G4XmlAnalysisManager::WriteP2 ( )
private

Definition at line 213 of file G4XmlAnalysisManager.cc.

214 {
215  auto p2Vector = fP2Manager->GetP2Vector();
216  auto hnVector = fP2Manager->GetHnVector();
217 
218  if ( ! p2Vector.size() ) return true;
219 
220  auto result = true;
221 
222  if ( ! G4Threading::IsWorkerThread() ) {
223  auto directoryName = fFileManager->GetHistoDirectoryName();
224  result = WriteT(p2Vector, hnVector, directoryName, "p2");
225  }
226  else {
227  // The worker manager just adds its profiles to the master
228  // This operation needs a lock
229  G4AutoLock lP2(&mergeP2Mutex);
231  lP2.unlock();
232  }
233 
234  return result;
235 }
static G4XmlAnalysisManager * 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< G4XmlFileManager > fFileManager
G4bool WriteT(const std::vector< T *> &htVector, const std::vector< G4HnInformation *> &hnVector, const G4String &directoryName, 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 G4XmlAnalysisManager::WriteT ( const std::vector< T *> &  htVector,
const std::vector< G4HnInformation *> &  hnVector,
const G4String directoryName,
const G4String hnType 
)
private
Here is the caller graph for this function:

Member Data Documentation

◆ fFileManager

std::shared_ptr<G4XmlFileManager> G4XmlAnalysisManager::fFileManager
private

Definition at line 95 of file G4XmlAnalysisManager.hh.

◆ fgInstance

G4ThreadLocal G4XmlAnalysisManager * G4XmlAnalysisManager::fgInstance = nullptr
staticprivate

Definition at line 76 of file G4XmlAnalysisManager.hh.

◆ fgMasterInstance

G4XmlAnalysisManager * G4XmlAnalysisManager::fgMasterInstance = nullptr
staticprivate

Definition at line 75 of file G4XmlAnalysisManager.hh.

◆ fNtupleManager

G4XmlNtupleManager* G4XmlAnalysisManager::fNtupleManager
private

Definition at line 94 of file G4XmlAnalysisManager.hh.


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