Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4XmlAnalysisReader Class Reference

#include <G4XmlAnalysisReader.hh>

+ Inheritance diagram for G4XmlAnalysisReader:

Public Member Functions

 G4XmlAnalysisReader (G4bool isMaster=true)
 
virtual ~G4XmlAnalysisReader ()
 
tools::aida::ntuple * GetNtuple () const
 
tools::aida::ntuple * GetNtuple (G4int ntupleId) const
 
G4int GetNtuple (const G4String &ntupleName, const G4String &fileName="", const G4String &dirName="")
 
- Public Member Functions inherited from G4ToolsAnalysisReader
 G4ToolsAnalysisReader (const G4String &type, G4bool isMaster=true)
 
virtual ~G4ToolsAnalysisReader ()
 
tools::histo::h1d * GetH1 (G4int id, G4bool warn=true) const
 
tools::histo::h2d * GetH2 (G4int id, G4bool warn=true) const
 
tools::histo::h3d * GetH3 (G4int id, G4bool warn=true) const
 
tools::histo::p1d * GetP1 (G4int id, G4bool warn=true) const
 
tools::histo::p2d * GetP2 (G4int id, G4bool warn=true) const
 
- Public Member Functions inherited from G4VAnalysisReader
 G4VAnalysisReader (const G4String &type, G4bool isMaster)
 
virtual ~G4VAnalysisReader ()
 
void SetFileName (const G4String &fileName)
 
G4String GetFileName () const
 
G4int ReadH1 (const G4String &h1Name, const G4String &fileName="", const G4String &dirName="")
 
G4int ReadH2 (const G4String &h2Name, const G4String &fileName="", const G4String &dirName="")
 
G4int ReadH3 (const G4String &h3Name, const G4String &fileName="", const G4String &dirName="")
 
G4int ReadP1 (const G4String &h1Name, const G4String &fileName="", const G4String &dirName="")
 
G4int ReadP2 (const G4String &h2Name, const G4String &fileName="", const G4String &dirName="")
 
G4bool SetFirstHistoId (G4int firstId)
 
G4bool SetFirstH1Id (G4int firstId)
 
G4bool SetFirstH2Id (G4int firstId)
 
G4bool SetFirstH3Id (G4int firstId)
 
G4bool SetFirstProfileId (G4int firstId)
 
G4bool SetFirstP1Id (G4int firstId)
 
G4bool SetFirstP2Id (G4int firstId)
 
G4bool SetFirstNtupleId (G4int firstId)
 
G4int GetNtuple (const G4String &ntupleName, const G4String &fileName="", const G4String &dirName="")
 
G4bool SetNtupleIColumn (const G4String &columnName, G4int &value)
 
G4bool SetNtupleFColumn (const G4String &columnName, G4float &value)
 
G4bool SetNtupleDColumn (const G4String &columnName, G4double &value)
 
G4bool SetNtupleSColumn (const G4String &columnName, G4String &value)
 
G4bool SetNtupleIColumn (const G4String &columnName, std::vector< int > &vector)
 
G4bool SetNtupleFColumn (const G4String &columnName, std::vector< float > &vector)
 
G4bool SetNtupleDColumn (const G4String &columnName, std::vector< double > &vector)
 
G4bool SetNtupleIColumn (G4int ntupleId, const G4String &columnName, G4int &value)
 
G4bool SetNtupleFColumn (G4int ntupleId, const G4String &columnName, G4float &value)
 
G4bool SetNtupleDColumn (G4int ntupleId, const G4String &columnName, G4double &value)
 
G4bool SetNtupleSColumn (G4int ntupleId, const G4String &columnName, G4String &value)
 
G4bool SetNtupleIColumn (G4int ntupleId, const G4String &columnName, std::vector< int > &vector)
 
G4bool SetNtupleFColumn (G4int ntupleId, const G4String &columnName, std::vector< float > &vector)
 
G4bool SetNtupleDColumn (G4int ntupleId, const G4String &columnName, std::vector< double > &vector)
 
G4bool GetNtupleRow ()
 
G4bool GetNtupleRow (G4int ntupleId)
 
G4bool IsAscii () const
 
G4int GetNofH1s () const
 
G4int GetNofH2s () const
 
G4int GetNofH3s () const
 
G4int GetNofP1s () const
 
G4int GetNofP2s () const
 
G4int GetNofNtuples () const
 
G4int GetH1Id (const G4String &name, G4bool warn=true) const
 
G4int GetH2Id (const G4String &name, G4bool warn=true) const
 
G4int GetH3Id (const G4String &name, G4bool warn=true) const
 
G4int GetP1Id (const G4String &name, G4bool warn=true) const
 
G4int GetP2Id (const G4String &name, G4bool warn=true) const
 
G4int GetH1Nbins (G4int id) const
 
G4double GetH1Xmin (G4int id) const
 
G4double GetH1Xmax (G4int id) const
 
G4double GetH1Width (G4int id) const
 
G4int GetH2Nxbins (G4int id) const
 
G4double GetH2Xmin (G4int id) const
 
G4double GetH2Xmax (G4int id) const
 
G4double GetH2XWidth (G4int id) const
 
G4int GetH2Nybins (G4int id) const
 
G4double GetH2Ymin (G4int id) const
 
G4double GetH2Ymax (G4int id) const
 
G4double GetH2YWidth (G4int id) const
 
G4int GetH3Nxbins (G4int id) const
 
G4double GetH3Xmin (G4int id) const
 
G4double GetH3Xmax (G4int id) const
 
G4double GetH3XWidth (G4int id) const
 
G4int GetH3Nybins (G4int id) const
 
G4double GetH3Ymin (G4int id) const
 
G4double GetH3Ymax (G4int id) const
 
G4double GetH3YWidth (G4int id) const
 
G4int GetH3Nzbins (G4int id) const
 
G4double GetH3Zmin (G4int id) const
 
G4double GetH3Zmax (G4int id) const
 
G4double GetH3ZWidth (G4int id) const
 
G4int GetP1Nbins (G4int id) const
 
G4double GetP1Xmin (G4int id) const
 
G4double GetP1Xmax (G4int id) const
 
G4double GetP1XWidth (G4int id) const
 
G4double GetP1Ymin (G4int id) const
 
G4double GetP1Ymax (G4int id) const
 
G4int GetP2Nxbins (G4int id) const
 
G4double GetP2Xmin (G4int id) const
 
G4double GetP2Xmax (G4int id) const
 
G4double GetP2XWidth (G4int id) const
 
G4int GetP2Nybins (G4int id) const
 
G4double GetP2Ymin (G4int id) const
 
G4double GetP2Ymax (G4int id) const
 
G4double GetP2YWidth (G4int id) const
 
G4double GetP2Zmin (G4int id) const
 
G4double GetP2Zmax (G4int id) const
 
G4String GetH1Title (G4int id) const
 
G4String GetH1XAxisTitle (G4int id) const
 
G4String GetH1YAxisTitle (G4int id) const
 
G4String GetH2Title (G4int id) const
 
G4String GetH2XAxisTitle (G4int id) const
 
G4String GetH2YAxisTitle (G4int id) const
 
G4String GetH2ZAxisTitle (G4int id) const
 
G4String GetH3Title (G4int id) const
 
G4String GetH3XAxisTitle (G4int id) const
 
G4String GetH3YAxisTitle (G4int id) const
 
G4String GetH3ZAxisTitle (G4int id) const
 
G4String GetP1Title (G4int id) const
 
G4String GetP1XAxisTitle (G4int id) const
 
G4String GetP1YAxisTitle (G4int id) const
 
G4String GetP1ZAxisTitle (G4int id) const
 
G4String GetP2Title (G4int id) const
 
G4String GetP2XAxisTitle (G4int id) const
 
G4String GetP2YAxisTitle (G4int id) const
 
G4String GetP2ZAxisTitle (G4int id) const
 
void SetVerboseLevel (G4int verboseLevel)
 
G4int GetVerboseLevel () const
 
G4String GetType () const
 
G4String GetFileType () const
 

Static Public Member Functions

static G4XmlAnalysisReaderInstance ()
 

Protected Member Functions

virtual G4int ReadH1Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
virtual G4int ReadH2Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
virtual G4int ReadH3Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
virtual G4int ReadP1Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
virtual G4int ReadP2Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
virtual G4int ReadNtupleImpl (const G4String &ntupleName, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
 
- Protected Member Functions inherited from G4ToolsAnalysisReader
G4bool Reset ()
 
- Protected Member Functions inherited from G4VAnalysisReader
virtual G4int ReadH1Impl (const G4String &h1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
virtual G4int ReadH2Impl (const G4String &h2Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
virtual G4int ReadH3Impl (const G4String &h3Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
virtual G4int ReadP1Impl (const G4String &p1Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
virtual G4int ReadP2Impl (const G4String &p2Name, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
virtual G4int ReadNtupleImpl (const G4String &ntupleName, const G4String &fileName, const G4String &dirName, G4bool isUserFileName)=0
 
void SetH1Manager (G4VH1Manager *h1Manager)
 
void SetH2Manager (G4VH2Manager *h2Manager)
 
void SetH3Manager (G4VH3Manager *h3Manager)
 
void SetP1Manager (G4VP1Manager *p1Manager)
 
void SetP2Manager (G4VP2Manager *p2Manager)
 
void SetNtupleManager (G4VRNtupleManager *ntupleManager)
 
void SetFileManager (G4BaseFileManager *fileManager)
 

Additional Inherited Members

- Protected Attributes inherited from G4ToolsAnalysisReader
G4H1ToolsManagerfH1Manager
 
G4H2ToolsManagerfH2Manager
 
G4H3ToolsManagerfH3Manager
 
G4P1ToolsManagerfP1Manager
 
G4P2ToolsManagerfP2Manager
 
- Protected Attributes inherited from G4VAnalysisReader
G4AnalysisManagerState fState
 

Detailed Description

Definition at line 53 of file G4XmlAnalysisReader.hh.

Constructor & Destructor Documentation

◆ G4XmlAnalysisReader()

G4XmlAnalysisReader::G4XmlAnalysisReader ( G4bool  isMaster = true)
explicit

Definition at line 61 of file G4XmlAnalysisReader.cc.

62 : G4ToolsAnalysisReader("Xml", isMaster),
63 fNtupleManager(nullptr),
64 fFileManager(nullptr)
65{
66 if ( ( isMaster && fgMasterInstance ) || ( fgInstance ) ) {
67 G4ExceptionDescription description;
68 description
69 << " "
70 << "G4XmlAnalysisReader already exists."
71 << "Cannot create another instance.";
72 G4Exception("G4XmlAnalysisReader::G4XmlAnalysisReader()",
73 "Analysis_F001", FatalException, description);
74 }
75 if ( isMaster ) fgMasterInstance = this;
76 fgInstance = this;
77
78 // Create managers
79 fNtupleManager = new G4XmlRNtupleManager(fState);
80 fFileManager = new G4XmlRFileManager(fState);
81 // The managers will be deleted by the base class
82
83 // Set managers to base class
84 SetNtupleManager(fNtupleManager);
85 SetFileManager(fFileManager);
86}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
void SetFileManager(G4BaseFileManager *fileManager)
void SetNtupleManager(G4VRNtupleManager *ntupleManager)
G4AnalysisManagerState fState

◆ ~G4XmlAnalysisReader()

G4XmlAnalysisReader::~G4XmlAnalysisReader ( )
virtual

Definition at line 89 of file G4XmlAnalysisReader.cc.

90{
91 if ( fState.GetIsMaster() ) fgMasterInstance = nullptr;
92 fgInstance = nullptr;
93}

Member Function Documentation

◆ GetNtuple() [1/3]

tools::aida::ntuple * G4XmlAnalysisReader::GetNtuple ( ) const

◆ GetNtuple() [2/3]

G4int G4VAnalysisReader::GetNtuple ( const G4String ntupleName,
const G4String fileName = "",
const G4String dirName = "" 
)

Definition at line 88 of file G4VAnalysisReader.cc.

298{
299 if ( fileName != "" ) {
300 return ReadNtupleImpl(ntupleName, fileName, dirName, true);
301 }
302 else {
303 // Check if fileName was set
304 if ( fFileManager->GetFileName() == "" ) {
305 G4ExceptionDescription description;
306 description
307 << "Cannot get Ntuple. File name has to be set first.";
308 G4Exception("G4VAnalysisReader::GetNtuple()",
309 "Analysis_WR011", JustWarning, description);
310 return kInvalidId;
311 }
312 return ReadNtupleImpl(ntupleName, fFileManager->GetFileName(), dirName, false);
313 }
314}
@ JustWarning
G4String GetFileName() const
virtual G4int ReadNtupleImpl(const G4String &ntupleName, const G4String &fileName, const G4String &dirName, G4bool isUserFileName) final
const G4int kInvalidId

◆ GetNtuple() [3/3]

tools::aida::ntuple * G4XmlAnalysisReader::GetNtuple ( G4int  ntupleId) const

◆ Instance()

G4XmlAnalysisReader * G4XmlAnalysisReader::Instance ( )
static

Definition at line 50 of file G4XmlAnalysisReader.cc.

51{
52 if ( fgInstance == nullptr ) {
54 fgInstance = new G4XmlAnalysisReader(isMaster);
55 }
56
57 return fgInstance;
58}
bool G4bool
Definition: G4Types.hh:86
G4bool IsWorkerThread()
Definition: G4Threading.cc:123

◆ ReadH1Impl()

G4int G4XmlAnalysisReader::ReadH1Impl ( const G4String h1Name,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 166 of file G4XmlAnalysisReader.cc.

170{
171#ifdef G4VERBOSE
172 if ( fState.GetVerboseL4() )
173 fState.GetVerboseL4()->Message("read", "h1", h1Name);
174#endif
175
176 tools::raxml_out* handler
177 = GetHandler(fileName, h1Name, tools::histo::h1d::s_class(), "ReadH1Impl");
178 if ( ! handler ) return kInvalidId;
179
180 auto h1 = static_cast<tools::histo::h1d*>(handler->object());
181 auto id = fH1Manager->AddH1(h1Name, h1);
182
183#ifdef G4VERBOSE
184 if ( fState.GetVerboseL2() )
185 fState.GetVerboseL2()->Message("read", "h1", h1Name, id > kInvalidId);
186#endif
187
188 return id;
189}
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
G4int AddH1(const G4String &name, tools::histo::h1d *h1d)
G4H1ToolsManager * fH1Manager

◆ ReadH2Impl()

G4int G4XmlAnalysisReader::ReadH2Impl ( const G4String h1Name,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 192 of file G4XmlAnalysisReader.cc.

196{
197#ifdef G4VERBOSE
198 if ( fState.GetVerboseL4() )
199 fState.GetVerboseL4()->Message("read", "h2", h2Name);
200#endif
201
202 auto handler
203 = GetHandler(fileName, h2Name, tools::histo::h2d::s_class(), "ReadH2Impl");
204 if ( ! handler ) return kInvalidId;
205
206 auto h2 = static_cast<tools::histo::h2d*>(handler->object());
207 auto id = fH2Manager->AddH2(h2Name, h2);
208
209#ifdef G4VERBOSE
210 if ( fState.GetVerboseL2() )
211 fState.GetVerboseL2()->Message("read", "h2", h2Name, id > kInvalidId);
212#endif
213
214 return id;
215}
G4int AddH2(const G4String &name, tools::histo::h2d *h2d)
G4H2ToolsManager * fH2Manager

◆ ReadH3Impl()

G4int G4XmlAnalysisReader::ReadH3Impl ( const G4String h1Name,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 218 of file G4XmlAnalysisReader.cc.

222{
223#ifdef G4VERBOSE
224 if ( fState.GetVerboseL4() )
225 fState.GetVerboseL4()->Message("read", "h3", h3Name);
226#endif
227
228 auto handler
229 = GetHandler(fileName, h3Name, tools::histo::h3d::s_class(), "ReadH3Impl");
230 if ( ! handler ) return kInvalidId;
231
232 auto h3 = static_cast<tools::histo::h3d*>(handler->object());
233 auto id = fH3Manager->AddH3(h3Name, h3);
234
235#ifdef G4VERBOSE
236 if ( fState.GetVerboseL2() )
237 fState.GetVerboseL2()->Message("read", "h3", h3Name, id > kInvalidId);
238#endif
239
240 return id;
241}
G4int AddH3(const G4String &name, tools::histo::h3d *h3d)
G4H3ToolsManager * fH3Manager

◆ ReadNtupleImpl()

G4int G4XmlAnalysisReader::ReadNtupleImpl ( const G4String ntupleName,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 296 of file G4XmlAnalysisReader.cc.

300{
301#ifdef G4VERBOSE
302 if ( fState.GetVerboseL4() )
303 fState.GetVerboseL4()->Message("read", "ntuple", ntupleName);
304#endif
305
306 // Ntuples are saved per object and per thread
307 // but apply the ntuple name and the thread suffixes
308 // only if fileName is not provided explicitly
309 auto fullFileName = fileName;
310 if ( ! isUserFileName ) {
311 fullFileName = fFileManager->GetNtupleFileName(ntupleName);
312 }
313
314 auto handler
315 = GetHandler(fullFileName, ntupleName, tools::aida::ntuple::s_class(),
316 "ReadNtupleImpl");
317 if ( ! handler ) return kInvalidId;
318
319 auto rntuple = static_cast<tools::aida::ntuple*>(handler->object());
320 auto id = fNtupleManager->SetNtuple(new G4TRNtupleDescription<tools::aida::ntuple>(rntuple));
321
322#ifdef G4VERBOSE
323 if ( fState.GetVerboseL2() )
324 fState.GetVerboseL2()->Message("read", "ntuple", ntupleName, id > kInvalidId);
325#endif
326
327 return id;
328}
G4String GetNtupleFileName(const G4String &ntupleName) const
G4int SetNtuple(G4TRNtupleDescription< TNTUPLE > *rntupleDescription)

◆ ReadP1Impl()

G4int G4XmlAnalysisReader::ReadP1Impl ( const G4String h1Name,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 244 of file G4XmlAnalysisReader.cc.

248{
249#ifdef G4VERBOSE
250 if ( fState.GetVerboseL4() )
251 fState.GetVerboseL4()->Message("read", "p1", p1Name);
252#endif
253
254 auto handler
255 = GetHandler(fileName, p1Name, tools::histo::p1d::s_class(), "ReadP1Impl");
256 if ( ! handler ) return kInvalidId;
257
258 auto p1 = static_cast<tools::histo::p1d*>(handler->object());
259 auto id = fP1Manager->AddP1(p1Name, p1);
260
261#ifdef G4VERBOSE
262 if ( fState.GetVerboseL2() )
263 fState.GetVerboseL2()->Message("read", "p1", p1Name, id > kInvalidId);
264#endif
265
266 return id;
267}
G4int AddP1(const G4String &name, tools::histo::p1d *p1d)
G4P1ToolsManager * fP1Manager

◆ ReadP2Impl()

G4int G4XmlAnalysisReader::ReadP2Impl ( const G4String h1Name,
const G4String fileName,
const G4String dirName,
G4bool  isUserFileName 
)
finalprotectedvirtual

Implements G4VAnalysisReader.

Definition at line 270 of file G4XmlAnalysisReader.cc.

274{
275#ifdef G4VERBOSE
276 if ( fState.GetVerboseL4() )
277 fState.GetVerboseL4()->Message("read", "p2", p2Name);
278#endif
279
280 auto handler
281 = GetHandler(fileName, p2Name, tools::histo::p2d::s_class(), "ReadP2Impl");
282 if ( ! handler ) return kInvalidId;
283
284 auto p2 = static_cast<tools::histo::p2d*>(handler->object());
285 auto id = fP2Manager->AddP2(p2Name, p2);
286
287#ifdef G4VERBOSE
288 if ( fState.GetVerboseL2() )
289 fState.GetVerboseL2()->Message("read", "p2", p2Name, id > kInvalidId);
290#endif
291
292 return id;
293}
G4int AddP2(const G4String &name, tools::histo::p2d *p2d)
G4P2ToolsManager * fP2Manager

The documentation for this class was generated from the following files: