Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4XmlAnalysisReader Class Reference

#include <G4XmlAnalysisReader.hh>

Inheritance diagram for G4XmlAnalysisReader:
Collaboration diagram for G4XmlAnalysisReader:

Public Member Functions

 G4XmlAnalysisReader (G4bool isMaster=true)
 
virtual ~G4XmlAnalysisReader ()
 
tools::aida::ntuple * GetNtuple () const
 
tools::aida::ntuple * GetNtuple (G4int ntupleId) const
 
- 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="")
 
G4int ReadH2 (const G4String &h2Name, const G4String &fileName="")
 
G4int ReadH3 (const G4String &h3Name, const G4String &fileName="")
 
G4int ReadP1 (const G4String &h1Name, const G4String &fileName="")
 
G4int ReadP2 (const G4String &h2Name, const G4String &fileName="")
 
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="")
 
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, G4bool isUserFileName) final
 
virtual G4int ReadH2Impl (const G4String &h1Name, const G4String &fileName, G4bool isUserFileName) final
 
virtual G4int ReadH3Impl (const G4String &h1Name, const G4String &fileName, G4bool isUserFileName) final
 
virtual G4int ReadP1Impl (const G4String &h1Name, const G4String &fileName, G4bool isUserFileName) final
 
virtual G4int ReadP2Impl (const G4String &h1Name, const G4String &fileName, G4bool isUserFileName) final
 
virtual G4int ReadNtupleImpl (const G4String &ntupleName, const G4String &fileName, G4bool isUserFileName) final
 
- Protected Member Functions inherited from G4ToolsAnalysisReader
G4bool Reset ()
 
- Protected Member Functions inherited from G4VAnalysisReader
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 54 of file G4XmlAnalysisReader.hh.

Constructor & Destructor Documentation

G4XmlAnalysisReader::G4XmlAnalysisReader ( G4bool  isMaster = true)
explicit

Definition at line 63 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:

G4XmlAnalysisReader::~G4XmlAnalysisReader ( )
virtual

Definition at line 91 of file G4XmlAnalysisReader.cc.

92 {
93  if ( fState.GetIsMaster() ) fgMasterInstance = nullptr;
94  fgInstance = nullptr;
95 }
G4AnalysisManagerState fState

Here is the call graph for this function:

Member Function Documentation

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

Definition at line 52 of file G4XmlAnalysisReader.cc.

53 {
54  if ( fgInstance == nullptr ) {
55  G4bool isMaster = ! G4Threading::IsWorkerThread();
56  fgInstance = new G4XmlAnalysisReader(isMaster);
57  }
58 
59  return fgInstance;
60 }
bool G4bool
Definition: G4Types.hh:79
G4bool IsWorkerThread()
Definition: G4Threading.cc:145
G4XmlAnalysisReader(G4bool isMaster=true)

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 168 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 193 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 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
G4AnalysisManagerState fState
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
G4H2ToolsManager * fH2Manager
G4int AddH2(const G4String &name, tools::histo::h2d *h2d)
const G4int kInvalidId

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 218 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 293 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 243 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:

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

Implements G4VAnalysisReader.

Definition at line 268 of file G4XmlAnalysisReader.cc.

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

Here is the call graph for this function:


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