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
processes
hadronic
models
parton_string
hadronization
include
G4LundStringFragmentation.hh
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
//
27
// $Id$
28
//
29
// -----------------------------------------------------------------------------
30
// GEANT 4 class implementation file
31
//
32
// History: first implementation, Maxim Komogorov, 10-Jul-1998
33
// -----------------------------------------------------------------------------
34
35
#ifndef G4LundStringFragmentation_h
36
#define G4LundStringFragmentation_h 1
37
38
#include "
G4VLongitudinalStringDecay.hh
"
39
40
//**************************************************************************************************************
41
42
class
G4LundStringFragmentation
:
public
G4VLongitudinalStringDecay
43
{
44
public
:
45
46
G4LundStringFragmentation
();
47
virtual
~G4LundStringFragmentation
();
48
49
virtual
G4KineticTrackVector
*
FragmentString
(
const
G4ExcitedString
& theString);
50
51
private
:
52
// not implemented to protect/forbid use
53
G4LundStringFragmentation
(
const
G4LundStringFragmentation
&
right
);
54
const
G4LundStringFragmentation
& operator=(
const
G4LundStringFragmentation
&right);
55
int
operator==(
const
G4LundStringFragmentation
&right)
const
;
56
int
operator!=(
const
G4LundStringFragmentation
&right)
const
;
57
58
private
:
59
void
SetMinimalStringMass(
const
G4FragmentingString
*
const
string
);
60
void
SetMinimalStringMass2(
const
G4double
aValue);
61
62
virtual
G4bool
StopFragmenting(
const
G4FragmentingString
*
const
string
);
63
virtual
G4bool
IsFragmentable(
const
G4FragmentingString
*
const
string
);
64
65
virtual
G4bool
SplitLast(
G4FragmentingString
*
string
,
66
G4KineticTrackVector
* LeftVector,
67
G4KineticTrackVector
* RightVector);
68
69
virtual
void
Sample4Momentum(
G4LorentzVector
* Mom,
G4double
Mass,
70
G4LorentzVector
* AntiMom,
G4double
AntiMass,
71
G4double
InitialMass);
72
73
virtual
G4LorentzVector
* SplitEandP(
G4ParticleDefinition
* pHadron,
74
G4FragmentingString
*
string
,
75
G4FragmentingString
* newString);
// Uzhi
76
77
virtual
G4double
GetLightConeZ(
G4double
zmin,
G4double
zmax,
78
G4int
PartonEncoding,
79
G4ParticleDefinition
* pHadron,
80
G4double
Px,
G4double
Py);
81
82
G4double
lambda(
G4double
s
,
G4double
m1_Sqr,
G4double
m2_Sqr);
83
84
private
:
85
// Internal methods introduced to improve the code structure (AR Nov 2011)
86
87
G4bool
Loop_toFragmentString(
G4ExcitedString
* & theStringInCMS,
88
G4KineticTrackVector
* & LeftVector,
89
G4KineticTrackVector
* & RightVector);
90
91
G4bool
Diquark_AntiDiquark_belowThreshold_lastSplitting(
G4FragmentingString
* &
string
,
92
G4ParticleDefinition
* & LeftHadron,
93
G4ParticleDefinition
* & RightHadron);
94
95
G4bool
Diquark_AntiDiquark_aboveThreshold_lastSplitting(
G4FragmentingString
* &
string
,
96
G4ParticleDefinition
* & LeftHadron,
97
G4ParticleDefinition
* & RightHadron);
98
99
G4bool
Quark_AntiQuark_lastSplitting(
G4FragmentingString
* &
string
,
100
G4ParticleDefinition
* & LeftHadron,
101
G4ParticleDefinition
* & RightHadron);
102
103
G4bool
Quark_Diquark_lastSplitting(
G4FragmentingString
* &
string
,
104
G4ParticleDefinition
* & LeftHadron,
105
G4ParticleDefinition
* & RightHadron );
106
107
G4int
SampleState(
void
);
108
109
private
:
110
// ------ For estimation of a minimal string mass ---------------
111
G4double
Mass_of_light_quark;
112
G4double
Mass_of_heavy_quark;
113
G4double
Mass_of_string_junction;
114
// ------ An estimated minimal string mass ----------------------
115
G4double
MinimalStringMass;
116
G4double
MinimalStringMass2;
117
// ------ Minimal invariant mass used at a string fragmentation -
118
G4double
WminLUND;
119
120
G4int
Meson[3][3][6];
121
G4double
MesonWeight[3][3][6];
122
123
G4int
Baryon[3][3][3][4];
124
G4double
BaryonWeight[3][3][3][4];
125
126
G4double
Prob_QQbar[3];
127
128
// ------ To improve the code structure
129
G4ParticleDefinition
* FS_LeftHadron[35], * FS_RightHadron[35];
130
G4double
FS_Weight[35];
131
G4int
NumberOf_FS;
132
133
};
134
135
//**************************************************************************************************************
136
// Class G4LundStringFragmentation
137
#endif
138
139
Generated on Sat May 25 2013 14:34:05 for Geant4 by
1.8.4