File indexing completed on 2025-01-18 09:58:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 #ifndef G4CsvNtupleFileManager_h
0032 #define G4CsvNtupleFileManager_h 1
0033
0034 #include "G4VNtupleFileManager.hh"
0035 #include "globals.hh"
0036
0037 #include <string_view>
0038 #include <utility>
0039
0040 class G4CsvFileManager;
0041 class G4CsvNtupleManager;
0042 class G4VNtupleManager;
0043 class G4NtupleBookingManager;
0044
0045 class G4CsvNtupleFileManager : public G4VNtupleFileManager
0046 {
0047 friend class G4CsvAnalysisManager;
0048
0049 public:
0050 explicit G4CsvNtupleFileManager(const G4AnalysisManagerState& state);
0051 G4CsvNtupleFileManager() = delete;
0052 ~G4CsvNtupleFileManager() override = default;
0053
0054 std::shared_ptr<G4VNtupleManager> CreateNtupleManager() override;
0055
0056
0057 G4bool ActionAtOpenFile(const G4String& fileName) override;
0058 G4bool ActionAtWrite() override;
0059 G4bool ActionAtCloseFile() override;
0060 G4bool Reset() override;
0061
0062 void SetFileManager(std::shared_ptr<G4CsvFileManager> fileManager);
0063
0064 std::shared_ptr<G4CsvNtupleManager> GetNtupleManager() const;
0065
0066 private:
0067
0068 static constexpr std::string_view fkClass { "G4CsvNtupleFileManager" };
0069
0070
0071 std::shared_ptr<G4CsvFileManager> fFileManager { nullptr };
0072 std::shared_ptr<G4CsvNtupleManager> fNtupleManager { nullptr };
0073 };
0074
0075
0076
0077 inline void G4CsvNtupleFileManager::SetFileManager(
0078 std::shared_ptr<G4CsvFileManager> fileManager)
0079 {
0080 fFileManager = std::move(fileManager);
0081 }
0082
0083 inline std::shared_ptr<G4CsvNtupleManager> G4CsvNtupleFileManager::GetNtupleManager() const
0084 { return fNtupleManager; }
0085
0086 #endif
0087