#include <CMSMonopolePhysics.h>
Definition at line 18 of file CMSMonopolePhysics.h.
Definition at line 16 of file CMSMonopolePhysics.cc.
References deltaRay, elCharges, edm::ParameterSet::getUntrackedParameter(), cuy::ii, magCharge, ResonanceBuilder::mass, masses, monopoles, multiSc, names, AlCaHLTBitMon_ParallelJobs::p, pdgEncodings, AlCaHLTBitMon_QueryRunRegistry::string, transport, and verbose.
17 : G4VPhysicsConstructor(
"Monopole Physics") {
24 if (pdt && mass > 0.0) {
26 for (HepPDT::ParticleDataTable::const_iterator p = pdt->begin(); p != pdt->end(); ++
p, ++
ii) {
28 std::string particleName = (particle.name()).substr(0, 8);
29 if (strcmp(particleName.c_str(),
"Monopole") == 0) {
30 names.push_back(particle.name());
31 masses.push_back(mass * CLHEP::GeV);
32 elCharges.push_back((
int)(particle.charge()));
36 G4cout <<
"CMSMonopolePhysics: Monopole[" << ii <<
"] " << particleName <<
" Mass " << particle.mass()
37 <<
" GeV, Magnetic Charge " << magCharge <<
", Electric Charge " << particle.charge() << G4endl;
38 }
else if (strcmp(particleName.c_str(),
"AntiMono") == 0) {
39 names.push_back(particle.name());
40 masses.push_back(mass * CLHEP::GeV);
41 elCharges.push_back((
int)(particle.charge()));
45 G4cout <<
"CMSMonopolePhysics: Monopole[" << ii <<
"] " << particleName <<
" Mass " << particle.mass()
46 <<
" GeV, Magnetic Charge " << magCharge <<
", Electric Charge " << particle.charge() << G4endl;
51 G4cout <<
"CMSMonopolePhysics has " <<
names.size() <<
" monopole candidates and delta Ray option " << deltaRay
T getUntrackedParameter(std::string const &, T const &) const
std::vector< int > pdgEncodings
std::vector< Monopole * > monopoles
std::vector< int > elCharges
HepPDT::ParticleData ParticleData
std::vector< std::string > names
std::vector< double > masses
CMSMonopolePhysics::~CMSMonopolePhysics |
( |
| ) |
|
|
override |
void CMSMonopolePhysics::ConstructParticle |
( |
| ) |
|
|
override |
void CMSMonopolePhysics::ConstructProcess |
( |
| ) |
|
|
override |
Definition at line 72 of file CMSMonopolePhysics.cc.
References edm::errors::Configuration, deltaRay, Exception, cuy::ii, Monopole::MagneticCharge(), ResonanceBuilder::mass, monopoles, multiSc, class-composition::o, and verbose.
75 G4cout <<
"### CMSMonopolePhysics ConstructProcess()" << G4endl;
77 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
82 G4ProcessManager* pmanager = mpl->GetProcessManager();
85 o <<
"Monopole without a Process Manager";
91 G4double
mass = mpl->GetPDGMass();
93 G4cout <<
"### CMSMonopolePhysics instantiates for " << mpl->GetParticleName() <<
" at " << mpl <<
" Mass "
94 << mass / CLHEP::GeV <<
" GeV Mag " << magn <<
" Process manager " << pmanager << G4endl;
99 pmanager->RemoveProcess(idxt);
103 if (mpl->GetPDGCharge() != 0.0) {
105 G4hMultipleScattering* hmsc =
new G4hMultipleScattering();
106 ph->RegisterProcess(hmsc, mpl);
108 G4hIonisation* hioni =
new G4hIonisation();
109 ph->RegisterProcess(hioni, mpl);
112 G4mplIonisation* mplioni =
new G4mplIonisation(magn);
114 G4mplIonisationWithDeltaModel* ion =
new G4mplIonisationWithDeltaModel(magn,
"PAI");
115 ion->SetParticle(mpl);
116 mplioni->AddEmModel(0, ion, ion);
118 ph->RegisterProcess(mplioni, mpl);
120 pmanager->AddDiscreteProcess(
new G4StepLimiter());
122 pmanager->DumpInfo();
std::vector< Monopole * > monopoles
G4double MagneticCharge() const
G4bool CMSMonopolePhysics::deltaRay |
|
private |
std::vector<int> CMSMonopolePhysics::elCharges |
|
private |
G4int CMSMonopolePhysics::magCharge |
|
private |
std::vector<double> CMSMonopolePhysics::masses |
|
private |
std::vector<Monopole*> CMSMonopolePhysics::monopoles |
|
private |
G4bool CMSMonopolePhysics::multiSc |
|
private |
std::vector<std::string> CMSMonopolePhysics::names |
|
private |
std::vector<int> CMSMonopolePhysics::pdgEncodings |
|
private |
G4bool CMSMonopolePhysics::transport |
|
private |
G4int CMSMonopolePhysics::verbose |
|
private |