Geant4  10.02.p03
G4CsvNtupleManager Class Reference

#include <G4CsvNtupleManager.hh>

Inheritance diagram for G4CsvNtupleManager:
Collaboration diagram for G4CsvNtupleManager:

Public Member Functions

 G4CsvNtupleManager (const G4AnalysisManagerState &state)
 
 ~G4CsvNtupleManager ()
 
- Public Member Functions inherited from G4TNtupleManager< tools::wcsv::ntuple >
 G4TNtupleManager (const G4AnalysisManagerState &state)
 
 ~G4TNtupleManager ()
 
- Public Member Functions inherited from G4VNtupleManager
 G4VNtupleManager (const G4AnalysisManagerState &state)
 
virtual ~G4VNtupleManager ()
 
 G4VNtupleManager (const G4VNtupleManager &rhs)=delete
 
G4VNtupleManageroperator= (const G4VNtupleManager &rhs)=delete
 
- Public Member Functions inherited from G4BaseAnalysisManager
 G4BaseAnalysisManager (const G4AnalysisManagerState &state)
 
virtual ~G4BaseAnalysisManager ()
 
G4bool SetFirstId (G4int firstId)
 
void SetLockFirstId (G4bool lockFirstId)
 
G4int GetFirstId () const
 

Private Types

using NtupleType = tools::wcsv::ntuple
 
using NtupleDescriptionType = G4TNtupleDescription< NtupleType >
 

Private Member Functions

void SetFileManager (std::shared_ptr< G4CsvFileManager > fileManager)
 
const std::vector< NtupleDescriptionType * > & GetNtupleDescriptionVector () const
 
void SetIsCommentedHeader (G4bool isCommentedHeader)
 
void SetIsHippoHeader (G4bool isHippoHeader)
 
virtual void CreateTNtuple (NtupleDescriptionType *ntupleDescription, const G4String &name, const G4String &title) final
 
virtual void CreateTNtupleFromBooking (NtupleDescriptionType *ntupleDescription) final
 
virtual void FinishTNtuple (NtupleDescriptionType *ntupleDescription) final
 
G4bool WriteHeader (NtupleType *ntuple) const
 

Private Attributes

std::shared_ptr< G4CsvFileManagerfFileManager
 
G4bool fIsCommentedHeader
 
G4bool fIsHippoHeader
 

Friends

class G4CsvAnalysisManager
 

Additional Inherited Members

- Protected Member Functions inherited from G4TNtupleManager< tools::wcsv::ntuple >
void CreateNtuplesFromBooking ()
 
G4bool IsEmpty () const
 
G4bool Reset (G4bool deleteNtuple)
 
virtual G4int CreateNtuple (const G4String &name, const G4String &title) final
 
virtual G4int CreateNtupleIColumn (const G4String &name, std::vector< int > *vector) final
 
virtual G4int CreateNtupleIColumn (G4int ntupleId, const G4String &name, std::vector< int > *vector) final
 
virtual G4int CreateNtupleFColumn (const G4String &name, std::vector< float > *vector) final
 
virtual G4int CreateNtupleFColumn (G4int ntupleId, const G4String &name, std::vector< float > *vector) final
 
virtual G4int CreateNtupleDColumn (const G4String &name, std::vector< double > *vector) final
 
virtual G4int CreateNtupleDColumn (G4int ntupleId, const G4String &name, std::vector< double > *vector) final
 
virtual G4int CreateNtupleSColumn (const G4String &name) final
 
virtual G4int CreateNtupleSColumn (G4int ntupleId, const G4String &name) final
 
virtual void FinishNtuple () final
 
virtual void FinishNtuple (G4int ntupleId) final
 
virtual G4bool FillNtupleIColumn (G4int columnId, G4int value) final
 
virtual G4bool FillNtupleIColumn (G4int ntupleId, G4int columnId, G4int value) final
 
virtual G4bool FillNtupleFColumn (G4int columnId, G4float value) final
 
virtual G4bool FillNtupleFColumn (G4int ntupleId, G4int columnId, G4float value) final
 
virtual G4bool FillNtupleDColumn (G4int columnId, G4double value) final
 
virtual G4bool FillNtupleDColumn (G4int ntupleId, G4int columnId, G4double value) final
 
virtual G4bool FillNtupleSColumn (G4int columnId, const G4String &value) final
 
virtual G4bool FillNtupleSColumn (G4int ntupleId, G4int columnId, const G4String &value) final
 
virtual G4bool AddNtupleRow () final
 
virtual G4bool AddNtupleRow (G4int ntupleId) final
 
virtual void SetActivation (G4bool activation) final
 
virtual void SetActivation (G4int ntupleId, G4bool activation) final
 
virtual G4bool GetActivation (G4int ntupleId) const final
 
tools::wcsv::ntupleGetNtuple () const
 
tools::wcsv::ntupleGetNtuple (G4int ntupleId) const
 
virtual G4int GetNofNtuples () const final
 
std::vector< tools::wcsv::ntuple *>::iterator BeginNtuple ()
 
std::vector< tools::wcsv::ntuple *>::iterator EndNtuple ()
 
std::vector< tools::wcsv::ntuple *>::const_iterator BeginConstNtuple () const
 
std::vector< tools::wcsv::ntuple *>::const_iterator EndConstNtuple () const
 
- Protected Member Functions inherited from G4VNtupleManager
G4bool SetFirstNtupleColumnId (G4int firstId)
 
G4int GetFirstNtupleColumnId () const
 
- Protected Attributes inherited from G4TNtupleManager< tools::wcsv::ntuple >
std::vector< G4TNtupleDescription< tools::wcsv::ntuple > *> fNtupleDescriptionVector
 
std::vector< tools::wcsv::ntuple *> fNtupleVector
 
- Protected Attributes inherited from G4VNtupleManager
G4int fFirstNtupleColumnId
 
G4bool fLockFirstNtupleColumnId
 
- Protected Attributes inherited from G4BaseAnalysisManager
const G4AnalysisManagerStatefState
 
G4int fFirstId
 
G4bool fLockFirstId
 

Detailed Description

Definition at line 44 of file G4CsvNtupleManager.hh.

Member Typedef Documentation

◆ NtupleDescriptionType

◆ NtupleType

Definition at line 54 of file G4CsvNtupleManager.hh.

Constructor & Destructor Documentation

◆ G4CsvNtupleManager()

G4CsvNtupleManager::G4CsvNtupleManager ( const G4AnalysisManagerState state)
explicit

Definition at line 46 of file G4CsvNtupleManager.cc.

48  fFileManager(nullptr),
49  fIsCommentedHeader(true),
50  fIsHippoHeader(false)
51 {}
std::shared_ptr< G4CsvFileManager > fFileManager

◆ ~G4CsvNtupleManager()

G4CsvNtupleManager::~G4CsvNtupleManager ( )

Definition at line 54 of file G4CsvNtupleManager.cc.

55 {}

Member Function Documentation

◆ CreateTNtuple()

void G4CsvNtupleManager::CreateTNtuple ( NtupleDescriptionType ntupleDescription,
const G4String name,
const G4String title 
)
finalprivatevirtual

Definition at line 62 of file G4CsvNtupleManager.cc.

65 {
66  // Create ntuple if the file is open (what means here that
67  // a filename was already set)
68  if ( fFileManager->GetFileName().size() ) {
69  if ( fFileManager->CreateNtupleFile(ntupleDescription) ) {
70  ntupleDescription->fNtuple
71  = new tools::wcsv::ntuple(*(ntupleDescription->fFile));
72  // ntuple object is deleted when closing a file
73  (ntupleDescription->fNtuple)->set_title(title);
74  fNtupleVector.push_back(ntupleDescription->fNtuple);
75  }
76  }
77 }
std::shared_ptr< G4CsvFileManager > fFileManager
std::vector< tools::wcsv::ntuple *> fNtupleVector
TTree * ntuple

◆ CreateTNtupleFromBooking()

void G4CsvNtupleManager::CreateTNtupleFromBooking ( NtupleDescriptionType ntupleDescription)
finalprivatevirtual

Definition at line 80 of file G4CsvNtupleManager.cc.

82 {
83  // create a file for this ntuple
84  if ( ! fFileManager->CreateNtupleFile(ntupleDescription) ) return;
85 
86  // create ntuple
87  ntupleDescription->fNtuple
88  = new tools::wcsv::ntuple(
89  *(ntupleDescription->fFile), G4cerr, ntupleDescription->fNtupleBooking);
90  fNtupleVector.push_back(ntupleDescription->fNtuple);
91 
92  // write header (if activated)
93  if ( ! WriteHeader(ntupleDescription->fNtuple) ) {
94  G4ExceptionDescription description;
95  description << " "
96  << "Writing ntuple header has failed. ";
97  G4Exception("G4CsvNtupleManager::CreateNtupleFromBooking()",
98  "Analysis_W021", JustWarning, description);
99  }
100  }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
std::shared_ptr< G4CsvFileManager > fFileManager
G4bool WriteHeader(NtupleType *ntuple) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
std::vector< tools::wcsv::ntuple *> fNtupleVector
TTree * ntuple
G4GLOB_DLL std::ostream G4cerr
Here is the call graph for this function:

◆ FinishTNtuple()

void G4CsvNtupleManager::FinishTNtuple ( NtupleDescriptionType ntupleDescription)
finalprivatevirtual

Definition at line 103 of file G4CsvNtupleManager.cc.

105 {
106  // Write header if ntuple already exists
107  if ( ! WriteHeader(ntupleDescription->fNtuple) ) {
108  G4ExceptionDescription description;
109  description << " "
110  << "Writing ntuple header has failed. ";
111  G4Exception("G4CsvNtupleManager::FinishTNtuple()",
112  "Analysis_W022", JustWarning, description);
113  }
114 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4bool WriteHeader(NtupleType *ntuple) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
Here is the call graph for this function:

◆ GetNtupleDescriptionVector()

const std::vector< G4TNtupleDescription< tools::wcsv::ntuple > * > & G4CsvNtupleManager::GetNtupleDescriptionVector ( ) const
inlineprivate

Definition at line 94 of file G4CsvNtupleManager.hh.

95 { return fNtupleDescriptionVector; }
std::vector< G4TNtupleDescription< tools::wcsv::ntuple > *> fNtupleDescriptionVector
Here is the caller graph for this function:

◆ SetFileManager()

void G4CsvNtupleManager::SetFileManager ( std::shared_ptr< G4CsvFileManager fileManager)
inlineprivate

Definition at line 90 of file G4CsvNtupleManager.hh.

91 { fFileManager = fileManager; }
std::shared_ptr< G4CsvFileManager > fFileManager
Here is the caller graph for this function:

◆ SetIsCommentedHeader()

void G4CsvNtupleManager::SetIsCommentedHeader ( G4bool  isCommentedHeader)
inlineprivate

Definition at line 97 of file G4CsvNtupleManager.hh.

98 { fIsCommentedHeader = isCommentedHeader; }

◆ SetIsHippoHeader()

void G4CsvNtupleManager::SetIsHippoHeader ( G4bool  isHippoHeader)
inlineprivate

Definition at line 100 of file G4CsvNtupleManager.hh.

101 { fIsHippoHeader = isHippoHeader; }

◆ WriteHeader()

G4bool G4CsvNtupleManager::WriteHeader ( NtupleType ntuple) const
private

Definition at line 117 of file G4CsvNtupleManager.cc.

118 {
119 // Write header if ntuple already exists and if this option is activated.
120 // When both Hippo and Commented headers are selected, only Commented
121 // header, which reading is supported.
122 // Return false only if an error occurred.
123 
124  if ( fIsCommentedHeader ) {
125  return ntuple->write_commented_header(G4cout);
126  }
127 
128  // write hippo header (if activated and if not commented header)
129  if ( fIsHippoHeader ) {
130  ntuple->write_hippo_header();
131  return true;
132  }
133 
134  return true;
135 }
G4GLOB_DLL std::ostream G4cout
TTree * ntuple
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ G4CsvAnalysisManager

friend class G4CsvAnalysisManager
friend

Definition at line 46 of file G4CsvNtupleManager.hh.

Member Data Documentation

◆ fFileManager

std::shared_ptr<G4CsvFileManager> G4CsvNtupleManager::fFileManager
private

Definition at line 82 of file G4CsvNtupleManager.hh.

◆ fIsCommentedHeader

G4bool G4CsvNtupleManager::fIsCommentedHeader
private

Definition at line 83 of file G4CsvNtupleManager.hh.

◆ fIsHippoHeader

G4bool G4CsvNtupleManager::fIsHippoHeader
private

Definition at line 84 of file G4CsvNtupleManager.hh.


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