File indexing completed on 2024-04-06 12:30:27
0001 #ifndef SimG4Core_PhysicsLists_CMSMonopolePhysics_h
0002 #define SimG4Core_PhysicsLists_CMSMonopolePhysics_h
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "SimG4Core/Physics/interface/Monopole.h"
0006
0007 #include "HepPDT/ParticleDataTable.hh"
0008 #include "G4VPhysicsConstructor.hh"
0009 #include "globals.hh"
0010
0011 #include <vector>
0012 #include <string>
0013
0014 namespace sim {
0015 class ChordFinderSetter;
0016 }
0017
0018 class CMSMonopolePhysics : public G4VPhysicsConstructor {
0019 public:
0020 CMSMonopolePhysics(const HepPDT::ParticleDataTable* table_, const edm::ParameterSet& p);
0021 ~CMSMonopolePhysics() override;
0022
0023 void ConstructParticle() override;
0024 void ConstructProcess() override;
0025
0026 private:
0027 G4int verbose, magCharge;
0028 G4bool deltaRay, multiSc, transport;
0029 std::vector<std::string> names;
0030 std::vector<double> masses;
0031 std::vector<int> elCharges, pdgEncodings;
0032 std::vector<Monopole*> monopoles;
0033 };
0034
0035 #endif