35#include "tools/wroot/file"
42 const std::shared_ptr<G4NtupleBookingManager>& bookingManger,
49 for (
G4int i=0; i<nofMainManagers; ++i) {
51 if ( (i == 0) && (nofFiles == 0) ) {
56 std::make_shared<G4RootMainNtupleManager>(
57 this, bookingManger, rowWise, fileNumber,
fState));
71 if ( ntupleDescription->
fNtuple ) {
72 Warn(
"Cannot create ntuple. Ntuple already exists.",
73 fkClass,
"CreateTNtupleFromBooking");
78 auto ntupleFile =
fFileManager->CreateNtupleFile(ntupleDescription);
80 Warn(
"Cannot create ntuple. Ntuple file does not exist.",
81 fkClass,
"CreateTNtupleFromBooking");
85 auto directory = std::get<2>(*ntupleFile);
87 =
new tools::wroot::ntuple(
91 ntupleDescription->
fNtuple->set_basket_size(basketSize);
100 manager->CreateNtuple(ntupleDescription);
121 result &= manager->Reset();
134 manager->ClearData();
144 result &= manager->Merge();
152 const std::shared_ptr<G4RootFileManager>& fileManager)
157 manager->SetFileManager(fileManager);
170 mainNtupleManager->SetRowWise(rowWise);
175std::shared_ptr<G4RootMainNtupleManager>
179 Warn(
"main ntuple manager " + to_string(index) +
" does not exist.",
180 fkClass,
"GetMainNtupleManager");
191 Warn(
"File manager must be defined first.",
fkClass,
"GetBasketSize");
202 Warn(
"File manager must be defined first.",
fkClass,
"GetBasketEntries");
std::tuple< std::shared_ptr< tools::wroot::file >, tools::wroot::directory *, tools::wroot::directory * > G4RootFile
const G4AnalysisManagerState & fState
std::shared_ptr< G4RootMainNtupleManager > GetMainNtupleManager(G4int index) const
void SetNtupleRowWise(G4bool rowWise, G4bool rowMode)
virtual G4bool Reset() final
virtual void FinishTNtuple(RootNtupleDescription *ntupleDescription, G4bool fromBooking) final
static constexpr std::string_view fkClass
G4RootNtupleManager()=delete
unsigned int GetBasketSize() const
unsigned int GetBasketEntries() const
virtual void Clear() final
std::vector< std::shared_ptr< G4RootMainNtupleManager > > fMainNtupleManagers
void SetFileManager(const std::shared_ptr< G4RootFileManager > &fileManager)
std::shared_ptr< G4RootFileManager > fFileManager
virtual void CreateTNtupleFromBooking(RootNtupleDescription *ntupleDescription) final
std::vector< tools::wroot::ntuple * > fNtupleVector
virtual void Clear() override
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)
tools::ntuple_booking fNtupleBooking