Geant4  10.02.p03
G4ExcitedXiConstructor Class Reference

#include <G4ExcitedXiConstructor.hh>

Inheritance diagram for G4ExcitedXiConstructor:
Collaboration diagram for G4ExcitedXiConstructor:

Public Types

enum  { NStates = 5 }
 
enum  { NumberOfDecayModes = 4 }
 

Public Member Functions

 G4ExcitedXiConstructor ()
 
virtual ~G4ExcitedXiConstructor ()
 
- Public Member Functions inherited from G4ExcitedBaryonConstructor
 G4ExcitedBaryonConstructor (G4int nStates=0, G4int isoSpin=0)
 
virtual ~G4ExcitedBaryonConstructor ()
 
virtual void Construct (G4int indexOfState=-1)
 

Protected Member Functions

virtual G4bool Exist (G4int)
 
virtual G4int GetQuarkContents (G4int, G4int)
 
virtual G4String GetName (G4int iIso3, G4int iState)
 
virtual G4String GetMultipletName (G4int iState)
 
virtual G4double GetMass (G4int state, G4int iso)
 
virtual G4double GetWidth (G4int state, G4int iso)
 
virtual G4int GetiSpin (G4int iState)
 
virtual G4int GetiParity (G4int iState)
 
virtual G4int GetEncodingOffset (G4int iState)
 
virtual G4DecayTableCreateDecayTable (const G4String &name, G4int iIso3, G4int iState, G4bool fAnti=false)
 
- Protected Member Functions inherited from G4ExcitedBaryonConstructor
virtual void ConstructParticle (G4int indexOfState)
 
virtual void ConstructAntiParticle (G4int indexOfState)
 
virtual G4double GetCharge (G4int iIsoSpin3)
 
virtual G4int GetEncoding (G4int iIsoSpin3, G4int idxState)
 

Private Types

enum  { XiIsoSpin = 1 }
 
enum  { XiPi =0, XiGamma =1, LambdaK =2, SigmaK =3 }
 

Private Member Functions

G4DecayTableAddXiPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddXiGammaMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddLambdaKMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddSigmaKMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 

Static Private Attributes

static const char * name [NStates]
 
static const G4double mass [NStates]
 
static const G4double width [NStates]
 
static const G4int iSpin [NStates]
 
static const G4int iParity [NStates]
 
static const G4int encodingOffset [NStates]
 
static const G4double bRatio [NStates][NumberOfDecayModes]
 

Additional Inherited Members

- Protected Attributes inherited from G4ExcitedBaryonConstructor
G4int NumberOfStates
 
G4int iIsoSpin
 
const G4String type
 
const G4int iConjugation
 
const G4int iGParity
 
const G4int leptonNumber
 
const G4int baryonNumber
 

Detailed Description

Definition at line 43 of file G4ExcitedXiConstructor.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NStates 

Definition at line 78 of file G4ExcitedXiConstructor.hh.

◆ anonymous enum

anonymous enum
private
Enumerator
XiIsoSpin 

Definition at line 80 of file G4ExcitedXiConstructor.hh.

◆ anonymous enum

anonymous enum
Enumerator
NumberOfDecayModes 

Definition at line 91 of file G4ExcitedXiConstructor.hh.

◆ anonymous enum

Constructor & Destructor Documentation

◆ G4ExcitedXiConstructor()

G4ExcitedXiConstructor::G4ExcitedXiConstructor ( )

◆ ~G4ExcitedXiConstructor()

G4ExcitedXiConstructor::~G4ExcitedXiConstructor ( )
virtual

Definition at line 53 of file G4ExcitedXiConstructor.cc.

54 {
55 }

Member Function Documentation

◆ AddLambdaKMode()

G4DecayTable * G4ExcitedXiConstructor::AddLambdaKMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 110 of file G4ExcitedXiConstructor.cc.

115 {
116  G4VDecayChannel* mode;
117 
118  G4String lambda = "lambda";
119  G4String daughterK;
120  G4double r = 0.;
121 
122  // ------------ Lambda K- ------------
123  // determine daughters
124  if (iIso3 == +1) {
125  if (!fAnti) {
126  daughterK = "kaon0";
127  } else {
128  daughterK = "anti_kaon0";
129  }
130  r = br;
131  } else if (iIso3 == -1) {
132  if (!fAnti) {
133  daughterK = "kaon-";
134  } else {
135  daughterK = "kaon+";
136  }
137  r = br;
138  }
139  if (fAnti) lambda = "anti_" + lambda;
140  if (r>0.) {
141  // create decay channel [parent BR #daughters]
142  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
143  lambda,daughterK);
144  // add decay table
145  decayTable->Insert(mode);
146  }
147 
148  return decayTable;
149 }
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddSigmaKMode()

G4DecayTable * G4ExcitedXiConstructor::AddSigmaKMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 151 of file G4ExcitedXiConstructor.cc.

154 {
155  G4VDecayChannel* mode;
156 
157  G4String daughterH;
158  G4String daughterK;
159  G4double r = 0.;
160 
161  // ------------ Sigma K- ------------
162  // determine daughters
163  if (iIso3== +1) {
164  daughterH = "sigma+";
165  r= br/2.;
166  } else if (iIso3== -1) {
167  daughterH = "sigma0";
168  r = br/2.;
169  }
170  if (!fAnti) {
171  daughterK = "kaon-";
172  } else {
173  daughterK = "kaon+";
174  }
175  if (fAnti) daughterH = "anti_" + daughterH;
176  if (r>0.) {
177  // create decay channel [parent BR #daughters]
178  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
179  daughterH,daughterK);
180  // add decay table
181  decayTable->Insert(mode);
182  }
183 
184  // ------------ Sigma K0 ------------
185  // determine daughters
186  if (iIso3 == +1) {
187  daughterH = "sigma0";
188  r= br/2.;
189  } else if (iIso3 == -1) {
190  daughterH = "sigma-";
191  r = br/2.;
192  }
193  if (!fAnti) {
194  daughterK = "anti_kaon0";
195  } else {
196  daughterK = "kaon0";
197  }
198  if (fAnti) daughterH = "anti_" + daughterH;
199  if (r>0.) {
200  // create decay channel [parent BR #daughters]
201  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
202  daughterH,daughterK);
203  // add decay table
204  decayTable->Insert(mode);
205  }
206 
207  return decayTable;
208 }
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddXiGammaMode()

G4DecayTable * G4ExcitedXiConstructor::AddXiGammaMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 87 of file G4ExcitedXiConstructor.cc.

90 {
91  G4VDecayChannel* mode;
92  //
93  G4String daughterH;
94  if (iIso3== +1) {
95  daughterH = "xi0";
96  } else if (iIso3==-1) {
97  daughterH = "xi-";
98  }
99  if (fAnti) daughterH = "anti_" + daughterH;
100 
101  // create decay channel [parent BR #daughters]
102  mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
103  daughterH,"gamma");
104  // add decay table
105  decayTable->Insert(mode);
106 
107  return decayTable;
108 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddXiPiMode()

G4DecayTable * G4ExcitedXiConstructor::AddXiPiMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 210 of file G4ExcitedXiConstructor.cc.

213 {
214  G4VDecayChannel* mode;
215 
216  G4String daughterXi;
217  G4String daughterPi;
218  G4double r = 0.;
219 
220  // ------------ Xi pi- ------------
221  // determine daughters
222  if (iIso3== +1) {
223  r = 0.;
224  } else if (iIso3 == -1) {
225  daughterXi = "xi0";
226  r = br/2.;
227  }
228  if (!fAnti) {
229  daughterPi = "pi-";
230  } else {
231  daughterPi = "pi+";
232  }
233  if (fAnti) daughterXi = "anti_" + daughterXi;
234  if (r>0.) {
235  // create decay channel [parent BR #daughters]
236  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
237  daughterXi,daughterPi);
238  // add decay table
239  decayTable->Insert(mode);
240  }
241  // ------------ Xi Pi0 ------------
242  // determine daughters
243  if (iIso3== +1) {
244  daughterXi = "xi0";
245  r = br/2.;
246  } else if (iIso3 == -1) {
247  daughterXi = "xi-";
248  r = br/2.;
249  }
250  daughterPi = "pi0";
251  if (fAnti) daughterXi = "anti_" + daughterXi;
252  if (r>0.) {
253  // create decay channel [parent BR #daughters]
254  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
255  daughterXi,daughterPi);
256  // add decay table
257  decayTable->Insert(mode);
258  }
259 
260  // ------------ XI pi + ------------
261  // determine daughters
262  if (iIso3== +1) {
263  daughterXi = "xi-";
264  r = br/2.;
265  } else if (iIso3==-1) {
266  r = 0.;
267  }
268  if (!fAnti) {
269  daughterPi = "pi+";
270  } else {
271  daughterPi = "pi-";
272  }
273  if (fAnti) daughterXi = "anti_" + daughterXi;
274  if (r>0.) {
275  // create decay channel [parent BR #daughters]
276  mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
277  daughterXi,daughterPi);
278  // add decay table
279  decayTable->Insert(mode);
280  }
281 
282  return decayTable;
283 }
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateDecayTable()

G4DecayTable * G4ExcitedXiConstructor::CreateDecayTable ( const G4String name,
G4int  iIso3,
G4int  iState,
G4bool  fAnti = false 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 57 of file G4ExcitedXiConstructor.cc.

62 {
63 
64  // create decay table
65  G4DecayTable* decayTable = new G4DecayTable();
66 
67  G4double br;
68  if ( (br=bRatio[iState][XiPi]) >0.0) {
69  AddXiPiMode( decayTable, parentName, br, iIso3, fAnti);
70  }
71 
72  if ( (br=bRatio[iState][XiGamma]) >0.0) {
73  AddXiGammaMode( decayTable, parentName, br, iIso3, fAnti);
74  }
75 
76  if ( (br=bRatio[iState][LambdaK]) >0.0) {
77  AddLambdaKMode( decayTable, parentName, br, iIso3, fAnti);
78  }
79 
80  if ( (br=bRatio[iState][SigmaK]) >0.0) {
81  AddSigmaKMode( decayTable, parentName, br, iIso3, fAnti);
82  }
83 
84  return decayTable;
85 }
G4DecayTable * AddSigmaKMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddLambdaKMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
static const G4double bRatio[NStates][NumberOfDecayModes]
G4DecayTable * AddXiGammaMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddXiPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Exist()

virtual G4bool G4ExcitedXiConstructor::Exist ( G4int  )
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 53 of file G4ExcitedXiConstructor.hh.

53 {return true;}
Here is the call graph for this function:

◆ GetEncodingOffset()

G4int G4ExcitedXiConstructor::GetEncodingOffset ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 112 of file G4ExcitedXiConstructor.hh.

113 {
114  return encodingOffset[iState];
115 }
static const G4int encodingOffset[NStates]
Here is the caller graph for this function:

◆ GetiParity()

G4int G4ExcitedXiConstructor::GetiParity ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 106 of file G4ExcitedXiConstructor.hh.

107 {
108  return iParity[iState];
109 }
static const G4int iParity[NStates]
Here is the caller graph for this function:

◆ GetiSpin()

G4int G4ExcitedXiConstructor::GetiSpin ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 100 of file G4ExcitedXiConstructor.hh.

101 {
102  return iSpin[iState];
103 }
static const G4int iSpin[NStates]
Here is the caller graph for this function:

◆ GetMass()

G4double G4ExcitedXiConstructor::GetMass ( G4int  state,
G4int  iso 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 285 of file G4ExcitedXiConstructor.cc.

286 {
287  G4double fm = mass[iState];
288  if ( iState==0 ) {
289  if (iso3== -1) fm = 1.5350*GeV; // xi-
290  }
291  return fm;
292 }
static const double GeV
Definition: G4SIunits.hh:214
static const G4double mass[NStates]
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

◆ GetMultipletName()

G4String G4ExcitedXiConstructor::GetMultipletName ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 140 of file G4ExcitedXiConstructor.hh.

141 {
142  return name[iState];
143 }
static const char * name[NStates]
Here is the caller graph for this function:

◆ GetName()

G4String G4ExcitedXiConstructor::GetName ( G4int  iIso3,
G4int  iState 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 146 of file G4ExcitedXiConstructor.hh.

147 {
148  G4String particle = name[iState];
149  if (iIso3 == +1) {
150  particle += "0";
151  } else if (iIso3 ==-1) {
152  particle += "-";
153  }
154  return particle;
155 }
static const char * name[NStates]
Here is the caller graph for this function:

◆ GetQuarkContents()

G4int G4ExcitedXiConstructor::GetQuarkContents ( G4int  iQ,
G4int  iIso3 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 118 of file G4ExcitedXiConstructor.hh.

119 {
120  G4int quark=0;
121  if ( iQ == 0 ){
122  // s-quark
123  quark = 3;
124  } else if ( iQ == 1 ){
125  // s-quark
126  quark = 3;
127  } else if ( iQ == 2 ){
128  if (iIso3 == +1) {
129  // u-quark
130  quark = 2;
131  } else {
132  // d-quark
133  quark = 1;
134  }
135  }
136  return quark;
137 }
int G4int
Definition: G4Types.hh:78
Here is the caller graph for this function:

◆ GetWidth()

G4double G4ExcitedXiConstructor::GetWidth ( G4int  state,
G4int  iso 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 294 of file G4ExcitedXiConstructor.cc.

295 {
296  G4double fw = width[iState];
297  if ( iState==0 ) {
298  if (iso3== -1) fw = 9.9*MeV; // xi-
299  }
300  return fw;
301 }
static const double MeV
Definition: G4SIunits.hh:211
static const G4double width[NStates]
double G4double
Definition: G4Types.hh:76
Here is the caller graph for this function:

Member Data Documentation

◆ bRatio

const G4double G4ExcitedXiConstructor::bRatio
staticprivate
Initial value:
=
{
{ 0.98, 0.02, 0.0, 0.0},
{ 0.10, 0.0, 0.70, 0.20},
{ 0.15, 0.0, 0.70, 0.15},
{ 0.25, 0.0, 0.50, 0.25},
{ 0.10, 0.0, 0.20, 0.70}
}

Definition at line 95 of file G4ExcitedXiConstructor.hh.

◆ encodingOffset

const G4int G4ExcitedXiConstructor::encodingOffset
staticprivate
Initial value:
= {
0, 20000, 10000, 30000, 10000
}

Definition at line 88 of file G4ExcitedXiConstructor.hh.

◆ iParity

const G4int G4ExcitedXiConstructor::iParity
staticprivate
Initial value:
= {
+1, +1, -1, -1, +1
}

Definition at line 87 of file G4ExcitedXiConstructor.hh.

◆ iSpin

const G4int G4ExcitedXiConstructor::iSpin
staticprivate
Initial value:
= {
3, 3, 3, 3, 5
}

Definition at line 86 of file G4ExcitedXiConstructor.hh.

◆ mass

const G4double G4ExcitedXiConstructor::mass
staticprivate
Initial value:
= {
1.5318*GeV, 1.690*GeV, 1.823*GeV, 1.950*GeV, 2.025*GeV
}

Definition at line 84 of file G4ExcitedXiConstructor.hh.

◆ name

const char * G4ExcitedXiConstructor::name
staticprivate
Initial value:
= {
"xi(1530)", "xi(1690)", "xi(1820)", "xi(1950)", "xi(2030)"
}

Definition at line 83 of file G4ExcitedXiConstructor.hh.

◆ width

const G4double G4ExcitedXiConstructor::width
staticprivate
Initial value:
= {
9.1*MeV, 50.0*MeV, 24.0*MeV, 60.0*MeV, 20.0*MeV
}

Definition at line 85 of file G4ExcitedXiConstructor.hh.


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