00001 #ifndef SimG4Core_PhysicsLists_CMSMonopolePhysics_h 00002 #define SimG4Core_PhysicsLists_CMSMonopolePhysics_h 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 #include "SimG4Core/MagneticField/interface/FieldBuilder.h" 00006 #include "SimG4Core/Physics/interface/G4Monopole.hh" 00007 00008 #include "HepPDT/ParticleDataTable.hh" 00009 #include "G4VPhysicsConstructor.hh" 00010 #include "globals.hh" 00011 00012 #include <vector> 00013 #include <string> 00014 00015 class CMSMonopolePhysics : public G4VPhysicsConstructor { 00016 00017 public: 00018 CMSMonopolePhysics(const HepPDT::ParticleDataTable * table_, sim::FieldBuilder * fB_, const edm::ParameterSet & p); 00019 virtual ~CMSMonopolePhysics(); 00020 00021 void ConstructParticle(); 00022 void ConstructProcess(); 00023 00024 private: 00025 sim::FieldBuilder * fieldBuilder; 00026 G4int verbose, magCharge; 00027 G4bool deltaRay, multiSc, transport; 00028 std::vector<std::string> names; 00029 std::vector<double> masses; 00030 std::vector<int> elCharges, pdgEncodings; 00031 std::vector<G4Monopole*> monopoles; 00032 }; 00033 00034 #endif 00035 00036 00037 00038 00039 00040