![]() |
![]() |
00001 #ifndef Physics_PhysicsListMaker_h 00002 #define Physics_PhysicsListMaker_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Physics 00006 // Class : PhysicsListMaker 00007 // 00016 // 00017 // Original Author: 00018 // Created: Tue Nov 22 13:03:44 EST 2005 00019 // $Id: PhysicsListMaker.h,v 1.2 2007/05/08 23:05:23 sunanda Exp $ 00020 // 00021 00022 // system include files 00023 #include <memory> 00024 00025 // user include files 00026 #include "SimG4Core/Physics/interface/PhysicsListMakerBase.h" 00027 #include "SimG4Core/Notification/interface/SimActivityRegistryEnroller.h" 00028 00029 // forward declarations 00030 00031 template<class T> 00032 class PhysicsListMaker : public PhysicsListMakerBase 00033 { 00034 00035 public: 00036 PhysicsListMaker(){} 00037 00038 // ---------- const member functions --------------------- 00039 virtual std::auto_ptr<PhysicsList> make(G4LogicalVolumeToDDLogicalPartMap& map_, 00040 const edm::ParameterSet& p, 00041 SimActivityRegistry& reg) const 00042 { 00043 std::auto_ptr<T> returnValue(new T(map_, p)); 00044 SimActivityRegistryEnroller::enroll(reg, returnValue.get()); 00045 00046 return std::auto_ptr<PhysicsList>(returnValue); 00047 } 00048 00049 }; 00050 00051 00052 #endif