Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
physics_lists
lists
src
HadronPhysicsQGSC_CHIPS.cc
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// $Id$
27
//
28
//---------------------------------------------------------------------------
29
//
30
// ClassName: HadronPhysicsQGSC_CHIPS
31
//
32
// Author: 2009 M. Kosov
33
//
34
// Modified:
35
//
36
//----------------------------------------------------------------------------
37
// Short description: In fact this is the definition of the Hadronic Inelastic
38
// physics. The definition of the Hadronic Elastic physics one can find in the
39
// G4HadronQElasticPhysics, which is stable (the same for all physics lists).
40
// The only "unstable" part of the physics is the Hadronic Inelastic physics,
41
// which is usually composed of the wixing of the High Energy Inelastic Model
42
// (HEIM) and the Low Energy Inelastic Model (LEIM), which are applied only for
43
// some hadrons (mostly nucleons and pi-mesons), above the LHEP model, which
44
// usually covers all particles (but for Sigma_0 ?) and sometimes covers the
45
// "hole" between the LEIM and HIME at intermediate energies. The name of the
46
// Physics list is usually have a form HEIM_LEIM and the inelastic interactions
47
// are defined in the HadronicPhysicsHEIM_LEIM class. So in this particular
48
// physics list the low energy model is CHIPS (G4QCollision process) and the
49
// high energy model is QGSC (QGS with the Energy Flow interface to CHIPS),
50
// which are in terms of the energy boundary are mixed not on the model level,
51
// but on the process level (G4DiscProcessMixer class). The LHEP is completely
52
// excluded from this physics list, because the MiscLHEP is substituted by the
53
// MiscQGSC class (QGS with the Energy Flow interface to CHIPS), covering all
54
// particles, which are not N, pi, or K, defined by the separate builders.
55
//---------------------------------------------------------------------------
56
#include <iomanip>
57
58
#include "
HadronPhysicsQGSC_CHIPS.hh
"
59
60
#include "
globals.hh
"
61
#include "
G4ios.hh
"
62
#include "
G4SystemOfUnits.hh
"
63
#include "
G4ParticleDefinition.hh
"
64
#include "
G4ParticleTable.hh
"
65
66
#include "
G4MesonConstructor.hh
"
67
#include "
G4BaryonConstructor.hh
"
68
#include "
G4ShortLivedConstructor.hh
"
69
70
HadronPhysicsQGSC_CHIPS::HadronPhysicsQGSC_CHIPS
(
G4int
)
71
:
G4VPhysicsConstructor
(
"hInelastic QGSC_CHIPS"
)
72
, theNeut(0)
73
, theQGSCNeut(0)
74
, thePiK(0)
75
, theQGSCPiK(0)
76
, theProt(0)
77
, theQGSCProt(0)
78
, theMiscQGSC(0)
79
, QuasiElastic(true)
80
{}
81
82
HadronPhysicsQGSC_CHIPS::HadronPhysicsQGSC_CHIPS
(
const
G4String
&
name
,
G4bool
quasiElastic)
83
:
G4VPhysicsConstructor
(name)
84
, theNeut(0)
85
, theQGSCNeut(0)
86
, thePiK(0)
87
, theQGSCPiK(0)
88
, theProt(0)
89
, theQGSCProt(0)
90
, theMiscQGSC(0)
91
, QuasiElastic(quasiElastic)
92
{}
93
94
void
HadronPhysicsQGSC_CHIPS::CreateModels()
95
{
96
theNeut =
new
G4QNeutronBuilder
;
97
theNeut->
RegisterMe
(theQGSCNeut=
new
G4QGSC_CHIPSNeutronBuilder
(QuasiElastic));
98
//theQGSCNeut = new G4QGSC_CHIPSNeutronBuilder(QuasiElastic));
99
100
theQGSCNeut->
SetMinEnergy
(0.0*
GeV
);
101
102
theProt =
new
G4QProtonBuilder
;
103
theProt->
RegisterMe
(theQGSCProt =
new
G4QGSC_CHIPSProtonBuilder
(QuasiElastic));
104
//theQGSCProt = new G4QGSC_CHIPSProtonBuilder(QuasiElastic);
105
106
theQGSCProt->
SetMinEnergy
(0.0*
GeV
);
107
108
thePiK =
new
G4PiKBuilder
;
109
thePiK->
RegisterMe
(theQGSCPiK=
new
G4QGSC_CHIPSPiKBuilder
(QuasiElastic));
110
111
theQGSCPiK->
SetMinEnergy
(0.0*
GeV
);
112
113
theMiscQGSC=
new
G4MiscQGSCBuilder
(0);
// No verbose (@@ to be developed)
114
}
115
116
HadronPhysicsQGSC_CHIPS::~HadronPhysicsQGSC_CHIPS
()
117
{
118
delete
theQGSCNeut;
119
delete
theNeut;
120
121
delete
theQGSCProt;
122
delete
theProt;
123
124
delete
theQGSCPiK;
125
delete
thePiK;
126
127
delete
theMiscQGSC;
128
}
129
130
void
HadronPhysicsQGSC_CHIPS::ConstructParticle
()
131
{
132
G4MesonConstructor
pMesonConstructor;
133
pMesonConstructor.
ConstructParticle
();
134
135
G4BaryonConstructor
pBaryonConstructor;
136
pBaryonConstructor.
ConstructParticle
();
137
138
G4ShortLivedConstructor
pShortLivedConstructor;
139
pShortLivedConstructor.
ConstructParticle
();
140
}
141
142
#include "
G4ProcessManager.hh
"
143
void
HadronPhysicsQGSC_CHIPS::ConstructProcess
()
144
{
145
CreateModels();
146
theNeut->
Build
();
147
theProt->
Build
();
148
thePiK->
Build
();
149
theMiscQGSC->
Build
();
150
}
151
Generated on Sat May 25 2013 14:33:28 for Geant4 by
1.8.4