Geant4-11
Public Member Functions | Data Fields | Private Member Functions | Private Attributes
G4Parton Class Reference

#include <G4Parton.hh>

Public Member Functions

void DefineMomentumInZ (G4double aLightConeMomentum, G4bool aDirection)
 
void DefineMomentumInZ (G4double aLightConeMomentum, G4double aLightConeE, G4bool aDirection)
 
 G4Parton ()
 
 G4Parton (const G4Parton &right)
 
 G4Parton (G4int PDGencoding)
 
const G4LorentzVectorGet4Momentum () const
 
G4int GetColour ()
 
G4ParticleDefinitionGetDefinition ()
 
G4double GetIsoSpinZ ()
 
G4int GetPDGcode () const
 
const G4ThreeVectorGetPosition () const
 
G4double GetSpinZ ()
 
G4double GetX ()
 
G4bool operator!= (const G4Parton &right) const
 
G4Partonoperator= (const G4Parton &right)
 
G4bool operator== (const G4Parton &right) const
 
void Set4Momentum (const G4LorentzVector &aMomentum)
 
void SetColour (G4int aColour)
 
void SetDefinition (G4ParticleDefinition *aDefinition)
 
void SetIsoSpinZ (G4double anIsoSpinZ)
 
void SetPosition (const G4ThreeVector &aPosition)
 
void SetSpinZ (G4double aSpinZ)
 
void SetX (G4double anX)
 
 ~G4Parton ()
 

Data Fields

G4int PDGencoding
 
G4ParticleDefinitiontheDefinition
 

Private Member Functions

G4double GetMass ()
 

Private Attributes

G4int theColour
 
G4double theIsoSpinZ
 
G4LorentzVector theMomentum
 
G4ThreeVector thePosition
 
G4double theSpinZ
 
G4double theX
 

Detailed Description

Definition at line 47 of file G4Parton.hh.

Constructor & Destructor Documentation

◆ G4Parton() [1/3]

G4Parton::G4Parton ( )
inline

Definition at line 50 of file G4Parton.hh.

51 {
52 // CAUTION:
53 // this is a preliminary definition yielding u and d quarks only!
54 //
56 theColour = (G4int)(3.*G4UniformRand())+1;
57 theIsoSpinZ = ((G4int)(G4UniformRand()))-0.5;
58 theSpinZ = ((G4int)(G4UniformRand()))-0.5;
59 }
int G4int
Definition: G4Types.hh:85
#define G4UniformRand()
Definition: Randomize.hh:52
G4double theIsoSpinZ
Definition: G4Parton.hh:110
G4double theSpinZ
Definition: G4Parton.hh:111
G4int theColour
Definition: G4Parton.hh:109
G4int PDGencoding
Definition: G4Parton.hh:102

References G4UniformRand, PDGencoding, theColour, theIsoSpinZ, and theSpinZ.

◆ G4Parton() [2/3]

G4Parton::G4Parton ( G4int  PDGencoding)

Definition at line 39 of file G4Parton.cc.

40{
41 PDGencoding=PDGcode;
42 theX = 0;
44 if (theDefinition == NULL)
45 {
46 G4cout << "Encoding = "<<PDGencoding<<G4endl;
47 G4String text = "G4Parton::GetDefinition(): Encoding not in particle table";
48 throw G4HadronicException(__FILE__, __LINE__, text);
49 }
50 //
51 // colour by random in (1,2,3)=(R,G,B) for quarks and
52 // in (-1,-2,-3)=(Rbar,Gbar,Bbar) for anti-quarks:
53 //
54 if (theDefinition->GetParticleType() == "quarks") {
55 theColour = ((G4int)(3.*G4UniformRand())+1)*(std::abs(PDGencoding)/PDGencoding) ;
56 }
57 //
58 // colour by random in (-1,-2,-3)=(Rbar,Gbar,Bbar)=(GB,RB,RG) for di-quarks and
59 // in (1,2,3)=(R,G,B)=(GB,RB,RG) for anti-di-quarks:
60 //
61 else if (theDefinition->GetParticleType() == "diquarks") {
62 theColour = -((G4int)(3.*G4UniformRand())+1)*(std::abs(PDGencoding)/PDGencoding);
63 }
64 //
65 // colour by random in (-11,-12,...,-33)=(RRbar,RGbar,RBbar,...,BBbar) for gluons:
66 //
67 else if (theDefinition->GetParticleType() == "gluons") {
68 theColour = -(((G4int)(3.*G4UniformRand())+1)*10 + ((G4int)(3.*G4UniformRand())+1));
69 }
70 else {
71 G4cout << "Encoding = "<<PDGencoding<<G4endl;
72 G4String text = "G4Parton::GetDefinition(): Particle is not a parton";
73 throw G4HadronicException(__FILE__, __LINE__, text);
74 }
75 //
76 // isospin-z from PDG-encoded isospin-z for
77 // quarks, anti-quarks, di-quarks, and anti-di-quarks:
78 //
79 if ((theDefinition->GetParticleType() == "quarks") || (theDefinition->GetParticleType() == "diquarks")){
81 }
82 //
83 // isospin-z choosen at random from PDG-encoded isospin for gluons (should be zero):
84 //
85 else {
86 G4int thisPDGiIsospin=theDefinition->GetPDGiIsospin();
87 if (thisPDGiIsospin == 0) {
88 theIsoSpinZ = 0;
89 }
90 else {
91 theIsoSpinZ = ((G4int)((thisPDGiIsospin+1)*G4UniformRand()))-thisPDGiIsospin*0.5;
92 }
93 }
94 //
95 // spin-z choosen at random from PDG-encoded spin:
96 //
97 G4int thisPDGiSpin=theDefinition->GetPDGiSpin();
98 if (thisPDGiSpin == 0) {
99 theSpinZ = 0;
100 }
101 else {
102 G4int rand=((G4int)((thisPDGiSpin+1)*G4UniformRand()));
103 theSpinZ = rand-thisPDGiSpin*0.5;;
104 }
105}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
const G4String & GetParticleType() const
G4double GetPDGIsospin3() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4ParticleDefinition * theDefinition
Definition: G4Parton.hh:103
G4double theX
Definition: G4Parton.hh:113

References G4ParticleTable::FindParticle(), G4cout, G4endl, G4UniformRand, G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGiIsospin(), G4ParticleDefinition::GetPDGIsospin3(), G4ParticleDefinition::GetPDGiSpin(), PDGencoding, theColour, theDefinition, theIsoSpinZ, theSpinZ, and theX.

◆ G4Parton() [3/3]

G4Parton::G4Parton ( const G4Parton right)

Definition at line 107 of file G4Parton.cc.

108{
109 PDGencoding = right.PDGencoding;
110 theMomentum = right.theMomentum;
111 thePosition = right.thePosition;
112 theX = right.theX;
114 theColour = right.theColour;
115 theIsoSpinZ = right.theIsoSpinZ;
116 theSpinZ = right.theSpinZ;
117}
G4ThreeVector thePosition
Definition: G4Parton.hh:107
G4LorentzVector theMomentum
Definition: G4Parton.hh:106

References PDGencoding, theColour, theDefinition, theIsoSpinZ, theMomentum, thePosition, theSpinZ, and theX.

◆ ~G4Parton()

G4Parton::~G4Parton ( )

Definition at line 136 of file G4Parton.cc.

137{
138// cout << "G4Parton::~G4Parton(): this = "<<this <<endl;
139// cout << "break here"<<this <<endl;
140}

Member Function Documentation

◆ DefineMomentumInZ() [1/2]

void G4Parton::DefineMomentumInZ ( G4double  aLightConeMomentum,
G4bool  aDirection 
)

Definition at line 142 of file G4Parton.cc.

143{
144 G4double Mass = GetMass();
145 G4LorentzVector a4Momentum = Get4Momentum();
146 aLightConeMomentum*=theX;
147 G4double TransverseMass2 = sqr(a4Momentum.px()) + sqr(a4Momentum.py()) + sqr(Mass);
148 a4Momentum.setPz(0.5*(aLightConeMomentum - TransverseMass2/aLightConeMomentum)*(aDirection? 1: -1));
149 a4Momentum.setE( 0.5*(aLightConeMomentum + TransverseMass2/aLightConeMomentum));
150 Set4Momentum(a4Momentum);
151}
double G4double
Definition: G4Types.hh:83
G4double GetMass()
Definition: G4Parton.hh:155
void Set4Momentum(const G4LorentzVector &aMomentum)
Definition: G4Parton.hh:148
const G4LorentzVector & Get4Momentum() const
Definition: G4Parton.hh:143
T sqr(const T &x)
Definition: templates.hh:128

References Get4Momentum(), GetMass(), CLHEP::HepLorentzVector::px(), CLHEP::HepLorentzVector::py(), Set4Momentum(), CLHEP::HepLorentzVector::setE(), CLHEP::HepLorentzVector::setPz(), sqr(), and theX.

◆ DefineMomentumInZ() [2/2]

void G4Parton::DefineMomentumInZ ( G4double  aLightConeMomentum,
G4double  aLightConeE,
G4bool  aDirection 
)

Definition at line 153 of file G4Parton.cc.

154{
155 G4double Mass = GetMass();
156 G4LorentzVector a4Momentum = Get4Momentum();
157 aLightConeMomentum*=theX;
158 aLightConeE*=theX;
159 G4double TransverseMass2 = sqr(a4Momentum.px()) + sqr(a4Momentum.py()) + sqr(Mass);
160 a4Momentum.setPz(0.5*(aLightConeMomentum - aLightConeE - TransverseMass2/aLightConeMomentum)*(aDirection? 1: -1));
161 a4Momentum.setE( 0.5*(aLightConeMomentum + aLightConeE + TransverseMass2/aLightConeMomentum));
162 Set4Momentum(a4Momentum);
163}

References Get4Momentum(), GetMass(), CLHEP::HepLorentzVector::px(), CLHEP::HepLorentzVector::py(), Set4Momentum(), CLHEP::HepLorentzVector::setE(), CLHEP::HepLorentzVector::setPz(), sqr(), and theX.

◆ Get4Momentum()

const G4LorentzVector & G4Parton::Get4Momentum ( ) const
inline

◆ GetColour()

G4int G4Parton::GetColour ( )
inline

Definition at line 90 of file G4Parton.hh.

90{return theColour;}

References theColour.

Referenced by G4QGSMSplitableHadron::GetValenceQuarkFlavors(), and G4QGSMSplitableHadron::SoftSplitUp().

◆ GetDefinition()

G4ParticleDefinition * G4Parton::GetDefinition ( )
inline

◆ GetIsoSpinZ()

G4double G4Parton::GetIsoSpinZ ( )
inline

Definition at line 93 of file G4Parton.hh.

93{return theIsoSpinZ;}

References theIsoSpinZ.

◆ GetMass()

G4double G4Parton::GetMass ( )
inlineprivate

Definition at line 155 of file G4Parton.hh.

156{
157 return theDefinition->GetPDGMass();
158}

References G4ParticleDefinition::GetPDGMass(), and theDefinition.

Referenced by DefineMomentumInZ().

◆ GetPDGcode()

G4int G4Parton::GetPDGcode ( ) const
inline

◆ GetPosition()

const G4ThreeVector & G4Parton::GetPosition ( void  ) const
inline

Definition at line 132 of file G4Parton.hh.

133{
134 return thePosition;
135}

References thePosition.

Referenced by G4ExcitedString::G4ExcitedString(), and operator=().

◆ GetSpinZ()

G4double G4Parton::GetSpinZ ( )
inline

Definition at line 96 of file G4Parton.hh.

96{return theSpinZ;}

References theSpinZ.

Referenced by G4QGSMSplitableHadron::GetValenceQuarkFlavors(), and G4QGSMSplitableHadron::SoftSplitUp().

◆ GetX()

G4double G4Parton::GetX ( )
inline

◆ operator!=()

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

Definition at line 122 of file G4Parton.hh.

123{
124 return this!=&right;
125}

◆ operator=()

G4Parton & G4Parton::operator= ( const G4Parton right)

Definition at line 119 of file G4Parton.cc.

120{
121 if (this != &right)
122 {
123 PDGencoding=right.GetPDGcode();
125 thePosition=right.GetPosition();
126 theX = right.theX;
128 theColour = right.theColour;
129 theIsoSpinZ = right.theIsoSpinZ;
130 theSpinZ = right.theSpinZ;
131 }
132
133 return *this;
134}
const G4ThreeVector & GetPosition() const
Definition: G4Parton.hh:132
G4int GetPDGcode() const
Definition: G4Parton.hh:127

References Get4Momentum(), GetPDGcode(), GetPosition(), PDGencoding, theColour, theDefinition, theIsoSpinZ, theMomentum, thePosition, theSpinZ, and theX.

◆ operator==()

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

Definition at line 117 of file G4Parton.hh.

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

◆ Set4Momentum()

void G4Parton::Set4Momentum ( const G4LorentzVector aMomentum)
inline

◆ SetColour()

void G4Parton::SetColour ( G4int  aColour)
inline

Definition at line 89 of file G4Parton.hh.

89{theColour = aColour;}

References theColour.

Referenced by G4QGSMSplitableHadron::GetValenceQuarkFlavors(), and G4QGSMSplitableHadron::SoftSplitUp().

◆ SetDefinition()

void G4Parton::SetDefinition ( G4ParticleDefinition aDefinition)
inline

Definition at line 166 of file G4Parton.hh.

167{
168 theDefinition = aDefinition;
170}

References G4ParticleDefinition::GetPDGEncoding(), PDGencoding, and theDefinition.

Referenced by G4QuarkExchange::ExciteParticipants().

◆ SetIsoSpinZ()

void G4Parton::SetIsoSpinZ ( G4double  anIsoSpinZ)
inline

Definition at line 92 of file G4Parton.hh.

92{theIsoSpinZ = anIsoSpinZ;}

References theIsoSpinZ.

◆ SetPosition()

void G4Parton::SetPosition ( const G4ThreeVector aPosition)
inline

◆ SetSpinZ()

void G4Parton::SetSpinZ ( G4double  aSpinZ)
inline

Definition at line 95 of file G4Parton.hh.

95{theSpinZ = aSpinZ;}

References theSpinZ.

Referenced by G4QGSMSplitableHadron::GetValenceQuarkFlavors(), and G4QGSMSplitableHadron::SoftSplitUp().

◆ SetX()

void G4Parton::SetX ( G4double  anX)
inline

Definition at line 86 of file G4Parton.hh.

86{ theX = anX; }

References theX.

Field Documentation

◆ PDGencoding

G4int G4Parton::PDGencoding

Definition at line 102 of file G4Parton.hh.

Referenced by G4Parton(), GetPDGcode(), operator=(), and SetDefinition().

◆ theColour

G4int G4Parton::theColour
private

Definition at line 109 of file G4Parton.hh.

Referenced by G4Parton(), GetColour(), operator=(), and SetColour().

◆ theDefinition

G4ParticleDefinition* G4Parton::theDefinition

Definition at line 103 of file G4Parton.hh.

Referenced by G4Parton(), GetDefinition(), GetMass(), operator=(), and SetDefinition().

◆ theIsoSpinZ

G4double G4Parton::theIsoSpinZ
private

Definition at line 110 of file G4Parton.hh.

Referenced by G4Parton(), GetIsoSpinZ(), operator=(), and SetIsoSpinZ().

◆ theMomentum

G4LorentzVector G4Parton::theMomentum
private

Definition at line 106 of file G4Parton.hh.

Referenced by G4Parton(), Get4Momentum(), operator=(), and Set4Momentum().

◆ thePosition

G4ThreeVector G4Parton::thePosition
private

Definition at line 107 of file G4Parton.hh.

Referenced by G4Parton(), GetPosition(), operator=(), and SetPosition().

◆ theSpinZ

G4double G4Parton::theSpinZ
private

Definition at line 111 of file G4Parton.hh.

Referenced by G4Parton(), GetSpinZ(), operator=(), and SetSpinZ().

◆ theX

G4double G4Parton::theX
private

Definition at line 113 of file G4Parton.hh.

Referenced by DefineMomentumInZ(), G4Parton(), GetX(), operator=(), and SetX().


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