Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
SimG4Core
GFlash
plugins
GFlash.cc
Go to the documentation of this file.
1
#include "
SimG4Core/GFlash/interface/GFlash.h
"
2
#include "
SimG4Core/GFlash/interface/ParametrisedPhysics.h
"
3
#include "
SimG4Core/GFlash/interface/HadronPhysicsQGSP_WP.h
"
4
#include "
SimG4Core/GFlash/interface/HadronPhysicsQGSP_BERT_WP.h
"
5
#include "
SimG4Core/GFlash/interface/HadronPhysicsQGSPCMS_FTFP_BERT_WP.h
"
6
#include "
SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics95msc93.h
"
7
#include "
SimG4Core/PhysicsLists/interface/CMSMonopolePhysics.h
"
8
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
9
10
#include "G4DecayPhysics.hh"
11
#include "G4EmExtraPhysics.hh"
12
#include "G4IonPhysics.hh"
13
#include "G4StoppingPhysics.hh"
14
#include "G4HadronElasticPhysics.hh"
15
#include "G4NeutronTrackingCut.hh"
16
#include "HadronPhysicsQGSP_FTFP_BERT.hh"
17
18
#include "G4DataQuestionaire.hh"
19
#include "
SimGeneral/GFlash/interface/GflashHistogram.h
"
20
21
#include <string>
22
23
GFlash::GFlash
(
G4LogicalVolumeToDDLogicalPartMap
&
map
,
24
const
HepPDT::ParticleDataTable
*
table_
,
25
sim::FieldBuilder
*fieldBuilder_,
26
const
edm::ParameterSet
&
p
) :
PhysicsList
(map, table_, fieldBuilder_, p),
27
thePar(p.getParameter<edm::
ParameterSet
>(
"GFlash"
)) {
28
29
G4DataQuestionaire it(photon);
30
31
//std::string hadronPhysics = thePar.getParameter<std::string>("GflashHadronPhysics");
32
33
int
ver = p.
getUntrackedParameter
<
int
>(
"Verbosity"
,0);
34
bool
emPhys = p.
getUntrackedParameter
<
bool
>(
"EMPhysics"
,
true
);
35
bool
hadPhys = p.
getUntrackedParameter
<
bool
>(
"HadPhysics"
,
true
);
36
bool
tracking= p.
getParameter
<
bool
>(
"TrackingCut"
);
37
std::string
region = p.
getParameter
<
std::string
>(
"Region"
);
38
bool
gem =
thePar
.
getParameter
<
bool
>(
"GflashEMShowerModel"
);
39
bool
ghad =
thePar
.
getParameter
<
bool
>(
"GflashHadronShowerModel"
);
40
41
edm::LogInfo
(
"PhysicsList"
) <<
"You are using the simulation engine: "
42
<<
" + CMS GFLASH with Flags for EM Physics "
43
<< gem <<
", for Hadronic Physics "
44
<< ghad
45
<<
" and tracking cut "
<< tracking
46
<<
" with special region "
<< region;
47
48
RegisterPhysics(
new
ParametrisedPhysics
(
"parametrised"
,
thePar
));
49
50
if
(emPhys) {
51
// EM Physics
52
RegisterPhysics(
new
CMSEmStandardPhysics95msc93
(
"EM standard msc93"
,ver,region));
53
54
// Synchroton Radiation & GN Physics
55
RegisterPhysics(
new
G4EmExtraPhysics(ver));
56
}
57
58
// Decays
59
RegisterPhysics(
new
G4DecayPhysics(ver) );
60
61
if
(hadPhys) {
62
// Hadron Elastic scattering
63
RegisterPhysics(
new
G4HadronElasticPhysics(ver));
64
65
// Hadron Physics
66
RegisterPhysics(
new
HadronPhysicsQGSP_FTFP_BERT(ver));
67
// Stopping Physics
68
RegisterPhysics(
new
G4StoppingPhysics(ver));
69
70
// Ion Physics
71
RegisterPhysics(
new
G4IonPhysics(ver));
72
73
// Neutron tracking cut
74
if
(tracking) {
75
RegisterPhysics(
new
G4NeutronTrackingCut(ver));
76
}
77
/*
78
if(hadronPhysics=="QGSP_FTFP_BERT") {
79
RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic));
80
}
81
else if(hadronPhysics=="QGSP_BERT") {
82
RegisterPhysics( new HadronPhysicsQGSP_BERT_WP("hadron",quasiElastic));
83
}
84
else if (hadronPhysics=="QGSP") {
85
RegisterPhysics( new HadronPhysicsQGSP_WP("hadron",quasiElastic));
86
}
87
else {
88
edm::LogInfo("PhysicsList") << hadronPhysics << " is not available for GflashHadronPhysics!"
89
<< "... Using QGSP_FTFP_BERT\n";
90
RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic));
91
}
92
// Stopping Physics
93
RegisterPhysics( new G4QStoppingPhysics("stopping"));
94
95
// Ion Physics
96
RegisterPhysics( new G4IonPhysics("ion"));
97
98
// Neutron tracking cut
99
if (tracking)
100
RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
101
*/
102
}
103
104
// Monopoles
105
RegisterPhysics(
new
CMSMonopolePhysics
(table_,fieldBuilder_,p));
106
107
// singleton histogram object
108
if
(
thePar
.
getParameter
<
bool
>(
"GflashHistogram"
)) {
109
theHisto
=
GflashHistogram::instance
();
110
theHisto
->
setStoreFlag
(
true
);
111
theHisto
->
bookHistogram
(
thePar
.
getParameter
<
std::string
>(
"GflashHistogramName"
));
112
}
113
114
}
115
116
GFlash::~GFlash
() {
117
118
if
(
thePar
.
getParameter
<
bool
>(
"GflashHistogram"
)) {
119
if
(
theHisto
)
delete
theHisto
;
120
}
121
122
}
123
124
//define this as a plug-in
125
#include "
FWCore/Framework/interface/MakerMacros.h
"
126
#include "
SimG4Core/Physics/interface/PhysicsListFactory.h
"
127
128
129
DEFINE_PHYSICSLIST
(
GFlash
);
130
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
GFlash::~GFlash
virtual ~GFlash()
Definition:
GFlash.cc:116
GflashHistogram::instance
static GflashHistogram * instance()
Definition:
GflashHistogram.cc:5
MessageLogger.h
DEFINE_PHYSICSLIST
#define DEFINE_PHYSICSLIST(type)
Definition:
PhysicsListFactory.h:12
CMSEmStandardPhysics95msc93.h
ParticleDataTable
HepPDT::ParticleDataTable ParticleDataTable
Definition:
ParticleDataTable.h:9
ParameterSet
Definition:
Functions.h:16
GFlash::GFlash
GFlash(G4LogicalVolumeToDDLogicalPartMap &map, const HepPDT::ParticleDataTable *table_, sim::FieldBuilder *fieldBuilder_, const edm::ParameterSet &p)
Definition:
GFlash.cc:23
MakerMacros.h
GFlash
Definition:
GFlash.h:11
HadronPhysicsQGSP_BERT_WP.h
sim::FieldBuilder
Definition:
FieldBuilder.h:19
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
Association.map
dictionary map
Definition:
Association.py:205
PhysicsList
Definition:
PhysicsList.h:13
GFlash::thePar
edm::ParameterSet thePar
Definition:
GFlash.h:19
GflashHistogram::bookHistogram
void bookHistogram(std::string histFileName="gflash_histogram.root")
Definition:
GflashHistogram.cc:17
ParametrisedPhysics
Definition:
ParametrisedPhysics.h:13
ParametrisedPhysics.h
DDMapper< G4LogicalVolume *, DDLogicalPart >
edm::LogInfo
Definition:
MessageLogger.h:214
HadronPhysicsQGSPCMS_FTFP_BERT_WP.h
CMSEmStandardPhysics95msc93
Definition:
CMSEmStandardPhysics95msc93.h:9
AlCaHLTBitMon_ParallelJobs.p
tuple p
Definition:
AlCaHLTBitMon_ParallelJobs.py:152
CMSMonopolePhysics
Definition:
CMSMonopolePhysics.h:15
CMSMonopolePhysics.h
GFlash.h
edm::ParameterSet
Definition:
ParameterSet.h:35
PhysicsListFactory.h
HadronPhysicsQGSP_WP.h
table_
Table table_
Definition:
Actions.cc:22
GFlash::theHisto
GflashHistogram * theHisto
Definition:
GFlash.h:18
GflashHistogram::setStoreFlag
void setStoreFlag(bool flag)
Definition:
GflashHistogram.h:26
GflashHistogram.h
Generated for CMSSW Reference Manual by
1.8.5