Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4FragmentingString Class Reference

#include <G4FragmentingString.hh>

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
 

Detailed Description

Definition at line 49 of file G4FragmentingString.hh.

Constructor & Destructor Documentation

G4FragmentingString::G4FragmentingString ( const G4FragmentingString right)

Definition at line 44 of file G4FragmentingString.cc.

45 {
46  LeftParton=old.LeftParton;
47  RightParton=old.RightParton;
48  Ptleft=old.Ptleft;
49  Ptright=old.Ptright;
50  Pplus=old.Pplus;
51  Pminus=old.Pminus;
52  theStableParton=old.theStableParton;
53  theDecayParton=old.theDecayParton;
54  decaying=old.decaying;
55 }
G4FragmentingString::G4FragmentingString ( const G4ExcitedString excited)

Definition at line 76 of file G4FragmentingString.cc.

77 {
78  LeftParton=excited.GetLeftParton()->GetDefinition();
79  RightParton=excited.GetRightParton()->GetDefinition();
80  Ptleft=excited.GetLeftParton()->Get4Momentum().vect();
81  Ptleft.setZ(0.);
82  Ptright=excited.GetRightParton()->Get4Momentum().vect();
83  Ptright.setZ(0.);
84  G4LorentzVector P=excited.Get4Momentum();
85  Pplus =P.e() + P.pz();
86  Pminus=P.e() - P.pz();
87  theStableParton=0;
88  theDecayParton=0;
89  //decaying=None;
90  if(excited.GetDirection() > 0) {decaying=Left; }
91  else {decaying=Right;}
92 }
const G4LorentzVector & Get4Momentum() const
Definition: G4Parton.hh:143
G4Parton * GetLeftParton(void) const
G4ParticleDefinition * GetDefinition()
Definition: G4Parton.hh:161
void setZ(double)
static double P[]
Hep3Vector vect() const
G4LorentzVector Get4Momentum() const
G4Parton * GetRightParton(void) const
double pz() const
G4int GetDirection(void) const

Here is the call graph for this function:

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

Definition at line 96 of file G4FragmentingString.cc.

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

Here is the call graph for this function:

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

Definition at line 135 of file G4FragmentingString.cc.

137 {
138  decaying=None;
139 
140  Ptleft.setX(0.); Ptleft.setY(0.); Ptleft.setZ(0.);
141  Ptright.setX(0.); Ptright.setY(0.); Ptright.setZ(0.);
142  Pplus=0.; Pminus=0.;
143  theStableParton=0; theDecayParton=0;
144 
145  if ( old.decaying == Left )
146  {
147  RightParton= old.RightParton;
148  LeftParton = newdecay;
149  decaying=Left;
150  } else if ( old.decaying == Right )
151  {
152  RightParton = newdecay;
153  LeftParton = old.LeftParton;
154  decaying=Right;
155  } else
156  {
157  throw G4HadronicException(__FILE__, __LINE__,
158  "G4FragmentingString::G4FragmentingString: no decay Direction defined");
159  }
160 }
void setY(double)
void setZ(double)
void setX(double)

Here is the call graph for this function:

G4FragmentingString::~G4FragmentingString ( )

Definition at line 164 of file G4FragmentingString.cc.

165 {}

Member Function Documentation

G4bool G4FragmentingString::DecayIsQuark ( )

Definition at line 205 of file G4FragmentingString.cc.

206 {
207  return theDecayParton->GetParticleSubType()== "quark";
208 }
const G4String & GetParticleSubType() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4ThreeVector G4FragmentingString::DecayPt ( )

Definition at line 225 of file G4FragmentingString.cc.

226 {
227  if (decaying == Left ) return Ptleft;
228  else if (decaying == Right ) return Ptright;
229  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
230  return G4ThreeVector();
231 }
CLHEP::Hep3Vector G4ThreeVector
G4bool G4FragmentingString::FourQuarkString ( void  ) const

Definition at line 197 of file G4FragmentingString.cc.

198 {
199  return LeftParton->GetParticleSubType()== "di_quark"
200  && RightParton->GetParticleSubType()== "di_quark";
201 }
const G4String & GetParticleSubType() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4LorentzVector G4FragmentingString::Get4Momentum ( ) const

Definition at line 254 of file G4FragmentingString.cc.

255 {
256  G4LorentzVector momentum(Ptleft+Ptright,0);
257  momentum.setPz(0.5*(Pplus-Pminus));
258  momentum.setE(0.5*(Pplus+Pminus));
259  return momentum;
260 }

Here is the call graph for this function:

G4int G4FragmentingString::GetDecayDirection ( ) const

Definition at line 187 of file G4FragmentingString.cc.

188 {
189  if (decaying == Left ) return +1;
190  else if (decaying == Right) return -1;
191  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::GetDecayDirection: decay side UNdefined!");
192  return 0;
193 }

Here is the caller graph for this function:

G4ParticleDefinition * G4FragmentingString::GetDecayParton ( ) const
inline

Definition at line 128 of file G4FragmentingString.hh.

129 {
130  return theDecayParton;
131 }

Here is the caller graph for this function:

G4ParticleDefinition * G4FragmentingString::GetLeftParton ( void  ) const
inline

Definition at line 134 of file G4FragmentingString.hh.

135 {
136  return LeftParton;
137 }

Here is the caller graph for this function:

G4ParticleDefinition * G4FragmentingString::GetRightParton ( void  ) const
inline

Definition at line 140 of file G4FragmentingString.hh.

141 {
142  return RightParton;
143 }

Here is the caller graph for this function:

G4ParticleDefinition * G4FragmentingString::GetStableParton ( ) const
inline

Definition at line 122 of file G4FragmentingString.hh.

123 {
124  return theStableParton;
125 }
G4double G4FragmentingString::LightConeDecay ( )

Definition at line 245 of file G4FragmentingString.cc.

246 {
247  if (decaying == Left ) return Pplus;
248  else if (decaying == Right ) return Pminus;
249  else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!");
250 }
G4double G4FragmentingString::LightConeMinus ( )

Definition at line 240 of file G4FragmentingString.cc.

241 {
242  return Pminus;
243 }
G4double G4FragmentingString::LightConePlus ( )

Definition at line 235 of file G4FragmentingString.cc.

236 {
237  return Pplus;
238 }
G4double G4FragmentingString::Mass ( ) const

Definition at line 267 of file G4FragmentingString.cc.

268 {
269  return std::sqrt(this->Mass2());
270 }
G4double Mass2() const

Here is the call graph for this function:

G4double G4FragmentingString::Mass2 ( ) const

Definition at line 262 of file G4FragmentingString.cc.

263 {
264  return Pplus*Pminus - (Ptleft+Ptright).mag2();
265 }

Here is the caller graph for this function:

G4double G4FragmentingString::MassT2 ( ) const

Definition at line 272 of file G4FragmentingString.cc.

273 {
274  return Pplus*Pminus;
275 }
int G4FragmentingString::operator!= ( const G4FragmentingString right) const
inline

Definition at line 115 of file G4FragmentingString.hh.

116 {
117  return this != &right;
118 }
G4FragmentingString & G4FragmentingString::operator= ( const G4FragmentingString old)

Definition at line 57 of file G4FragmentingString.cc.

58 {
59  if (this != &old)
60  {
61  LeftParton=old.LeftParton;
62  RightParton=old.RightParton;
63  Ptleft=old.Ptleft;
64  Ptright=old.Ptright;
65  Pplus=old.Pplus;
66  Pminus=old.Pminus;
67  theStableParton=old.theStableParton;
68  theDecayParton=old.theDecayParton;
69  decaying=old.decaying;
70  }
71  return *this;
72 }
int G4FragmentingString::operator== ( const G4FragmentingString right) const
inline

Definition at line 109 of file G4FragmentingString.hh.

110 {
111  return this == &right;
112 }
void G4FragmentingString::SetLeftPartonStable ( )

Definition at line 169 of file G4FragmentingString.cc.

170 {
171  theStableParton=GetLeftParton();
172  theDecayParton=GetRightParton();
173  decaying=Right;
174 }
G4ParticleDefinition * GetRightParton(void) const
G4ParticleDefinition * GetLeftParton(void) const

Here is the call graph for this function:

void G4FragmentingString::SetRightPartonStable ( )

Definition at line 178 of file G4FragmentingString.cc.

179 {
180  theStableParton=GetRightParton();
181  theDecayParton=GetLeftParton();
182  decaying=Left;
183 }
G4ParticleDefinition * GetRightParton(void) const
G4ParticleDefinition * GetLeftParton(void) const

Here is the call graph for this function:

G4bool G4FragmentingString::StableIsQuark ( )

Definition at line 210 of file G4FragmentingString.cc.

211 {
212  return theStableParton->GetParticleSubType()== "quark";
213 }
const G4String & GetParticleSubType() const

Here is the call graph for this function:

G4ThreeVector G4FragmentingString::StablePt ( )

Definition at line 217 of file G4FragmentingString.cc.

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

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