Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions
G4RootAnalysisManager Class Reference

#include <G4RootAnalysisManager.hh>

Inheritance diagram for G4RootAnalysisManager:
G4VAnalysisManager

Public Member Functions

 G4RootAnalysisManager (G4bool isMaster=true)
 
virtual ~G4RootAnalysisManager ()
 
tools::histo::h1d * GetH1 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::histo::h2d * GetH2 (G4int id, G4bool warn=true, G4bool onlyIfActive=true) const
 
tools::wroot::ntuple * GetNtuple () const
 
tools::wroot::ntuple * GetNtuple (G4int ntupleId) const
 
- Public Member Functions inherited from G4VAnalysisManager
 G4VAnalysisManager (const G4String &type, G4bool isMaster)
 
virtual ~G4VAnalysisManager ()
 
G4bool OpenFile ()
 
G4bool OpenFile (const G4String &fileName)
 
G4bool Write ()
 
G4bool CloseFile ()
 
G4bool SetFileName (const G4String &fileName)
 
G4bool SetHistoDirectoryName (const G4String &dirName)
 
G4bool SetNtupleDirectoryName (const G4String &dirName)
 
G4String GetFileName () const
 
G4String GetHistoDirectoryName () const
 
G4String GetNtupleDirectoryName () 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 &xbinScheme="linear", const G4String &ybinScheme="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")
 
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 ScaleH1 (G4int id, G4double factor)
 
G4bool ScaleH2 (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)
 
void FinishNtuple ()
 
G4int CreateNtupleIColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleFColumn (G4int ntupleId, const G4String &name)
 
G4int CreateNtupleDColumn (G4int ntupleId, const G4String &name)
 
void FinishNtuple (G4int ntupleId)
 
G4bool SetFirstHistoId (G4int firstId)
 
G4bool SetFirstH1Id (G4int firstId)
 
G4bool SetFirstH2Id (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 FillNtupleIColumn (G4int id, G4int value)
 
G4bool FillNtupleFColumn (G4int id, G4float value)
 
G4bool FillNtupleDColumn (G4int id, G4double 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 AddNtupleRow (G4int ntupleId)
 
void SetActivation (G4bool activation)
 
G4bool GetActivation () const
 
G4bool IsActive () const
 
G4bool IsAscii () const
 
G4int GetNofH1s () const
 
G4int GetNofH2s () const
 
G4int GetNofNtuples () const
 
G4int GetH1Id (const G4String &name, G4bool warn=true) const
 
G4int GetH2Id (const G4String &name, G4bool warn=true) const
 
void SetH1Activation (G4bool activation)
 
void SetH1Activation (G4int id, G4bool activation)
 
void SetH1Ascii (G4int id, G4bool ascii)
 
void SetH2Activation (G4bool activation)
 
void SetH2Activation (G4int id, G4bool activation)
 
void SetH2Ascii (G4int id, G4bool ascii)
 
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
 
G4String GetH1Name (G4int id) const
 
G4double GetH1Unit (G4int id) const
 
G4bool GetH1Activation (G4int id) const
 
G4bool GetH1Ascii (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 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)
 
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
 
void SetVerboseLevel (G4int verboseLevel)
 
G4int GetVerboseLevel () const
 
G4String GetType () const
 
G4String GetFileType () const
 

Static Public Member Functions

static G4RootAnalysisManagerInstance ()
 

Protected Member Functions

virtual G4bool OpenFileImpl (const G4String &fileName)
 
virtual G4bool WriteImpl ()
 
virtual G4bool CloseFileImpl ()
 
- Protected Member Functions inherited from G4VAnalysisManager
void SetH1Manager (G4VH1Manager *h1Manager)
 
void SetH2Manager (G4VH2Manager *h2Manager)
 
void SetNtupleManager (G4VNtupleManager *ntupleManager)
 
void SetFileManager (G4VFileManager *fileManager)
 
G4bool WriteAscii (const G4String &fileName)
 

Additional Inherited Members

- Protected Attributes inherited from G4VAnalysisManager
G4AnalysisManagerState fState
 

Detailed Description

Definition at line 49 of file G4RootAnalysisManager.hh.

Constructor & Destructor Documentation

G4RootAnalysisManager::G4RootAnalysisManager ( G4bool  isMaster = true)

Definition at line 69 of file G4RootAnalysisManager.cc.

References FatalException, G4VAnalysisManager::fState, G4Exception(), G4VAnalysisManager::SetFileManager(), G4VAnalysisManager::SetH1Manager(), G4VAnalysisManager::SetH2Manager(), and G4VAnalysisManager::SetNtupleManager().

Referenced by Instance().

70  : G4VAnalysisManager("Root", isMaster),
71  fH1Manager(0),
72  fH2Manager(0),
73  fNtupleManager(0),
74  fFileManager(0)
75 {
76  if ( ( isMaster && fgMasterInstance ) || ( fgInstance ) ) {
77  G4ExceptionDescription description;
78  description
79  << " "
80  << "G4RootAnalysisManager already exists."
81  << "Cannot create another instance.";
82  G4Exception("G4RootAnalysisManager::G4RootAnalysisManager()",
83  "Analysis_F001", FatalException, description);
84  }
85  if ( isMaster ) fgMasterInstance = this;
86  fgInstance = this;
87 
88  // Create managers
89  fH1Manager = new G4H1ToolsManager(fState);
90  fH2Manager = new G4H2ToolsManager(fState);
91  fNtupleManager = new G4RootNtupleManager(fState);
92  fFileManager = new G4RootFileManager(fState);
93  // The managers will be deleted by the base class
94 
95  // Set managers to base class
96  SetH1Manager(fH1Manager);
97  SetH2Manager(fH2Manager);
98  SetNtupleManager(fNtupleManager);
99  SetFileManager(fFileManager);
100 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void SetH1Manager(G4VH1Manager *h1Manager)
G4VAnalysisManager(const G4String &type, G4bool isMaster)
void SetFileManager(G4VFileManager *fileManager)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void SetH2Manager(G4VH2Manager *h2Manager)
G4AnalysisManagerState fState
void SetNtupleManager(G4VNtupleManager *ntupleManager)
G4RootAnalysisManager::~G4RootAnalysisManager ( )
virtual

Definition at line 103 of file G4RootAnalysisManager.cc.

References G4VAnalysisManager::fState, and G4AnalysisManagerState::GetIsMaster().

104 {
105  if ( fState.GetIsMaster() ) fgMasterInstance = 0;
106  fgInstance = 0;
107 }
G4AnalysisManagerState fState

Member Function Documentation

G4bool G4RootAnalysisManager::CloseFileImpl ( )
protectedvirtual

Implements G4VAnalysisManager.

Definition at line 296 of file G4RootAnalysisManager.cc.

References G4RootFileManager::CloseFile(), G4VAnalysisManager::fState, G4Exception(), G4VFileManager::GetFullFileName(), G4AnalysisManagerState::GetIsMaster(), G4AnalysisManagerState::GetVerboseL1(), G4AnalysisManagerState::GetVerboseL4(), G4H2ToolsManager::IsEmpty(), G4H1ToolsManager::IsEmpty(), G4RootNtupleManager::IsEmpty(), G4AnalysisManagerState::IsMT(), JustWarning, and G4AnalysisVerbose::Message().

297 {
298  G4bool result = true;
299 
300 #ifdef G4VERBOSE
301  if ( fState.GetVerboseL4() )
303  ->Message("close", "file", fFileManager->GetFullFileName());
304 #endif
305 
306  // reset data
307  result = Reset();
308  if ( ! result ) {
309  G4ExceptionDescription description;
310  description << " " << "Resetting data failed";
311  G4Exception("G4RootAnalysisManager::Write()",
312  "Analysis_W002", JustWarning, description);
313  }
314 
315  // close file
316  fFileManager->CloseFile();
317 
318  // No files clean-up in sequential mode
319  if ( ! fState.IsMT() ) return result;
320 
321  // Delete files if empty in MT mode
322  if ( ( fState.GetIsMaster() &&
323  fH1Manager->IsEmpty() && fH2Manager->IsEmpty() ) ||
324  ( ( ! fState.GetIsMaster() ) && fNtupleManager->IsEmpty() ) ) {
325  std::remove(fFileManager->GetFullFileName());
326 #ifdef G4VERBOSE
327  if ( fState.GetVerboseL1() )
329  ->Message("delete", "empty file", fFileManager->GetFullFileName());
330 #endif
331  }
332  else {
333 #ifdef G4VERBOSE
334  if ( fState.GetVerboseL1() )
336  ->Message("close", "file", fFileManager->GetFullFileName());
337 #endif
338  }
339 
340  return result;
341 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
virtual G4bool CloseFile()
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4String GetFullFileName() const
G4bool IsEmpty() const
const G4AnalysisVerbose * GetVerboseL4() const
bool G4bool
Definition: G4Types.hh:79
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4AnalysisManagerState fState
const G4AnalysisVerbose * GetVerboseL1() const
G4bool IsEmpty() const
tools::histo::h1d* G4RootAnalysisManager::GetH1 ( G4int  id,
G4bool  warn = true,
G4bool  onlyIfActive = true 
) const
tools::histo::h2d* G4RootAnalysisManager::GetH2 ( G4int  id,
G4bool  warn = true,
G4bool  onlyIfActive = true 
) const
tools::wroot::ntuple* G4RootAnalysisManager::GetNtuple ( ) const
tools::wroot::ntuple* G4RootAnalysisManager::GetNtuple ( G4int  ntupleId) const
G4RootAnalysisManager * G4RootAnalysisManager::Instance ( void  )
static

Definition at line 58 of file G4RootAnalysisManager.cc.

References G4RootAnalysisManager(), and G4Threading::IsWorkerThread().

Referenced by Histo::BeginOfHisto(), Histo::Book(), and Histo::Save().

59 {
60  if ( fgInstance == 0 ) {
61  G4bool isMaster = ! G4Threading::IsWorkerThread();
62  fgInstance = new G4RootAnalysisManager(isMaster);
63  }
64 
65  return fgInstance;
66 }
bool G4bool
Definition: G4Types.hh:79
G4RootAnalysisManager(G4bool isMaster=true)
G4bool IsWorkerThread()
Definition: G4Threading.cc:104
G4bool G4RootAnalysisManager::OpenFileImpl ( const G4String fileName)
protectedvirtual

Implements G4VAnalysisManager.

Definition at line 231 of file G4RootAnalysisManager.cc.

References G4RootNtupleManager::CreateNtuplesFromBooking(), G4VAnalysisManager::fState, G4VFileManager::GetFullFileName(), G4RootFileManager::GetNtupleDirectory(), G4AnalysisManagerState::GetVerboseL1(), G4AnalysisManagerState::GetVerboseL4(), G4AnalysisVerbose::Message(), G4RootFileManager::OpenFile(), G4VFileManager::SetFileName(), and G4RootNtupleManager::SetNtupleDirectory().

232 {
233  G4bool finalResult = true;
234  G4bool result = fFileManager->SetFileName(fileName);
235  finalResult = finalResult && result;
236 
237 #ifdef G4VERBOSE
238  G4String name = fFileManager->GetFullFileName();
239  if ( fState.GetVerboseL4() )
240  fState.GetVerboseL4()->Message("open", "analysis file", name);
241 #endif
242 
243  result = fFileManager->OpenFile(fileName);
244  finalResult = finalResult && result;
245 
246  fNtupleManager->SetNtupleDirectory(fFileManager->GetNtupleDirectory());
247  fNtupleManager->CreateNtuplesFromBooking();
248 
249 #ifdef G4VERBOSE
250  if ( fState.GetVerboseL1() )
251  fState.GetVerboseL1()->Message("open", "analysis file", name);
252 #endif
253 
254  return finalResult;
255 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
G4String GetFullFileName() const
const XML_Char * name
const G4AnalysisVerbose * GetVerboseL4() const
bool G4bool
Definition: G4Types.hh:79
tools::wroot::directory * GetNtupleDirectory() const
virtual G4bool OpenFile(const G4String &fileName)
G4bool SetFileName(const G4String &fileName)
G4AnalysisManagerState fState
const G4AnalysisVerbose * GetVerboseL1() const
void SetNtupleDirectory(tools::wroot::directory *directory)
G4bool G4RootAnalysisManager::WriteImpl ( )
protectedvirtual

Implements G4VAnalysisManager.

Definition at line 258 of file G4RootAnalysisManager.cc.

References G4endl, G4Exception(), G4VFileManager::GetFileName(), G4VAnalysisManager::IsAscii(), G4H2ToolsManager::IsEmpty(), G4H1ToolsManager::IsEmpty(), JustWarning, G4VAnalysisManager::WriteAscii(), and G4RootFileManager::WriteFile().

259 {
260 
261  G4bool finalResult = true;
262 
263  if ( ! fgMasterInstance &&
264  ( ( ! fH1Manager->IsEmpty() ) || ( ! fH2Manager->IsEmpty() ) ) ) {
265  G4ExceptionDescription description;
266  description
267  << " " << "No master G4RootAnalysisManager instance exists."
268  << G4endl
269  << " " << "Histogram data will not be merged.";
270  G4Exception("G4RootAnalysisManager::Write()",
271  "Analysis_W014", JustWarning, description);
272  }
273 
274  // H1
275  G4bool result = WriteH1();
276  finalResult = finalResult && result;
277 
278  // H2
279  result = WriteH2();
280  finalResult = finalResult && result;
281 
282  // File
283  result = fFileManager->WriteFile();
284  finalResult = finalResult && result;
285 
286  // Write ASCII if activated
287  if ( IsAscii() ) {
288  result = WriteAscii(fFileManager->GetFileName());
289  finalResult = finalResult && result;
290  }
291 
292  return finalResult;
293 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4bool IsEmpty() const
G4bool IsAscii() const
virtual G4bool WriteFile()
G4String GetFileName() const
bool G4bool
Definition: G4Types.hh:79
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
G4bool WriteAscii(const G4String &fileName)

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