Geant4-11
Public Member Functions | Private Types | Private Attributes
G4FragmentingString Class Reference

#include <G4FragmentingString.hh>

Public Member Functions

void Boost (G4ThreeVector &Velocity)
 
G4bool DecayIsQuark ()
 
G4ThreeVector DecayPt ()
 
 G4FragmentingString (const G4ExcitedString &excited)
 
 G4FragmentingString (const G4FragmentingString &old, G4ParticleDefinition *newdecay)
 
 G4FragmentingString (const G4FragmentingString &old, G4ParticleDefinition *newdecay, const G4LorentzVector *momentum)
 
 G4FragmentingString (const G4FragmentingString &right)
 
G4LorentzVector Get4Momentum () const
 
G4int GetDecayDirection () const
 
G4ParticleDefinitionGetDecayParton () const
 
G4ParticleDefinitionGetLeftParton (void) const
 
G4LorentzVector GetPleft ()
 
G4LorentzVector GetPright ()
 
G4LorentzVector GetPstring ()
 
G4ParticleDefinitionGetRightParton (void) const
 
G4ParticleDefinitionGetStableParton () const
 
G4bool IsAFourQuarkString (void) const
 
G4double LightConeDecay ()
 
G4double LightConeMinus ()
 
G4double LightConePlus ()
 
void LorentzRotate (const G4LorentzRotation &rotation)
 
G4double Mass () const
 
G4double Mass2 () const
 
G4double MassT2 () const
 
G4bool operator!= (const G4FragmentingString &right) const
 
G4FragmentingStringoperator= (const G4FragmentingString &)
 
G4bool operator== (const G4FragmentingString &right) const
 
void SetLeftPartonStable ()
 
void SetPleft (G4LorentzVector a4momentum)
 
void SetPright (G4LorentzVector a4momentum)
 
void SetRightPartonStable ()
 
G4bool StableIsQuark ()
 
G4ThreeVector StablePt ()
 
G4LorentzRotation TransformToAlignedCms ()
 
G4LorentzRotation TransformToCenterOfMass ()
 
 ~G4FragmentingString ()
 

Private Types

enum  DecaySide { None , Left , Right }
 

Private Attributes

DecaySide decaying
 
G4ParticleDefinitionLeftParton
 
G4LorentzVector Pleft
 
G4double Pminus
 
G4double Pplus
 
G4LorentzVector Pright
 
G4LorentzVector Pstring
 
G4ThreeVector Ptleft
 
G4ThreeVector Ptright
 
G4ParticleDefinitionRightParton
 
G4ParticleDefinitiontheDecayParton
 
G4ParticleDefinitiontheStableParton
 

Detailed Description

Definition at line 49 of file G4FragmentingString.hh.

Member Enumeration Documentation

◆ DecaySide

Enumerator
None 
Left 
Right 

Definition at line 113 of file G4FragmentingString.hh.

Constructor & Destructor Documentation

◆ G4FragmentingString() [1/4]

G4FragmentingString::G4FragmentingString ( const G4FragmentingString right)

Definition at line 46 of file G4FragmentingString.cc.

47{
48 LeftParton=old.LeftParton;
49 RightParton=old.RightParton;
50 Ptleft=old.Ptleft;
51 Ptright=old.Ptright;
52 Pplus=old.Pplus;
53 Pminus=old.Pminus;
54 theStableParton=old.theStableParton;
55 theDecayParton=old.theDecayParton;
56 decaying=old.decaying;
57 Pstring=old.Pstring;
58 Pleft =old.Pleft;
59 Pright =old.Pright;
60}
G4ParticleDefinition * theDecayParton
G4ParticleDefinition * theStableParton
G4ParticleDefinition * RightParton
G4ParticleDefinition * LeftParton

References decaying, LeftParton, Pleft, Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, RightParton, theDecayParton, and theStableParton.

◆ G4FragmentingString() [2/4]

G4FragmentingString::G4FragmentingString ( const G4ExcitedString excited)

Definition at line 84 of file G4FragmentingString.cc.

85{
89 Ptleft.setZ(0.);
91 Ptright.setZ(0.);
94
95 if (excited.GetDirection() > 0) {decaying=Left; }
96 else {decaying=Right;}
97
98 Pleft = excited.GetLeftParton()->Get4Momentum();
99 Pright = excited.GetRightParton()->Get4Momentum();
101
102 Pplus = Pstring.plus();
103 Pminus = Pstring.minus();
104}
void setZ(double)
Hep3Vector vect() const
double minus() const
G4int GetDirection(void) const
G4Parton * GetRightParton(void) const
G4Parton * GetLeftParton(void) const
G4ParticleDefinition * GetDefinition()
Definition: G4Parton.hh:161
const G4LorentzVector & Get4Momentum() const
Definition: G4Parton.hh:143

References decaying, G4Parton::Get4Momentum(), G4Parton::GetDefinition(), G4ExcitedString::GetDirection(), G4ExcitedString::GetLeftParton(), G4ExcitedString::GetRightParton(), Left, LeftParton, CLHEP::HepLorentzVector::minus(), Pleft, CLHEP::HepLorentzVector::plus(), Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, Right, RightParton, CLHEP::Hep3Vector::setZ(), theDecayParton, theStableParton, and CLHEP::HepLorentzVector::vect().

◆ G4FragmentingString() [3/4]

G4FragmentingString::G4FragmentingString ( const G4FragmentingString old,
G4ParticleDefinition newdecay,
const G4LorentzVector momentum 
)

Definition at line 108 of file G4FragmentingString.cc.

111{
113 // Momentum of produced hadron
114 G4LorentzVector Momentum = G4LorentzVector(momentum->vect(),momentum->e());
115
116 if ( old.decaying == Left )
117 {
119 Ptright = old.Ptright;
120 Pright = old.Pright;
121
122 LeftParton = newdecay;
123 Ptleft = old.Ptleft - momentum->vect();
124 Ptleft.setZ(0.);
125 Pleft = old.Pleft - Momentum;
126
127 Pstring = Pleft + Pright;
128 Pplus = Pstring.plus();
129 Pminus = Pstring.minus();
130
133 decaying = Left;
134 } else if ( old.decaying == Right )
135 {
136 RightParton = newdecay;
137 Ptright = old.Ptright - momentum->vect();
138 Ptright.setZ(0.);
139 Pright = old.Pright - Momentum;
140
142 Ptleft = old.Ptleft;
143 Pleft = old.Pleft;
144
145 Pstring = Pleft + Pright;
146 Pplus = Pstring.plus();
147 Pminus = Pstring.minus();
148
151 decaying = Right;
152 } else
153 {
154 throw G4HadronicException(__FILE__, __LINE__,
155 "G4FragmentingString::G4FragmentingString: no decay Direction defined");
156 }
157}
CLHEP::HepLorentzVector G4LorentzVector
G4ParticleDefinition * GetLeftParton(void) const
G4ParticleDefinition * GetRightParton(void) const

References decaying, CLHEP::HepLorentzVector::e(), GetLeftParton(), GetRightParton(), Left, LeftParton, CLHEP::HepLorentzVector::minus(), None, Pleft, CLHEP::HepLorentzVector::plus(), Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, Right, RightParton, CLHEP::Hep3Vector::setZ(), theDecayParton, theStableParton, and CLHEP::HepLorentzVector::vect().

◆ G4FragmentingString() [4/4]

G4FragmentingString::G4FragmentingString ( const G4FragmentingString old,
G4ParticleDefinition newdecay 
)

Definition at line 162 of file G4FragmentingString.cc.

164{
165 decaying=None;
166
167 Ptleft.setX(0.); Ptleft.setY(0.); Ptleft.setZ(0.);
168 Ptright.setX(0.); Ptright.setY(0.); Ptright.setZ(0.);
169 Pplus=0.; Pminus=0.;
171
172 Pstring=G4LorentzVector(0.,0.,0.,0.);
173 Pleft =G4LorentzVector(0.,0.,0.,0.);
174 Pright =G4LorentzVector(0.,0.,0.,0.);
175
176 if ( old.decaying == Left )
177 {
179 LeftParton = newdecay;
181 } else if ( old.decaying == Right )
182 {
183 RightParton = newdecay;
184 LeftParton = old.LeftParton;
186 } else
187 {
188 throw G4HadronicException(__FILE__, __LINE__,
189 "G4FragmentingString::G4FragmentingString: no decay Direction defined");
190 }
191}
void setY(double)
void setX(double)

References decaying, Left, LeftParton, None, Pleft, Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, Right, RightParton, CLHEP::Hep3Vector::setX(), CLHEP::Hep3Vector::setY(), CLHEP::Hep3Vector::setZ(), theDecayParton, and theStableParton.

◆ ~G4FragmentingString()

G4FragmentingString::~G4FragmentingString ( )

Definition at line 196 of file G4FragmentingString.cc.

197{}

Member Function Documentation

◆ Boost()

void G4FragmentingString::Boost ( G4ThreeVector Velocity)

◆ DecayIsQuark()

G4bool G4FragmentingString::DecayIsQuark ( )

◆ DecayPt()

G4ThreeVector G4FragmentingString::DecayPt ( )

Definition at line 258 of file G4FragmentingString.cc.

259{
260 if (decaying == Left ) return Ptleft;
261 else if (decaying == Right ) return Ptright;
262 else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
263 return G4ThreeVector();
264}
CLHEP::Hep3Vector G4ThreeVector

References decaying, Left, Ptleft, Ptright, and Right.

◆ Get4Momentum()

G4LorentzVector G4FragmentingString::Get4Momentum ( ) const

Definition at line 287 of file G4FragmentingString.cc.

288{
289 return Pstring;
290}

References Pstring.

◆ GetDecayDirection()

G4int G4FragmentingString::GetDecayDirection ( ) const

Definition at line 219 of file G4FragmentingString.cc.

220{
221 if (decaying == Left ) return +1;
222 else if (decaying == Right) return -1;
223 else throw G4HadronicException(__FILE__, __LINE__,
224 "G4FragmentingString::GetDecayDirection: decay side UNdefined!");
225 return 0;
226}

References decaying, Left, and Right.

Referenced by G4QGSMFragmentation::FragmentString(), G4LundStringFragmentation::Loop_toFragmentString(), G4LundStringFragmentation::SplitEandP(), and G4QGSMFragmentation::SplitEandP().

◆ GetDecayParton()

G4ParticleDefinition * G4FragmentingString::GetDecayParton ( ) const
inline

◆ GetLeftParton()

G4ParticleDefinition * G4FragmentingString::GetLeftParton ( void  ) const
inline

◆ GetPleft()

G4LorentzVector G4FragmentingString::GetPleft ( )

Definition at line 312 of file G4FragmentingString.cc.

313{
314 return Pleft;
315}

References Pleft.

◆ GetPright()

G4LorentzVector G4FragmentingString::GetPright ( )

Definition at line 317 of file G4FragmentingString.cc.

318{
319 return Pright;
320}

References Pright.

◆ GetPstring()

G4LorentzVector G4FragmentingString::GetPstring ( )

Definition at line 307 of file G4FragmentingString.cc.

308{
309 return Pstring;
310}

References Pstring.

◆ GetRightParton()

G4ParticleDefinition * G4FragmentingString::GetRightParton ( void  ) const
inline

◆ GetStableParton()

G4ParticleDefinition * G4FragmentingString::GetStableParton ( ) const
inline

Definition at line 131 of file G4FragmentingString.hh.

132{
133 return theStableParton;
134}

References theStableParton.

◆ IsAFourQuarkString()

G4bool G4FragmentingString::IsAFourQuarkString ( void  ) const

◆ LightConeDecay()

G4double G4FragmentingString::LightConeDecay ( )

Definition at line 278 of file G4FragmentingString.cc.

279{
280 if (decaying == Left ) return Pplus;
281 else if (decaying == Right ) return Pminus;
282 else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
283}

References decaying, Left, Pminus, Pplus, and Right.

Referenced by G4LundStringFragmentation::SplitEandP(), and G4QGSMFragmentation::SplitEandP().

◆ LightConeMinus()

G4double G4FragmentingString::LightConeMinus ( )

Definition at line 273 of file G4FragmentingString.cc.

274{
275 return Pminus;
276}

References Pminus.

◆ LightConePlus()

G4double G4FragmentingString::LightConePlus ( )

Definition at line 268 of file G4FragmentingString.cc.

269{
270 return Pplus;
271}

References Pplus.

◆ LorentzRotate()

void G4FragmentingString::LorentzRotate ( const G4LorentzRotation rotation)
inline

◆ Mass()

G4double G4FragmentingString::Mass ( ) const

◆ Mass2()

G4double G4FragmentingString::Mass2 ( ) const

Definition at line 292 of file G4FragmentingString.cc.

293{
294 return Pstring.mag2();
295}

References CLHEP::HepLorentzVector::mag2(), and Pstring.

◆ MassT2()

G4double G4FragmentingString::MassT2 ( ) const

Definition at line 302 of file G4FragmentingString.cc.

303{
304 return Pplus*Pminus;
305}

References Pminus, and Pplus.

◆ operator!=()

G4bool G4FragmentingString::operator!= ( const G4FragmentingString right) const
inline

Definition at line 124 of file G4FragmentingString.hh.

125{
126 return this != &right;
127}

◆ operator=()

G4FragmentingString & G4FragmentingString::operator= ( const G4FragmentingString old)

Definition at line 62 of file G4FragmentingString.cc.

63{
64 if (this != &old)
65 {
68 Ptleft=old.Ptleft;
69 Ptright=old.Ptright;
70 Pplus=old.Pplus;
71 Pminus=old.Pminus;
75 Pstring=old.Pstring;
76 Pleft =old.Pleft;
77 Pright =old.Pright;
78 }
79 return *this;
80}

References decaying, LeftParton, Pleft, Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, RightParton, theDecayParton, and theStableParton.

◆ operator==()

G4bool G4FragmentingString::operator== ( const G4FragmentingString right) const
inline

Definition at line 118 of file G4FragmentingString.hh.

119{
120 return this == &right;
121}

◆ SetLeftPartonStable()

void G4FragmentingString::SetLeftPartonStable ( )

◆ SetPleft()

void G4FragmentingString::SetPleft ( G4LorentzVector  a4momentum)
inline

◆ SetPright()

void G4FragmentingString::SetPright ( G4LorentzVector  a4momentum)
inline

◆ SetRightPartonStable()

void G4FragmentingString::SetRightPartonStable ( )

◆ StableIsQuark()

G4bool G4FragmentingString::StableIsQuark ( )

◆ StablePt()

G4ThreeVector G4FragmentingString::StablePt ( )

Definition at line 250 of file G4FragmentingString.cc.

251{
252 if (decaying == Left ) return Ptright;
253 else if (decaying == Right ) return Ptleft;
254 else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
255 return G4ThreeVector();
256}

References decaying, Left, Ptleft, Ptright, and Right.

◆ TransformToAlignedCms()

G4LorentzRotation G4FragmentingString::TransformToAlignedCms ( )

Definition at line 322 of file G4FragmentingString.cc.

323{
324 G4LorentzVector momentum = Pstring;
325 G4LorentzRotation toAlignedCms(-1*momentum.boostVector());
326 momentum = toAlignedCms * Pleft;
327
328 toAlignedCms.rotateZ(-1*momentum.phi());
329 toAlignedCms.rotateY(-1*momentum.theta());
330
331 Pleft *= toAlignedCms;
332 Pright *= toAlignedCms;
333 Pstring *= toAlignedCms;
334
336 Ptleft.setZ(0.);
338 Pplus = Pstring.plus();
339 Pminus = Pstring.minus();
340
341 return toAlignedCms;
342}
double theta() const
Hep3Vector boostVector() const
HepLorentzVector & rotateZ(double)
HepLorentzVector & rotateY(double)

References CLHEP::HepLorentzVector::boostVector(), CLHEP::HepLorentzVector::minus(), CLHEP::HepLorentzVector::phi(), Pleft, CLHEP::HepLorentzVector::plus(), Pminus, Pplus, Pright, Pstring, Ptleft, Ptright, CLHEP::HepLorentzRotation::rotateY(), CLHEP::HepLorentzRotation::rotateZ(), CLHEP::Hep3Vector::setZ(), CLHEP::HepLorentzVector::theta(), and CLHEP::HepLorentzVector::vect().

Referenced by G4LundStringFragmentation::Loop_toFragmentString().

◆ TransformToCenterOfMass()

G4LorentzRotation G4FragmentingString::TransformToCenterOfMass ( )
inline

Field Documentation

◆ decaying

DecaySide G4FragmentingString::decaying
private

◆ LeftParton

G4ParticleDefinition* G4FragmentingString::LeftParton
private

◆ Pleft

G4LorentzVector G4FragmentingString::Pleft
private

◆ Pminus

G4double G4FragmentingString::Pminus
private

◆ Pplus

G4double G4FragmentingString::Pplus
private

◆ Pright

G4LorentzVector G4FragmentingString::Pright
private

◆ Pstring

G4LorentzVector G4FragmentingString::Pstring
private

◆ Ptleft

G4ThreeVector G4FragmentingString::Ptleft
private

◆ Ptright

G4ThreeVector G4FragmentingString::Ptright
private

◆ RightParton

G4ParticleDefinition * G4FragmentingString::RightParton
private

◆ theDecayParton

G4ParticleDefinition * G4FragmentingString::theDecayParton
private

◆ theStableParton

G4ParticleDefinition* G4FragmentingString::theStableParton
private

The documentation for this class was generated from the following files: