Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | Friends
G4CsvNtupleManager Class Reference

#include <G4CsvNtupleManager.hh>

Inheritance diagram for G4CsvNtupleManager:
G4TNtupleManager< tools::wcsv::ntuple, std::ofstream > G4BaseNtupleManager G4VNtupleManager G4BaseAnalysisManager

Public Member Functions

 G4CsvNtupleManager ()=delete
 
 G4CsvNtupleManager (const G4AnalysisManagerState &state)
 
G4int GetFirstId () const
 
G4bool SetFirstId (G4int firstId)
 
void SetLockFirstId (G4bool lockFirstId)
 
virtual ~G4CsvNtupleManager ()=default
 

Protected Member Functions

virtual G4bool AddNtupleRow () final
 
virtual G4bool AddNtupleRow (G4int ntupleId) override
 
virtual G4bool AddNtupleRow (G4int ntupleId)=0
 
std::vector< tools::wcsv::ntuple * >::const_iterator BeginConstNtuple () const
 
std::vector< tools::wcsv::ntuple * >::iterator BeginNtuple ()
 
virtual void Clear () override
 
virtual G4int CreateNtuple (G4NtupleBooking *ntupleBooking) override
 
virtual void CreateNtuplesFromBooking (const std::vector< G4NtupleBooking * > &ntupleBookings)
 
std::vector< tools::wcsv::ntuple * >::const_iterator EndConstNtuple () const
 
std::vector< tools::wcsv::ntuple * >::iterator EndNtuple ()
 
virtual G4bool FillNtupleDColumn (G4int id, G4double value) final
 
virtual G4bool FillNtupleDColumn (G4int ntupleId, G4int columnId, G4double value) final
 
virtual G4bool FillNtupleDColumn (G4int ntupleId, G4int columnId, G4double value)=0
 
virtual G4bool FillNtupleFColumn (G4int id, G4float value) final
 
virtual G4bool FillNtupleFColumn (G4int ntupleId, G4int columnId, G4float value) final
 
virtual G4bool FillNtupleFColumn (G4int ntupleId, G4int columnId, G4float value)=0
 
virtual G4bool FillNtupleIColumn (G4int id, G4int value) final
 
virtual G4bool FillNtupleIColumn (G4int ntupleId, G4int columnId, G4int value) final
 
virtual G4bool FillNtupleIColumn (G4int ntupleId, G4int columnId, G4int value)=0
 
virtual G4bool FillNtupleSColumn (G4int id, const G4String &value) final
 
virtual G4bool FillNtupleSColumn (G4int ntupleId, G4int columnId, const G4String &value) final
 
virtual G4bool FillNtupleSColumn (G4int ntupleId, G4int columnId, const G4String &value)=0
 
virtual G4bool GetActivation (G4int ntupleId) const final
 
virtual G4int GetNofNtuples () const final
 
tools::wcsv::ntuple * GetNtuple () const
 
tools::wcsv::ntuple * GetNtuple (G4int ntupleId) const
 
G4bool IsVerbose (G4int verboseLevel) const
 
void Message (G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
 
virtual G4bool Reset ()
 
virtual void SetActivation (G4bool activation) final
 
virtual void SetActivation (G4int ntupleId, G4bool activation) final
 
virtual G4bool SetFirstNtupleColumnId (G4int firstId) final
 

Protected Attributes

G4int fFirstId { 0 }
 
G4int fFirstNtupleColumnId { 0 }
 
G4bool fLockFirstId { false }
 
std::vector< G4TNtupleDescription< tools::wcsv::ntuple, std::ofstream > * > fNtupleDescriptionVector
 
std::vector< tools::wcsv::ntuple * > fNtupleVector
 
const G4AnalysisManagerStatefState
 

Private Member Functions

virtual void CreateTNtupleFromBooking (CsvNtupleDescription *ntupleDescription) final
 
G4bool FillNtupleTColumn (G4int ntupleId, G4int columnId, const T &value)
 
virtual void FinishTNtuple (CsvNtupleDescription *ntupleDescription, G4bool fromBooking) final
 
G4TNtupleDescription< tools::wcsv::ntuple, std::ofstream > * GetNtupleDescriptionInFunction (G4int id, std::string_view function, G4bool warn=true) const
 
const std::vector< CsvNtupleDescription * > & GetNtupleDescriptionVector () const
 
tools::wcsv::ntuple * GetNtupleInFunction (G4int id, std::string_view function, G4bool warn=true) const
 
void SetFileManager (std::shared_ptr< G4CsvFileManager > fileManager)
 
void SetIsCommentedHeader (G4bool isCommentedHeader)
 
void SetIsHippoHeader (G4bool isHippoHeader)
 
G4bool WriteHeader (tools::wcsv::ntuple *ntuple) const
 

Private Attributes

std::shared_ptr< G4CsvFileManagerfFileManager { nullptr }
 
G4bool fIsCommentedHeader { true }
 
G4bool fIsHippoHeader { false }
 

Static Private Attributes

static constexpr std::string_view fkClass { "G4CsvNtupleManager" }
 

Friends

class G4CsvAnalysisManager
 
class G4CsvNtupleFileManager
 

Detailed Description

Definition at line 47 of file G4CsvNtupleManager.hh.

Constructor & Destructor Documentation

◆ G4CsvNtupleManager() [1/2]

G4CsvNtupleManager::G4CsvNtupleManager ( const G4AnalysisManagerState state)
explicit

◆ G4CsvNtupleManager() [2/2]

G4CsvNtupleManager::G4CsvNtupleManager ( )
delete

◆ ~G4CsvNtupleManager()

virtual G4CsvNtupleManager::~G4CsvNtupleManager ( )
virtualdefault

Member Function Documentation

◆ AddNtupleRow() [1/3]

G4bool G4BaseNtupleManager::AddNtupleRow ( )
finalprotectedvirtualinherited

Reimplemented from G4BaseNtupleManager.

Definition at line 69 of file G4BaseNtupleManager.cc.

◆ AddNtupleRow() [2/3]

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::AddNtupleRow ( G4int  ntupleId)
overrideprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ AddNtupleRow() [3/3]

virtual G4bool G4BaseNtupleManager::AddNtupleRow ( G4int  ntupleId)
protectedvirtualinherited

Implements G4BaseNtupleManager.

◆ BeginConstNtuple()

std::vector< tools::wcsv::ntuple * >::const_iterator G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::BeginConstNtuple ( ) const
protectedinherited

◆ BeginNtuple()

std::vector< tools::wcsv::ntuple * >::iterator G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::BeginNtuple ( )
protectedinherited

◆ Clear()

virtual void G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::Clear ( )
overrideprotectedvirtualinherited

Implements G4VNtupleManager.

◆ CreateNtuple()

virtual G4int G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::CreateNtuple ( G4NtupleBooking ntupleBooking)
overrideprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ CreateNtuplesFromBooking()

virtual void G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::CreateNtuplesFromBooking ( const std::vector< G4NtupleBooking * > &  ntupleBookings)
protectedvirtualinherited

◆ CreateTNtupleFromBooking()

void G4CsvNtupleManager::CreateTNtupleFromBooking ( CsvNtupleDescription ntupleDescription)
finalprivatevirtual

Definition at line 50 of file G4CsvNtupleManager.cc.

52{
53 // create a file for this ntuple
54 if ( ! fFileManager->CreateNtupleFile(ntupleDescription) ) return;
55
56 // create ntuple
57 ntupleDescription->fNtuple
58 = new tools::wcsv::ntuple(
59 *(ntupleDescription->fFile), G4cerr, ntupleDescription->fNtupleBooking);
60 fNtupleVector.push_back(ntupleDescription->fNtuple);
61 }
G4GLOB_DLL std::ostream G4cerr
std::shared_ptr< G4CsvFileManager > fFileManager
std::vector< tools::wcsv::ntuple * > fNtupleVector
tools::ntuple_booking fNtupleBooking
std::shared_ptr< FT > fFile

References G4TNtupleDescription< NT, FT >::fFile, fFileManager, G4TNtupleDescription< NT, FT >::fNtuple, G4TNtupleDescription< NT, FT >::fNtupleBooking, G4TNtupleManager< tools::wcsv::ntuple, std::ofstream >::fNtupleVector, and G4cerr.

Referenced by FinishTNtuple().

◆ EndConstNtuple()

std::vector< tools::wcsv::ntuple * >::const_iterator G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::EndConstNtuple ( ) const
protectedinherited

◆ EndNtuple()

std::vector< tools::wcsv::ntuple * >::iterator G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::EndNtuple ( )
protectedinherited

◆ FillNtupleDColumn() [1/3]

G4bool G4BaseNtupleManager::FillNtupleDColumn ( G4int  id,
G4double  value 
)
finalprotectedvirtualinherited

Reimplemented from G4BaseNtupleManager.

Definition at line 67 of file G4BaseNtupleManager.cc.

50{
51 return FillNtupleDColumn(fFirstId, id, value);
52}
virtual G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value) final

◆ FillNtupleDColumn() [2/3]

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::FillNtupleDColumn ( G4int  ntupleId,
G4int  columnId,
G4double  value 
)
finalprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleDColumn() [3/3]

virtual G4bool G4BaseNtupleManager::FillNtupleDColumn ( G4int  ntupleId,
G4int  columnId,
G4double  value 
)
protectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleFColumn() [1/3]

G4bool G4BaseNtupleManager::FillNtupleFColumn ( G4int  id,
G4float  value 
)
finalprotectedvirtualinherited

Reimplemented from G4BaseNtupleManager.

Definition at line 66 of file G4BaseNtupleManager.cc.

44{
45 return FillNtupleFColumn(fFirstId, id, value);
46}
virtual G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value) final

◆ FillNtupleFColumn() [2/3]

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::FillNtupleFColumn ( G4int  ntupleId,
G4int  columnId,
G4float  value 
)
finalprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleFColumn() [3/3]

virtual G4bool G4BaseNtupleManager::FillNtupleFColumn ( G4int  ntupleId,
G4int  columnId,
G4float  value 
)
protectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleIColumn() [1/3]

G4bool G4BaseNtupleManager::FillNtupleIColumn ( G4int  id,
G4int  value 
)
finalprotectedvirtualinherited

Reimplemented from G4BaseNtupleManager.

Definition at line 65 of file G4BaseNtupleManager.cc.

38{
39 return FillNtupleIColumn(fFirstId, id, value);
40}
virtual G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value) final

◆ FillNtupleIColumn() [2/3]

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::FillNtupleIColumn ( G4int  ntupleId,
G4int  columnId,
G4int  value 
)
finalprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleIColumn() [3/3]

virtual G4bool G4BaseNtupleManager::FillNtupleIColumn ( G4int  ntupleId,
G4int  columnId,
G4int  value 
)
protectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleSColumn() [1/3]

G4bool G4BaseNtupleManager::FillNtupleSColumn ( G4int  id,
const G4String value 
)
finalprotectedvirtualinherited

Reimplemented from G4BaseNtupleManager.

Definition at line 68 of file G4BaseNtupleManager.cc.

56{
57 return FillNtupleSColumn(fFirstId, id, value);
58}
virtual G4bool FillNtupleSColumn(G4int ntupleId, G4int columnId, const G4String &value) final

◆ FillNtupleSColumn() [2/3]

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::FillNtupleSColumn ( G4int  ntupleId,
G4int  columnId,
const G4String value 
)
finalprotectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleSColumn() [3/3]

virtual G4bool G4BaseNtupleManager::FillNtupleSColumn ( G4int  ntupleId,
G4int  columnId,
const G4String value 
)
protectedvirtualinherited

Implements G4BaseNtupleManager.

◆ FillNtupleTColumn()

G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::FillNtupleTColumn ( G4int  ntupleId,
G4int  columnId,
const T &  value 
)
privateinherited

◆ FinishTNtuple()

void G4CsvNtupleManager::FinishTNtuple ( CsvNtupleDescription ntupleDescription,
G4bool  fromBooking 
)
finalprivatevirtual

Definition at line 64 of file G4CsvNtupleManager.cc.

67{
68
69 // Do nothing if the base file name was not yet defined
70 if ( ! fFileManager->GetFileName().size() ) return;
71
72 // Create ntuple from booking
73 if ( ! ntupleDescription->fNtuple ) {
74 CreateTNtupleFromBooking(ntupleDescription);
75 }
76
77 // Return if creating ntuple failed
78 if ( ! ntupleDescription->fNtuple ) {
79 Warn("Creating ntuple has failed.", fkClass, "FinishTNtuple");
80 return;
81 }
82
83
84 // Write header if ntuple already exists
85 if ( ! WriteHeader(ntupleDescription->fNtuple) ) {
86 Warn("Writing ntuple header has failed.", fkClass, "FinishTNtuple");
87 }
88}
G4bool WriteHeader(tools::wcsv::ntuple *ntuple) const
virtual void CreateTNtupleFromBooking(CsvNtupleDescription *ntupleDescription) final
static constexpr std::string_view fkClass
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)

References CreateTNtupleFromBooking(), fFileManager, fkClass, G4TNtupleDescription< NT, FT >::fNtuple, G4Analysis::Warn(), and WriteHeader().

◆ GetActivation()

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetActivation ( G4int  ntupleId) const
finalprotectedvirtualinherited

Implements G4VNtupleManager.

◆ GetFirstId()

G4int G4BaseAnalysisManager::GetFirstId ( ) const
inlineinherited

Definition at line 94 of file G4BaseAnalysisManager.hh.

94 {
95 return fFirstId;
96}

References G4BaseAnalysisManager::fFirstId.

◆ GetNofNtuples()

virtual G4int G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetNofNtuples ( ) const
finalprotectedvirtualinherited

Implements G4VNtupleManager.

◆ GetNtuple() [1/2]

tools::wcsv::ntuple * G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetNtuple ( ) const
protectedinherited

◆ GetNtuple() [2/2]

tools::wcsv::ntuple * G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetNtuple ( G4int  ntupleId) const
protectedinherited

◆ GetNtupleDescriptionInFunction()

G4TNtupleDescription< tools::wcsv::ntuple , std::ofstream > * G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetNtupleDescriptionInFunction ( G4int  id,
std::string_view  function,
G4bool  warn = true 
) const
privateinherited

◆ GetNtupleDescriptionVector()

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

Definition at line 97 of file G4CsvNtupleManager.hh.

std::vector< G4TNtupleDescription< tools::wcsv::ntuple, std::ofstream > * > fNtupleDescriptionVector

References G4TNtupleManager< tools::wcsv::ntuple, std::ofstream >::fNtupleDescriptionVector.

◆ GetNtupleInFunction()

tools::wcsv::ntuple * G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::GetNtupleInFunction ( G4int  id,
std::string_view  function,
G4bool  warn = true 
) const
privateinherited

◆ IsVerbose()

G4bool G4BaseAnalysisManager::IsVerbose ( G4int  verboseLevel) const
inlineprotectedinherited

Definition at line 80 of file G4BaseAnalysisManager.hh.

81{ return fState.IsVerbose(verboseLevel); }
G4bool IsVerbose(G4int verboseLevel) const
const G4AnalysisManagerState & fState

References G4BaseAnalysisManager::fState, and G4AnalysisManagerState::IsVerbose().

Referenced by G4RootPNtupleManager::AddNtupleRow(), and G4RootPNtupleManager::Merge().

◆ Message()

void G4BaseAnalysisManager::Message ( G4int  level,
const G4String action,
const G4String objectType,
const G4String objectName = "",
G4bool  success = true 
) const
inlineprotectedinherited

◆ Reset()

virtual G4bool G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::Reset ( )
protectedvirtualinherited

◆ SetActivation() [1/2]

virtual void G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::SetActivation ( G4bool  activation)
finalprotectedvirtualinherited

Implements G4VNtupleManager.

◆ SetActivation() [2/2]

virtual void G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::SetActivation ( G4int  ntupleId,
G4bool  activation 
)
finalprotectedvirtualinherited

Implements G4VNtupleManager.

◆ SetFileManager()

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

Definition at line 93 of file G4CsvNtupleManager.hh.

94{ fFileManager = fileManager; }

References fFileManager.

◆ SetFirstId()

G4bool G4BaseAnalysisManager::SetFirstId ( G4int  firstId)
inherited

Definition at line 46 of file G4BaseAnalysisManager.cc.

47{
48 if ( fLockFirstId ) {
49 Warn("Cannot set FirstId as its value was already used.",
50 fkClass, "SetFirstId");
51
52 return false;
53 }
54
55 fFirstId = firstId;
56 return true;
57}
static constexpr std::string_view fkClass

References G4BaseAnalysisManager::fFirstId, G4BaseAnalysisManager::fkClass, G4BaseAnalysisManager::fLockFirstId, and G4Analysis::Warn().

◆ SetFirstNtupleColumnId()

G4bool G4BaseNtupleManager::SetFirstNtupleColumnId ( G4int  firstId)
finalprotectedvirtualinherited

Implements G4VNtupleManager.

Definition at line 67 of file G4BaseNtupleManager.cc.

68{
69 fFirstNtupleColumnId = firstId;
70 return true;
71}

◆ SetIsCommentedHeader()

void G4CsvNtupleManager::SetIsCommentedHeader ( G4bool  isCommentedHeader)
inlineprivate

Definition at line 100 of file G4CsvNtupleManager.hh.

101{ fIsCommentedHeader = isCommentedHeader; }

References fIsCommentedHeader.

◆ SetIsHippoHeader()

void G4CsvNtupleManager::SetIsHippoHeader ( G4bool  isHippoHeader)
inlineprivate

Definition at line 103 of file G4CsvNtupleManager.hh.

104{ fIsHippoHeader = isHippoHeader; }

References fIsHippoHeader.

◆ SetLockFirstId()

void G4BaseAnalysisManager::SetLockFirstId ( G4bool  lockFirstId)
inlineinherited

Definition at line 90 of file G4BaseAnalysisManager.hh.

90 {
91 fLockFirstId = lockFirstId;
92}

References G4BaseAnalysisManager::fLockFirstId.

Referenced by G4HnManager::ClearData().

◆ WriteHeader()

G4bool G4CsvNtupleManager::WriteHeader ( tools::wcsv::ntuple *  ntuple) const
private

Definition at line 91 of file G4CsvNtupleManager.cc.

92{
93// Write header if ntuple already exists and if this option is activated.
94// When both Hippo and Commented headers are selected, only Commented
95// header, which reading is supported.
96// Return false only if an error occurred.
97
98 if ( fIsCommentedHeader ) {
99 return ntuple->write_commented_header(G4cout);
100 }
101
102 // write hippo header (if activated and if not commented header)
103 if ( fIsHippoHeader ) {
104 ntuple->write_hippo_header();
105 return true;
106 }
107
108 return true;
109}
G4GLOB_DLL std::ostream G4cout

References fIsCommentedHeader, fIsHippoHeader, and G4cout.

Referenced by FinishTNtuple().

Friends And Related Function Documentation

◆ G4CsvAnalysisManager

friend class G4CsvAnalysisManager
friend

Definition at line 50 of file G4CsvNtupleManager.hh.

◆ G4CsvNtupleFileManager

friend class G4CsvNtupleFileManager
friend

Definition at line 51 of file G4CsvNtupleManager.hh.

Field Documentation

◆ fFileManager

std::shared_ptr<G4CsvFileManager> G4CsvNtupleManager::fFileManager { nullptr }
private

Definition at line 85 of file G4CsvNtupleManager.hh.

Referenced by CreateTNtupleFromBooking(), FinishTNtuple(), and SetFileManager().

◆ fFirstId

G4int G4BaseAnalysisManager::fFirstId { 0 }
protectedinherited

◆ fFirstNtupleColumnId

G4int G4BaseNtupleManager::fFirstNtupleColumnId { 0 }
protectedinherited

Definition at line 73 of file G4BaseNtupleManager.hh.

◆ fIsCommentedHeader

G4bool G4CsvNtupleManager::fIsCommentedHeader { true }
private

Definition at line 86 of file G4CsvNtupleManager.hh.

Referenced by SetIsCommentedHeader(), and WriteHeader().

◆ fIsHippoHeader

G4bool G4CsvNtupleManager::fIsHippoHeader { false }
private

Definition at line 87 of file G4CsvNtupleManager.hh.

Referenced by SetIsHippoHeader(), and WriteHeader().

◆ fkClass

constexpr std::string_view G4CsvNtupleManager::fkClass { "G4CsvNtupleManager" }
staticconstexprprivate

Definition at line 82 of file G4CsvNtupleManager.hh.

Referenced by FinishTNtuple().

◆ fLockFirstId

G4bool G4BaseAnalysisManager::fLockFirstId { false }
protectedinherited

◆ fNtupleDescriptionVector

std::vector<G4TNtupleDescription<tools::wcsv::ntuple , std::ofstream >*> G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::fNtupleDescriptionVector
protectedinherited

Definition at line 96 of file G4TNtupleManager.hh.

◆ fNtupleVector

std::vector<tools::wcsv::ntuple *> G4TNtupleManager< tools::wcsv::ntuple , std::ofstream >::fNtupleVector
protectedinherited

Definition at line 97 of file G4TNtupleManager.hh.

◆ fState

const G4AnalysisManagerState& G4BaseAnalysisManager::fState
protectedinherited

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