49 std::string_view functionName,
53 "Ntuple merging is not available with " + outputType +
" output.\n" +
54 "Setting is ignored.",
className, functionName);
67 fMessenger = std::make_unique<G4AnalysisMessenger>(
this);
155 if (
name.find(
".") != std::string::npos ) {
158 name.append(
".ascii");
162 std::ofstream output(
name, std::ios::out);
164 Warn(
"Cannot open file. File name is not defined.",
168 output.setf( std::ios::scientific, std::ios::floatfield );
182std::shared_ptr<G4VFileManager>
187 if ( extension.size() && extension !=
GetFileType() ) {
189 "The file extension differs from " +
GetFileType() +
" output type.\n" +
204 if ( fileName !=
"" ) {
209 Warn(
"Cannot open file. File name is not defined.",
fkClass,
"OpenFile");
334 unitName, fcnName, binSchemeName);
339 const std::vector<G4double>& edges,
367 nxbins, xmin, xmax, nybins, ymin, ymax,
368 xunitName, yunitName, xfcnName, yfcnName,
369 xbinSchemeName, ybinSchemeName);
374 const std::vector<G4double>& xedges,
375 const std::vector<G4double>& yedges,
387 xunitName, yunitName, xfcnName, yfcnName);
416 nxbins, xmin, xmax, nybins, ymin, ymax,
418 xunitName, yunitName, zunitName,
419 xfcnName, yfcnName, zfcnName,
420 xbinSchemeName, ybinSchemeName, zbinSchemeName);
425 const std::vector<G4double>& xedges,
426 const std::vector<G4double>& yedges,
427 const std::vector<G4double>& zedges,
441 xedges, yedges, zedges,
442 xunitName, yunitName, zunitName,
443 xfcnName, yfcnName, zfcnName);
455 return fVH1Manager->SetH1(
id, nbins, xmin, xmax, unitName, fcnName, binSchemeName);
460 const std::vector<G4double>& edges,
465 return fVH1Manager->SetH1(
id, edges, unitName, fcnName);
483 return fVH2Manager->SetH2(
id, nxbins, xmin, xmax, nybins, ymin, ymax,
484 xunitName, yunitName, xfcnName, yfcnName,
485 xbinSchemeName, ybinSchemeName);
490 const std::vector<G4double>& xedges,
491 const std::vector<G4double>& yedges,
499 xunitName, yunitName, xfcnName, yfcnName);
525 nxbins, xmin, xmax, nybins, ymin, ymax,
527 xunitName, yunitName, zunitName,
528 xfcnName, yfcnName, zfcnName,
529 xbinSchemeName, ybinSchemeName, zbinSchemeName);
534 const std::vector<G4double>& xedges,
535 const std::vector<G4double>& yedges,
536 const std::vector<G4double>& zedges,
546 return fVH3Manager->SetH3(
id, xedges, yedges, zedges,
547 xunitName, yunitName, zunitName,
548 xfcnName, yfcnName, zfcnName);
580 if ( ymin != 0. || ymax != 0. ) {
585 return fVP1Manager->CreateP1(
name, title, nbins, xmin, xmax, ymin, ymax,
586 xunitName, yunitName, xfcnName, yfcnName,
592 const std::vector<G4double>& edges,
599 if ( ymin != 0. || ymax != 0. ) {
605 xunitName, yunitName, xfcnName, yfcnName);
624 if ( zmin != 0. || zmax != 0. ) {
630 nxbins, xmin, xmax, nybins, ymin, ymax,
632 xunitName, yunitName, zunitName,
633 xfcnName, yfcnName, zfcnName,
634 xbinSchemeName, ybinSchemeName);
639 const std::vector<G4double>& xedges,
640 const std::vector<G4double>& yedges,
650 if ( zmin != 0. || zmax != 0. ) {
656 xunitName, yunitName, zunitName,
657 xfcnName, yfcnName, zfcnName);
670 if ( ymin != 0. || ymax != 0. ) {
675 return fVP1Manager->SetP1(
id, nbins, xmin, xmax, ymin, ymax,
676 xunitName, yunitName, xfcnName, yfcnName,
682 const std::vector<G4double>& edges,
688 if ( ymin != 0. || ymax != 0. ) {
694 xunitName, yunitName, xfcnName, yfcnName);
713 if ( zmin != 0. || zmax != 0. ) {
718 return fVP2Manager->SetP2(
id, nxbins, xmin, xmax, nybins, ymin, ymax,
720 xunitName, yunitName, zunitName,
721 xfcnName, yfcnName, zfcnName,
722 xbinSchemeName, ybinSchemeName);
727 const std::vector<G4double>& xedges,
728 const std::vector<G4double>& yedges,
739 if ( zmin != 0. || zmax != 0. ) {
744 return fVP2Manager->SetP2(
id, xedges, yedges, zmin, zmax,
745 xunitName, yunitName, zunitName,
746 xfcnName, yfcnName, zfcnName);
804 std::vector<int>& vector)
813 std::vector<float>& vector)
822 std::vector<double>& vector)
831 std::vector<std::string>& vector)
926 std::vector<int>& vector)
936 std::vector<float>& vector)
946 std::vector<double>& vector)
956 std::vector<std::string>& vector)
void SetCompressionLevel(G4int level)
void SetVerboseLevel(G4int verboseLevel)
void SetIsActivation(G4bool isActivation)
G4int GetCompressionLevel() const
G4bool GetIsMaster() const
G4bool GetIsActivation() 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")
virtual G4bool MergeImpl(tools::histo::hmpi *hmpi)=0
G4int GetFirstP2Id() const
std::shared_ptr< G4PlotManager > fPlotManager
void SetH1Ascii(G4int id, G4bool ascii)
G4int GetFirstNtupleId() 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")
G4int GetFirstH2Id() const
void SetH2FileName(G4int id, const G4String &fileName)
G4VAnalysisManager()=delete
void SetH1Activation(G4bool activation)
virtual std::shared_ptr< G4VFileManager > GetFileManager(const G4String &fileName)
virtual ~G4VAnalysisManager()
static constexpr std::string_view fkClass
std::shared_ptr< G4HnManager > fP1HnManager
void SetH1Plotting(G4int id, G4bool plotting)
void SetH3Ascii(G4int id, G4bool ascii)
void SetH1Manager(G4VH1Manager *h1Manager)
std::unique_ptr< G4VP1Manager > fVP1Manager
G4int GetNofNtuples() const
void SetH3Activation(G4bool activation)
G4int GetFirstP1Id() 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")
void SetH2Manager(G4VH2Manager *h2Manager)
G4int CreateNtupleIColumn(const G4String &name)
virtual G4bool WriteImpl()=0
G4String GetHistoDirectoryName() const
G4int CreateNtupleDColumn(const G4String &name)
void SetH3Plotting(G4int id, G4bool plotting)
void SetP2FileName(G4int id, const G4String &fileName)
void SetNtupleFileName(const G4String &fileName)
std::unique_ptr< G4AnalysisMessenger > fMessenger
G4int CreateNtupleFColumn(const G4String &name)
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
void SetP2Plotting(G4int id, G4bool plotting)
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 SetFirstP1Id(G4int firstId)
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")
std::shared_ptr< G4HnManager > fP2HnManager
virtual G4bool OpenFileImpl(const G4String &fileName)=0
void SetActivation(G4bool activation)
G4bool SetFirstNtupleColumnId(G4int firstId)
G4String GetFileName() const
G4bool CloseFile(G4bool reset=true)
G4bool OpenFile(const G4String &fileName="")
void SetH3FileName(G4int id, const G4String &fileName)
virtual void ClearImpl()=0
std::unique_ptr< G4VH1Manager > fVH1Manager
std::shared_ptr< G4NtupleBookingManager > fNtupleBookingManager
G4bool ScaleP1(G4int id, G4double factor)
void SetPlotManager(std::shared_ptr< G4PlotManager > plotManager)
G4bool ScaleH3(G4int id, G4double factor)
void SetH2Ascii(G4int id, G4bool ascii)
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
void SetP1Ascii(G4int id, G4bool ascii)
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 SetFirstH3Id(G4int firstId)
G4bool SetHistoDirectoryName(const G4String &dirName)
std::shared_ptr< G4HnManager > fH3HnManager
G4AnalysisManagerState fState
void SetP2Activation(G4bool activation)
void SetH1FileName(G4int id, const G4String &fileName)
virtual void SetNtupleRowWise(G4bool rowWise, G4bool rowMode=true)
void SetP1Plotting(G4int id, G4bool plotting)
virtual void SetBasketSize(unsigned int basketSize)
std::shared_ptr< G4HnManager > fH1HnManager
std::unique_ptr< G4VH2Manager > fVH2Manager
void SetFileManager(std::shared_ptr< G4VFileManager > fileManager)
void SetP1FileName(G4int id, const G4String &fileName)
G4bool WriteAscii(const G4String &fileName)
virtual void SetNtupleMerging(G4bool mergeNtuples, G4int nofReducedNtupleFiles=0)
void SetP2Manager(G4VP2Manager *p2Manager)
void SetP1Activation(G4bool activation)
virtual void SetBasketEntries(unsigned int basketEntries)
G4int GetFirstNtupleColumnId() const
void SetVerboseLevel(G4int verboseLevel)
G4bool SetH1(G4int id, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
void SetH2Activation(G4bool activation)
G4int CreateNtuple(const G4String &name, const G4String &title)
std::shared_ptr< G4VNtupleManager > fVNtupleManager
void SetNtupleManager(std::shared_ptr< G4VNtupleManager > ntupleManager)
G4bool SetFirstH2Id(G4int firstId)
void SetP1Manager(G4VP1Manager *p1Manager)
void SetH3Manager(G4VH3Manager *h3Manager)
G4bool SetFirstP2Id(G4int firstId)
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")
G4String GetFileType() const
virtual G4bool ResetImpl()=0
std::unique_ptr< G4VP2Manager > fVP2Manager
std::shared_ptr< G4VFileManager > fVFileManager
std::unique_ptr< G4VH3Manager > fVH3Manager
std::shared_ptr< G4HnManager > fH2HnManager
G4bool SetFileName(const G4String &fileName)
void SetCompressionLevel(G4int level)
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 GetNtupleDirectoryName() const
G4bool SetFirstNtupleId(G4int firstId)
G4bool IsOpenFile() const
G4bool SetFirstHistoId(G4int firstId)
G4bool SetFirstProfileId(G4int firstId)
G4bool SetNtupleDirectoryName(const G4String &dirName)
G4int GetFirstH3Id() const
G4bool ScaleP2(G4int id, G4double factor)
virtual G4bool CloseFileImpl(G4bool reset)=0
G4bool ScaleH2(G4int id, G4double factor)
G4bool Merge(tools::histo::hmpi *hmpi)
void SetP2Ascii(G4int id, G4bool ascii)
void SetH2Plotting(G4int id, G4bool plotting)
virtual std::shared_ptr< G4HnManager > GetHnManager()=0
virtual std::shared_ptr< G4HnManager > GetHnManager()=0
virtual std::shared_ptr< G4HnManager > GetHnManager()=0
virtual std::shared_ptr< G4HnManager > GetHnManager()=0
virtual std::shared_ptr< G4HnManager > GetHnManager()=0
G4String GetExtension(const G4String &fileName, const G4String &defaultExtension="")
G4bool CheckMinMax(G4double xmin, G4double xmax, const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4bool CheckNbins(G4int nbins)
constexpr G4int kInvalidId
G4bool CheckEdges(const std::vector< G4double > &edges)
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)
G4bool CheckName(const G4String &name, const G4String &objectType)
const char * name(G4int ptype)
void NtupleMergingWarning(std::string_view className, std::string_view functionName, const G4String &outputType)