00001 // $Header: /cvs/lcd/slic/include/PhysicsListFactory.hh,v 1.13 2007/04/27 01:54:32 jeremy Exp $ 00002 #ifndef SLIC_PHYSICSLISTFACTORY_HH 00003 #define SLIC_PHYSICSLISTFACTORY_HH 1 00004 00005 // lcdd 00006 #include "Module.hh" 00007 00008 // slic 00009 #include "PhysicsListBuilder.hh" 00010 #include "Singleton.hh" 00011 00012 // geant4 00013 #include "G4VUserPhysicsList.hh" 00014 00015 namespace slic 00016 { 00017 00018 class VPhysicsListBuilder; 00019 00027 class PhysicsListFactory : public Singleton<PhysicsListFactory>, public Module 00028 { 00029 00030 public: 00031 PhysicsListFactory(); 00032 00033 virtual ~PhysicsListFactory(); 00034 00035 public: 00036 00040 typedef std::map<G4String, VPhysicsListBuilder*> BuilderMap; 00041 00042 public: 00043 00047 void initializeBuilders(); 00048 00053 void addBuilder( VPhysicsListBuilder* ); 00054 00059 G4VUserPhysicsList* create( const std::string& name ); 00060 00064 void printAvailableLists(); 00065 00066 private: 00067 00068 BuilderMap m_builders; 00069 }; 00070 } 00071 00072 #endif 00073
1.5.4