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

#include <G4PersistencyCenter.hh>

Public Member Functions

void SelectSystem (std::string systemName)
 
const std::string CurrentSystem ()
 
void SetHepMCObjyReaderFile (std::string file)
 
std::string CurrentHepMCObjyReaderFile ()
 
void SetStoreMode (std::string objName, StoreMode mode)
 
void SetRetrieveMode (std::string objName, G4bool mode)
 
StoreMode CurrentStoreMode (std::string objName)
 
G4bool CurrentRetrieveMode (std::string objName)
 
G4bool SetWriteFile (std::string objName, std::string writeFileName)
 
G4bool SetReadFile (std::string objName, std::string readFileName)
 
std::string CurrentWriteFile (std::string objName)
 
std::string CurrentReadFile (std::string objName)
 
std::string CurrentObject (std::string file)
 
void AddHCIOmanager (std::string detName, std::string colName)
 
std::string CurrentHCIOmanager ()
 
void AddDCIOmanager (std::string detName)
 
std::string CurrentDCIOmanager ()
 
void PrintAll ()
 
G4PersistencyManager * CurrentPersistencyManager ()
 
void SetPersistencyManager (G4PersistencyManager *pm, std::string name)
 
G4PersistencyManager * GetPersistencyManager (std::string nam)
 
void RegisterPersistencyManager (G4PersistencyManager *pm)
 
void DeletePersistencyManager ()
 
void SetVerboseLevel (int v)
 
int VerboseLevel ()
 

Static Public Member Functions

static G4PersistencyCenter * GetPersistencyCenter ()
 

Detailed Description

Definition at line 63 of file G4PersistencyCenter.hh.

Member Function Documentation

void G4PersistencyCenter::AddDCIOmanager ( std::string  detName)

Definition at line 282 of file G4PersistencyCenter.cc.

References G4VDCIOentry::CreateDCIOmanager(), G4cerr, G4endl, G4DCIOcatalog::GetDCIOcatalog(), and G4DCIOcatalog::GetEntry().

283 {
285 
286  std::string colName = "";
287  G4VDCIOentry* ioe = ioc->GetEntry(detName);
288  if ( ioe != 0 ) {
289  ioe->CreateDCIOmanager(detName, colName);
290  } else {
291  G4cerr << "Error! -- DCIO assignment failed for detector " << detName
292  << ", collection " << colName << G4endl;
293  }
294 }
virtual void CreateDCIOmanager(std::string, std::string)
Definition: G4VDCIOentry.hh:57
G4VDCIOentry * GetEntry(std::string name)
static G4DCIOcatalog * GetDCIOcatalog()
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PersistencyCenter::AddHCIOmanager ( std::string  detName,
std::string  colName 
)

Definition at line 261 of file G4PersistencyCenter.cc.

References G4VHCIOentry::CreateHCIOmanager(), G4cerr, G4endl, G4HCIOcatalog::GetEntry(), and G4HCIOcatalog::GetHCIOcatalog().

Referenced by G4PersistencyCenterMessenger::SetNewValue().

262 {
264 
265  G4VHCIOentry* ioe = ioc->GetEntry(detName);
266  if ( ioe != 0 ) {
267  ioe->CreateHCIOmanager(detName, colName);
268  } else {
269  G4cerr << "Error! -- HCIO assignment failed for detector " << detName
270  << ", collection " << colName << G4endl;
271  }
272 }
G4VHCIOentry * GetEntry(std::string name)
static G4HCIOcatalog * GetHCIOcatalog()
virtual void CreateHCIOmanager(std::string, std::string)
Definition: G4VHCIOentry.hh:57
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
std::string G4PersistencyCenter::CurrentDCIOmanager ( )

Definition at line 297 of file G4PersistencyCenter.cc.

References G4DCIOcatalog::CurrentDCIOmanager(), and G4DCIOcatalog::GetDCIOcatalog().

298 {
300  return ioc->CurrentDCIOmanager();
301 }
static G4DCIOcatalog * GetDCIOcatalog()
std::string CurrentDCIOmanager()
std::string G4PersistencyCenter::CurrentHCIOmanager ( )

Definition at line 275 of file G4PersistencyCenter.cc.

References G4HCIOcatalog::CurrentHCIOmanager(), and G4HCIOcatalog::GetHCIOcatalog().

Referenced by G4PersistencyCenterMessenger::GetCurrentValue().

276 {
278  return ioc->CurrentHCIOmanager();
279 }
std::string CurrentHCIOmanager()
static G4HCIOcatalog * GetHCIOcatalog()
std::string G4PersistencyCenter::CurrentHepMCObjyReaderFile ( )

Definition at line 145 of file G4PersistencyCenter.cc.

References CurrentReadFile(), and CurrentRetrieveMode().

146 {
147  if ( CurrentRetrieveMode("HepMC") ) {
148  return CurrentReadFile("HepMC");
149  } else {
150  return "";
151  }
152 }
std::string CurrentReadFile(std::string objName)
G4bool CurrentRetrieveMode(std::string objName)
std::string G4PersistencyCenter::CurrentObject ( std::string  file)

Definition at line 248 of file G4PersistencyCenter.cc.

249 {
250  FileMap::iterator itr;
251  for ( itr = f_readFileName.begin(); itr != f_readFileName.end(); itr++ ) {
252  if ( file == (*itr).second ) return (*itr).first;
253  }
254  for ( itr = f_writeFileName.begin(); itr != f_writeFileName.end(); itr++ ) {
255  if ( file == (*itr).second ) return (*itr).first;
256  }
257  return "?????";
258 }
G4PersistencyManager* G4PersistencyCenter::CurrentPersistencyManager ( )
inline

Definition at line 124 of file G4PersistencyCenter.hh.

Referenced by G4PersistencyManager::GetPersistencyManager().

124 { return f_currentManager; };
std::string G4PersistencyCenter::CurrentReadFile ( std::string  objName)

Definition at line 238 of file G4PersistencyCenter.cc.

Referenced by CurrentHepMCObjyReaderFile(), G4PersistencyCenterMessenger::GetCurrentValue(), PrintAll(), and G4PersistencyManager::Retrieve().

239 {
240  if ( (*(f_readFileName.find(objName))).second != "" ) {
241  return f_readFileName[objName];
242  } else {
243  return "?????";
244  }
245 }
G4bool G4PersistencyCenter::CurrentRetrieveMode ( std::string  objName)

Definition at line 187 of file G4PersistencyCenter.cc.

Referenced by CurrentHepMCObjyReaderFile(), PrintAll(), and G4PersistencyManager::Retrieve().

188 {
189  if ( (*(f_readFileName.find(objName))).second != "" ) {
190  return f_readFileMode[objName];
191  } else {
192  return false;
193  }
194 }
StoreMode G4PersistencyCenter::CurrentStoreMode ( std::string  objName)

Definition at line 177 of file G4PersistencyCenter.cc.

References kOff.

Referenced by G4PersistencyCenterMessenger::GetCurrentValue(), PrintAll(), and G4PersistencyManager::Store().

178 {
179  if ( (*(f_writeFileName.find(objName))).second != "" ) {
180  return f_writeFileMode[objName];
181  } else {
182  return kOff;
183  }
184 }
const std::string G4PersistencyCenter::CurrentSystem ( )
inline

Definition at line 73 of file G4PersistencyCenter.hh.

Referenced by G4PersistencyCenterMessenger::GetCurrentValue(), and PrintAll().

73 { return f_currentSystemName; };
std::string G4PersistencyCenter::CurrentWriteFile ( std::string  objName)

Definition at line 228 of file G4PersistencyCenter.cc.

Referenced by G4PersistencyCenterMessenger::GetCurrentValue(), PrintAll(), and G4PersistencyManager::Store().

229 {
230  if ( (*(f_writeFileName.find(objName))).second != "" ) {
231  return f_writeFileName[objName];
232  } else {
233  return "?????";
234  }
235 }
void G4PersistencyCenter::DeletePersistencyManager ( )

Definition at line 397 of file G4PersistencyCenter.cc.

398 {
399  if (f_currentManager!=0) delete f_currentManager;
400  f_currentManager=0;
401 }
G4PersistencyCenter * G4PersistencyCenter::GetPersistencyCenter ( )
static
G4PersistencyManager * G4PersistencyCenter::GetPersistencyManager ( std::string  nam)

Definition at line 383 of file G4PersistencyCenter.cc.

Referenced by SelectSystem().

384 {
385  if (f_theCatalog.find(nam)!=f_theCatalog.end())
386  return f_theCatalog[nam];
387  return 0;
388 }
void G4PersistencyCenter::PrintAll ( void  )

Definition at line 304 of file G4PersistencyCenter.cc.

References CurrentReadFile(), CurrentRetrieveMode(), CurrentStoreMode(), CurrentSystem(), CurrentWriteFile(), G4cout, G4endl, G4DCIOcatalog::GetDCIOcatalog(), G4HCIOcatalog::GetHCIOcatalog(), kOff, kOn, kRecycle, G4DCIOcatalog::PrintDCIOmanager(), G4HCIOcatalog::PrintEntries(), G4DCIOcatalog::PrintEntries(), and G4HCIOcatalog::PrintHCIOmanager().

Referenced by G4PersistencyCenterMessenger::SetNewValue().

305 {
306  G4cout << "Persistency Package: " << CurrentSystem() << G4endl;
307  G4cout << G4endl;
308 
309  ObjMap::iterator itr;
310  std::string name;
311  std::string file;
312  StoreMode mode;
313 
314  G4cout << "Output object types and file names:" << G4endl;
315  for ( itr = f_wrObj.begin(); itr != f_wrObj.end(); itr++ ) {
316  name = (*itr).second;
317  // disabled HepMC and MCTruth for now
318  if ( name != "HepMC" && name != "MCTruth" ) {
319  G4cout << " Object: " << PadString(name, 9);
320  mode = CurrentStoreMode(name);
321  if ( mode == kOn ) {
322  G4cout << " <on> ";
323  } else if ( mode == kOff ) {
324  G4cout << " <off> ";
325  } else if ( mode == kRecycle ) {
326  G4cout << "<recycle>";
327  }
328  file = CurrentWriteFile(name);
329  if ( file == "" ) file = " <N/A>";
330  G4cout << " File: " << file << G4endl;
331  }
332  }
333  G4cout << G4endl;
334 
335  G4cout << "Input object types and file names:" << G4endl;
336  for ( itr = f_rdObj.begin(); itr != f_rdObj.end(); itr++ ) {
337  name = (*itr).second;
338  // disabled HepMC and MCTruth for now
339  if ( name != "HepMC" && name != "MCTruth" ) {
340  G4cout << " Object: " << PadString(name, 9);
341  if ( CurrentRetrieveMode(name) ) {
342  G4cout << " <on> ";
343  } else {
344  G4cout << " <off> ";
345  }
346  file = CurrentReadFile(name);
347  if ( file == "" ) file = " <N/A>";
348  G4cout << " File: " << CurrentReadFile(name) << G4endl;
349  }
350  }
351  G4cout << G4endl;
352 
354  if ( hioc != 0 ) {
355  G4cout << "Hit IO Managers:" << G4endl;
356  hioc->PrintEntries();
357  hioc->PrintHCIOmanager();
358  G4cout << G4endl;
359  } else {
360  G4cout << "Hit IO Manager catalog is not registered." << G4endl;
361  }
362 
364  if ( dioc != 0 ) {
365  G4cout << "Digit IO Managers:" << G4endl;
366  dioc->PrintEntries();
367  dioc->PrintDCIOmanager();
368  G4cout << G4endl;
369  } else {
370  G4cout << "Digit IO Manager catalog is not registered." << G4endl;
371  }
372 }
void PrintDCIOmanager()
std::string CurrentReadFile(std::string objName)
const XML_Char * name
static G4HCIOcatalog * GetHCIOcatalog()
StoreMode CurrentStoreMode(std::string objName)
G4GLOB_DLL std::ostream G4cout
void PrintHCIOmanager()
static G4DCIOcatalog * GetDCIOcatalog()
G4bool CurrentRetrieveMode(std::string objName)
const std::string CurrentSystem()
#define G4endl
Definition: G4ios.hh:61
std::string CurrentWriteFile(std::string objName)
void G4PersistencyCenter::RegisterPersistencyManager ( G4PersistencyManager *  pm)

Definition at line 391 of file G4PersistencyCenter.cc.

References G4PersistencyManager::GetName().

392 {
393  f_theCatalog[pm->GetName()]=pm;
394 }
void G4PersistencyCenter::SelectSystem ( std::string  systemName)

Definition at line 94 of file G4PersistencyCenter.cc.

References G4PersistencyManager::Create(), G4cout, G4endl, GetPersistencyManager(), and G4PersistencyManager::SetVerboseLevel().

Referenced by G4PersistencyCenterMessenger::SetNewValue().

95 {
96  G4int st = 0;
97 
98  if (f_currentManager!=0) delete f_currentManager;
99 
100  G4PersistencyManager* pm = 0;
101 
102  if (systemName=="ROOT")
103  {
104  G4cout<<" G4PersistencyCenter: \"ROOT\" Persistency Package is selected."
105  <<G4endl;
106  // G4UImanager *man=G4UImanager::GetUIpointer();
107  // std::string libs="Cint:Core:Tree:Rint:Matrix:Physics:fadsROOT";
108  // st = man->ApplyCommand("/load "+libs);
109  if ( st == 0 ) {
110  pm = GetPersistencyManager("ROOT");
111  }
112  }
113  else if (systemName=="ODBMS")
114  {
115  G4cout<<" G4PersistencyCenter: \"ODBMS\" package is selected."<<G4endl;
116  // G4UImanager *man=G4UImanager::GetUIpointer();
117  // std::string libs="fadsODBMS";
118  // st = man->ApplyCommand("/load "+libs);
119  if ( st == 0 ) {
120  pm = GetPersistencyManager("ODBMS");
121  }
122  }
123  else
124  {
125  G4cout<<" G4PersistencyCenter: Default is selected."<< G4endl;
126  pm = new G4PersistencyManager(this, "Default");
127  }
128 
129  if ( st == 0 ) {
130  f_currentManager = pm->Create();
131  if (f_currentManager!=0) f_currentManager->SetVerboseLevel(m_verbose);
132  f_currentSystemName = systemName;
133  }
134 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
virtual G4PersistencyManager * Create()
#define G4endl
Definition: G4ios.hh:61
G4PersistencyManager * GetPersistencyManager(std::string nam)
void G4PersistencyCenter::SetHepMCObjyReaderFile ( std::string  file)

Definition at line 137 of file G4PersistencyCenter.cc.

References SetReadFile(), and SetRetrieveMode().

138 {
139  if ( SetReadFile("HepMC", file) ) {
140  SetRetrieveMode("HepMC", true);
141  }
142 }
void SetRetrieveMode(std::string objName, G4bool mode)
G4bool SetReadFile(std::string objName, std::string readFileName)
void G4PersistencyCenter::SetPersistencyManager ( G4PersistencyManager *  pm,
std::string  name 
)

Definition at line 375 of file G4PersistencyCenter.cc.

377 {
378  f_currentManager=pm;
379  f_currentSystemName=name;
380 }
const XML_Char * name
G4bool G4PersistencyCenter::SetReadFile ( std::string  objName,
std::string  readFileName 
)

Definition at line 210 of file G4PersistencyCenter.cc.

References G4FileUtilities::FileExists(), G4cerr, and G4endl.

Referenced by SetHepMCObjyReaderFile().

211 {
212 #ifndef WIN32
213  if ( f_ut.FileExists(readFileName) )
214  {
215  f_readFileName[objName] = readFileName;
216  }
217  else
218  {
219  G4cerr << "!! File \"" << objName << "\" does not exist."
220  << G4endl;
221  return false;
222  }
223 #endif
224  return true;
225 }
G4bool FileExists(const std::string file)
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PersistencyCenter::SetRetrieveMode ( std::string  objName,
G4bool  mode 
)

Definition at line 166 of file G4PersistencyCenter.cc.

References G4cerr, and G4endl.

Referenced by SetHepMCObjyReaderFile().

167 {
168  if ( (*(f_readFileName.find(objName))).second != "" ) {
169  f_readFileMode[objName] = mode;
170  } else {
171  G4cerr << "!! unknown object type " << objName << " for input."
172  << G4endl;
173  }
174 }
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PersistencyCenter::SetStoreMode ( std::string  objName,
StoreMode  mode 
)

Definition at line 155 of file G4PersistencyCenter.cc.

References G4cerr, and G4endl.

Referenced by G4PersistencyCenterMessenger::SetNewValue().

156 {
157  if ( (*(f_writeFileName.find(objName))).second != "" ) {
158  f_writeFileMode[objName] = mode;
159  } else {
160  G4cerr << "!! unknown object type " << objName << " for output."
161  << G4endl;
162  }
163 }
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void G4PersistencyCenter::SetVerboseLevel ( int  v)

Definition at line 404 of file G4PersistencyCenter.cc.

References G4PersistencyManager::SetVerboseLevel(), and test::v.

Referenced by G4PersistencyCenterMessenger::SetNewValue().

405 {
406  m_verbose = v;
407  if ( f_currentManager != 0 ) f_currentManager->SetVerboseLevel(m_verbose);
408 }
G4bool G4PersistencyCenter::SetWriteFile ( std::string  objName,
std::string  writeFileName 
)

Definition at line 197 of file G4PersistencyCenter.cc.

References G4cerr, and G4endl.

Referenced by G4PersistencyCenterMessenger::SetNewValue().

198 {
199  if ( (*(f_writeFileName.find(objName))).second != "" ) {
200  f_writeFileName[objName] = writeFileName;
201  } else {
202  G4cerr << "!! unknown object type " << objName << " for output."
203  << G4endl;
204  return false;
205  }
206  return true;
207 }
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
int G4PersistencyCenter::VerboseLevel ( )
inline

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