#include <CMSMonopolePhysics.h>
Definition at line 18 of file CMSMonopolePhysics.h.
◆ CMSMonopolePhysics()
Definition at line 17 of file CMSMonopolePhysics.cc.
18 : G4VPhysicsConstructor(
"Monopole Physics") {
19 verbose =
p.getUntrackedParameter<
int>(
"Verbosity", 0);
20 magCharge =
p.getUntrackedParameter<
int>(
"MonopoleCharge", 1);
21 deltaRay =
p.getUntrackedParameter<
bool>(
"MonopoleDeltaRay",
true);
22 multiSc =
p.getUntrackedParameter<
bool>(
"MonopoleMultiScatter",
false);
23 transport =
p.getUntrackedParameter<
bool>(
"MonopoleTransport",
true);
24 double mass =
p.getUntrackedParameter<
double>(
"MonopoleMass", 200);
25 if (pdt &&
mass > 0.0) {
27 for (HepPDT::ParticleDataTable::const_iterator
p = pdt->begin();
p != pdt->end(); ++
p, ++
ii) {
31 names.push_back(particle.name());
33 elCharges.push_back((
int)(particle.charge()));
37 G4cout <<
"CMSMonopolePhysics: Monopole[" <<
ii <<
"] " <<
particleName <<
" Mass " << particle.mass()
38 <<
" GeV, Magnetic Charge " <<
magCharge <<
", Electric Charge " << particle.charge() << G4endl;
39 }
else if (strcmp(
particleName.c_str(),
"AntiMono") == 0) {
40 names.push_back(particle.name());
42 elCharges.push_back((
int)(particle.charge()));
46 G4cout <<
"CMSMonopolePhysics: Monopole[" <<
ii <<
"] " <<
particleName <<
" Mass " << particle.mass()
47 <<
" GeV, Magnetic Charge " <<
magCharge <<
", Electric Charge " << particle.charge() << G4endl;
52 G4cout <<
"CMSMonopolePhysics has " <<
names.size() <<
" monopole candidates and delta Ray option " <<
deltaRay
References deltaRay, elCharges, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, GeV, cuy::ii, magCharge, EgHLTOffHistBins_cfi::mass, masses, monopoles, multiSc, names, AlCaHLTBitMon_ParallelJobs::p, HiggsValidation_cfi::particleName, pdgEncodings, AlCaHLTBitMon_QueryRunRegistry::string, transport, and verbose.
◆ ~CMSMonopolePhysics()
CMSMonopolePhysics::~CMSMonopolePhysics |
( |
| ) |
|
|
override |
◆ ConstructParticle()
void CMSMonopolePhysics::ConstructParticle |
( |
| ) |
|
|
override |
Definition at line 58 of file CMSMonopolePhysics.cc.
59 for (
unsigned int ii = 0;
ii <
names.size(); ++
ii) {
References elCharges, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, GeV, cuy::ii, magCharge, masses, CaloTowersParam_cfi::mc, monopoles, names, pdgEncodings, and verbose.
◆ ConstructProcess()
void CMSMonopolePhysics::ConstructProcess |
( |
| ) |
|
|
override |
Definition at line 73 of file CMSMonopolePhysics.cc.
76 G4cout <<
"### CMSMonopolePhysics ConstructProcess()" << G4endl;
78 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
83 G4ProcessManager* pmanager = mpl->GetProcessManager();
86 o <<
"Monopole without a Process Manager";
92 G4double
mass = mpl->GetPDGMass();
94 G4cout <<
"### CMSMonopolePhysics instantiates for " << mpl->GetParticleName() <<
" at " << mpl <<
" Mass "
95 <<
mass /
CLHEP::GeV <<
" GeV Mag " << magn <<
" Process manager " << pmanager << G4endl;
100 pmanager->RemoveProcess(idxt);
104 if (mpl->GetPDGCharge() != 0.0) {
106 G4hMultipleScattering* hmsc =
new G4hMultipleScattering();
107 ph->RegisterProcess(hmsc, mpl);
109 G4hIonisation* hioni =
new G4hIonisation();
110 ph->RegisterProcess(hioni, mpl);
115 G4mplIonisationModel* ion =
new G4mplIonisationModel(magn,
"PAI");
116 ion->SetParticle(mpl);
117 mplioni->AddEmModel(0, ion, ion);
119 ph->RegisterProcess(mplioni, mpl);
121 pmanager->AddDiscreteProcess(
new G4StepLimiter());
123 pmanager->DumpInfo();
References edm::errors::Configuration, deltaRay, Exception, ecalTB2006H4_GenSimDigiReco_cfg::G4cout, GeV, cuy::ii, Monopole::MagneticCharge(), EgHLTOffHistBins_cfi::mass, monopoles, multiSc, EcalTangentSkim_cfg::o, and verbose.
◆ deltaRay
G4bool CMSMonopolePhysics::deltaRay |
|
private |
◆ elCharges
std::vector<int> CMSMonopolePhysics::elCharges |
|
private |
◆ magCharge
G4int CMSMonopolePhysics::magCharge |
|
private |
◆ masses
std::vector<double> CMSMonopolePhysics::masses |
|
private |
◆ monopoles
std::vector<Monopole*> CMSMonopolePhysics::monopoles |
|
private |
◆ multiSc
G4bool CMSMonopolePhysics::multiSc |
|
private |
◆ names
std::vector<std::string> CMSMonopolePhysics::names |
|
private |
◆ pdgEncodings
std::vector<int> CMSMonopolePhysics::pdgEncodings |
|
private |
◆ transport
G4bool CMSMonopolePhysics::transport |
|
private |
◆ verbose
G4int CMSMonopolePhysics::verbose |
|
private |
HepPDT::ParticleData ParticleData