Main Page
Namespaces
Classes
Package Documentation
src
SimG4Core
CustomPhysics
src
CustomPhysics.cc
Go to the documentation of this file.
1
#include "
SimG4Core/CustomPhysics/interface/CustomPhysics.h
"
2
#include "
SimG4Core/CustomPhysics/interface/CustomPhysicsList.h
"
3
#include "
SimG4Core/CustomPhysics/interface/CustomPhysicsListSS.h
"
4
#include "
SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h
"
5
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
6
#include "
SimG4Core/CustomPhysics/interface/APrimePhysics.h
"
7
8
#include "G4DecayPhysics.hh"
9
#include "G4EmExtraPhysics.hh"
10
#include "G4IonPhysics.hh"
11
#include "G4StoppingPhysics.hh"
12
#include "G4HadronElasticPhysics.hh"
13
#include "G4NeutronTrackingCut.hh"
14
15
#include "G4DataQuestionaire.hh"
16
#include "G4HadronPhysicsFTFP_BERT.hh"
17
#include "G4SystemOfUnits.hh"
18
19
CustomPhysics::CustomPhysics
(
const
edm::ParameterSet
&
p
) :
PhysicsList
(p) {
20
G4DataQuestionaire it(
photon
);
21
22
int
ver = p.
getUntrackedParameter
<
int
>(
"Verbosity"
, 0);
23
bool
tracking
= p.
getParameter
<
bool
>(
"TrackingCut"
);
24
bool
ssPhys = p.
getUntrackedParameter
<
bool
>(
"ExoticaPhysicsSS"
,
false
);
25
bool
dbrem = p.
getUntrackedParameter
<
bool
>(
"DBrem"
,
false
);
26
double
timeLimit = p.
getParameter
<
double
>(
"MaxTrackTime"
) * ns;
27
edm::LogInfo
(
"PhysicsList"
) <<
"You are using the simulation engine: "
28
<<
"FTFP_BERT_EMM for regular particles \n"
29
<<
"CustomPhysicsList "
<< ssPhys <<
" for exotics; "
30
<<
" tracking cut "
<< tracking <<
" t(ns)= "
<< timeLimit / ns;
31
// EM Physics
32
RegisterPhysics(
new
CMSEmStandardPhysicsLPM
(ver));
33
34
// Synchroton Radiation & GN Physics
35
RegisterPhysics(
new
G4EmExtraPhysics(ver));
36
37
// Decays
38
RegisterPhysics(
new
G4DecayPhysics(ver));
39
40
// Hadron Elastic scattering
41
RegisterPhysics(
new
G4HadronElasticPhysics(ver));
42
43
// Hadron Physics
44
RegisterPhysics(
new
G4HadronPhysicsFTFP_BERT(ver));
45
46
// Stopping Physics
47
RegisterPhysics(
new
G4StoppingPhysics(ver));
48
49
// Ion Physics
50
RegisterPhysics(
new
G4IonPhysics(ver));
51
52
// Neutron tracking cut
53
if
(tracking) {
54
G4NeutronTrackingCut* ncut =
new
G4NeutronTrackingCut(ver);
55
ncut->SetTimeLimit(timeLimit);
56
RegisterPhysics(ncut);
57
}
58
59
// Custom Physics
60
if
(dbrem) {
61
RegisterPhysics(
new
APrimePhysics
(p.
getUntrackedParameter
<
double
>(
"DBremMass"
),
62
p.
getUntrackedParameter
<
std::string
>(
"DBremScaleFile"
),
63
p.
getUntrackedParameter
<
double
>(
"DBremBiasFactor"
)));
64
}
else
if
(ssPhys) {
65
RegisterPhysics(
new
CustomPhysicsListSS
(
"custom"
, p));
66
}
else
{
67
RegisterPhysics(
new
CustomPhysicsList
(
"custom"
, p));
68
}
69
}
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
CMSEmStandardPhysicsLPM.h
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
MessageLogger.h
AlCaHLTBitMon_ParallelJobs.p
p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
CustomPhysicsListSS
Definition:
CustomPhysicsListSS.h:11
CustomPhysicsList.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
APrimePhysics
Definition:
APrimePhysics.h:7
APrimePhysics.h
PhysicsList
Definition:
PhysicsList.h:7
CustomPhysicsList
Definition:
CustomPhysicsList.h:12
CustomPhysics::CustomPhysics
CustomPhysics(const edm::ParameterSet &p)
Definition:
CustomPhysics.cc:19
CustomPhysicsListSS.h
edm::LogInfo
Definition:
MessageLogger.h:254
muons2muons_cfi.photon
photon
Definition:
muons2muons_cfi.py:28
edm::ParameterSet
Definition:
ParameterSet.h:36
CMSEmStandardPhysicsLPM
Definition:
CMSEmStandardPhysicsLPM.h:8
CustomPhysics.h
tracking
Definition:
TempMeasurements.h:9
Generated for CMSSW Reference Manual by
1.8.11