Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VLongitudinalStringDecay Class Referenceabstract

#include <G4VLongitudinalStringDecay.hh>

+ Inheritance diagram for G4VLongitudinalStringDecay:

Public Member Functions

 G4VLongitudinalStringDecay (const G4String &name="StringDecay")
 
virtual ~G4VLongitudinalStringDecay ()
 
G4HadFinalStateApplyYourself (const G4HadProjectile &, G4Nucleus &) final
 
virtual G4KineticTrackVectorFragmentString (const G4ExcitedString &theString)=0
 
void AddNewParticles ()
 
void EraseNewParticles ()
 
void SetMinMasses ()
 
void SetMinimalStringMass (const G4FragmentingString *const string)
 
void SetMinimalStringMass2 (const G4double aValue)
 
G4int SampleQuarkFlavor (void)
 
G4ThreeVector SampleQuarkPt (G4double ptMax=-1.)
 
void SetSigmaTransverseMomentum (G4double aQT)
 
void SetStrangenessSuppression (G4double aValue)
 
void SetDiquarkSuppression (G4double aValue)
 
void SetDiquarkBreakProbability (G4double aValue)
 
void SetVectorMesonProbability (G4double aValue)
 
void SetSpinThreeHalfBarionProbability (G4double aValue)
 
void SetScalarMesonMixings (std::vector< G4double > aVector)
 
void SetVectorMesonMixings (std::vector< G4double > aVector)
 
void SetStringTensionParameter (G4double aValue)
 
void SetProbCCbar (G4double aValue)
 
void SetProbEta_c (G4double aValue)
 
void SetProbBBbar (G4double aValue)
 
void SetProbEta_b (G4double aValue)
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4bool IsApplicable (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int value)
 
const G4StringGetModelName () const
 
void DeActivateFor (const G4Material *aMaterial)
 
void ActivateFor (const G4Material *aMaterial)
 
void DeActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Element *anElement)
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4bool IsBlocked (const G4Element *anElement) const
 
void SetRecoilEnergyThreshold (G4double val)
 
G4double GetRecoilEnergyThreshold () const
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void ModelDescription (std::ostream &outFile) const
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void InitialiseModel ()
 
 G4HadronicInteraction (const G4HadronicInteraction &right)=delete
 
const G4HadronicInteractionoperator= (const G4HadronicInteraction &right)=delete
 
G4bool operator== (const G4HadronicInteraction &right) const =delete
 
G4bool operator!= (const G4HadronicInteraction &right) const =delete
 

Public Attributes

G4double Mass_of_light_quark
 
G4double Mass_of_s_quark
 
G4double Mass_of_c_quark
 
G4double Mass_of_b_quark
 
G4double Mass_of_string_junction
 
G4double minMassQQbarStr [5][5]
 
G4double minMassQDiQStr [5][5][5]
 
G4double MinimalStringMass
 
G4double MinimalStringMass2
 
G4int Qcharge [5]
 
G4int Meson [5][5][7]
 
G4double MesonWeight [5][5][7]
 
G4int Baryon [5][5][5][4]
 
G4double BaryonWeight [5][5][5][4]
 
G4double Prob_QQbar [5]
 
G4int DecayQuark
 
G4int NewQuark
 
G4ParticleDefinitionFS_LeftHadron [350]
 
G4ParticleDefinitionFS_RightHadron [350]
 
G4double FS_Weight [350]
 
G4int NumberOf_FS
 

Protected Types

typedef std::pair< G4ParticleDefinition *, G4ParticleDefinition * > pDefPair
 
typedef G4ParticleDefinition *(G4HadronBuilder::* Pcreate) (G4ParticleDefinition *, G4ParticleDefinition *)
 

Protected Member Functions

virtual void SetMassCut (G4double aValue)
 
G4double GetMassCut ()
 
G4KineticTrackVectorProduceOneHadron (const G4ExcitedString *const theString)
 
G4double PossibleHadronMass (const G4FragmentingString *const string, Pcreate build=0, pDefPair *pdefs=0)
 
G4ParticleDefinitionFindParticle (G4int Encoding)
 
virtual G4bool StopFragmenting (const G4FragmentingString *const string)=0
 
virtual G4bool IsItFragmentable (const G4FragmentingString *const string)=0
 
virtual G4bool SplitLast (G4FragmentingString *string, G4KineticTrackVector *LeftVector, G4KineticTrackVector *RightVector)=0
 
virtual void Sample4Momentum (G4LorentzVector *Mom, G4double Mass, G4LorentzVector *AntiMom, G4double AntiMass, G4double InitialMass)=0
 
G4ExcitedStringCopyExcited (const G4ExcitedString &string)
 
virtual G4KineticTrackSplitup (G4FragmentingString *string, G4FragmentingString *&newString)=0
 
virtual G4ParticleDefinitionQuarkSplitup (G4ParticleDefinition *decay, G4ParticleDefinition *&created)
 
virtual G4ParticleDefinitionDiQuarkSplitup (G4ParticleDefinition *decay, G4ParticleDefinition *&created)=0
 
pDefPair CreatePartonPair (G4int NeedParticle, G4bool AllowDiquarks=true)
 
virtual G4LorentzVectorSplitEandP (G4ParticleDefinition *pHadron, G4FragmentingString *string, G4FragmentingString *newString)=0
 
virtual G4double GetLightConeZ (G4double zmin, G4double zmax, G4int PartonEncoding, G4ParticleDefinition *pHadron, G4double Px, G4double Py)=0
 
void CalculateHadronTimePosition (G4double theInitialStringMass, G4KineticTrackVector *)
 
void ConstructParticle ()
 
G4ParticleDefinitionCreateHadron (G4int id1, G4int id2, G4bool theGivenSpin, G4int theSpin)
 
G4double GetDiquarkSuppress ()
 
G4double GetDiquarkBreakProb ()
 
G4double GetStrangeSuppress ()
 
G4int GetClusterLoopInterrupt ()
 
G4double GetProbCCbar ()
 
G4double GetProbEta_c ()
 
G4double GetProbBBbar ()
 
G4double GetProbEta_b ()
 
G4double GetStringTensionParameter ()
 
- Protected Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
 
G4bool IsBlocked () const
 
void Block ()
 

Protected Attributes

G4double MassCut
 
G4double SigmaQT
 
G4double DiquarkSuppress
 
G4double DiquarkBreakProb
 
G4double StrangeSuppress
 
G4int StringLoopInterrupt
 
G4int ClusterLoopInterrupt
 
G4HadronBuilderhadronizer
 
G4double pspin_meson
 
G4double pspin_barion
 
std::vector< G4doublevectorMesonMix
 
std::vector< G4doublescalarMesonMix
 
G4double ProbCCbar
 
G4double ProbEta_c
 
G4double ProbBBbar
 
G4double ProbEta_b
 
G4double ProbCB
 
G4double MaxMass
 
G4bool PastInitPhase
 
G4double Kappa
 
std::vector< G4ParticleDefinition * > NewParticles
 
- Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
 
G4int verboseLevel
 
G4double theMinEnergy
 
G4double theMaxEnergy
 
G4bool isBlocked
 

Detailed Description

Definition at line 46 of file G4VLongitudinalStringDecay.hh.

Member Typedef Documentation

◆ Pcreate

typedef G4ParticleDefinition *(G4HadronBuilder::* G4VLongitudinalStringDecay::Pcreate) (G4ParticleDefinition *, G4ParticleDefinition *)
protected

Definition at line 86 of file G4VLongitudinalStringDecay.hh.

◆ pDefPair

Constructor & Destructor Documentation

◆ G4VLongitudinalStringDecay()

G4VLongitudinalStringDecay::G4VLongitudinalStringDecay ( const G4String name = "StringDecay")

Definition at line 67 of file G4VLongitudinalStringDecay.cc.

68 : G4HadronicInteraction(name), ProbCCbar(0.0), ProbBBbar(0.0)
69{
70 MassCut = 210.0*MeV; // Mpi + Delta
71
74
75 // Changable Parameters below.
76 SigmaQT = 0.5 * GeV;
77
78 StrangeSuppress = 0.44; // =0.27/2.27 suppression of strange quark pair production, ie. u:d:s=1:1:0.27
79 DiquarkSuppress = 0.07; // Probability of qq-qqbar pair production
80 DiquarkBreakProb = 0.1; // Probability of (qq)->h+(qq)'
81
82 //... pspin_meson is probability to create pseudo-scalar meson
83 pspin_meson = 0.5;
84
85 //... pspin_barion is probability to create 1/2 barion
86 pspin_barion = 0.5;
87
88 //... vectorMesonMix[] is quark mixing parameters for vector mesons (Variable spin = 3)
89 vectorMesonMix.resize(6);
90 vectorMesonMix[0] = 0.0;
91 vectorMesonMix[1] = 0.375;
92 vectorMesonMix[2] = 0.0;
93 vectorMesonMix[3] = 0.375;
94 vectorMesonMix[4] = 1.0;
95 vectorMesonMix[5] = 1.0;
96
97 //... scalarMesonMix[] is quark mixing parameters for scalar mesons (Variable spin=1)
98 scalarMesonMix.resize(6);
99 scalarMesonMix[0] = 0.5;
100 scalarMesonMix[1] = 0.25;
101 scalarMesonMix[2] = 0.5;
102 scalarMesonMix[3] = 0.25;
103 scalarMesonMix[4] = 1.0;
104 scalarMesonMix[5] = 0.5;
105
106 SetProbCCbar(0.0); // Probability of CCbar pair creation
107 SetProbEta_c(0.1); // Mixing of Eta_c and J/Psi
108 SetProbBBbar(0.0); // Probability of BBbar pair creation
109 SetProbEta_b(0.0); // Mixing of Eta_b and Upsilon_b
110
111 // Parameters may be changed until the first fragmentation starts
112 PastInitPhase=false;
116
117 MaxMass=-350.0*GeV; // If there will be a particle with mass larger than Higgs the value must be changed.
118
119 SetMinMasses(); // Re-calculation of minimal mass of strings and weights of particles in 2-part. decays
120
121 Kappa = 1.0 * GeV/fermi;
122 DecayQuark = NewQuark = 0;
123}
std::vector< G4double > scalarMesonMix
std::vector< G4double > vectorMesonMix

◆ ~G4VLongitudinalStringDecay()

G4VLongitudinalStringDecay::~G4VLongitudinalStringDecay ( )
virtual

Definition at line 125 of file G4VLongitudinalStringDecay.cc.

126{
127 delete hadronizer;
128}

Member Function Documentation

◆ AddNewParticles()

void G4VLongitudinalStringDecay::AddNewParticles ( )

◆ ApplyYourself()

G4HadFinalState * G4VLongitudinalStringDecay::ApplyYourself ( const G4HadProjectile ,
G4Nucleus  
)
finalvirtual

Reimplemented from G4HadronicInteraction.

Definition at line 131 of file G4VLongitudinalStringDecay.cc.

132{
133 return nullptr;
134}

◆ CalculateHadronTimePosition()

void G4VLongitudinalStringDecay::CalculateHadronTimePosition ( G4double  theInitialStringMass,
G4KineticTrackVector Hadrons 
)
protected

Definition at line 435 of file G4VLongitudinalStringDecay.cc.

437{
438 // `yo-yo` formation time
439 // const G4double kappa = 1.0 * GeV/fermi/4.;
441 for (size_t c1 = 0; c1 < Hadrons->size(); c1++)
442 {
443 G4double SumPz = 0;
444 G4double SumE = 0;
445 for (size_t c2 = 0; c2 < c1; c2++)
446 {
447 SumPz += Hadrons->operator[](c2)->Get4Momentum().pz();
448 SumE += Hadrons->operator[](c2)->Get4Momentum().e();
449 }
450 G4double HadronE = Hadrons->operator[](c1)->Get4Momentum().e();
451 G4double HadronPz = Hadrons->operator[](c1)->Get4Momentum().pz();
452 Hadrons->operator[](c1)->SetFormationTime(
453 (theInitialStringMass - 2.*SumPz + HadronE - HadronPz ) / (2.*kappa) / c_light );
454 G4ThreeVector aPosition( 0, 0,
455 (theInitialStringMass - 2.*SumE - HadronE + HadronPz) / (2.*kappa) );
456 Hadrons->operator[](c1)->SetPosition(aPosition);
457 }
458}
double G4double
Definition: G4Types.hh:83

Referenced by G4QGSMFragmentation::FragmentString().

◆ ConstructParticle()

void G4VLongitudinalStringDecay::ConstructParticle ( )
protected

◆ CopyExcited()

G4ExcitedString * G4VLongitudinalStringDecay::CopyExcited ( const G4ExcitedString string)
protected

Definition at line 326 of file G4VLongitudinalStringDecay.cc.

327{
328 G4Parton *Left=new G4Parton(*in.GetLeftParton());
329 G4Parton *Right=new G4Parton(*in.GetRightParton());
330 return new G4ExcitedString(Left,Right,in.GetDirection());
331}

Referenced by G4QGSMFragmentation::FragmentString().

◆ CreateHadron()

G4ParticleDefinition * G4VLongitudinalStringDecay::CreateHadron ( G4int  id1,
G4int  id2,
G4bool  theGivenSpin,
G4int  theSpin 
)
protected

◆ CreatePartonPair()

G4VLongitudinalStringDecay::pDefPair G4VLongitudinalStringDecay::CreatePartonPair ( G4int  NeedParticle,
G4bool  AllowDiquarks = true 
)
protected

Definition at line 360 of file G4VLongitudinalStringDecay.cc.

362{
363 // NeedParticle = +1 for Particle, -1 for Antiparticle
364 if ( AllowDiquarks && G4UniformRand() < DiquarkSuppress )
365 {
366 // Create a Diquark - AntiDiquark pair , first in pair is anti to IsParticle
367 #ifdef debug_VStringDecay
368 G4cout<<"VlongSD Create a Diquark - AntiDiquark pair"<<G4endl;
369 #endif
370 G4int q1(0), q2(0), spin(0), PDGcode(0);
371
372 q1 = SampleQuarkFlavor();
373 q2 = SampleQuarkFlavor();
374
375 spin = (q1 != q2 && G4UniformRand() <= 0.5)? 1 : 3;
376 // convention: quark with higher PDG number is first
377 PDGcode = (std::max(q1,q2) * 1000 + std::min(q1,q2) * 100 + spin) * NeedParticle;
378
379 return pDefPair (FindParticle(-PDGcode),FindParticle(PDGcode));
380
381 } else {
382 // Create a Quark - AntiQuark pair, first in pair IsParticle
383 #ifdef debug_VStringDecay
384 G4cout<<"VlongSD Create a Quark - AntiQuark pair"<<G4endl;
385 #endif
386 G4int PDGcode=SampleQuarkFlavor()*NeedParticle;
387 return pDefPair (FindParticle(PDGcode),FindParticle(-PDGcode));
388 }
389}
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
#define G4UniformRand()
Definition: Randomize.hh:52
std::pair< G4ParticleDefinition *, G4ParticleDefinition * > pDefPair
G4ParticleDefinition * FindParticle(G4int Encoding)

Referenced by QuarkSplitup().

◆ DiQuarkSplitup()

virtual G4ParticleDefinition * G4VLongitudinalStringDecay::DiQuarkSplitup ( G4ParticleDefinition decay,
G4ParticleDefinition *&  created 
)
protectedpure virtual

◆ EraseNewParticles()

void G4VLongitudinalStringDecay::EraseNewParticles ( )

◆ FindParticle()

G4ParticleDefinition * G4VLongitudinalStringDecay::FindParticle ( G4int  Encoding)
protected

Definition at line 280 of file G4VLongitudinalStringDecay.cc.

281{
282 /*
283 G4cout<<Encoding<<" G4VLongitudinalStringDecay::FindParticle Check di-quarks *******************"<<G4endl;
284 for (G4int i=4; i<6;i++){
285 for (G4int j=1;j<6;j++){
286 G4cout<<i<<" "<<j<<" ";
287 G4int Code = 1000 * i + 100 * j +1;
288 G4ParticleDefinition* ptr1 = G4ParticleTable::GetParticleTable()->FindParticle(Code);
289 Code +=2;
290 G4ParticleDefinition* ptr2 = G4ParticleTable::GetParticleTable()->FindParticle(Code);
291 G4cout<<"Code "<<Code - 2<<" ptr "<<ptr1<<" :: Code "<<Code<<" ptr "<<ptr2<<G4endl;
292 }
293 G4cout<<G4endl;
294 }
295 */
296
298
299 if (ptr == nullptr)
300 {
301 for (size_t i=0; i < NewParticles.size(); i++)
302 {
303 if ( Encoding == NewParticles[i]->GetPDGEncoding() ) { ptr = NewParticles[i]; return ptr;}
304 }
305 }
306
307 return ptr;
308}
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
std::vector< G4ParticleDefinition * > NewParticles

Referenced by CreatePartonPair(), PossibleHadronMass(), and SetMinMasses().

◆ FragmentString()

virtual G4KineticTrackVector * G4VLongitudinalStringDecay::FragmentString ( const G4ExcitedString theString)
pure virtual

◆ GetClusterLoopInterrupt()

G4int G4VLongitudinalStringDecay::GetClusterLoopInterrupt ( )
inlineprotected

Definition at line 176 of file G4VLongitudinalStringDecay.hh.

176{return ClusterLoopInterrupt;};

◆ GetDiquarkBreakProb()

G4double G4VLongitudinalStringDecay::GetDiquarkBreakProb ( )
inlineprotected

Definition at line 174 of file G4VLongitudinalStringDecay.hh.

174{return DiquarkBreakProb;};

◆ GetDiquarkSuppress()

G4double G4VLongitudinalStringDecay::GetDiquarkSuppress ( )
inlineprotected

Definition at line 173 of file G4VLongitudinalStringDecay.hh.

173{return DiquarkSuppress;};

◆ GetLightConeZ()

virtual G4double G4VLongitudinalStringDecay::GetLightConeZ ( G4double  zmin,
G4double  zmax,
G4int  PartonEncoding,
G4ParticleDefinition pHadron,
G4double  Px,
G4double  Py 
)
protectedpure virtual

◆ GetMassCut()

G4double G4VLongitudinalStringDecay::GetMassCut ( )
protected

Definition at line 140 of file G4VLongitudinalStringDecay.cc.

140{ return MassCut; }

Referenced by G4LundStringFragmentation::FragmentString().

◆ GetProbBBbar()

G4double G4VLongitudinalStringDecay::GetProbBBbar ( )
inlineprotected

Definition at line 180 of file G4VLongitudinalStringDecay.hh.

180{return ProbBBbar;};

◆ GetProbCCbar()

G4double G4VLongitudinalStringDecay::GetProbCCbar ( )
inlineprotected

Definition at line 178 of file G4VLongitudinalStringDecay.hh.

178{return ProbCCbar;};

◆ GetProbEta_b()

G4double G4VLongitudinalStringDecay::GetProbEta_b ( )
inlineprotected

Definition at line 181 of file G4VLongitudinalStringDecay.hh.

181{return ProbEta_b;};

◆ GetProbEta_c()

G4double G4VLongitudinalStringDecay::GetProbEta_c ( )
inlineprotected

Definition at line 179 of file G4VLongitudinalStringDecay.hh.

179{return ProbEta_c;};

◆ GetStrangeSuppress()

G4double G4VLongitudinalStringDecay::GetStrangeSuppress ( )
inlineprotected

Definition at line 175 of file G4VLongitudinalStringDecay.hh.

175{return StrangeSuppress;};

◆ GetStringTensionParameter()

G4double G4VLongitudinalStringDecay::GetStringTensionParameter ( )
inlineprotected

Definition at line 183 of file G4VLongitudinalStringDecay.hh.

183{return Kappa;};

Referenced by CalculateHadronTimePosition().

◆ IsItFragmentable()

virtual G4bool G4VLongitudinalStringDecay::IsItFragmentable ( const G4FragmentingString *const  string)
protectedpure virtual

◆ PossibleHadronMass()

G4double G4VLongitudinalStringDecay::PossibleHadronMass ( const G4FragmentingString *const  string,
Pcreate  build = 0,
pDefPair pdefs = 0 
)
protected

Definition at line 202 of file G4VLongitudinalStringDecay.cc.

204{
205 G4double mass = 0.0;
206
207 if ( build==0 ) build=&G4HadronBuilder::BuildLowSpin;
208
209 G4ParticleDefinition* Hadron1 = nullptr;
210 G4ParticleDefinition* Hadron2 = nullptr;
211
212 if (!string->IsAFourQuarkString() )
213 {
214 // spin 0 meson or spin 1/2 barion will be built
215
216 Hadron1 = (hadronizer->*build)(string->GetLeftParton(), string->GetRightParton());
217 #ifdef debug_VStringDecay
218 G4cout<<"VlongSD PossibleHadronMass"<<G4endl;
219 G4cout<<"VlongSD Quarks at the string ends "<<string->GetLeftParton()->GetParticleName()
220 <<" "<<string->GetRightParton()->GetParticleName()<<G4endl;
221 if ( Hadron1 != nullptr) {
222 G4cout<<"(G4VLongitudinalStringDecay) Hadron "<<Hadron1->GetParticleName()
223 <<" "<<Hadron1->GetPDGMass()<<G4endl;
224 }
225 #endif
226 if ( Hadron1 != nullptr) { mass = (Hadron1)->GetPDGMass();}
227 else { mass = MaxMass;}
228 } else
229 {
230 //... string is qq--qqbar: Build two stable hadrons,
231
232 #ifdef debug_VStringDecay
233 G4cout<<"VlongSD PossibleHadronMass"<<G4endl;
234 G4cout<<"VlongSD string is qq--qqbar: Build two stable hadrons"<<G4endl;
235 #endif
236
237 G4double StringMass = string->Mass();
238 G4int cClusterInterrupt = 0;
239 do
240 {
241 if (cClusterInterrupt++ >= ClusterLoopInterrupt) return false;
242
243 G4int LeftQuark1= string->GetLeftParton()->GetPDGEncoding()/1000;
244 G4int LeftQuark2=(string->GetLeftParton()->GetPDGEncoding()/100)%10;
245
246 G4int RightQuark1= string->GetRightParton()->GetPDGEncoding()/1000;
247 G4int RightQuark2=(string->GetRightParton()->GetPDGEncoding()/100)%10;
248
249 if (G4UniformRand()<0.5) {
250 Hadron1 =hadronizer->Build(FindParticle(LeftQuark1), FindParticle(RightQuark1));
251 Hadron2 =hadronizer->Build(FindParticle(LeftQuark2), FindParticle(RightQuark2));
252 } else {
253 Hadron1 =hadronizer->Build(FindParticle(LeftQuark1), FindParticle(RightQuark2));
254 Hadron2 =hadronizer->Build(FindParticle(LeftQuark2), FindParticle(RightQuark1));
255 }
256 //... repeat procedure, if mass of cluster is too low to produce hadrons
257 //... ClusterMassCut = 0.15*GeV model parameter
258 }
259 while ( Hadron1 == nullptr || Hadron2 == nullptr ||
260 ( StringMass <= Hadron1->GetPDGMass() + Hadron2->GetPDGMass() ) );
261
262 mass = (Hadron1)->GetPDGMass() + (Hadron2)->GetPDGMass();
263 }
264
265 #ifdef debug_VStringDecay
266 G4cout<<"VlongSD *Hadrons 1 and 2, proposed mass "<<Hadron1<<" "<<Hadron2<<" "<<mass<<G4endl;
267 #endif
268
269 if ( pdefs != 0 )
270 { // need to return hadrons as well....
271 pdefs->first = Hadron1;
272 pdefs->second = Hadron2;
273 }
274
275 return mass;
276}
G4bool IsAFourQuarkString(void) const
G4ParticleDefinition * GetLeftParton(void) const
G4ParticleDefinition * Build(G4ParticleDefinition *black, G4ParticleDefinition *white)
G4ParticleDefinition * BuildLowSpin(G4ParticleDefinition *black, G4ParticleDefinition *white)
const G4String & GetParticleName() const

Referenced by ProduceOneHadron().

◆ ProduceOneHadron()

G4KineticTrackVector * G4VLongitudinalStringDecay::ProduceOneHadron ( const G4ExcitedString *const  theString)
protected

Definition at line 146 of file G4VLongitudinalStringDecay.cc.

147{
148 G4KineticTrackVector* result = nullptr;
149 pDefPair hadrons( nullptr, nullptr );
150 G4FragmentingString aString( *string );
151
152 #ifdef debug_VStringDecay
153 G4cout<<"G4VLongitudinalStringDecay::ProduceOneHadron: PossibleHmass StrMass "
154 <<aString.Mass()<<" MassCut "<<MassCut<<G4endl;
155 #endif
156
157 SetMinimalStringMass( &aString );
158 PossibleHadronMass( &aString, 0, &hadrons );
159 result = new G4KineticTrackVector;
160 if ( hadrons.first != nullptr ) {
161 if ( hadrons.second == nullptr ) {
162 // Substitute string by light hadron, Note that Energy is not conserved here!
163
164 #ifdef debug_VStringDecay
165 G4cout << "VlongSD Warning replacing string by single hadron (G4VLongitudinalStringDecay)" <<G4endl;
166 G4cout << hadrons.first->GetParticleName()<<G4endl
167 << "string .. " << string->Get4Momentum() << " "
168 << string->Get4Momentum().m() << G4endl;
169 #endif
170
171 G4ThreeVector Mom3 = string->Get4Momentum().vect();
172 G4LorentzVector Mom( Mom3, std::sqrt( Mom3.mag2() + sqr( hadrons.first->GetPDGMass() ) ) );
173 result->push_back( new G4KineticTrack( hadrons.first, 0, string->GetPosition(), Mom ) );
174 } else {
175 //... string was qq--qqbar type: Build two stable hadrons,
176
177 #ifdef debug_VStringDecay
178 G4cout << "VlongSD Warning replacing qq-qqbar string by TWO hadrons (G4VLongitudinalStringDecay)"
179 << hadrons.first->GetParticleName() << " / "
180 << hadrons.second->GetParticleName()
181 << "string .. " << string->Get4Momentum() << " "
182 << string->Get4Momentum().m() << G4endl;
183 #endif
184
185 G4LorentzVector Mom1, Mom2;
186 Sample4Momentum( &Mom1, hadrons.first->GetPDGMass(),
187 &Mom2, hadrons.second->GetPDGMass(),
188 string->Get4Momentum().mag() );
189
190 result->push_back( new G4KineticTrack( hadrons.first, 0, string->GetPosition(), Mom1 ) );
191 result->push_back( new G4KineticTrack( hadrons.second, 0, string->GetPosition(), Mom2 ) );
192
193 G4ThreeVector Velocity = string->Get4Momentum().boostVector();
194 result->Boost(Velocity);
195 }
196 }
197 return result;
198}
double mag2() const
void Boost(G4ThreeVector &Velocity)
G4double PossibleHadronMass(const G4FragmentingString *const string, Pcreate build=0, pDefPair *pdefs=0)
virtual void Sample4Momentum(G4LorentzVector *Mom, G4double Mass, G4LorentzVector *AntiMom, G4double AntiMass, G4double InitialMass)=0
void SetMinimalStringMass(const G4FragmentingString *const string)
T sqr(const T &x)
Definition: templates.hh:128

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

◆ QuarkSplitup()

G4ParticleDefinition * G4VLongitudinalStringDecay::QuarkSplitup ( G4ParticleDefinition decay,
G4ParticleDefinition *&  created 
)
protectedvirtual

Definition at line 335 of file G4VLongitudinalStringDecay.cc.

337{
338 #ifdef debug_VStringDecay
339 G4cout<<"VlongSD QuarkSplitup: quark ID "<<decay->GetPDGEncoding()<<G4endl;
340 #endif
341
342 G4int IsParticle=(decay->GetPDGEncoding()>0) ? -1 : +1; // if we have a quark, we need antiquark (or diquark)
343
344 pDefPair QuarkPair = CreatePartonPair(IsParticle);
345 created = QuarkPair.second;
346
347 DecayQuark = decay->GetPDGEncoding();
348 NewQuark = created->GetPDGEncoding();
349
350 #ifdef debug_VStringDecay
351 G4cout<<"VlongSD QuarkSplitup: "<<decay->GetPDGEncoding()<<" -> "<<QuarkPair.second->GetPDGEncoding()<<G4endl;
352 G4cout<<"hadronizer->Build(QuarkPair.first, decay)"<<G4endl;
353 #endif
354
355 return hadronizer->Build(QuarkPair.first, decay);
356}
pDefPair CreatePartonPair(G4int NeedParticle, G4bool AllowDiquarks=true)
ParticleList decay(Cluster *const c)
Carries out a cluster decay.

◆ Sample4Momentum()

virtual void G4VLongitudinalStringDecay::Sample4Momentum ( G4LorentzVector Mom,
G4double  Mass,
G4LorentzVector AntiMom,
G4double  AntiMass,
G4double  InitialMass 
)
protectedpure virtual

Referenced by ProduceOneHadron().

◆ SampleQuarkFlavor()

G4int G4VLongitudinalStringDecay::SampleQuarkFlavor ( void  )

Definition at line 393 of file G4VLongitudinalStringDecay.cc.

394{
395 G4int quark(1);
396 G4double ksi = G4UniformRand();
397 if ( ksi < ProbCB ) {
398 if ( ksi < ProbCCbar ) {quark = 4;} // c quark
399 else {quark = 5;} // b quark
400 #ifdef debug_heavyHadrons
401 G4cout << "G4VLongitudinalStringDecay::SampleQuarkFlavor : sampled from the vacuum HEAVY quark = "
402 << quark << G4endl;
403 #endif
404 } else {
405 quark = 1 + (int)(G4UniformRand()/StrangeSuppress);
406 }
407 #ifdef debug_VStringDecay
408 G4cout<<"VlongSD SampleQuarkFlavor "<<quark<<" (ProbCB ProbCCbar ProbBBbar "<<ProbCB
409 <<" "<<ProbCCbar<<" "<<ProbBBbar<<" )"<<G4endl;
410 #endif
411 return quark;
412}

Referenced by CreatePartonPair().

◆ SampleQuarkPt()

G4ThreeVector G4VLongitudinalStringDecay::SampleQuarkPt ( G4double  ptMax = -1.)

Definition at line 416 of file G4VLongitudinalStringDecay.cc.

417{
418 G4double Pt;
419 if ( ptMax < 0 ) {
420 // sample full gaussian
421 Pt = -G4Log(G4UniformRand());
422 } else {
423 // sample in limited range
424 G4double q = ptMax/SigmaQT;
425 G4double ymin = (q > 20.) ? 0.0 : G4Exp(-q*q);
426 Pt = -G4Log(G4RandFlat::shoot(ymin, 1.));
427 }
428 Pt = SigmaQT * std::sqrt(Pt);
429 G4double phi = 2.*pi*G4UniformRand();
430 return G4ThreeVector(Pt * std::cos(phi),Pt * std::sin(phi),0);
431}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double G4Log(G4double x)
Definition: G4Log.hh:226
CLHEP::Hep3Vector G4ThreeVector
const G4double pi

◆ SetDiquarkBreakProbability()

void G4VLongitudinalStringDecay::SetDiquarkBreakProbability ( G4double  aValue)

Definition at line 488 of file G4VLongitudinalStringDecay.cc.

489{
490 if ( PastInitPhase ) {
491 throw G4HadronicException(__FILE__, __LINE__,
492 "G4VLongitudinalStringDecay::SetDiquarkBreakProbability after FragmentString() not allowed");
493 } else {
494 DiquarkBreakProb = aValue;
495 }
496}

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

◆ SetDiquarkSuppression()

void G4VLongitudinalStringDecay::SetDiquarkSuppression ( G4double  aValue)

◆ SetMassCut()

void G4VLongitudinalStringDecay::SetMassCut ( G4double  aValue)
protectedvirtual

◆ SetMinimalStringMass()

void G4VLongitudinalStringDecay::SetMinimalStringMass ( const G4FragmentingString *const  string)

Definition at line 952 of file G4VLongitudinalStringDecay.cc.

953{
954 //MaxMass = -350.0*GeV;
955 G4double EstimatedMass=MaxMass;
956
957 G4ParticleDefinition* LeftParton = string->GetLeftParton();
958 G4ParticleDefinition* RightParton = string->GetRightParton();
959 if( LeftParton->GetParticleSubType() == RightParton->GetParticleSubType() ) { // q qbar, qq qqbar
960 if( LeftParton->GetPDGEncoding() * RightParton->GetPDGEncoding() > 0 ) {
961 // Not allowed combination of the partons
962 throw G4HadronicException(__FILE__, __LINE__,
963 "G4VLongitudinalStringDecay::SetMinimalStringMass: Illegal quark content as input");
964 }
965 }
966 if( LeftParton->GetParticleSubType() != RightParton->GetParticleSubType() ) { // q qq, qbar qqbar
967 if( LeftParton->GetPDGEncoding() * RightParton->GetPDGEncoding() < 0 ) {
968 // Not allowed combination of the partons
969 throw G4HadronicException(__FILE__, __LINE__,
970 "G4VLongitudinalStringDecay::SetMinimalStringMass: Illegal quark content as input");
971 }
972 }
973
974 G4int Qleft =std::abs(string->GetLeftParton()->GetPDGEncoding());
975 G4int Qright=std::abs(string->GetRightParton()->GetPDGEncoding());
976
977 if ((Qleft < 6) && (Qright < 6)) { // Q-Qbar string
978 EstimatedMass=minMassQQbarStr[Qleft-1][Qright-1];
979 MinimalStringMass=EstimatedMass;
980 SetMinimalStringMass2(EstimatedMass);
981 return;
982 }
983
984 if ((Qleft < 6) && (Qright > 1000)) { // Q - DiQ string
985 G4int q1=Qright/1000;
986 G4int q2=(Qright/100)%10;
987 EstimatedMass=minMassQDiQStr[Qleft-1][q1-1][q2-1];
988 MinimalStringMass=EstimatedMass; // It can be negative!
989 SetMinimalStringMass2(EstimatedMass);
990 return;
991 }
992
993 if ((Qleft > 1000) && (Qright < 6)) { // DiQ - Q string 6 6 6
994 G4int q1=Qleft/1000;
995 G4int q2=(Qleft/100)%10;
996 EstimatedMass=minMassQDiQStr[Qright-1][q1-1][q2-1];
997 MinimalStringMass=EstimatedMass; // It can be negative!
998 SetMinimalStringMass2(EstimatedMass);
999 return;
1000 }
1001
1002 // DiQuark - Anti DiQuark string -----------------
1003
1004 G4double StringM=string->Get4Momentum().mag();
1005
1006 #ifdef debug_LUNDfragmentation
1007 // G4cout<<"MinStringMass// Input String mass "<<string->Get4Momentum().mag()<<" Qleft "<<Qleft<<G4endl;
1008 #endif
1009
1010 G4int q1= Qleft/1000 ;
1011 G4int q2=(Qleft/100)%10 ;
1012
1013 G4int q3= Qright/1000 ;
1014 G4int q4=(Qright/100)%10;
1015
1016 // -------------- 2 baryon production or 2 mesons production --------
1017
1018 G4double EstimatedMass1 = minMassQDiQStr[q1-1][q2-1][0];
1019 G4double EstimatedMass2 = minMassQDiQStr[q3-1][q4-1][0];
1020 // Mass is negative if there is no corresponding particle.
1021
1022 if ( (EstimatedMass1 > 0.) && (EstimatedMass2 > 0.)) {
1023 EstimatedMass = EstimatedMass1 + EstimatedMass2;
1024 if ( StringM > EstimatedMass ) { // 2 baryon production is possible.
1025 MinimalStringMass=EstimatedMass1 + EstimatedMass2;
1026 SetMinimalStringMass2(EstimatedMass);
1027 return;
1028 }
1029 }
1030
1031 if ( (EstimatedMass1 < 0.) && (EstimatedMass2 > 0.)) {
1032 EstimatedMass = MaxMass;
1033 MinimalStringMass=EstimatedMass;
1034 SetMinimalStringMass2(EstimatedMass);
1035 return;
1036 }
1037
1038 if ( (EstimatedMass1 > 0.) && (EstimatedMass2 < 0.)) {
1039 EstimatedMass = EstimatedMass1;
1040 MinimalStringMass=EstimatedMass;
1041 SetMinimalStringMass2(EstimatedMass);
1042 return;
1043 }
1044
1045 // if ( EstimatedMass >= StringM ) {
1046 // ------------- Re-orangement ---------------
1047 EstimatedMass=std::min(minMassQQbarStr[q1-1][q3-1] + minMassQQbarStr[q2-1][q4-1],
1048 minMassQQbarStr[q1-1][q4-1] + minMassQQbarStr[q2-1][q3-1]);
1049
1050 // In principle, re-arrangement and 2 baryon production can compete.
1051 // More physics consideration is needed.
1052
1053 MinimalStringMass=EstimatedMass;
1054 SetMinimalStringMass2(EstimatedMass);
1055
1056 return;
1057}
G4ParticleDefinition * GetRightParton(void) const
const G4String & GetParticleSubType() const
void SetMinimalStringMass2(const G4double aValue)

Referenced by G4LundStringFragmentation::FragmentString(), G4QGSMFragmentation::FragmentString(), and ProduceOneHadron().

◆ SetMinimalStringMass2()

void G4VLongitudinalStringDecay::SetMinimalStringMass2 ( const G4double  aValue)

Definition at line 1061 of file G4VLongitudinalStringDecay.cc.

1062{
1063 MinimalStringMass2=aValue * aValue;
1064}

Referenced by SetMinimalStringMass().

◆ SetMinMasses()

void G4VLongitudinalStringDecay::SetMinMasses ( )

Definition at line 609 of file G4VLongitudinalStringDecay.cc.

610{
611 // ------ For estimation of a minimal string mass ---------------
612 Mass_of_light_quark =140.*MeV;
613 Mass_of_s_quark =500.*MeV;
614 Mass_of_c_quark =1600.*MeV;
615 Mass_of_b_quark =4500.*MeV;
617
618 // ---------------- Determination of minimal mass of q-qbar strings -------------------
619 G4ParticleDefinition * hadron1; G4int Code1;
620 G4ParticleDefinition * hadron2; G4int Code2;
621 for (G4int i=1; i < 6; i++) {
622 Code1 = 100*i + 10*1 + 1;
623 hadron1 = FindParticle(Code1);
624
625 if (hadron1 != nullptr) {
626 for (G4int j=1; j < 6; j++) {
627 Code2 = 100*j + 10*1 + 1;
628 hadron2 = FindParticle(Code2);
629 if (hadron2 != nullptr) {
630 minMassQQbarStr[i-1][j-1] = hadron1->GetPDGMass() + hadron2->GetPDGMass() + 70.0 * MeV;
631 }
632 }
633 }
634 }
635
636 minMassQQbarStr[1][1] = minMassQQbarStr[0][0]; // u-ubar = 0.5 Pi0 + 0.24 Eta + 0.25 Eta'
637
638 // ---------------- Determination of minimal mass of qq-q strings -------------------
639 G4ParticleDefinition * hadron3;
640 G4int kfla, kflb;
641 // MaxMass = -350.0*GeV; // If there will be a particle with mass larger than Higgs the value must be changed.
642
643 for (G4int i=1; i < 6; i++) { //i=1
644 Code1 = 100*i + 10*1 + 1;
645 hadron1 = FindParticle(Code1);
646 for (G4int j=1; j < 6; j++) {
647 for (G4int k=1; k < 6; k++) {
648 kfla = std::max(j,k);
649 kflb = std::min(j,k);
650
651 // Add d-quark
652 Code2 = 1000*kfla + 100*kflb + 10*1 + 2;
653 if ( (j == 1) && (k==1)) Code2 = 1000*2 + 100*1 + 10*1 + 2; // In the case - add u-quark.
654
656 hadron3 = G4ParticleTable::GetParticleTable()->FindParticle(Code2 + 2);
657
658 if ((hadron2 == nullptr) && (hadron3 == nullptr)) {minMassQDiQStr[i-1][j-1][k-1] = MaxMass; continue;};
659
660 if ((hadron2 != nullptr) && (hadron3 != nullptr)) {
661 if (hadron2->GetPDGMass() > hadron3->GetPDGMass() ) { hadron2 = hadron3; }
662 };
663
664 if ((hadron2 != nullptr) && (hadron3 == nullptr)) {};
665
666 if ((hadron2 == nullptr) && (hadron3 != nullptr)) {hadron2 = hadron3;};
667
668 minMassQDiQStr[i-1][j-1][k-1] = hadron1->GetPDGMass() + hadron2->GetPDGMass() + 70.0 * MeV;
669 }
670 }
671 }
672
673 // ------ An estimated minimal string mass ----------------------
676 // q charges d u s c b
677 Qcharge[0] = -1; Qcharge[1] = 2; Qcharge[2] = -1; Qcharge[3] = 2; Qcharge[4] = -1;
678
679 // For treating of small string decays
680 for (G4int i=0; i<5; i++)
681 { for (G4int j=0; j<5; j++)
682 { for (G4int k=0; k<7; k++)
683 {
684 Meson[i][j][k]=0; MesonWeight[i][j][k]=0.;
685 }
686 }
687 }
688 //--------------------------
689 for (G4int i=0; i<5; i++)
690 { for (G4int j=0; j<5; j++)
691 {
692 Meson[i][j][0] = 100 * (std::max(i,j)+1) + 10 * (std::min(i,j)+1) + 1; // Scalar meson
693 MesonWeight[i][j][0] = ( pspin_meson);
694 Meson[i][j][1] = 100 * (std::max(i,j)+1) + 10 * (std::min(i,j)+1) + 3; // Vector meson
695 MesonWeight[i][j][1] = (1.-pspin_meson);
696 }
697 }
698
699 //qqs indexes
700 //dd1 -> scalarMesonMix[0] * 111 + (1-scalarMesonMix[0]-scalarMesonMix[1]) * 221 + scalarMesonMix[1] * 331 (000)
701 //dd1 -> Pi0 Eta Eta'
702
703 Meson[0][0][0] = 111; MesonWeight[0][0][0] = ( pspin_meson) * ( scalarMesonMix[0] ); // Pi0
704 Meson[0][0][2] = 221; MesonWeight[0][0][3] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta
705 Meson[0][0][3] = 331; MesonWeight[0][0][4] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta'
706
707 //dd3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (001)
708 //dd3 -> rho_0 omega phi
709
710 Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho
711 Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega
712 Meson[0][0][5] = 333; MesonWeight[0][0][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi
713
714 //uu1 -> scalarMesonMix[0] * 111 + (1-scalarMesonMix[0]-scalarMesonMix[1]) * 221 + scalarMesonMix[1] * 331 (110)
715 //uu1 -> Pi0 Eta Eta'
716
717 Meson[1][1][0] = 111; MesonWeight[1][1][0] = ( pspin_meson) * ( scalarMesonMix[0] ); // Pi0
718 Meson[1][1][2] = 221; MesonWeight[1][1][2] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta
719 Meson[1][1][3] = 331; MesonWeight[1][1][3] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta'
720
721 //uu3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (111)
722 //uu3 -> rho_0 omega phi
723
724 Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho
725 Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega
726 Meson[1][1][5] = 333; MesonWeight[1][1][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi
727
728 //ss1 -> (1-scalarMesonMix[5]) * 221 + scalarMesonMix[5] * 331 (220)
729 //ss1 -> Eta Eta'
730
731 Meson[2][2][0] = 221; MesonWeight[2][2][0] = ( pspin_meson) * (1-scalarMesonMix[5] ); // Eta
732 Meson[2][2][2] = 331; MesonWeight[2][2][2] = ( pspin_meson) * ( scalarMesonMix[5]); // Eta'
733
734 //ss3 -> (1-vectorMesonMix[5]) * 223 + vectorMesonMix[5] * 333 (221)
735 //ss3 -> omega phi
736
737 Meson[2][2][1] = 223; MesonWeight[2][2][1] = (1.-pspin_meson) * (1-vectorMesonMix[5] ); // omega
738 Meson[2][2][3] = 333; MesonWeight[2][2][3] = (1.-pspin_meson) * ( vectorMesonMix[5]); // phi
739
740 //cc1 -> ProbEta_c /(1-pspin_meson) 441 (330) Probability of Eta_c
741 //cc3 -> (1-ProbEta_c)/( pspin_meson) 443 (331) Probability of J/Psi
742
743 //bb1 -> ProbEta_b /pspin_meson 551 (440) Probability of Eta_b
744 //bb3 -> (1-ProbEta_b)/pspin_meson 553 (441) Probability of Upsilon
745
746 if ( pspin_meson != 0. ) {
747 Meson[3][3][0] *= ( ProbEta_c)/( pspin_meson); // Eta_c
748 Meson[3][3][1] *= (1.0-ProbEta_c)/(1.-pspin_meson); // J/Psi
749
750 Meson[4][4][0] *= ( ProbEta_b)/( pspin_meson); // Eta_b
751 Meson[4][4][1] *= (1.0-ProbEta_b)/(1.-pspin_meson); // Upsilon
752 }
753
754 //--------------------------
755
756 for (G4int i=0; i<5; i++)
757 { for (G4int j=0; j<5; j++)
758 { for (G4int k=0; k<5; k++)
759 { for (G4int l=0; l<4; l++)
760 { Baryon[i][j][k][l]=0; BaryonWeight[i][j][k][l]=0.;}
761 }
762 }
763 }
764
765 kfla =0; kflb =0;
766 G4int kflc(0), kfld(0), kfle(0), kflf(0);
767 for (G4int i=0; i<5; i++)
768 { for (G4int j=0; j<5; j++)
769 { for (G4int k=0; k<5; k++)
770 {
771 kfla = i+1; kflb = j+1; kflc = k+1;
772 kfld = std::max(kfla,kflb);
773 kfld = std::max(kfld,kflc);
774
775 kflf = std::min(kfla,kflb);
776 kflf = std::min(kflf,kflc);
777
778 kfle = kfla + kflb + kflc - kfld - kflf;
779
780 Baryon[i][j][k][0] = 1000 * kfld + 100 * kfle + 10 * kflf + 2; // spin=1/2
781 BaryonWeight[i][j][k][0] = ( pspin_barion);
782 Baryon[i][j][k][1] = 1000 * kfld + 100 * kfle + 10 * kflf + 4; // spin=3/2
783 BaryonWeight[i][j][k][1] = (1.-pspin_barion);
784 }
785 }
786 }
787
788 // Delta- ddd - only 1114
789 Baryon[0][0][0][0] = 1114; BaryonWeight[0][0][0][0] = 1.0;
790 Baryon[0][0][0][1] = 0; BaryonWeight[0][0][0][1] = 0.0;
791
792 // Delta++ uuu - only 2224
793 Baryon[1][1][1][0] = 2224; BaryonWeight[1][1][1][0] = 1.0;
794 Baryon[1][1][1][1] = 0; BaryonWeight[1][1][1][1] = 0.0;
795
796 // Omega- sss - only 3334
797 Baryon[2][2][2][0] = 3334; BaryonWeight[2][2][2][0] = 1.0;
798 Baryon[2][2][2][1] = 0; BaryonWeight[2][2][2][1] = 0.0;
799
800 // Omega_cc++ ccc - only 4444
801 Baryon[3][3][3][0] = 4444; BaryonWeight[3][3][3][0] = 1.0;
802 Baryon[3][3][3][1] = 0; BaryonWeight[3][3][3][1] = 0.0;
803
804 // Omega_bb- bbb - only 5554
805 Baryon[4][4][4][0] = 5554; BaryonWeight[4][4][4][0] = 1.0;
806 Baryon[4][4][4][1] = 0; BaryonWeight[4][4][4][1] = 0.0;
807
808 // Lambda/Sigma0 sud - 3122/3212
809 Baryon[0][1][2][0] = 3122; BaryonWeight[0][1][2][0] *= 0.5; // Lambda
810 Baryon[0][2][1][0] = 3122; BaryonWeight[0][2][1][0] *= 0.5;
811 Baryon[1][0][2][0] = 3122; BaryonWeight[1][0][2][0] *= 0.5;
812 Baryon[1][2][0][0] = 3122; BaryonWeight[1][2][0][0] *= 0.5;
813 Baryon[2][0][1][0] = 3122; BaryonWeight[2][0][1][0] *= 0.5;
814 Baryon[2][1][0][0] = 3122; BaryonWeight[2][1][0][0] *= 0.5;
815
816 Baryon[0][1][2][2] = 3212; BaryonWeight[0][1][2][2] = 0.5 * pspin_barion; // Sigma0
817 Baryon[0][2][1][2] = 3212; BaryonWeight[0][2][1][2] = 0.5 * pspin_barion;
818 Baryon[1][0][2][2] = 3212; BaryonWeight[1][0][2][2] = 0.5 * pspin_barion;
819 Baryon[1][2][0][2] = 3212; BaryonWeight[1][2][0][2] = 0.5 * pspin_barion;
820 Baryon[2][0][1][2] = 3212; BaryonWeight[2][0][1][2] = 0.5 * pspin_barion;
821 Baryon[2][1][0][2] = 3212; BaryonWeight[2][1][0][2] = 0.5 * pspin_barion;
822
823 // Lambda_c+/Sigma_c+ cud - 4122/4212
824 Baryon[0][1][3][0] = 4122; BaryonWeight[0][1][3][0] *= 0.5; // Lambda_c+
825 Baryon[0][3][1][0] = 4122; BaryonWeight[0][3][1][0] *= 0.5;
826 Baryon[1][0][3][0] = 4122; BaryonWeight[1][0][3][0] *= 0.5;
827 Baryon[1][3][0][0] = 4122; BaryonWeight[1][3][0][0] *= 0.5;
828 Baryon[3][0][1][0] = 4122; BaryonWeight[3][0][1][0] *= 0.5;
829 Baryon[3][1][0][0] = 4122; BaryonWeight[3][1][0][0] *= 0.5;
830
831 Baryon[0][1][3][2] = 4212; BaryonWeight[0][1][3][2] = 0.5 * pspin_barion; // SigmaC+
832 Baryon[0][3][1][2] = 4212; BaryonWeight[0][3][1][2] = 0.5 * pspin_barion;
833 Baryon[1][0][3][2] = 4212; BaryonWeight[1][0][3][2] = 0.5 * pspin_barion;
834 Baryon[1][3][0][2] = 4212; BaryonWeight[1][3][0][2] = 0.5 * pspin_barion;
835 Baryon[3][0][1][2] = 4212; BaryonWeight[3][0][1][2] = 0.5 * pspin_barion;
836 Baryon[3][1][0][2] = 4212; BaryonWeight[3][1][0][2] = 0.5 * pspin_barion;
837
838 // Xi_c+/Xi_c+' cus - 4232/4322
839 Baryon[1][2][3][0] = 4232; BaryonWeight[1][2][3][0] *= 0.5; // Xi_c+
840 Baryon[1][3][2][0] = 4232; BaryonWeight[1][3][2][0] *= 0.5;
841 Baryon[2][1][3][0] = 4232; BaryonWeight[2][1][3][0] *= 0.5;
842 Baryon[2][3][1][0] = 4232; BaryonWeight[2][3][1][0] *= 0.5;
843 Baryon[3][1][2][0] = 4232; BaryonWeight[3][1][2][0] *= 0.5;
844 Baryon[3][2][1][0] = 4232; BaryonWeight[3][2][1][0] *= 0.5;
845
846 Baryon[1][2][3][2] = 4322; BaryonWeight[1][2][3][2] = 0.5 * pspin_barion; // Xi_c+'
847 Baryon[1][3][2][2] = 4322; BaryonWeight[1][3][2][2] = 0.5 * pspin_barion;
848 Baryon[2][1][3][2] = 4322; BaryonWeight[2][1][3][2] = 0.5 * pspin_barion;
849 Baryon[2][3][1][2] = 4322; BaryonWeight[2][3][1][2] = 0.5 * pspin_barion;
850 Baryon[3][1][2][2] = 4322; BaryonWeight[3][1][2][2] = 0.5 * pspin_barion;
851 Baryon[3][2][1][2] = 4322; BaryonWeight[3][2][1][2] = 0.5 * pspin_barion;
852
853 // Xi_c0/Xi_c0' cus - 4132/4312
854 Baryon[0][2][3][0] = 4132; BaryonWeight[0][2][3][0] *= 0.5; // Xi_c0
855 Baryon[0][3][2][0] = 4132; BaryonWeight[0][3][2][0] *= 0.5;
856 Baryon[2][0][3][0] = 4132; BaryonWeight[2][0][3][0] *= 0.5;
857 Baryon[2][3][0][0] = 4132; BaryonWeight[2][3][0][0] *= 0.5;
858 Baryon[3][0][2][0] = 4132; BaryonWeight[3][0][2][0] *= 0.5;
859 Baryon[3][2][0][0] = 4132; BaryonWeight[3][2][0][0] *= 0.5;
860
861 Baryon[0][2][3][2] = 4312; BaryonWeight[0][2][3][2] = 0.5 * pspin_barion; // Xi_c0'
862 Baryon[0][3][2][2] = 4312; BaryonWeight[0][3][2][2] = 0.5 * pspin_barion;
863 Baryon[2][0][3][2] = 4312; BaryonWeight[2][0][3][2] = 0.5 * pspin_barion;
864 Baryon[2][3][0][2] = 4312; BaryonWeight[2][3][0][2] = 0.5 * pspin_barion;
865 Baryon[3][0][2][2] = 4312; BaryonWeight[3][0][2][2] = 0.5 * pspin_barion;
866 Baryon[3][2][0][2] = 4312; BaryonWeight[3][2][0][2] = 0.5 * pspin_barion;
867
868 // Lambda_b0/Sigma_b0 bud - 5122/5212
869 Baryon[0][1][4][0] = 5122; BaryonWeight[0][1][4][0] *= 0.5; // Lambda_b0
870 Baryon[0][4][1][0] = 5122; BaryonWeight[0][4][1][0] *= 0.5;
871 Baryon[1][0][4][0] = 5122; BaryonWeight[1][0][4][0] *= 0.5;
872 Baryon[1][4][0][0] = 5122; BaryonWeight[1][4][0][0] *= 0.5;
873 Baryon[4][0][1][0] = 5122; BaryonWeight[4][0][1][0] *= 0.5;
874 Baryon[4][1][0][0] = 5122; BaryonWeight[4][1][0][0] *= 0.5;
875
876 Baryon[0][1][4][2] = 5212; BaryonWeight[0][1][4][2] = 0.5 * pspin_barion; // Sigma_b0
877 Baryon[0][4][1][2] = 5212; BaryonWeight[0][4][1][2] = 0.5 * pspin_barion;
878 Baryon[1][0][4][2] = 5212; BaryonWeight[1][0][4][2] = 0.5 * pspin_barion;
879 Baryon[1][4][0][2] = 5212; BaryonWeight[1][4][0][2] = 0.5 * pspin_barion;
880 Baryon[4][0][1][2] = 5212; BaryonWeight[4][0][1][2] = 0.5 * pspin_barion;
881 Baryon[4][1][0][2] = 5212; BaryonWeight[4][1][0][2] = 0.5 * pspin_barion;
882
883 // Xi_b0/Xi_b0' bus - 5232/5322
884 Baryon[1][2][4][0] = 5232; BaryonWeight[1][2][4][0] *= 0.5; // Xi_b0
885 Baryon[1][4][2][0] = 5232; BaryonWeight[1][4][2][0] *= 0.5;
886 Baryon[2][1][4][0] = 5232; BaryonWeight[2][1][4][0] *= 0.5;
887 Baryon[2][4][1][0] = 5232; BaryonWeight[2][4][1][0] *= 0.5;
888 Baryon[4][1][2][0] = 5232; BaryonWeight[4][1][2][0] *= 0.5;
889 Baryon[4][2][1][0] = 5232; BaryonWeight[4][2][1][0] *= 0.5;
890
891 Baryon[1][2][4][2] = 5322; BaryonWeight[1][2][4][2] = 0.5 * pspin_barion; // Xi_b0'
892 Baryon[1][4][2][2] = 5322; BaryonWeight[1][4][2][2] = 0.5 * pspin_barion;
893 Baryon[2][1][4][2] = 5322; BaryonWeight[2][1][4][2] = 0.5 * pspin_barion;
894 Baryon[2][4][1][2] = 5322; BaryonWeight[2][4][1][2] = 0.5 * pspin_barion;
895 Baryon[4][1][2][2] = 5322; BaryonWeight[4][1][2][2] = 0.5 * pspin_barion;
896 Baryon[4][2][1][2] = 5322; BaryonWeight[4][2][1][2] = 0.5 * pspin_barion;
897
898 // Xi_b-/Xi_b-' bus - 5132/5312
899 Baryon[0][2][4][0] = 5132; BaryonWeight[0][2][4][0] *= 0.5; // Xi_b-
900 Baryon[0][4][2][0] = 5132; BaryonWeight[0][4][2][0] *= 0.5;
901 Baryon[2][0][4][0] = 5132; BaryonWeight[2][0][4][0] *= 0.5;
902 Baryon[2][4][0][0] = 5132; BaryonWeight[2][4][0][0] *= 0.5;
903 Baryon[4][0][2][0] = 5132; BaryonWeight[4][0][2][0] *= 0.5;
904 Baryon[4][2][0][0] = 5132; BaryonWeight[4][2][0][0] *= 0.5;
905
906 Baryon[0][2][4][2] = 5312; BaryonWeight[0][2][4][2] = 0.5 * pspin_barion; // Xi_b-'
907 Baryon[0][4][2][2] = 5312; BaryonWeight[0][4][2][2] = 0.5 * pspin_barion;
908 Baryon[2][0][4][2] = 5312; BaryonWeight[2][0][4][2] = 0.5 * pspin_barion;
909 Baryon[2][4][0][2] = 5312; BaryonWeight[2][4][0][2] = 0.5 * pspin_barion;
910 Baryon[4][0][2][2] = 5312; BaryonWeight[4][0][2][2] = 0.5 * pspin_barion;
911 Baryon[4][2][0][2] = 5312; BaryonWeight[4][2][0][2] = 0.5 * pspin_barion;
912
913 for (G4int i=0; i<5; i++)
914 { for (G4int j=0; j<5; j++)
915 { for (G4int k=0; k<5; k++)
916 { for (G4int l=0; l<4; l++)
917 {
918 G4ParticleDefinition * TestHadron=
920 /*
921 G4cout<<i<<" "<<j<<" "<<k<<" "<<l<<" "<<Baryon[i][j][k][l]<<" "<<TestHadron<<" "<<BaryonWeight[i][j][k][l];
922 if (TestHadron != nullptr) G4cout<<" "<<TestHadron->GetParticleName();
923 if ((TestHadron == nullptr)&&(Baryon[i][j][k][l] != 0)) G4cout<<" *****";
924 if ((TestHadron == nullptr)&&(Baryon[i][j][k][l] == 0)) G4cout<<" ---------------";
925 G4cout<<G4endl;
926 */
927 if ((TestHadron == nullptr)&&(Baryon[i][j][k][l] != 0)) Baryon[i][j][k][l] = 0;
928 }
929 }
930 }
931 }
932
933 // --------- Probabilities of q-qbar pair productions for kink or gluons.
934 G4double ProbUUbar = 0.33;
935 Prob_QQbar[0]=ProbUUbar; // Probability of ddbar production
936 Prob_QQbar[1]=ProbUUbar; // Probability of uubar production
937 Prob_QQbar[2]=1.0-2.*ProbUUbar; // Probability of ssbar production
938 Prob_QQbar[3]=0.0; // Probability of ccbar production
939 Prob_QQbar[4]=0.0; // Probability of bbbar production
940
941 for ( G4int i=0 ; i<350 ; i++ ) { // Must be checked
942 FS_LeftHadron[i] = 0;
943 FS_RightHadron[i] = 0;
944 FS_Weight[i] = 0.0;
945 }
946
947 NumberOf_FS = 0;
948}
G4ParticleDefinition * FS_RightHadron[350]
G4ParticleDefinition * FS_LeftHadron[350]

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

◆ SetProbBBbar()

void G4VLongitudinalStringDecay::SetProbBBbar ( G4double  aValue)

◆ SetProbCCbar()

void G4VLongitudinalStringDecay::SetProbCCbar ( G4double  aValue)

◆ SetProbEta_b()

void G4VLongitudinalStringDecay::SetProbEta_b ( G4double  aValue)

Definition at line 595 of file G4VLongitudinalStringDecay.cc.

596{
597 ProbEta_b = aValue;
598}

Referenced by G4VLongitudinalStringDecay().

◆ SetProbEta_c()

void G4VLongitudinalStringDecay::SetProbEta_c ( G4double  aValue)

Definition at line 580 of file G4VLongitudinalStringDecay.cc.

581{
582 ProbEta_c = aValue;
583}

Referenced by G4VLongitudinalStringDecay().

◆ SetScalarMesonMixings()

void G4VLongitudinalStringDecay::SetScalarMesonMixings ( std::vector< G4double aVector)

Definition at line 528 of file G4VLongitudinalStringDecay.cc.

529{
530 if ( PastInitPhase ) {
531 throw G4HadronicException(__FILE__, __LINE__,
532 "G4VLongitudinalStringDecay::SetScalarMesonMixings after FragmentString() not allowed");
533 } else {
534 if ( aVector.size() < 6 )
535 throw G4HadronicException(__FILE__, __LINE__,
536 "G4VLongitudinalStringDecay::SetScalarMesonMixings( argument Vector too small");
537 scalarMesonMix[0] = aVector[0];
538 scalarMesonMix[1] = aVector[1];
539 scalarMesonMix[2] = aVector[2];
540 scalarMesonMix[3] = aVector[3];
541 scalarMesonMix[4] = aVector[4];
542 scalarMesonMix[5] = aVector[5];
543 delete hadronizer;
545 }
546}

◆ SetSigmaTransverseMomentum()

void G4VLongitudinalStringDecay::SetSigmaTransverseMomentum ( G4double  aQT)

Definition at line 462 of file G4VLongitudinalStringDecay.cc.

463{
464 if ( PastInitPhase ) {
465 throw G4HadronicException(__FILE__, __LINE__,
466 "G4VLongitudinalStringDecay::SetSigmaTransverseMomentum after FragmentString() not allowed");
467 } else {
468 SigmaQT = aValue;
469 }
470}

◆ SetSpinThreeHalfBarionProbability()

void G4VLongitudinalStringDecay::SetSpinThreeHalfBarionProbability ( G4double  aValue)

Definition at line 514 of file G4VLongitudinalStringDecay.cc.

515{
516 if ( PastInitPhase ) {
517 throw G4HadronicException(__FILE__, __LINE__,
518 "G4VLongitudinalStringDecay::SetSpinThreeHalfBarionProbability after FragmentString() not allowed");
519 } else {
520 pspin_barion = aValue;
521 delete hadronizer;
523 }
524}

◆ SetStrangenessSuppression()

void G4VLongitudinalStringDecay::SetStrangenessSuppression ( G4double  aValue)

◆ SetStringTensionParameter()

void G4VLongitudinalStringDecay::SetStringTensionParameter ( G4double  aValue)

Definition at line 602 of file G4VLongitudinalStringDecay.cc.

603{
604 Kappa = aValue * GeV/fermi;
605}

Referenced by G4LundStringFragmentation::G4LundStringFragmentation().

◆ SetVectorMesonMixings()

void G4VLongitudinalStringDecay::SetVectorMesonMixings ( std::vector< G4double aVector)

Definition at line 550 of file G4VLongitudinalStringDecay.cc.

551{
552 if ( PastInitPhase ) {
553 throw G4HadronicException(__FILE__, __LINE__,
554 "G4VLongitudinalStringDecay::SetVectorMesonMixings after FragmentString() not allowed");
555 } else {
556 if ( aVector.size() < 6 )
557 throw G4HadronicException(__FILE__, __LINE__,
558 "G4VLongitudinalStringDecay::SetVectorMesonMixings( argument Vector too small");
559 vectorMesonMix[0] = aVector[0];
560 vectorMesonMix[1] = aVector[1];
561 vectorMesonMix[2] = aVector[2];
562 vectorMesonMix[3] = aVector[3];
563 vectorMesonMix[4] = aVector[4];
564 vectorMesonMix[5] = aVector[5];
565 delete hadronizer;
567 }
568}

◆ SetVectorMesonProbability()

void G4VLongitudinalStringDecay::SetVectorMesonProbability ( G4double  aValue)

Definition at line 500 of file G4VLongitudinalStringDecay.cc.

501{
502 if ( PastInitPhase ) {
503 throw G4HadronicException(__FILE__, __LINE__,
504 "G4VLongitudinalStringDecay::SetVectorMesonProbability after FragmentString() not allowed");
505 } else {
506 pspin_meson = aValue;
507 delete hadronizer;
509 }
510}

◆ SplitEandP()

virtual G4LorentzVector * G4VLongitudinalStringDecay::SplitEandP ( G4ParticleDefinition pHadron,
G4FragmentingString string,
G4FragmentingString newString 
)
protectedpure virtual

◆ SplitLast()

virtual G4bool G4VLongitudinalStringDecay::SplitLast ( G4FragmentingString string,
G4KineticTrackVector LeftVector,
G4KineticTrackVector RightVector 
)
protectedpure virtual

◆ Splitup()

virtual G4KineticTrack * G4VLongitudinalStringDecay::Splitup ( G4FragmentingString string,
G4FragmentingString *&  newString 
)
protectedpure virtual

◆ StopFragmenting()

virtual G4bool G4VLongitudinalStringDecay::StopFragmenting ( const G4FragmentingString *const  string)
protectedpure virtual

Member Data Documentation

◆ Baryon

G4int G4VLongitudinalStringDecay::Baryon[5][5][5][4]

Definition at line 236 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ BaryonWeight

G4double G4VLongitudinalStringDecay::BaryonWeight[5][5][5][4]

Definition at line 237 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ ClusterLoopInterrupt

G4int G4VLongitudinalStringDecay::ClusterLoopInterrupt
protected

◆ DecayQuark

G4int G4VLongitudinalStringDecay::DecayQuark

Definition at line 241 of file G4VLongitudinalStringDecay.hh.

Referenced by G4VLongitudinalStringDecay(), and QuarkSplitup().

◆ DiquarkBreakProb

G4double G4VLongitudinalStringDecay::DiquarkBreakProb
protected

◆ DiquarkSuppress

G4double G4VLongitudinalStringDecay::DiquarkSuppress
protected

◆ FS_LeftHadron

G4ParticleDefinition* G4VLongitudinalStringDecay::FS_LeftHadron[350]

Definition at line 251 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ FS_RightHadron

G4ParticleDefinition * G4VLongitudinalStringDecay::FS_RightHadron[350]

Definition at line 251 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ FS_Weight

G4double G4VLongitudinalStringDecay::FS_Weight[350]

Definition at line 252 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ hadronizer

◆ Kappa

G4double G4VLongitudinalStringDecay::Kappa
protected

◆ Mass_of_b_quark

G4double G4VLongitudinalStringDecay::Mass_of_b_quark

Definition at line 222 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ Mass_of_c_quark

G4double G4VLongitudinalStringDecay::Mass_of_c_quark

Definition at line 221 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ Mass_of_light_quark

G4double G4VLongitudinalStringDecay::Mass_of_light_quark

Definition at line 219 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ Mass_of_s_quark

G4double G4VLongitudinalStringDecay::Mass_of_s_quark

Definition at line 220 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ Mass_of_string_junction

G4double G4VLongitudinalStringDecay::Mass_of_string_junction

Definition at line 223 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ MassCut

G4double G4VLongitudinalStringDecay::MassCut
protected

◆ MaxMass

G4double G4VLongitudinalStringDecay::MaxMass
protected

◆ Meson

G4int G4VLongitudinalStringDecay::Meson[5][5][7]

Definition at line 233 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ MesonWeight

G4double G4VLongitudinalStringDecay::MesonWeight[5][5][7]

Definition at line 234 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ MinimalStringMass

G4double G4VLongitudinalStringDecay::MinimalStringMass

Definition at line 229 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinimalStringMass(), and SetMinMasses().

◆ MinimalStringMass2

G4double G4VLongitudinalStringDecay::MinimalStringMass2

Definition at line 230 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinimalStringMass2(), and SetMinMasses().

◆ minMassQDiQStr

G4double G4VLongitudinalStringDecay::minMassQDiQStr[5][5][5]

Definition at line 226 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinimalStringMass(), and SetMinMasses().

◆ minMassQQbarStr

G4double G4VLongitudinalStringDecay::minMassQQbarStr[5][5]

Definition at line 225 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinimalStringMass(), and SetMinMasses().

◆ NewParticles

std::vector<G4ParticleDefinition *> G4VLongitudinalStringDecay::NewParticles
protected

Definition at line 215 of file G4VLongitudinalStringDecay.hh.

Referenced by FindParticle().

◆ NewQuark

G4int G4VLongitudinalStringDecay::NewQuark

Definition at line 242 of file G4VLongitudinalStringDecay.hh.

Referenced by G4VLongitudinalStringDecay(), and QuarkSplitup().

◆ NumberOf_FS

G4int G4VLongitudinalStringDecay::NumberOf_FS

Definition at line 253 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ PastInitPhase

◆ Prob_QQbar

G4double G4VLongitudinalStringDecay::Prob_QQbar[5]

Definition at line 239 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ ProbBBbar

G4double G4VLongitudinalStringDecay::ProbBBbar
protected

◆ ProbCB

G4double G4VLongitudinalStringDecay::ProbCB
protected

Definition at line 207 of file G4VLongitudinalStringDecay.hh.

Referenced by SampleQuarkFlavor(), SetProbBBbar(), and SetProbCCbar().

◆ ProbCCbar

G4double G4VLongitudinalStringDecay::ProbCCbar
protected

◆ ProbEta_b

◆ ProbEta_c

◆ pspin_barion

◆ pspin_meson

◆ Qcharge

G4int G4VLongitudinalStringDecay::Qcharge[5]

Definition at line 232 of file G4VLongitudinalStringDecay.hh.

Referenced by SetMinMasses().

◆ scalarMesonMix

std::vector<G4double> G4VLongitudinalStringDecay::scalarMesonMix
protected

◆ SigmaQT

◆ StrangeSuppress

G4double G4VLongitudinalStringDecay::StrangeSuppress
protected

◆ StringLoopInterrupt

G4int G4VLongitudinalStringDecay::StringLoopInterrupt
protected

◆ vectorMesonMix

std::vector<G4double> G4VLongitudinalStringDecay::vectorMesonMix
protected

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