source: snovis/trunk/source/G4Lab/PhysicsTableAccessor.h @ 288

Last change on this file since 288 was 288, checked in by barrand, 17 years ago
  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1#ifndef G4Lab_PhysicsTableAccessor_h
2#define G4Lab_PhysicsTableAccessor_h
3
4// Inheritance :
5#include <Lib/BaseAccessor.h>
6#include <Slash/Data/IVisualizer.h>
7
8class G4ParticleDefinition;
9class G4VProcess;
10class G4PhysicsTable;
11
12namespace Slash {namespace Core {class ISession;}}
13
14namespace AIDA {class IAnalysisFactory;}
15
16namespace G4Lab {class PhysicsTable;}
17
18class IGeant4Manager;
19
20namespace G4Lab {
21
22class PhysicsTableAccessor 
23:public Lib::BaseAccessor
24,public virtual Slash::Data::IVisualizer
25{
26public: //Slash::Data::IAccessor
27  virtual void* cast(const std::string& aClass) const;
28  virtual std::string name() const;
29  virtual Slash::Data::IIterator* iterator();
30  virtual Slash::Core::IValue* findValue(Slash::Data::IAccessor::Data,const std::string&,void*);
31public: //Lib::IVisualizationType
32  virtual void beginVisualize();
33  virtual void visualize(Slash::Data::IAccessor::Data,void*);
34  virtual void endVisualize();
35public:
36  PhysicsTableAccessor(Slash::Core::ISession&,
37                       IGeant4Manager&,
38                       AIDA::IAnalysisFactory*);
39  virtual ~PhysicsTableAccessor();
40private:
41  bool buildProcessTables();
42  bool findProcessTables(G4ParticleDefinition*,
43                         G4VProcess*,
44                         std::vector<std::string>&,
45                         std::vector<G4PhysicsTable*>&);
46private:
47  Slash::Core::ISession& fSession;
48  std::string fType;
49  std::vector<PhysicsTable*> fTables;
50  AIDA::IAnalysisFactory* fAIDA;
51  IGeant4Manager& fManager;
52};
53
54}
55
56#endif
Note: See TracBrowser for help on using the repository browser.