47 std::string_view inClass,
48 std::string_view inFunction)
50 Warn(
"Failed to get " + hnType +
" id " + to_string(
id), inClass, inFunction);
95 Warn(
"The ntuple file manager already exists.",
96 fkClass,
"CreateNtupleFileManager");
103 Warn(
"The file type " + fileType +
"is not supported.",
104 fkClass,
"CreateNtupleFileManager");
111 Message(
kVL4,
"create",
"ntuple file manager", fileType);
125 Warn(
"Ntuple merging is not available with " + fileType +
" output.\n" +
126 "Setting is ignored.",
127 fkClass,
"CreateNtupleFileManager");
131 Message(
kVL3,
"create",
"ntuple file manager", fileType);
144 auto fullFileName = fileName;
146 auto defaultFileType =
fFileManager->GetDefaultFileType();
148 if ( ! defaultFileType.size() ) {
149 G4Exception(
"G4GenericAnalysisManager::OpenFileImpl",
"Analysis_F001",
151 G4String(
"Cannot open file \"" + fileName +
"\".\n"
152 "Please, use a file name with an extension or define the default file type\n"
153 "via G4AnalysisManager::SetDefaultFileType()"));
156 fullFileName = fileName +
"." +
fFileManager->GetDefaultFileType();
232 Warn(
"Closing files failed",
fkClass,
"CloseFileImpl");
238 Warn(
"Deleting empty files failed",
fkClass,
"CloseFileImpl");
244 Warn(
"Resetting data failed",
fkClass,
"CloseFileImpl");
281 auto h1d =
GetH1(
id,
false);
288 return fFileManager->WriteTExtra<tools::histo::h1d>(fileName, h1d, h1Name);
300 auto h2d =
GetH2(
id,
false);
307 return fFileManager->WriteTExtra<tools::histo::h2d>(fileName, h2d, h2Name);
318 auto h3d =
GetH3(
id,
false);
325 return fFileManager->WriteTExtra<tools::histo::h3d>(fileName, h3d, h3Name);
337 auto p1d =
GetP1(
id,
false);
344 return fFileManager->WriteTExtra<tools::histo::p1d>(fileName, p1d, p1Name);
355 auto p2d =
GetP2(
id,
false);
362 return fFileManager->WriteTExtra<tools::histo::p2d>(fileName, p2d, p2Name);
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4bool GetIsMaster() const
G4bool WriteP2(G4int id, const G4String &fileName)
void CreateNtupleFileManager(const G4String &fileName)
static G4ThreadLocal G4bool fgIsInstance
G4bool WriteH2(G4int id, const G4String &fileName)
virtual G4bool CloseFileImpl(G4bool reset=true) override
static constexpr std::string_view fkClass
G4bool WriteH3(G4int id, const G4String &fileName)
virtual G4bool ResetImpl() final
G4bool fIsNtupleMergingSet
G4bool WriteH1(G4int id, const G4String &fileName)
static G4bool IsInstance()
static G4GenericAnalysisManager * fgMasterInstance
virtual G4bool WriteImpl() final
virtual ~G4GenericAnalysisManager()
std::shared_ptr< G4VNtupleFileManager > fNtupleFileManager
unsigned int fBasketEntries
G4bool WriteP1(G4int id, const G4String &fileName)
static G4GenericAnalysisManager * Instance()
virtual G4bool OpenFileImpl(const G4String &fileName) override
G4GenericAnalysisManager()
std::shared_ptr< G4GenericFileManager > fFileManager
G4String GetH1Name(G4int id) const
G4String GetH2Name(G4int id) const
G4String GetP2Name(G4int id) const
std::shared_ptr< G4NtupleBookingManager > fNtupleBookingManager
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
G4AnalysisManagerState fState
G4String GetP1Name(G4int id) const
G4String GetH3Name(G4int id) const
void SetFileManager(std::shared_ptr< G4VFileManager > fileManager)
G4bool WriteAscii(const G4String &fileName)
void SetNtupleManager(std::shared_ptr< G4VNtupleManager > ntupleManager)
G4String GetExtension(const G4String &fileName, const G4String &defaultExtension="")
G4AnalysisOutput GetOutput(const G4String &outputName, G4bool warn=true)
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)
void WriteHnWarning(const G4String &hnType, G4int id, std::string_view inClass, std::string_view inFunction)