ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4HadronPhysicsFTFP_BERT_ATL.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4HadronPhysicsFTFP_BERT_ATL.cc
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
//
27
//---------------------------------------------------------------------------
28
// Author: Alberto Ribon
29
// Date: April 2016
30
//
31
// Hadron physics for the new physics list FTFP_BERT_ATL.
32
// This is a modified version of the FTFP_BERT hadron physics for ATLAS.
33
// The hadron physics of FTFP_BERT_ATL has the transition between Bertini
34
// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the
35
// energy region [9, 12] GeV.
36
//---------------------------------------------------------------------------
37
//
38
#include <iomanip>
39
40
#include "
G4HadronPhysicsFTFP_BERT_ATL.hh
"
41
42
#include "
G4NeutronBuilder.hh
"
43
#include "
G4BertiniNeutronBuilder.hh
"
44
#include "
G4FTFPNeutronBuilder.hh
"
45
#include "
G4ProtonBuilder.hh
"
46
#include "
G4BertiniProtonBuilder.hh
"
47
#include "
G4FTFPNeutronBuilder.hh
"
48
#include "
G4FTFPProtonBuilder.hh
"
49
#include "
G4PiKBuilder.hh
"
50
#include "
G4FTFPPiKBuilder.hh
"
51
#include "
G4BertiniPiKBuilder.hh
"
52
53
#include "
globals.hh
"
54
#include "
G4ios.hh
"
55
#include "
G4SystemOfUnits.hh
"
56
57
#include "
G4PhysicsConstructorFactory.hh
"
58
//
59
G4_DECLARE_PHYSCONSTR_FACTORY
(
G4HadronPhysicsFTFP_BERT_ATL
);
60
G4HadronPhysicsFTFP_BERT_ATL::G4HadronPhysicsFTFP_BERT_ATL
(
G4int
) :
61
G4HadronPhysicsFTFP_BERT_ATL
(
"hInelastic FTFP_BERT_ATL"
,
false
)
62
{}
63
64
G4HadronPhysicsFTFP_BERT_ATL::G4HadronPhysicsFTFP_BERT_ATL
(
const
G4String
&
name
,
G4bool
quasiElastic)
65
:
G4HadronPhysicsFTFP_BERT
(name,quasiElastic)
66
{
67
//Change configuration parameters of FTFP_BERT
68
minFTFP_pion
= 9.0 *
GeV
;
69
maxBERT_pion
= 12.0 *
GeV
;
70
minFTFP_kaon
= 9.0 *
GeV
;
71
maxBERT_kaon
= 12.0 *
GeV
;
72
minFTFP_proton
= 9.0 *
GeV
;
73
maxBERT_proton
= 12.0 *
GeV
;
74
minFTFP_neutron
= 9.0 *
GeV
;
75
maxBERT_neutron
= 12.0 *
GeV
;
76
QuasiElastic
=
false
;
77
}
78
79
void
G4HadronPhysicsFTFP_BERT_ATL::DumpBanner
()
80
{
81
G4cout
<<
" FTFP_BERT_ATL : threshold between BERT and FTFP"
82
<<
" is over the interval "
<<
minFTFP_pion
/
GeV
<<
" to "
<<
maxBERT_pion
/
GeV
<<
" GeV."
<<
G4endl
;
83
}
84
85
void
G4HadronPhysicsFTFP_BERT_ATL::Neutron
()
86
{
87
auto
neu
=
new
G4NeutronBuilder
;
88
AddBuilder
(
neu
);
89
auto
ftfpn =
new
G4FTFPNeutronBuilder
(
QuasiElastic
);
90
AddBuilder
(ftfpn);
91
neu
->RegisterMe(ftfpn);
92
ftfpn->SetMinEnergy(
minFTFP_neutron
);
93
auto
bertn =
new
G4BertiniNeutronBuilder
;
94
AddBuilder
(bertn);
95
neu
->RegisterMe(bertn);
96
bertn->SetMinEnergy(0.0);
97
bertn->SetMaxEnergy(
maxBERT_neutron
);
98
neu
->Build();
99
}
100
101
void
G4HadronPhysicsFTFP_BERT_ATL::Proton
()
102
{
103
auto
pro
=
new
G4ProtonBuilder
;
104
AddBuilder
(
pro
);
105
auto
ftfpp =
new
G4FTFPProtonBuilder
(
QuasiElastic
);
106
AddBuilder
(ftfpp);
107
pro
->RegisterMe(ftfpp);
108
ftfpp->SetMinEnergy(
minFTFP_proton
);
109
auto
bertp =
new
G4BertiniProtonBuilder
;
110
AddBuilder
(bertp);
111
pro
->RegisterMe(bertp);
112
bertp->SetMaxEnergy(
maxBERT_proton
);
113
pro
->Build();
114
}
115
116
void
G4HadronPhysicsFTFP_BERT_ATL::Pion
()
117
{
118
auto
pik =
new
G4PiKBuilder
;
119
AddBuilder
(pik);
120
auto
ftfppik =
new
G4FTFPPiKBuilder
(
QuasiElastic
);
121
AddBuilder
(ftfppik);
122
ftfppik->SetMinEnergy(
minFTFP_pion
);
123
pik->RegisterMe(ftfppik);
124
auto
bertpik =
new
G4BertiniPiKBuilder
();
125
AddBuilder
(bertpik);
126
bertpik->SetMaxEnergy(
maxBERT_pion
);
127
pik->RegisterMe(bertpik);
128
pik->Build();
129
}
130
131
void
G4HadronPhysicsFTFP_BERT_ATL::Kaon
() {
132
//Use combined with pions
133
}
geant4
tree
geant4-10.6-release
source
physics_lists
constructors
hadron_inelastic
src
G4HadronPhysicsFTFP_BERT_ATL.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:27
using
1.8.2 with
ECCE GitHub integration