Geant4  10.02.p03
G4FragmentingString Class Reference

#include <G4FragmentingString.hh>

Collaboration diagram for G4FragmentingString:

Public Member Functions

 G4FragmentingString (const G4FragmentingString &right)
 
 G4FragmentingString (const G4ExcitedString &excited)
 
 G4FragmentingString (const G4FragmentingString &old, G4ParticleDefinition *newdecay, const G4LorentzVector *momentum)
 
 G4FragmentingString (const G4FragmentingString &old, G4ParticleDefinition *newdecay)
 
 ~G4FragmentingString ()
 
G4FragmentingStringoperator= (const G4FragmentingString &)
 
int operator== (const G4FragmentingString &right) const
 
int operator!= (const G4FragmentingString &right) const
 
G4LorentzVector Get4Momentum () const
 
G4ThreeVector StablePt ()
 
G4ThreeVector DecayPt ()
 
G4double LightConePlus ()
 
G4double LightConeMinus ()
 
G4double LightConeDecay ()
 
G4double Mass () const
 
G4double Mass2 () const
 
G4double MassT2 () const
 
G4ParticleDefinitionGetLeftParton (void) const
 
G4ParticleDefinitionGetRightParton (void) const
 
G4ParticleDefinitionGetStableParton () const
 
G4ParticleDefinitionGetDecayParton () const
 
void SetLeftPartonStable ()
 
void SetRightPartonStable ()
 
G4int GetDecayDirection () const
 
G4bool DecayIsQuark ()
 
G4bool StableIsQuark ()
 
G4bool FourQuarkString (void) const
 

Private Types

enum  DecaySide { None, Left, Right }
 

Private Attributes

G4ParticleDefinitionLeftParton
 
G4ParticleDefinitionRightParton
 
G4ThreeVector Ptleft
 
G4ThreeVector Ptright
 
G4double Pplus
 
G4double Pminus
 
G4ParticleDefinitiontheStableParton
 
G4ParticleDefinitiontheDecayParton
 
DecaySide decaying
 

Detailed Description

Definition at line 49 of file G4FragmentingString.hh.

Member Enumeration Documentation

◆ DecaySide

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 }
G4ParticleDefinition * RightParton
G4ParticleDefinition * theStableParton
G4ParticleDefinition * LeftParton
G4ParticleDefinition * theDecayParton

◆ G4FragmentingString() [2/4]

G4FragmentingString::G4FragmentingString ( const G4ExcitedString excited)

Definition at line 78 of file G4FragmentingString.cc.

79 {
82  Ptleft=excited.GetLeftParton()->Get4Momentum().vect();
83  Ptleft.setZ(0.);
84  Ptright=excited.GetRightParton()->Get4Momentum().vect();
85  Ptright.setZ(0.);
86  G4LorentzVector P=excited.Get4Momentum();
87  Pplus =P.e() + P.pz();
88  Pminus=P.e() - P.pz();
91 // decaying=None; // Uzhi 19.06.2014
92  if(excited.GetDirection() > 0) {decaying=Left; } // Uzhi 20.06.2014
93  else {decaying=Right;} // Uzhi 20.06.2014
94 }
G4ParticleDefinition * RightParton
G4Parton * GetLeftParton(void) const
const G4LorentzVector & Get4Momentum() const
Definition: G4Parton.hh:140
G4ParticleDefinition * GetDefinition()
Definition: G4Parton.hh:158
void setZ(double)
static double P[]
Hep3Vector vect() const
G4LorentzVector Get4Momentum() const
G4Parton * GetRightParton(void) const
G4ParticleDefinition * theStableParton
G4int GetDirection(void) const
G4ParticleDefinition * LeftParton
G4ParticleDefinition * theDecayParton
Here is the call graph for this function:

◆ G4FragmentingString() [3/4]

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

Definition at line 98 of file G4FragmentingString.cc.

101 {
102  decaying=None;
103  if ( old.decaying == Left )
104  {
106  Ptright = old.Ptright;
107  LeftParton = newdecay;
108  Ptleft = old.Ptleft - momentum->vect();
109  Ptleft.setZ(0.);
112  decaying=Left; // Uzhi 19.06.2014
113  } else if ( old.decaying == Right )
114  {
115  RightParton = newdecay;
116  Ptright = old.Ptright - momentum->vect();
117  Ptright.setZ(0.);
118  LeftParton = old.LeftParton;
119  Ptleft = old.Ptleft;
122  decaying=Right; // Uzhi 19.06.2014
123  } else
124  {
125  throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::G4FragmentingString: no decay Direction defined");
126  }
127  Pplus = old.Pplus - (momentum->e() + momentum->pz());
128  Pminus = old.Pminus - (momentum->e() - momentum->pz());
129 
130  //G4double Eold=0.5 * (old.Pplus + old.Pminus);
131  //G4double Enew=0.5 * (Pplus + Pminus);
132 }
G4ParticleDefinition * RightParton
void setZ(double)
Hep3Vector vect() const
G4ParticleDefinition * GetLeftParton(void) const
G4ParticleDefinition * theStableParton
G4ParticleDefinition * LeftParton
G4ParticleDefinition * theDecayParton
G4ParticleDefinition * GetRightParton(void) const
Here is the call graph for this function:

◆ G4FragmentingString() [4/4]

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

Definition at line 137 of file G4FragmentingString.cc.

139 {
140  decaying=None;
141 
142  Ptleft.setX(0.); Ptleft.setY(0.); Ptleft.setZ(0.);
143  Ptright.setX(0.); Ptright.setY(0.); Ptright.setZ(0.);
144  Pplus=0.; Pminus=0.;
146 
147  if ( old.decaying == Left )
148  {
149  RightParton= old.RightParton;
150  LeftParton = newdecay;
151  decaying=Left; // Uzhi 19.06.2014
152  } else if ( old.decaying == Right )
153  {
154  RightParton = newdecay;
155  LeftParton = old.LeftParton;
156  decaying=Right; // Uzhi 19.06.2014
157  } else
158  {
159  throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::G4FragmentingString: no decay Direction defined");
160  }
161 }
G4ParticleDefinition * RightParton
void setY(double)
void setZ(double)
void setX(double)
G4ParticleDefinition * theStableParton
G4ParticleDefinition * LeftParton
G4ParticleDefinition * theDecayParton
Here is the call graph for this function:

◆ ~G4FragmentingString()

G4FragmentingString::~G4FragmentingString ( )

Definition at line 166 of file G4FragmentingString.cc.

167 {}

Member Function Documentation

◆ DecayIsQuark()

G4bool G4FragmentingString::DecayIsQuark ( )

Definition at line 208 of file G4FragmentingString.cc.

209 {
210  return theDecayParton->GetParticleSubType()== "quark";
211 }
G4ParticleDefinition * theDecayParton
const G4String & GetParticleSubType() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ DecayPt()

G4ThreeVector G4FragmentingString::DecayPt ( )

Definition at line 228 of file G4FragmentingString.cc.

229 {
230  if (decaying == Left ) return Ptleft;
231  else if (decaying == Right ) return Ptright;
232  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
233  return G4ThreeVector();
234 }
CLHEP::Hep3Vector G4ThreeVector

◆ FourQuarkString()

G4bool G4FragmentingString::FourQuarkString ( void  ) const

Definition at line 200 of file G4FragmentingString.cc.

201 {
202  return LeftParton->GetParticleSubType()== "di_quark"
203  && RightParton->GetParticleSubType()== "di_quark";
204 }
G4ParticleDefinition * RightParton
G4ParticleDefinition * LeftParton
const G4String & GetParticleSubType() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Get4Momentum()

G4LorentzVector G4FragmentingString::Get4Momentum ( ) const

Definition at line 257 of file G4FragmentingString.cc.

258 {
259  G4LorentzVector momentum(Ptleft+Ptright,0);
260  momentum.setPz(0.5*(Pplus-Pminus));
261  momentum.setE(0.5*(Pplus+Pminus));
262  return momentum;
263 }
Here is the call graph for this function:

◆ GetDecayDirection()

G4int G4FragmentingString::GetDecayDirection ( ) const

Definition at line 190 of file G4FragmentingString.cc.

191 {
192  if (decaying == Left ) return +1;
193  else if (decaying == Right) return -1;
194  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::GetDecayDirection: decay side UNdefined!");
195  return 0;
196 }
Here is the caller graph for this function:

◆ GetDecayParton()

G4ParticleDefinition * G4FragmentingString::GetDecayParton ( ) const
inline

Definition at line 131 of file G4FragmentingString.hh.

132 {
133  return theDecayParton;
134 }
G4ParticleDefinition * theDecayParton
Here is the caller graph for this function:

◆ GetLeftParton()

G4ParticleDefinition * G4FragmentingString::GetLeftParton ( void  ) const
inline

Definition at line 137 of file G4FragmentingString.hh.

138  {
139  return LeftParton;
140  }
G4ParticleDefinition * LeftParton
Here is the caller graph for this function:

◆ GetRightParton()

G4ParticleDefinition * G4FragmentingString::GetRightParton ( void  ) const
inline

Definition at line 143 of file G4FragmentingString.hh.

144  {
145  return RightParton;
146  }
G4ParticleDefinition * RightParton
Here is the caller graph for this function:

◆ GetStableParton()

G4ParticleDefinition * G4FragmentingString::GetStableParton ( ) const
inline

Definition at line 125 of file G4FragmentingString.hh.

126 {
127  return theStableParton;
128 }
G4ParticleDefinition * theStableParton

◆ LightConeDecay()

G4double G4FragmentingString::LightConeDecay ( )

Definition at line 248 of file G4FragmentingString.cc.

249 {
250  if (decaying == Left ) return Pplus;
251  else if (decaying == Right ) return Pminus;
252  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
253 }

◆ LightConeMinus()

G4double G4FragmentingString::LightConeMinus ( )

Definition at line 243 of file G4FragmentingString.cc.

244 {
245  return Pminus;
246 }

◆ LightConePlus()

G4double G4FragmentingString::LightConePlus ( )

Definition at line 238 of file G4FragmentingString.cc.

239 {
240  return Pplus;
241 }

◆ Mass()

G4double G4FragmentingString::Mass ( ) const

Definition at line 270 of file G4FragmentingString.cc.

271 {
272  return std::sqrt(this->Mass2());
273 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Mass2()

G4double G4FragmentingString::Mass2 ( ) const

Definition at line 265 of file G4FragmentingString.cc.

266 {
267  return Pplus*Pminus - (Ptleft+Ptright).mag2();
268 }
Here is the caller graph for this function:

◆ MassT2()

G4double G4FragmentingString::MassT2 ( ) const

Definition at line 275 of file G4FragmentingString.cc.

276 {
277  return Pplus*Pminus;
278 }

◆ operator!=()

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

Definition at line 118 of file G4FragmentingString.hh.

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

◆ operator=()

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

Definition at line 59 of file G4FragmentingString.cc.

60 {
61  if (this != &old)
62  {
65  Ptleft=old.Ptleft;
66  Ptright=old.Ptright;
67  Pplus=old.Pplus;
68  Pminus=old.Pminus;
71  decaying=old.decaying;
72  }
73  return *this;
74 }
G4ParticleDefinition * RightParton
G4ParticleDefinition * theStableParton
G4ParticleDefinition * LeftParton
G4ParticleDefinition * theDecayParton

◆ operator==()

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

Definition at line 112 of file G4FragmentingString.hh.

113 {
114  return this == &right;
115 }

◆ SetLeftPartonStable()

void G4FragmentingString::SetLeftPartonStable ( )

Definition at line 172 of file G4FragmentingString.cc.

173 {
176  decaying=Right;
177 }
G4ParticleDefinition * GetLeftParton(void) const
G4ParticleDefinition * theStableParton
G4ParticleDefinition * theDecayParton
G4ParticleDefinition * GetRightParton(void) const
Here is the call graph for this function:

◆ SetRightPartonStable()

void G4FragmentingString::SetRightPartonStable ( )

Definition at line 181 of file G4FragmentingString.cc.

182 {
185  decaying=Left;
186 }
G4ParticleDefinition * GetLeftParton(void) const
G4ParticleDefinition * theStableParton
G4ParticleDefinition * theDecayParton
G4ParticleDefinition * GetRightParton(void) const
Here is the call graph for this function:

◆ StableIsQuark()

G4bool G4FragmentingString::StableIsQuark ( )

Definition at line 213 of file G4FragmentingString.cc.

214 {
215  return theStableParton->GetParticleSubType()== "quark";
216 }
G4ParticleDefinition * theStableParton
const G4String & GetParticleSubType() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ StablePt()

G4ThreeVector G4FragmentingString::StablePt ( )

Definition at line 220 of file G4FragmentingString.cc.

221 {
222  if (decaying == Left ) return Ptright;
223  else if (decaying == Right ) return Ptleft;
224  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
225  return G4ThreeVector();
226 }
CLHEP::Hep3Vector G4ThreeVector

Member Data Documentation

◆ decaying

DecaySide G4FragmentingString::decaying
private

Definition at line 108 of file G4FragmentingString.hh.

◆ LeftParton

G4ParticleDefinition* G4FragmentingString::LeftParton
private

Definition at line 101 of file G4FragmentingString.hh.

◆ Pminus

G4double G4FragmentingString::Pminus
private

Definition at line 103 of file G4FragmentingString.hh.

◆ Pplus

G4double G4FragmentingString::Pplus
private

Definition at line 103 of file G4FragmentingString.hh.

◆ Ptleft

G4ThreeVector G4FragmentingString::Ptleft
private

Definition at line 102 of file G4FragmentingString.hh.

◆ Ptright

G4ThreeVector G4FragmentingString::Ptright
private

Definition at line 102 of file G4FragmentingString.hh.

◆ RightParton

G4ParticleDefinition * G4FragmentingString::RightParton
private

Definition at line 101 of file G4FragmentingString.hh.

◆ theDecayParton

G4ParticleDefinition * G4FragmentingString::theDecayParton
private

Definition at line 105 of file G4FragmentingString.hh.

◆ theStableParton

G4ParticleDefinition* G4FragmentingString::theStableParton
private

Definition at line 105 of file G4FragmentingString.hh.


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