31#ifndef G4RootPNtupleManager_h
32#define G4RootPNtupleManager_h 1
58class mutex :
public virtual tools::wroot::imutex {
59 using parent = tools::wroot::imutex;
92 std::shared_ptr<G4NtupleBookingManager> bookingManger,
93 std::shared_ptr<G4RootMainNtupleManager> main,
101 tools::wroot::ntuple* mainNtuple);
102 void CreateNtupleDescriptionsFromBooking();
103 void CreateNtuplesFromMain();
104 void CreateNtuplesIfNeeded();
123 virtual G4bool Merge() final;
130 void SetActivation(
G4bool activation) final;
131 void SetActivation(
G4int ntupleId,
G4bool activation) final;
135 void SetNewCycle(
G4bool value) final;
136 G4bool GetNewCycle() const final;
139 G4int GetNofNtuples() const final;
150 tools::wroot::base_pntuple*
152 tools::wroot::ntuple*
155 template <typename T>
158 template <typename T>
159 G4bool FillNtupleTColumn(
G4int columnId, const T& value);
162 static constexpr
std::string_view fkClass {
"G4RootPNtupleManager" };
165 std::shared_ptr<G4NtupleBookingManager> fBookingManager;
166 std::shared_ptr<G4RootMainNtupleManager> fMainNtupleManager;
167 std::vector<G4RootPNtupleDescription*> fNtupleDescriptionVector;
168 std::vector<tools::wroot::imt_ntuple*> fNtupleVector;
171 G4bool fCreateNtuples {
true };
172 G4bool fNewCycle {
false };
175#include "G4RootPNtupleManager.icc"
G4double(*)(G4double) function
G4bool FillNtupleSColumn(G4int id, const G4String &value) final
G4bool FillNtupleFColumn(G4int id, G4float value) final
G4bool FillNtupleDColumn(G4int id, G4double value) final
G4bool FillNtupleIColumn(G4int id, G4int value) final
G4bool AddNtupleRow() final
G4RootPNtupleManager()=delete
~G4RootPNtupleManager() override
mutex & operator=(const mutex &)
~mutex() override=default
mutex(G4AutoLock &a_mutex)
mutex(const mutex &a_from)=default