Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Member Functions | Friends
G4XmlNtupleManager Class Reference

#include <G4XmlNtupleManager.hh>

Inheritance diagram for G4XmlNtupleManager:
G4VNtupleManager G4BaseAnalysisManager

Protected Member Functions

 G4XmlNtupleManager (const G4AnalysisManagerState &state)
 
 ~G4XmlNtupleManager ()
 
void CreateNtuplesFromBooking ()
 
G4bool IsEmpty () const
 
G4bool Reset ()
 
void SetFileManager (G4XmlFileManager *fileManager)
 
tools::waxml::ntuple * GetNtuple () const
 
tools::waxml::ntuple * GetNtuple (G4int ntupleId) const
 
const std::vector
< G4XmlNtupleDescription * > & 
GetNtupleVector () const
 
virtual G4int CreateNtuple (const G4String &name, const G4String &title)
 
virtual G4int CreateNtupleIColumn (const G4String &name)
 
virtual G4int CreateNtupleFColumn (const G4String &name)
 
virtual G4int CreateNtupleDColumn (const G4String &name)
 
virtual void FinishNtuple ()
 
virtual G4int CreateNtupleIColumn (G4int ntupleId, const G4String &name)
 
virtual G4int CreateNtupleFColumn (G4int ntupleId, const G4String &name)
 
virtual G4int CreateNtupleDColumn (G4int ntupleId, const G4String &name)
 
virtual void FinishNtuple (G4int ntupleId)
 
virtual G4bool FillNtupleIColumn (G4int columnId, G4int value)
 
virtual G4bool FillNtupleFColumn (G4int columnId, G4float value)
 
virtual G4bool FillNtupleDColumn (G4int columnId, G4double value)
 
virtual G4bool AddNtupleRow ()
 
virtual G4bool FillNtupleIColumn (G4int ntupleId, G4int columnId, G4int value)
 
virtual G4bool FillNtupleFColumn (G4int ntupleId, G4int columnId, G4float value)
 
virtual G4bool FillNtupleDColumn (G4int ntupleId, G4int columnId, G4double value)
 
virtual G4bool AddNtupleRow (G4int ntupleId)
 
virtual G4int GetNofNtuples () const
 
- Protected Member Functions inherited from G4VNtupleManager
 G4VNtupleManager (const G4AnalysisManagerState &state)
 
virtual ~G4VNtupleManager ()
 
G4bool SetFirstNtupleColumnId (G4int firstId)
 
- Protected Member Functions inherited from G4BaseAnalysisManager
void ExceptionForHistograms (const G4String &functionName) const
 

Friends

class G4XmlAnalysisManager
 

Additional Inherited Members

- Public Member Functions inherited from G4BaseAnalysisManager
 G4BaseAnalysisManager (const G4AnalysisManagerState &state)
 
virtual ~G4BaseAnalysisManager ()
 
G4bool SetFirstId (G4int firstId)
 
- Protected Attributes inherited from G4VNtupleManager
G4int fFirstNtupleColumnId
 
G4bool fLockFirstNtupleColumnId
 
- Protected Attributes inherited from G4BaseAnalysisManager
const G4AnalysisManagerStatefState
 
G4int fFirstId
 
G4bool fLockFirstId
 

Detailed Description

Definition at line 45 of file G4XmlNtupleManager.hh.

Constructor & Destructor Documentation

G4XmlNtupleManager::G4XmlNtupleManager ( const G4AnalysisManagerState state)
protected

Definition at line 42 of file G4XmlNtupleManager.cc.

43  : G4VNtupleManager(state),
44  fFileManager(0),
45  fNtupleVector()
46 {
47 }
G4VNtupleManager(const G4AnalysisManagerState &state)
G4XmlNtupleManager::~G4XmlNtupleManager ( )
protected

Definition at line 50 of file G4XmlNtupleManager.cc.

51 {
52  std::vector<G4XmlNtupleDescription*>::iterator it;
53  for (it = fNtupleVector.begin(); it != fNtupleVector.end(); it++ ) {
54  delete (*it);
55  }
56 }

Member Function Documentation

G4bool G4XmlNtupleManager::AddNtupleRow ( )
protectedvirtual

Implements G4VNtupleManager.

Definition at line 616 of file G4XmlNtupleManager.cc.

617 {
618  return AddNtupleRow(fFirstId);
619 }
virtual G4bool AddNtupleRow()
G4bool G4XmlNtupleManager::AddNtupleRow ( G4int  ntupleId)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 622 of file G4XmlNtupleManager.cc.

References G4XmlNtupleDescription::fNtuple, G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

623 {
624 #ifdef G4VERBOSE
625  if ( fState.GetVerboseL4() ) {
626  G4ExceptionDescription description;
627  description << " ntupleId " << ntupleId;
628  fState.GetVerboseL4()->Message("add", "ntuple row", description);
629  }
630 #endif
631 
632  G4XmlNtupleDescription* ntupleDescription
633  = GetNtupleInFunction(ntupleId, "AddNtupleRow");
634 
635  if ( ! ntupleDescription || ! ntupleDescription->fNtuple ) {
636  G4ExceptionDescription description;
637  description << " " << "ntuple does not exist. ";
638  G4Exception("G4XmlNtupleManager::AddNtupleRow()",
639  "Analysis_W008", JustWarning, description);
640  return false;
641  }
642 
643  ntupleDescription->fNtuple->add_row();
644 #ifdef G4VERBOSE
645  if ( fState.GetVerboseL4() ) {
646  G4ExceptionDescription description;
647  description << " ntupleId " << ntupleId;
648  fState.GetVerboseL4()->Message("add", "ntuple row", description);
649  }
650 #endif
651 
652  return true;
653 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
tools::waxml::ntuple * fNtuple
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4AnalysisManagerState & fState
G4int G4XmlNtupleManager::CreateNtuple ( const G4String name,
const G4String title 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 259 of file G4XmlNtupleManager.cc.

References G4XmlFileManager::CreateNtupleFile(), G4XmlNtupleDescription::fFile, G4BaseAnalysisManager::fFirstId, G4BaseAnalysisManager::fLockFirstId, G4XmlNtupleDescription::fNtuple, G4XmlNtupleDescription::fNtupleBooking, G4BaseAnalysisManager::fState, G4VFileManager::GetFileName(), G4AnalysisManagerState::GetVerboseL2(), G4AnalysisManagerState::GetVerboseL4(), G4AnalysisVerbose::Message(), and title().

261 {
262 #ifdef G4VERBOSE
263  if ( fState.GetVerboseL4() )
264  fState.GetVerboseL4()->Message("create", "ntuple", name);
265 #endif
266 
267  // Create ntuple description
268  G4int index = fNtupleVector.size();
269  G4XmlNtupleDescription* ntupleDescription
270  = new G4XmlNtupleDescription();
271  fNtupleVector.push_back(ntupleDescription);
272 
273  // Create ntuple booking
274  ntupleDescription->fNtupleBooking = new tools::ntuple_booking();
275  ntupleDescription->fNtupleBooking->m_name = name;
276  ntupleDescription->fNtupleBooking->m_title = title;
277 
278  // Create ntuple if the file is open (what means here that
279  // a filename was already set)
280  if ( fFileManager->GetFileName().size() ) {
281  if ( fFileManager->CreateNtupleFile(ntupleDescription) ) {
282  ntupleDescription->fNtuple
283  = new tools::waxml::ntuple(*(ntupleDescription->fFile));
284  // ntuple object is deleted when closing a file
285  }
286  }
287 
288  fLockFirstId = true;
289 
290 #ifdef G4VERBOSE
291  if ( fState.GetVerboseL2() ) {
292  G4ExceptionDescription description;
293  description << name << " ntupleId " << index + fFirstId;
294  fState.GetVerboseL2()->Message("create", "ntuple", description);
295  }
296 #endif
297 
298  return index + fFirstId;
299 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
tools::waxml::ntuple * fNtuple
tools::ntuple_booking * fNtupleBooking
G4bool CreateNtupleFile(G4XmlNtupleDescription *ntupleDescription)
const XML_Char * name
int G4int
Definition: G4Types.hh:78
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
G4String GetFileName() const
subroutine title(NA, NB, NCA, NCB)
Definition: dpm25nuc7.f:1744
const G4AnalysisManagerState & fState
G4int G4XmlNtupleManager::CreateNtupleDColumn ( const G4String name)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 316 of file G4XmlNtupleManager.cc.

317 {
318  G4int ntupleId = fNtupleVector.size() + fFirstId - 1;
319  return CreateNtupleDColumn(ntupleId, name);
320 }
int G4int
Definition: G4Types.hh:78
virtual G4int CreateNtupleDColumn(const G4String &name)
G4int G4XmlNtupleManager::CreateNtupleDColumn ( G4int  ntupleId,
const G4String name 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 428 of file G4XmlNtupleManager.cc.

References G4VNtupleManager::fFirstNtupleColumnId, G4VNtupleManager::fLockFirstNtupleColumnId, G4XmlNtupleDescription::fNtuple, G4XmlNtupleDescription::fNtupleBooking, G4XmlNtupleDescription::fNtupleDColumnMap, G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL2(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

429 {
430 #ifdef G4VERBOSE
431  if ( fState.GetVerboseL4() ) {
432  G4ExceptionDescription description;
433  description << name << " ntupleId " << ntupleId;
434  fState.GetVerboseL4()->Message("create", "ntuple D column", description);
435  }
436 #endif
437 
438  G4XmlNtupleDescription* ntupleDescription
439  = GetNtupleInFunction(ntupleId, "CreateNtupleDColumn");
440  tools::ntuple_booking* ntupleBooking
441  = ntupleDescription->fNtupleBooking;
442 
443  if ( ! ntupleBooking ) {
444  G4ExceptionDescription description;
445  description << " "
446  << "Ntuple " << ntupleId << " has to be created first. ";
447  G4Exception("G4XmlNtupleManager::CreateNtupleDColumn()",
448  "Analysis_W005", JustWarning, description);
449  return -1;
450  }
451 
452  // Save column info in booking
453  G4int index = ntupleBooking->m_columns.size();
454  ntupleBooking->add_column<double>(name);
455 
456  // Create column if ntuple already exists
457  if ( ntupleDescription->fNtuple ) {
458  tools::waxml::ntuple::column<double>* column
459  = ntupleDescription->fNtuple->create_column<double>(name);
460  ntupleDescription->fNtupleDColumnMap[index] = column;
461  }
462 
464 
465 #ifdef G4VERBOSE
466  if ( fState.GetVerboseL2() ) {
467  G4ExceptionDescription description;
468  description << name << " ntupleId " << ntupleId;
469  fState.GetVerboseL2()->Message("create", "ntuple D column", description);
470  }
471  #endif
472 
473  return index + fFirstNtupleColumnId;
474 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
std::map< G4int, tools::waxml::ntuple::column< double > * > fNtupleDColumnMap
tools::waxml::ntuple * fNtuple
tools::ntuple_booking * fNtupleBooking
const XML_Char * name
int G4int
Definition: G4Types.hh:78
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4bool fLockFirstNtupleColumnId
const G4AnalysisManagerState & fState
G4int G4XmlNtupleManager::CreateNtupleFColumn ( const G4String name)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 309 of file G4XmlNtupleManager.cc.

310 {
311  G4int ntupleId = fNtupleVector.size() + fFirstId - 1;
312  return CreateNtupleFColumn(ntupleId, name);
313 }
virtual G4int CreateNtupleFColumn(const G4String &name)
int G4int
Definition: G4Types.hh:78
G4int G4XmlNtupleManager::CreateNtupleFColumn ( G4int  ntupleId,
const G4String name 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 379 of file G4XmlNtupleManager.cc.

References G4VNtupleManager::fFirstNtupleColumnId, G4VNtupleManager::fLockFirstNtupleColumnId, G4XmlNtupleDescription::fNtuple, G4XmlNtupleDescription::fNtupleBooking, G4XmlNtupleDescription::fNtupleFColumnMap, G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL2(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

380 {
381 #ifdef G4VERBOSE
382  if ( fState.GetVerboseL4() ) {
383  G4ExceptionDescription description;
384  description << name << " ntupleId " << ntupleId;
385  fState.GetVerboseL4()->Message("create", "ntuple F column", description);
386  }
387 #endif
388 
389  G4XmlNtupleDescription* ntupleDescription
390  = GetNtupleInFunction(ntupleId, "CreateNtupleFColumn");
391  tools::ntuple_booking* ntupleBooking
392  = ntupleDescription->fNtupleBooking;
393 
394  if ( ! ntupleBooking ) {
395  G4ExceptionDescription description;
396  description << " "
397  << "Ntuple " << ntupleId << " has to be created first. ";
398  G4Exception("G4XmlNtupleManager::CreateNtupleFColumn()",
399  "Analysis_W005", JustWarning, description);
400  return -1;
401  }
402 
403  // Save column info in booking
404  G4int index = ntupleBooking->m_columns.size();
405  ntupleBooking->add_column<float>(name);
406 
407  // Create column if ntuple already exists
408  if ( ntupleDescription->fNtuple ) {
409  tools::waxml::ntuple::column<float>* column
410  = ntupleDescription->fNtuple->create_column<float>(name);
411  ntupleDescription->fNtupleFColumnMap[index] = column;
412  }
413 
415 
416 #ifdef G4VERBOSE
417  if ( fState.GetVerboseL2() ) {
418  G4ExceptionDescription description;
419  description << name << " ntupleId " << ntupleId;
420  fState.GetVerboseL2()->Message("create", "ntuple F column", description);
421  }
422 #endif
423 
424  return index + fFirstNtupleColumnId;
425 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
std::map< G4int, tools::waxml::ntuple::column< float > * > fNtupleFColumnMap
tools::waxml::ntuple * fNtuple
tools::ntuple_booking * fNtupleBooking
const XML_Char * name
int G4int
Definition: G4Types.hh:78
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4bool fLockFirstNtupleColumnId
const G4AnalysisManagerState & fState
G4int G4XmlNtupleManager::CreateNtupleIColumn ( const G4String name)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 302 of file G4XmlNtupleManager.cc.

303 {
304  G4int ntupleId = fNtupleVector.size() + fFirstId - 1;
305  return CreateNtupleIColumn(ntupleId, name);
306 }
int G4int
Definition: G4Types.hh:78
virtual G4int CreateNtupleIColumn(const G4String &name)
G4int G4XmlNtupleManager::CreateNtupleIColumn ( G4int  ntupleId,
const G4String name 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 330 of file G4XmlNtupleManager.cc.

References G4VNtupleManager::fFirstNtupleColumnId, G4VNtupleManager::fLockFirstNtupleColumnId, G4XmlNtupleDescription::fNtuple, G4XmlNtupleDescription::fNtupleBooking, G4XmlNtupleDescription::fNtupleIColumnMap, G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL2(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

331 {
332 #ifdef G4VERBOSE
333  if ( fState.GetVerboseL4() ) {
334  G4ExceptionDescription description;
335  description << name << " ntupleId " << ntupleId;
336  fState.GetVerboseL4()->Message("create", "ntuple I column", description);
337  }
338  #endif
339 
340  G4XmlNtupleDescription* ntupleDescription
341  = GetNtupleInFunction(ntupleId, "CreateNtupleIColumn");
342  tools::ntuple_booking* ntupleBooking
343  = ntupleDescription->fNtupleBooking;
344 
345  if ( ! ntupleBooking ) {
346  G4ExceptionDescription description;
347  description << " "
348  << "Ntuple " << ntupleId << " has to be created first. ";
349  G4Exception("G4XmlNtupleManager::CreateNtupleIColumn()",
350  "Analysis_W005", JustWarning, description);
351  return -1;
352  }
353 
354  // Save column info in booking
355  G4int index = ntupleBooking->m_columns.size();
356  ntupleBooking->add_column<int>(name);
357 
358  // Create column if ntuple already exists
359  if ( ntupleDescription->fNtuple ) {
360  tools::waxml::ntuple::column<int>* column
361  = ntupleDescription->fNtuple->create_column<int>(name);
362  ntupleDescription->fNtupleIColumnMap[index] = column;
363  }
364 
366 
367 #ifdef G4VERBOSE
368  if ( fState.GetVerboseL2() ) {
369  G4ExceptionDescription description;
370  description << name << " ntupleId " << ntupleId;
371  fState.GetVerboseL2()->Message("create", "ntuple I column", description);
372  }
373 #endif
374 
375  return index + fFirstNtupleColumnId;
376 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::map< G4int, tools::waxml::ntuple::column< int > * > fNtupleIColumnMap
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
tools::waxml::ntuple * fNtuple
tools::ntuple_booking * fNtupleBooking
const XML_Char * name
int G4int
Definition: G4Types.hh:78
const G4AnalysisVerbose * GetVerboseL2() const
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4bool fLockFirstNtupleColumnId
const G4AnalysisManagerState & fState
void G4XmlNtupleManager::CreateNtuplesFromBooking ( )
protected

Definition at line 159 of file G4XmlNtupleManager.cc.

References G4XmlFileManager::CreateNtupleFile(), FinishNtuple(), G4BaseAnalysisManager::fState, G4cerr, G4Exception(), G4AnalysisManagerState::GetIsMaster(), G4AnalysisManagerState::GetVerboseL3(), G4AnalysisManagerState::GetVerboseL4(), G4AnalysisManagerState::IsMT(), JustWarning, and G4AnalysisVerbose::Message().

Referenced by G4XmlAnalysisManager::OpenFileImpl().

160 {
161 // Create ntuple from ntuple_booking.
162 
163  // Do not create ntuples on master thread
164  if ( G4AnalysisManagerState::IsMT() && fState.GetIsMaster() ) return;
165 
166  std::vector<G4XmlNtupleDescription*>::iterator itn;
167  for (itn = fNtupleVector.begin(); itn != fNtupleVector.end(); itn++ ) {
168 
169  tools::ntuple_booking* ntupleBooking = (*itn)->fNtupleBooking;
170  if ( ! ntupleBooking ) continue;
171 
172 // Create ntuple from ntuple_booking.
173 #ifdef G4VERBOSE
174  if ( fState.GetVerboseL4() )
176  ->Message("create from booking", "ntuple", ntupleBooking->m_name);
177 #endif
178 
179  // create a file for this ntuple
180  if ( ! fFileManager->CreateNtupleFile((*itn)) ) continue;
181 
182  // create ntuple
183  (*itn)->fNtuple
184  = new tools::waxml::ntuple(*((*itn)->fFile), G4cerr, *ntupleBooking);
185 
186  if ( ntupleBooking->m_columns.size() ) {
187  // store ntuple columns in local maps
188  const std::vector<tools::ntuple_booking::col_t>& columns
189  = ntupleBooking->m_columns;
190  std::vector<tools::ntuple_booking::col_t>::const_iterator it;
191  G4int index = 0;
192  for ( it = columns.begin(); it!=columns.end(); ++it) {
193  if ( (*it).second == tools::_cid(int(0) ) ) {
194  (*itn)->fNtupleIColumnMap[index++]
195  = (*itn)->fNtuple->find_column<int>((*it).first);
196  }
197  else if( (*it).second == tools::_cid(float(0) ) ) {
198  (*itn)->fNtupleFColumnMap[index++]
199  = (*itn)->fNtuple->find_column<float>((*it).first);
200  }
201  else if((*it).second== tools::_cid(double(0))) {
202  (*itn)->fNtupleDColumnMap[index++]
203  = (*itn)->fNtuple->find_column<double>((*it).first);
204  }
205  else {
206  G4ExceptionDescription description;
207  description << " "
208  << "Unsupported column type " << (*it).first;
209  G4Exception("G4XmlNtupleManager::CreateNtuplesFromBooking()",
210  "Analysis_W004", JustWarning, description);
211  }
212  }
213  }
214  FinishNtuple();
215 #ifdef G4VERBOSE
216  if ( fState.GetVerboseL3() )
218  ->Message("create from booking", "ntuple", ntupleBooking->m_name);
219 #endif
220  }
221 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4bool CreateNtupleFile(G4XmlNtupleDescription *ntupleDescription)
int G4int
Definition: G4Types.hh:78
const G4AnalysisVerbose * GetVerboseL3() const
const G4AnalysisVerbose * GetVerboseL4() const
virtual void FinishNtuple()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4AnalysisManagerState & fState
G4GLOB_DLL std::ostream G4cerr
G4bool G4XmlNtupleManager::FillNtupleDColumn ( G4int  columnId,
G4double  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 533 of file G4XmlNtupleManager.cc.

534 {
535  return FillNtupleDColumn(fFirstId, columnId, value);
536 }
virtual G4bool FillNtupleDColumn(G4int columnId, G4double value)
const XML_Char int const XML_Char * value
G4bool G4XmlNtupleManager::FillNtupleDColumn ( G4int  ntupleId,
G4int  columnId,
G4double  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 590 of file G4XmlNtupleManager.cc.

References G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

592 {
593  tools::waxml::ntuple::column<double>* column
594  = GetNtupleDColumn(ntupleId, columnId);
595  if ( ! column ) {
596  G4ExceptionDescription description;
597  description << " " << "column " << columnId << " does not exist.";
598  G4Exception("G4XmlNtupleManager::FillNtupleDColumn()",
599  "Analysis_W009", JustWarning, description);
600  return false;
601  }
602 
603  column->fill(value);
604 #ifdef G4VERBOSE
605  if ( fState.GetVerboseL4() ) {
606  G4ExceptionDescription description;
607  description << " ntupleId " << ntupleId
608  << " columnId " << columnId << " value " << value;
609  fState.GetVerboseL4()->Message("fill", "ntuple D column", description);
610  }
611 #endif
612  return true;
613 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const XML_Char int const XML_Char * value
const G4AnalysisManagerState & fState
G4bool G4XmlNtupleManager::FillNtupleFColumn ( G4int  columnId,
G4float  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 527 of file G4XmlNtupleManager.cc.

528 {
529  return FillNtupleFColumn(fFirstId, columnId, value);
530 }
virtual G4bool FillNtupleFColumn(G4int columnId, G4float value)
const XML_Char int const XML_Char * value
G4bool G4XmlNtupleManager::FillNtupleFColumn ( G4int  ntupleId,
G4int  columnId,
G4float  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 564 of file G4XmlNtupleManager.cc.

References G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

566 {
567  tools::waxml::ntuple::column<float>* column
568  = GetNtupleFColumn(ntupleId, columnId);
569  if ( ! column ) {
570  G4ExceptionDescription description;
571  description << " " << "column " << columnId << " does not exist.";
572  G4Exception("G4XmlNtupleManager::FillNtupleFColumn()",
573  "Analysis_W009", JustWarning, description);
574  return false;
575  }
576 
577  column->fill(value);
578 #ifdef G4VERBOSE
579  if ( fState.GetVerboseL4() ) {
580  G4ExceptionDescription description;
581  description << " ntupleId " << ntupleId
582  << " columnId " << columnId << " value " << value;
583  fState.GetVerboseL4()->Message("fill", "ntuple F column", description);
584  }
585 #endif
586  return true;
587 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const XML_Char int const XML_Char * value
const G4AnalysisManagerState & fState
G4bool G4XmlNtupleManager::FillNtupleIColumn ( G4int  columnId,
G4int  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 521 of file G4XmlNtupleManager.cc.

522 {
523  return FillNtupleIColumn(fFirstId, columnId, value);
524 }
virtual G4bool FillNtupleIColumn(G4int columnId, G4int value)
const XML_Char int const XML_Char * value
G4bool G4XmlNtupleManager::FillNtupleIColumn ( G4int  ntupleId,
G4int  columnId,
G4int  value 
)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 539 of file G4XmlNtupleManager.cc.

References G4BaseAnalysisManager::fState, G4Exception(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, and G4AnalysisVerbose::Message().

541 {
542  tools::waxml::ntuple::column<int>* column
543  = GetNtupleIColumn(ntupleId, columnId);
544  if ( ! column ) {
545  G4ExceptionDescription description;
546  description << " " << "column " << columnId << " does not exist.";
547  G4Exception("G4XmlNtupleManager::FillNtupleIColumn()",
548  "Analysis_W009", JustWarning, description);
549  return false;
550  }
551 
552  column->fill(value);
553 #ifdef G4VERBOSE
554  if ( fState.GetVerboseL4() ) {
555  G4ExceptionDescription description;
556  description << " ntupleId " << ntupleId
557  << " columnId " << columnId << " value " << value;
558  fState.GetVerboseL4()->Message("fill", "ntuple I column", description);
559  }
560 #endif
561  return true;
562 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const XML_Char int const XML_Char * value
const G4AnalysisManagerState & fState
void G4XmlNtupleManager::FinishNtuple ( )
protectedvirtual

Implements G4VNtupleManager.

Definition at line 323 of file G4XmlNtupleManager.cc.

Referenced by CreateNtuplesFromBooking().

324 {
325  G4int ntupleId = fNtupleVector.size() + fFirstId - 1;
326  FinishNtuple(ntupleId);
327 }
int G4int
Definition: G4Types.hh:78
virtual void FinishNtuple()
void G4XmlNtupleManager::FinishNtuple ( G4int  ntupleId)
protectedvirtual

Implements G4VNtupleManager.

Definition at line 477 of file G4XmlNtupleManager.cc.

References G4String::append(), G4XmlNtupleDescription::fNtuple, G4XmlNtupleDescription::fNtupleBooking, G4BaseAnalysisManager::fState, G4Exception(), G4VFileManager::GetNtupleDirectoryName(), G4AnalysisManagerState::GetVerboseL2(), G4AnalysisManagerState::GetVerboseL4(), JustWarning, G4XmlFileManager::LockNtupleDirectoryName(), and G4AnalysisVerbose::Message().

478 {
479  G4XmlNtupleDescription* ntupleDescription
480  = GetNtupleInFunction(ntupleId, "FinishNtuple");
481  tools::ntuple_booking* ntupleBooking
482  = ntupleDescription->fNtupleBooking;
483 
484  if ( ! ntupleBooking ) {
485  G4ExceptionDescription description;
486  description << " "
487  << "Ntuple " << ntupleId << " has to be created first. ";
488  G4Exception("G4XmlNtupleManager::CreateNtupleDColumn()",
489  "Analysis_W005", JustWarning, description);
490  return;
491  }
492 
493 #ifdef G4VERBOSE
494  if ( fState.GetVerboseL4() ) {
495  G4ExceptionDescription description;
496  description << ntupleBooking->m_name << " ntupleId " << ntupleId;
497  fState.GetVerboseL4()->Message("finish", "ntuple", description);
498  }
499 #endif
500 
501  // Finish ntuple if ntuple already exists
502  if ( ntupleDescription->fNtuple ) {
503  G4String path = "/";
504  path.append(fFileManager->GetNtupleDirectoryName());
505  ntupleDescription->fNtuple
506  ->write_header(path, ntupleBooking->m_name, ntupleBooking->m_title);
507 
508  fFileManager->LockNtupleDirectoryName();
509  }
510 
511 #ifdef G4VERBOSE
512  if ( fState.GetVerboseL2() ) {
513  G4ExceptionDescription description;
514  description << ntupleBooking->m_name << " ntupleId " << ntupleId;
515  fState.GetVerboseL2()->Message("finish", "ntuple", description);
516  }
517 #endif
518 }
void Message(const G4String &action, const G4String &object, const G4String &objectName, G4bool success=true) const
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void LockNtupleDirectoryName()
tools::waxml::ntuple * fNtuple
tools::ntuple_booking * fNtupleBooking
const G4AnalysisVerbose * GetVerboseL2() const
G4String GetNtupleDirectoryName() const
const G4AnalysisVerbose * GetVerboseL4() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4String & append(const G4String &)
const G4AnalysisManagerState & fState
G4int G4XmlNtupleManager::GetNofNtuples ( ) const
inlineprotectedvirtual

Implements G4VNtupleManager.

Definition at line 128 of file G4XmlNtupleManager.hh.

129 { return fNtupleVector.size(); }
tools::waxml::ntuple * G4XmlNtupleManager::GetNtuple ( ) const
protected

Definition at line 244 of file G4XmlNtupleManager.cc.

245 {
246  return GetNtuple(fFirstId);
247 }
tools::waxml::ntuple * GetNtuple() const
tools::waxml::ntuple * G4XmlNtupleManager::GetNtuple ( G4int  ntupleId) const
protected

Definition at line 250 of file G4XmlNtupleManager.cc.

References G4XmlNtupleDescription::fNtuple.

251 {
252  G4XmlNtupleDescription* ntupleDescription
253  = GetNtupleInFunction(ntupleId, "GetNtuple");
254 
255  return ntupleDescription->fNtuple;
256 }
tools::waxml::ntuple * fNtuple
const std::vector< G4XmlNtupleDescription * > & G4XmlNtupleManager::GetNtupleVector ( ) const
inlineprotected

Definition at line 131 of file G4XmlNtupleManager.hh.

132 { return fNtupleVector; }
G4bool G4XmlNtupleManager::IsEmpty ( ) const
protected

Definition at line 224 of file G4XmlNtupleManager.cc.

225 {
226  return ! fNtupleVector.size();
227 }
G4bool G4XmlNtupleManager::Reset ( )
protected

Definition at line 230 of file G4XmlNtupleManager.cc.

231 {
232 // Reset ntuples
233 
234  std::vector<G4XmlNtupleDescription*>::iterator it;
235  for (it = fNtupleVector.begin(); it != fNtupleVector.end(); it++ ) {
236  delete (*it)->fNtuple;
237  (*it)->fNtuple = 0;
238  }
239 
240  return true;
241 }
void G4XmlNtupleManager::SetFileManager ( G4XmlFileManager fileManager)
inlineprotected

Definition at line 125 of file G4XmlNtupleManager.hh.

Referenced by G4XmlAnalysisManager::G4XmlAnalysisManager().

126 { fFileManager = fileManager; }

Friends And Related Function Documentation

friend class G4XmlAnalysisManager
friend

Definition at line 47 of file G4XmlNtupleManager.hh.


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