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
G4VLongitudinalStringDecay.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VLongitudinalStringDecay.hh
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
// -----------------------------------------------------------------------------
29
// GEANT 4 class implementation file
30
// -----------------------------------------------------------------------------
31
#ifndef G4VLongitudinalStringDecay_h
32
#define G4VLongitudinalStringDecay_h 1
33
34
#include "
G4VStringFragmentation.hh
"
35
#include "
G4DynamicParticle.hh
"
36
#include "
G4KineticTrack.hh
"
37
#include "
G4KineticTrackVector.hh
"
38
#include "
G4HadronBuilder.hh
"
39
#include <vector>
40
41
class
G4FragmentingString
;
42
//**************************************************************************************
43
44
class
G4VLongitudinalStringDecay
45
{
46
public
:
47
G4VLongitudinalStringDecay
();
48
virtual
~G4VLongitudinalStringDecay
();
49
50
private
:
51
// not implemented to protect/forbid use
52
G4VLongitudinalStringDecay
(
const
G4VLongitudinalStringDecay
&
right
);
53
const
G4VLongitudinalStringDecay
&
operator=
(
const
G4VLongitudinalStringDecay
&right);
54
G4bool
operator==
(
const
G4VLongitudinalStringDecay
&right)
const
;
55
G4bool
operator!=
(
const
G4VLongitudinalStringDecay
&right)
const
;
56
57
public
:
58
virtual
G4KineticTrackVector
*
FragmentString
(
const
G4ExcitedString
& theString)=0;
59
60
void
AddNewParticles
();
61
void
EraseNewParticles
();
62
//struct DeleteString { void operator()(G4ExcitedString* aS){delete aS;} };
63
64
// To set minimal mass of a string. The string with mass above the minimal mass can fragment.
65
void
SetMinMasses
();
66
void
SetMinimalStringMass
(
const
G4FragmentingString
*
const
string
);
67
void
SetMinimalStringMass2
(
const
G4double
aValue);
68
69
protected
:
70
// For changing Mass Cut used for selection of very small mass strings
71
virtual
void
SetMassCut
(
G4double
aValue);
72
G4double
GetMassCut
();
73
74
// For handling a string with very low mass
75
G4KineticTrackVector
*
ProduceOneHadron
(
const
G4ExcitedString
*
const
theString);
76
77
// To store created quarks or 2 last hadrons
78
typedef
std::pair<G4ParticleDefinition*, G4ParticleDefinition*>
pDefPair
;
79
80
// For creation of hadrons from given quark pair
81
typedef
G4ParticleDefinition
* (
G4HadronBuilder
::*
Pcreate
)
82
(
G4ParticleDefinition
*,
G4ParticleDefinition
*);
83
84
// Used by ProduceOneHadron method for estimation of lowest possible mass of
85
// given quark system -- string.
86
G4double
PossibleHadronMass
(
const
G4FragmentingString
*
const
string
,
87
Pcreate
build
=0,
pDefPair
* pdefs=0);
88
89
G4ParticleDefinition
*
FindParticle
(
G4int
Encoding);
90
91
// For decision on continue or stop string fragmentation
92
virtual
G4bool
StopFragmenting
(
const
G4FragmentingString
*
const
string
)=0;
93
virtual
G4bool
IsItFragmentable
(
const
G4FragmentingString
*
const
string
)=0;
94
95
// If a string can not fragment, make last break into 2 hadrons
96
virtual
G4bool
SplitLast
(
G4FragmentingString
*
string
,
97
G4KineticTrackVector
* LeftVector,
98
G4KineticTrackVector
* RightVector)=0;
99
100
virtual
void
Sample4Momentum
(
G4LorentzVector
* Mom,
G4double
Mass,
101
G4LorentzVector
* AntiMom,
G4double
AntiMass,
102
G4double
InitialMass)=0;
103
104
// If a string can fragment, do the following:
105
106
// Make a copy of a string
107
G4ExcitedString
*
CopyExcited
(
const
G4ExcitedString
&
string
);
108
109
// Produce a hadron at Splitup of the string
110
virtual
G4KineticTrack
*
Splitup
(
G4FragmentingString
*
string
,
111
G4FragmentingString
*&newString)=0;
112
113
// The hadron can be producet at QuarkSplitup or DiQuarkSplitup
114
virtual
G4ParticleDefinition
*
QuarkSplitup
(
G4ParticleDefinition
*
decay
,
115
G4ParticleDefinition
*&created);
116
117
virtual
G4ParticleDefinition
*
DiQuarkSplitup
(
G4ParticleDefinition
*
decay
,
118
G4ParticleDefinition
*&created)=0;
119
120
// All of them are going through quak-antiquark pair creation
121
pDefPair
CreatePartonPair
(
G4int
NeedParticle,
G4bool
AllowDiquarks=
true
);
122
123
public
:
124
// For a pair it is needed:
125
G4int
SampleQuarkFlavor
(
void
);
126
G4ThreeVector
SampleQuarkPt
(
G4double
ptMax=-1.);
// -1. no limit on maxpt.
127
128
protected
:
129
// For determination of kinematical properties of the created hadron
130
virtual
G4LorentzVector
*
SplitEandP
(
G4ParticleDefinition
* pHadron,
131
G4FragmentingString
*
string
,
132
G4FragmentingString
* newString )=0;
133
134
virtual
G4double
GetLightConeZ
(
G4double
zmin,
G4double
zmax,
135
G4int
PartonEncoding,
136
G4ParticleDefinition
* pHadron,
137
G4double
Px,
G4double
Py ) = 0;
138
139
void
CalculateHadronTimePosition
(
G4double
theInitialStringMass,
140
G4KineticTrackVector
*);
141
142
// Used for some test purposes
143
void
ConstructParticle
();
144
145
G4ParticleDefinition
*
CreateHadron
(
G4int
id1,
G4int
id2,
146
G4bool
theGivenSpin,
G4int
theSpin);
147
148
public
:
149
void
SetSigmaTransverseMomentum
(
G4double
aQT);
150
void
SetStrangenessSuppression
(
G4double
aValue);
151
void
SetDiquarkSuppression
(
G4double
aValue);
152
void
SetDiquarkBreakProbability
(
G4double
aValue);
153
154
void
SetVectorMesonProbability
(
G4double
aValue);
155
void
SetSpinThreeHalfBarionProbability
(
G4double
aValue);
156
157
void
SetScalarMesonMixings
( std::vector<G4double> aVector);
158
void
SetVectorMesonMixings
( std::vector<G4double> aVector);
159
160
void
SetStringTensionParameter
(
G4double
aValue);
161
162
void
SetProbCCbar
(
G4double
aValue);
163
void
SetProbEta_c
(
G4double
aValue);
164
void
SetProbBBbar
(
G4double
aValue);
165
void
SetProbEta_b
(
G4double
aValue);
166
167
protected
:
168
G4double
GetDiquarkSuppress
() {
return
DiquarkSuppress
;};
169
G4double
GetDiquarkBreakProb
() {
return
DiquarkBreakProb
;};
170
G4double
GetStrangeSuppress
() {
return
StrangeSuppress
;};
171
G4int
GetClusterLoopInterrupt
() {
return
ClusterLoopInterrupt
;};
172
173
G4double
GetProbCCbar
(){
return
ProbCCbar
;};
174
G4double
GetProbEta_c
(){
return
ProbEta_c
;};
175
G4double
GetProbBBbar
(){
return
ProbBBbar
;};
176
G4double
GetProbEta_b
(){
return
ProbEta_b
;};
177
178
G4double
GetStringTensionParameter
() {
return
Kappa
;};
179
180
protected
:
181
G4double
MassCut
;
182
G4double
SigmaQT
;
// sigma_q_t of quark/hadron transverse momentum distribution parameter
183
G4double
DiquarkSuppress
;
// Diquark suppression parameter
184
G4double
DiquarkBreakProb
;
// Diquark breaking probability, qq->h+qq'
185
G4double
StrangeSuppress
;
186
G4int
StringLoopInterrupt
;
187
G4int
ClusterLoopInterrupt
;
188
189
G4HadronBuilder
*
hadronizer
;
190
191
G4double
pspin_meson
;
192
G4double
pspin_barion
;
193
std::vector<G4double>
vectorMesonMix
;
194
std::vector<G4double>
scalarMesonMix
;
195
196
G4double
ProbCCbar
;
// Probability of C-Cbar pair creation
197
G4double
ProbEta_c
;
// Mixing of Eta_c and J/Psi
198
199
G4double
ProbBBbar
;
// Probability of B-Bbar pair creation
200
G4double
ProbEta_b
;
// Mixing of Eta_b and Ipsilon_b
201
202
G4double
ProbCB
;
// = ProbCCbar + ProbBBbar
203
204
G4double
MaxMass
;
205
206
G4bool
PastInitPhase
;
207
208
G4double
Kappa
;
// String tension parameter
209
210
std::vector<G4ParticleDefinition *>
NewParticles
;
211
212
public
:
213
// ------ For estimation of a minimal string mass ---------------
214
G4double
Mass_of_light_quark
;
215
G4double
Mass_of_s_quark
;
216
G4double
Mass_of_c_quark
;
217
G4double
Mass_of_b_quark
;
218
G4double
Mass_of_string_junction
;
219
220
G4double
minMassQQbarStr
[5][5];
221
G4double
minMassQDiQStr
[5][5][5];
222
223
// ------ An estimated minimal string mass ----------------------
224
G4double
MinimalStringMass
;
225
G4double
MinimalStringMass2
;
226
227
G4int
Qcharge
[5];
// quark charges
228
G4int
Meson
[5][5][7];
229
G4double
MesonWeight
[5][5][7];
230
231
G4int
Baryon
[5][5][5][4];
232
G4double
BaryonWeight
[5][5][5][4];
233
234
G4double
Prob_QQbar
[5];
235
236
G4int
DecayQuark
;
237
G4int
NewQuark
;
238
/*
239
G4double FFq2q[5][5][2];
240
G4double FFq2qq[5][15][2];
241
G4double FFqq2q[15][5][2];
242
G4double FFqq2qq[15][5][2];
243
*/
244
245
// ------ To improve the code structure
246
G4ParticleDefinition
*
FS_LeftHadron
[350], *
FS_RightHadron
[350];
247
G4double
FS_Weight
[350];
248
G4int
NumberOf_FS
;
249
};
250
251
//*************************************************************************************
252
// Class G4VLongitudinalStringDecay
253
254
#endif
255
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
parton_string
hadronization
include
G4VLongitudinalStringDecay.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:49
using
1.8.2 with
ECCE GitHub integration