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