37#ifndef G4VAnalysisManager_h
38#define G4VAnalysisManager_h 1
106 const G4String& binSchemeName =
"linear");
109 const std::vector<G4double>& edges,
120 const G4String& xbinSchemeName =
"linear",
121 const G4String& ybinSchemeName =
"linear");
124 const std::vector<G4double>& xedges,
125 const std::vector<G4double>& yedges,
141 const G4String& xbinSchemeName =
"linear",
142 const G4String& ybinSchemeName =
"linear",
143 const G4String& zbinSchemeName =
"linear");
146 const std::vector<G4double>& xedges,
147 const std::vector<G4double>& yedges,
148 const std::vector<G4double>& zedges,
160 const G4String& binSchemeName =
"linear");
163 const std::vector<G4double>& edges,
174 const G4String& xbinSchemeName =
"linear",
175 const G4String& ybinSchemeName =
"linear");
178 const std::vector<G4double>& xedges,
179 const std::vector<G4double>& yedges,
195 const G4String& xbinSchemeName =
"linear",
196 const G4String& ybinSchemeName =
"linear",
197 const G4String& zbinSchemeName =
"linear");
200 const std::vector<G4double>& xedges,
201 const std::vector<G4double>& yedges,
202 const std::vector<G4double>& zedges,
223 const G4String& xbinSchemeName =
"linear");
225 const std::vector<G4double>& edges,
242 const G4String& xbinSchemeName =
"linear",
243 const G4String& ybinSchemeName =
"linear");
245 const std::vector<G4double>& xedges,
246 const std::vector<G4double>& yedges,
262 const G4String& xbinSchemeName =
"linear");
264 const std::vector<G4double>& edges,
281 const G4String& xbinSchemeName =
"linear",
282 const G4String& ybinSchemeName =
"linear");
284 const std::vector<G4double>& xedges,
285 const std::vector<G4double>& yedges,
309 const G4String& name, std::vector<int>& vector);
311 const G4String& name, std::vector<float>& vector);
313 const G4String& name, std::vector<double>& vector);
315 const G4String& name, std::vector<std::string>& vector);
326 const G4String& name, std::vector<int>& vector);
328 const G4String& name, std::vector<float>& vector);
330 const G4String& name, std::vector<double>& vector);
332 const G4String& name, std::vector<std::string>& vector);
338 G4int nofReducedNtupleFiles = 0);
684 G4bool success =
true)
const;
716 static constexpr std::string_view fkClass {
"G4VAnalysisManager" };
723 std::unique_ptr<G4AnalysisMessenger> fMessenger;
724 std::shared_ptr<G4HnManager> fH1HnManager {
nullptr };
725 std::shared_ptr<G4HnManager> fH2HnManager {
nullptr };
726 std::shared_ptr<G4HnManager> fH3HnManager {
nullptr };
727 std::shared_ptr<G4HnManager> fP1HnManager {
nullptr };
728 std::shared_ptr<G4HnManager> fP2HnManager {
nullptr };
729 std::unique_ptr<G4VTBaseHnManager<kDim1>> fVH1Manager;
730 std::unique_ptr<G4VTBaseHnManager<kDim2>> fVH2Manager;
731 std::unique_ptr<G4VTBaseHnManager<kDim3>> fVH3Manager;
732 std::unique_ptr<G4VTBaseHnManager<kDim2>> fVP1Manager;
733 std::unique_ptr<G4VTBaseHnManager<kDim3>> fVP2Manager;
735 std::vector<G4VAnalysisManager*> fWorkerManagers;
741#include "G4VAnalysisManager.icc"
G4bool SetP2YAxisTitle(G4int id, const G4String &title)
G4bool ListNtuple(G4bool onlyIfActive=true) const
G4double GetH3Xmin(G4int id) const
G4bool GetP2ZAxisIsLog(G4int id) const
G4int CreateP1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
G4bool SetH2XAxisIsLog(G4int id, G4bool isLog)
G4int GetP1Nbins(G4int id) const
G4int GetVerboseLevel() const
virtual G4bool MergeImpl(tools::histo::hmpi *hmpi)=0
G4int GetFirstP2Id() const
G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value)
G4double GetP1Xmax(G4int id) const
G4int GetH3Nxbins(G4int id) const
void SetH1Ascii(G4int id, G4bool ascii)
G4int GetFirstNtupleId() const
G4bool GetP1XAxisIsLog(G4int id) const
G4double GetP1Ymax(G4int id) const
G4bool DeleteH1(G4int id, G4bool keepSetting=false)
G4bool GetActivation() const
void SetP1Manager(G4VTBaseHnManager< kDim2 > *p1Manager)
G4String GetH3YAxisTitle(G4int id) const
virtual G4bool IsOpenFileImpl() const =0
G4int CreateP2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4String GetP1XAxisTitle(G4int id) const
void SetP2Manager(G4VTBaseHnManager< kDim3 > *p2Manager)
G4bool SetH2Title(G4int id, const G4String &title)
G4int GetFirstH2Id() const
G4int GetNofH3s(G4bool onlyIfExist=false) const
void SetH2FileName(G4int id, const G4String &fileName)
G4VAnalysisManager()=delete
void SetH1Activation(G4bool activation)
G4bool DeleteNtuple(G4int id, G4bool clear=false)
G4bool FillNtupleSColumn(G4int id, const G4String &value)
G4bool GetH1YAxisIsLog(G4int id) const
G4bool ListH1(G4bool onlyIfActive=true) const
G4bool GetP2Plotting(G4int id) const
virtual std::shared_ptr< G4VFileManager > GetFileManager(const G4String &fileName)
virtual ~G4VAnalysisManager()
G4double GetH3YWidth(G4int id) const
virtual void SetDefaultFileTypeImpl(const G4String &value)
G4double GetP1XWidth(G4int id) const
void SetH1Plotting(G4int id, G4bool plotting)
G4String GetP2ZAxisTitle(G4int id) const
void SetH3Ascii(G4int id, G4bool ascii)
G4bool GetNtupleActivation(G4int id) const
G4String GetH1YAxisTitle(G4int id) const
G4int GetNofH2s(G4bool onlyIfExist=false) const
G4String GetH1Name(G4int id) const
G4int GetP2Id(const G4String &name, G4bool warn=true) const
void SetH3Activation(G4bool activation)
G4int GetFirstP1Id() const
G4int GetH2Id(const G4String &name, G4bool warn=true) const
G4bool DeleteP1(G4int id, G4bool keepSetting=false)
G4String GetH1FileName(G4int id) const
G4bool GetH2ZAxisIsLog(G4int id) const
G4int CreateH1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4int GetH2Nybins(G4int id) const
G4double GetP1XUnit(G4int id) const
G4double GetH2XUnit(G4int id) const
G4double GetP1Xmin(G4int id) const
G4double GetP2Ymax(G4int id) const
G4bool SetP1XAxisTitle(G4int id, const G4String &title)
G4bool FillP1(G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
G4String GetH2Name(G4int id) const
G4int CreateNtupleIColumn(const G4String &name)
virtual G4bool WriteImpl()=0
G4String GetHistoDirectoryName() const
G4int GetNofH1s(G4bool onlyIfExist=false) const
G4bool GetH2YAxisIsLog(G4int id) const
G4int CreateNtupleDColumn(const G4String &name)
G4bool GetH3ZAxisIsLog(G4int id) const
void SetH3Plotting(G4int id, G4bool plotting)
G4bool FillH2(G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
G4int GetNofP1s(G4bool onlyIfExist=false) const
void SetP2FileName(G4int id, const G4String &fileName)
G4bool SetH1YAxisIsLog(G4int id, G4bool isLog)
void SetNtupleFileName(const G4String &fileName)
G4String GetP2Name(G4int id) const
G4int CreateNtupleFColumn(const G4String &name)
G4bool FillH3(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
G4double GetH2Xmin(G4int id) const
G4bool SetH3Title(G4int id, const G4String &title)
G4bool SetH3(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nzbins, G4double zmin, G4double zmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
G4int GetFirstH1Id() const
G4bool DeleteP2(G4int id, G4bool keepSetting=false)
void SetP2Plotting(G4int id, G4bool plotting)
G4int GetP1Id(const G4String &name, G4bool warn=true) const
G4double GetH3Zmin(G4int id) const
G4String GetH2XAxisTitle(G4int id) const
G4bool GetH1Plotting(G4int id) const
G4bool GetP1Ascii(G4int id) const
G4bool GetP1Activation(G4int id) const
G4int GetH3Nzbins(G4int id) const
G4bool FillNtupleDColumn(G4int id, G4double value)
G4double GetP2XWidth(G4int id) const
G4String GetNtupleFileName(G4int id) const
G4bool GetP1YAxisIsLog(G4int id) const
G4bool SetH2YAxisIsLog(G4int id, G4bool isLog)
G4double GetP2YUnit(G4int id) const
G4bool SetP1(G4int id, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
G4bool SetP2ZAxisIsLog(G4int id, G4bool isLog)
G4double GetP2Xmin(G4int id) const
G4bool SetFirstP1Id(G4int firstId)
G4double GetH2YWidth(G4int id) const
G4int GetH1Id(const G4String &name, G4bool warn=true) const
G4double GetH2YUnit(G4int id) const
G4bool SetP2(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4int GetNofP2s(G4bool onlyIfExist=false) const
std::shared_ptr< G4VNtupleFileManager > fVNtupleFileManager
void SetH1Manager(G4VTBaseHnManager< kDim1 > *h1Manager)
G4bool FillNtupleSColumn(G4int ntupleId, G4int id, const G4String &value)
G4bool SetH3YAxisTitle(G4int id, const G4String &title)
G4bool FillNtupleIColumn(G4int id, G4int value)
virtual G4bool OpenFileImpl(const G4String &fileName)=0
void SetH3Manager(G4VTBaseHnManager< kDim3 > *h3Manager)
G4double GetP2Zmin(G4int id) const
void SetActivation(G4bool activation)
G4bool SetFirstNtupleColumnId(G4int firstId)
G4String GetFileName() const
G4bool ListH2(G4bool onlyIfActive=true) const
G4String GetDefaultFileType() const
G4double GetP2YWidth(G4int id) const
G4bool GetH2Plotting(G4int id) const
G4bool GetH3YAxisIsLog(G4int id) const
G4bool CloseFile(G4bool reset=true)
G4bool OpenFile(const G4String &fileName="")
void SetH3FileName(G4int id, const G4String &fileName)
G4String GetH1Title(G4int id) const
G4bool GetH1Activation(G4int id) const
G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value)
virtual void ClearImpl()=0
G4double GetP1Ymin(G4int id) const
G4bool GetH3XAxisIsLog(G4int id) const
G4int GetH1Nbins(G4int id) const
G4bool GetH2Activation(G4int id) const
G4bool SetP1YAxisIsLog(G4int id, G4bool isLog)
std::shared_ptr< G4NtupleBookingManager > fNtupleBookingManager
G4bool ScaleP1(G4int id, G4double factor)
G4String GetP1YAxisTitle(G4int id) const
G4bool GetH3Ascii(G4int id) const
G4bool SetP2Title(G4int id, const G4String &title)
G4bool GetP1Plotting(G4int id) const
G4bool ScaleH3(G4int id, G4double factor)
void SetH2Ascii(G4int id, G4bool ascii)
G4bool DeleteH2(G4int id, G4bool keepSetting=false)
G4bool ListP2(G4bool onlyIfActive=true) const
void Message(G4int level, const G4String &action, const G4String &objectType, const G4String &objectName="", G4bool success=true) const
G4int CreateNtupleSColumn(const G4String &name)
virtual G4bool PlotImpl()=0
G4bool IsPlotting() const
G4double GetP2ZUnit(G4int id) const
void SetP1Ascii(G4int id, G4bool ascii)
G4bool GetH1XAxisIsLog(G4int id) const
G4double GetH3Zmax(G4int id) const
G4double GetH3ZUnit(G4int id) const
G4int CreateH3(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4int nzbins, G4double zmin, G4double zmax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
G4bool FillNtupleFColumn(G4int id, G4float value)
G4bool SetFirstH3Id(G4int firstId)
G4bool SetHistoDirectoryName(const G4String &dirName)
G4double GetH1Width(G4int id) const
G4bool GetP2YAxisIsLog(G4int id) const
G4String GetP2YAxisTitle(G4int id) const
G4bool SetH3XAxisIsLog(G4int id, G4bool isLog)
G4bool FillH1(G4int id, G4double value, G4double weight=1.0)
G4bool GetH2Ascii(G4int id) const
G4AnalysisManagerState fState
void SetP2Activation(G4bool activation)
void SetH1FileName(G4int id, const G4String &fileName)
G4bool GetH2XAxisIsLog(G4int id) const
G4bool SetP1YAxisTitle(G4int id, const G4String &title)
G4String GetP1Name(G4int id) const
G4bool SetH2XAxisTitle(G4int id, const G4String &title)
G4String GetH3ZAxisTitle(G4int id) const
G4bool SetH1Title(G4int id, const G4String &title)
virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode=true)
G4bool SetP1XAxisIsLog(G4int id, G4bool isLog)
void SetP1Plotting(G4int id, G4bool plotting)
G4double GetH3Xmax(G4int id) const
G4bool SetP2ZAxisTitle(G4int id, const G4String &title)
G4String GetH3Title(G4int id) const
G4String GetH3Name(G4int id) const
virtual void SetBasketSize(unsigned int basketSize)
G4bool GetP2XAxisIsLog(G4int id) const
G4bool SetH1XAxisTitle(G4int id, const G4String &title)
G4double GetP2Zmax(G4int id) const
G4bool FillP2(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
G4double GetH3YUnit(G4int id) const
void SetFileManager(std::shared_ptr< G4VFileManager > fileManager)
G4bool SetH1XAxisIsLog(G4int id, G4bool isLog)
void SetP1FileName(G4int id, const G4String &fileName)
G4double GetH1Unit(G4int id) const
G4double GetP2Ymin(G4int id) const
G4bool GetP2Ascii(G4int id) const
G4double GetH2Ymin(G4int id) const
G4double GetH3Ymin(G4int id) const
G4bool WriteAscii(const G4String &fileName)
virtual void SetNtupleMerging(G4bool mergeNtuples, G4int nofReducedNtupleFiles=0)
G4bool SetP2YAxisIsLog(G4int id, G4bool isLog)
G4int GetH3Id(const G4String &name, G4bool warn=true) const
G4bool ListP1(G4bool onlyIfActive=true) const
void SetP1Activation(G4bool activation)
G4bool SetP1Title(G4int id, const G4String &title)
virtual void SetBasketEntries(unsigned int basketEntries)
G4int GetFirstNtupleColumnId() const
G4double GetP2XUnit(G4int id) const
G4bool SetH3XAxisTitle(G4int id, const G4String &title)
G4String GetH2YAxisTitle(G4int id) const
G4double GetH1Xmin(G4int id) const
void SetVerboseLevel(G4int verboseLevel)
G4bool AddNtupleRow(G4int ntupleId)
G4bool SetH1(G4int id, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4bool SetH3YAxisIsLog(G4int id, G4bool isLog)
G4String GetH3XAxisTitle(G4int id) const
G4double GetH3XUnit(G4int id) const
void SetH2Activation(G4bool activation)
G4int CreateNtuple(const G4String &name, const G4String &title)
G4bool GetH3Activation(G4int id) const
G4bool SetH2YAxisTitle(G4int id, const G4String &title)
G4String GetP1Title(G4int id) const
std::shared_ptr< G4VNtupleManager > fVNtupleManager
G4String GetP2XAxisTitle(G4int id) const
void SetNtupleManager(std::shared_ptr< G4VNtupleManager > ntupleManager)
G4bool SetFirstH2Id(G4int firstId)
G4bool SetH3ZAxisIsLog(G4int id, G4bool isLog)
G4bool DeleteH3(G4int id, G4bool keepSetting=false)
G4double GetH3Ymax(G4int id) const
G4double GetH2Xmax(G4int id) const
G4bool SetFirstP2Id(G4int firstId)
G4int GetP2Nxbins(G4int id) const
G4bool List(G4bool onlyIfActive=true) const
G4String GetH1XAxisTitle(G4int id) const
G4String GetH2Title(G4int id) const
G4bool SetH2(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4bool GetP2Activation(G4int id) const
G4bool SetH3ZAxisTitle(G4int id, const G4String &title)
G4String GetH2ZAxisTitle(G4int id) const
G4String GetFileType() const
virtual G4bool ResetImpl()=0
std::shared_ptr< G4VFileManager > fVFileManager
virtual G4String GetDefaultFileTypeImpl() const
G4bool SetH2ZAxisIsLog(G4int id, G4bool isLog)
G4int GetP2Nybins(G4int id) const
G4bool SetFileName(const G4String &fileName)
void SetCompressionLevel(G4int level)
G4double GetH3XWidth(G4int id) const
G4int CreateH2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
void SetNtupleActivation(G4bool activation)
G4int GetCompressionLevel() const
G4bool SetFirstH1Id(G4int firstId)
G4bool ScaleH1(G4int id, G4double factor)
G4String GetP2Title(G4int id) const
G4String GetNtupleDirectoryName() const
void SetH2Manager(G4VTBaseHnManager< kDim2 > *h2Manager)
G4bool SetH2ZAxisTitle(G4int id, const G4String &title)
G4bool SetFirstNtupleId(G4int firstId)
G4bool IsOpenFile() const
G4bool GetH3Plotting(G4int id) const
G4bool SetFirstHistoId(G4int firstId)
G4double GetH1Xmax(G4int id) const
G4bool SetFirstProfileId(G4int firstId)
G4bool SetNtupleDirectoryName(const G4String &dirName)
G4double GetH2Ymax(G4int id) const
G4int GetFirstH3Id() const
G4bool ScaleP2(G4int id, G4double factor)
G4double GetP2Xmax(G4int id) const
virtual G4bool CloseFileImpl(G4bool reset)=0
G4bool ScaleH2(G4int id, G4double factor)
G4double GetH3ZWidth(G4int id) const
G4double GetH2XWidth(G4int id) const
G4int GetH2Nxbins(G4int id) const
void SetDefaultFileType(const G4String &value)
G4bool Merge(tools::histo::hmpi *hmpi)
G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value)
void SetP2Ascii(G4int id, G4bool ascii)
G4bool SetH1YAxisTitle(G4int id, const G4String &title)
G4double GetP1YUnit(G4int id) const
void SetH2Plotting(G4int id, G4bool plotting)
G4bool SetP2XAxisIsLog(G4int id, G4bool isLog)
G4bool SetP2XAxisTitle(G4int id, const G4String &title)
G4int GetH3Nybins(G4int id) const
G4bool ListH3(G4bool onlyIfActive=true) const
G4bool GetH1Ascii(G4int id) const
G4int GetNofNtuples(G4bool onlyIfExist=false) const
void SetNtupleFileManager(std::shared_ptr< G4VNtupleFileManager > ntupleFileManager)
constexpr unsigned int kDim3
constexpr unsigned int kDim2
constexpr unsigned int kDim1