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
 
G4ParticleDefinition * GetDecayParton () const
 
G4ParticleDefinition * GetLeftParton (void) const
 
G4LorentzVector GetPleft ()
 
G4LorentzVector GetPright ()
 
G4LorentzVector GetPstring ()
 
G4ParticleDefinition * GetRightParton (void) const
 
G4ParticleDefinition * GetStableParton () 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
 
G4FragmentingString & operator= (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
 
G4ParticleDefinition * LeftParton
 
G4LorentzVector Pleft
 
G4double Pminus
 
G4double Pplus
 
G4LorentzVector Pright
 
G4LorentzVector Pstring
 
G4ThreeVector Ptleft
 
G4ThreeVector Ptright
 
G4ParticleDefinition * RightParton
 
G4ParticleDefinition * theDecayParton
 
G4ParticleDefinition * theStableParton
 

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: