57 G4int id, std::string_view functionName,
G4bool warn)
const
62 Warn(
"Ntuple booking " + to_string(
id) +
" does not exist.",
93 ntupleBooking->fNtupleBooking.set_name(
name);
94 ntupleBooking->fNtupleBooking.set_title(title);
101 name +
" ntupleId " + to_string(ntupleBooking->fNtupleId));
103 return ntupleBooking->fNtupleId;
108 std::vector<int>* vector)
115 std::vector<float>* vector)
122 std::vector<double>* vector)
129 std::vector<std::string>* vector)
144 return CreateNtupleTColumn<int>(ntupleId,
name, vector);
151 return CreateNtupleTColumn<float>(ntupleId,
name, vector);
158 return CreateNtupleTColumn<double>(ntupleId,
name, vector);
165 return CreateNtupleTColumn<std::string>(ntupleId,
name, vector);
180 Warn(
"Cannot set FirstNtupleColumnId as its value was already used.",
181 fkClass,
"SetFirstNtupleColumnId");
194 ntupleBooking->fActivation = activation;
204 if ( ! ntupleBooking )
return;
206 ntupleBooking->fActivation = activation;
211 G4int ntupleId)
const
215 if ( ! ntupleBooking )
return false;
217 return ntupleBooking->fActivation;
225 ntupleBooking->fFileName = fileName;
235 if ( ! ntupleBooking )
return;
238 if ( ntupleBooking->fFileName == fileName )
return;
240 auto ntupleFileName = fileName;
242 if ( extension.size() ) {
246 Warn(
"The file extension " + extension +
" is not supported.",
254 ntupleFileName = fileName +
"." +
fFileType;
261 ntupleBooking->fFileName = ntupleFileName;
266 G4int ntupleId)
const
270 if ( ! ntupleBooking )
return "";
272 return ntupleBooking->fFileName;
279 delete ntupleBooking;
304 if ( ! (ntupleBooking->fFileName).size() )
continue;
306 auto extension =
GetExtension(ntupleBooking->fFileName);
310 auto baseFileName =
GetBaseName(ntupleBooking->fFileName);
311 auto ntupleFileName = baseFileName +
"." +
fFileType;
312 if ( extension.size() ) {
313 Warn(
"Writing ntuples in files of different output types " +
314 fFileType +
", " + extension +
" is not supported.",
319 ntupleBooking->fFileName = ntupleFileName;
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
static constexpr std::string_view fkClass
G4bool GetActivation(G4int ntupleId) const
G4bool SetFirstNtupleColumnId(G4int firstId)
std::vector< G4NtupleBooking * > fNtupleBookingVector
G4String GetFileName(G4int id) const
G4int CreateNtupleSColumn(const G4String &name, std::vector< std::string > *vector)
G4int fFirstNtupleColumnId
G4NtupleBooking * FinishNtuple()
G4int CreateNtupleDColumn(const G4String &name, std::vector< double > *vector)
G4NtupleBooking * GetNtupleBookingInFunction(G4int id, std::string_view function, G4bool warn=true) const
G4int GetCurrentNtupleId() const
G4bool fLockFirstNtupleColumnId
G4int CreateNtuple(const G4String &name, const G4String &title)
G4int CreateNtupleFColumn(const G4String &name, std::vector< float > *vector)
~G4NtupleBookingManager()
G4NtupleBookingManager()=delete
void SetFileName(const G4String &fileName)
G4int CreateNtupleIColumn(const G4String &name, std::vector< int > *vector)
void SetFileType(const G4String &fileType)
void SetActivation(G4bool activation)
G4String GetExtension(const G4String &fileName, const G4String &defaultExtension="")
G4AnalysisOutput GetOutput(const G4String &outputName, G4bool warn=true)
G4String GetBaseName(const G4String &fileName)
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)
const char * name(G4int ptype)