Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/shortlived/src/G4ExcitedSigmaConstructor.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /particles/shortlived/src/G4ExcitedSigmaConstructor.cc (Version 11.3.0) and /particles/shortlived/src/G4ExcitedSigmaConstructor.cc (Version 5.0.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                    <<   3 // * DISCLAIMER                                                       *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th <<   5 // * The following disclaimer summarizes all the specific disclaimers *
  6 // * the Geant4 Collaboration.  It is provided <<   6 // * of contributors to this software. The specific disclaimers,which *
  7 // * conditions of the Geant4 Software License <<   7 // * govern, are listed with their locations in:                      *
  8 // * LICENSE and available at  http://cern.ch/ <<   8 // *   http://cern.ch/geant4/license                                  *
  9 // * include a list of copyright holders.      << 
 10 // *                                                9 // *                                                                  *
 11 // * Neither the authors of this software syst     10 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     11 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     12 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     13 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  <<  14 // * use.                                                             *
 16 // * for the full disclaimer and the limitatio << 
 17 // *                                               15 // *                                                                  *
 18 // * This  code  implementation is the result  <<  16 // * This  code  implementation is the  intellectual property  of the *
 19 // * technical work of the GEANT4 collaboratio <<  17 // * GEANT4 collaboration.                                            *
 20 // * By using,  copying,  modifying or  distri <<  18 // * By copying,  distributing  or modifying the Program (or any work *
 21 // * any work based  on the software)  you  ag <<  19 // * based  on  the Program)  you indicate  your  acceptance of  this *
 22 // * use  in  resulting  scientific  publicati <<  20 // * statement, and all its terms.                                    *
 23 // * acceptance of all terms of the Geant4 Sof << 
 24 // *******************************************     21 // ********************************************************************
 25 //                                                 22 //
                                                   >>  23 //
                                                   >>  24 // $Id: G4ExcitedSigmaConstructor.cc,v 1.7 2002/11/19 11:49:24 jwellisc Exp $
                                                   >>  25 // GEANT4 tag $Name: geant4-05-00 $
                                                   >>  26 //
                                                   >>  27 // 
 26 // -------------------------------------------     28 // --------------------------------------------------------------
 27 //  GEANT 4 class implementation file          <<  29 //  GEANT 4 class implementation file 
 28 //                                                 30 //
 29 //      History: first implementation, based o     31 //      History: first implementation, based on object model of
 30 //      10 oct 1998  H.Kurashige                   32 //      10 oct 1998  H.Kurashige
 31 //                                             << 
 32 //      Update mass and width following PDG 20 << 
 33 //        4 nov 2023 S.Okada                   << 
 34 // -------------------------------------------     33 // ---------------------------------------------------------------
 35                                                    34 
                                                   >>  35 
 36 #include "G4ExcitedSigmaConstructor.hh"            36 #include "G4ExcitedSigmaConstructor.hh"
 37                                                    37 
 38 #include "G4DecayTable.hh"                     <<  38 #include "G4ParticleDefinition.hh"
                                                   >>  39 #include "G4ParticleTable.hh"
                                                   >>  40 #include "G4ShortLivedTable.hh"
 39 #include "G4PhaseSpaceDecayChannel.hh"             41 #include "G4PhaseSpaceDecayChannel.hh"
 40 #include "G4SystemOfUnits.hh"                  << 
 41 #include "G4VDecayChannel.hh"                      42 #include "G4VDecayChannel.hh"
                                                   >>  43 #include "G4DecayTable.hh"
 42                                                    44 
 43 G4ExcitedSigmaConstructor::G4ExcitedSigmaConst <<  45 G4ExcitedSigmaConstructor::G4ExcitedSigmaConstructor():
 44   : G4ExcitedBaryonConstructor(NStates, SigmaI <<  46     G4ExcitedBaryonConstructor(NStates, SigmaIsoSpin)
 45 {}                                             <<  47 {
 46                                                    48 
 47 G4DecayTable* G4ExcitedSigmaConstructor::Creat <<  49 }
 48                                                <<  50 
                                                   >>  51 G4ExcitedSigmaConstructor::~G4ExcitedSigmaConstructor()
                                                   >>  52 {
                                                   >>  53 }
                                                   >>  54 
                                                   >>  55 G4DecayTable* G4ExcitedSigmaConstructor::CreateDecayTable(
                                                   >>  56                                                  const G4String&  parentName,  
                                                   >>  57                                                  G4int iIso3, 
                                                   >>  58                                                  G4int iState,
                                                   >>  59                                                  G4bool fAnti)
 49 {                                                  60 {
                                                   >>  61 
 50   // create decay table                            62   // create decay table
 51   auto decayTable = new G4DecayTable();        <<  63   G4DecayTable* decayTable =  new G4DecayTable();
 52                                                    64 
 53   G4double br;                                     65   G4double br;
 54   if ((br = bRatio[iState][NK]) > 0.0) {       <<  66   if ( (br=bRatio[iState][NK]) >0.0) {
 55     AddNKMode(decayTable, parentName, br, iIso <<  67     AddNKMode( decayTable, parentName, br, iIso3, fAnti);
 56   }                                                68   }
 57                                                    69 
 58   if ((br = bRatio[iState][NKStar]) > 0.0) {   <<  70   if ( (br=bRatio[iState][NKStar]) >0.0) {
 59     AddNKStarMode(decayTable, parentName, br,  <<  71     AddNKStarMode( decayTable, parentName, br, iIso3, fAnti);
 60   }                                                72   }
 61                                                    73 
 62   if ((br = bRatio[iState][SigmaPi]) > 0.0) {  <<  74   if ( (br=bRatio[iState][SigmaPi]) >0.0) {
 63     AddSigmaPiMode(decayTable, parentName, br, <<  75     AddSigmaPiMode( decayTable, parentName, br, iIso3, fAnti);
 64   }                                                76   }
 65                                                    77 
 66   if ((br = bRatio[iState][SigmaStarPi]) > 0.0 <<  78   if ( (br=bRatio[iState][SigmaStarPi]) >0.0) {
 67     AddSigmaStarPiMode(decayTable, parentName, <<  79     AddSigmaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
 68   }                                                80   }
 69                                                    81 
 70   if ((br = bRatio[iState][LambdaPi]) > 0.0) { <<  82   if ( (br=bRatio[iState][LambdaPi]) >0.0) {
 71     AddLambdaPiMode(decayTable, parentName, br <<  83     AddLambdaPiMode( decayTable, parentName, br, iIso3, fAnti);
 72   }                                                84   }
 73                                                    85 
 74   if ((br = bRatio[iState][SigmaEta]) > 0.0) { <<  86   if ( (br=bRatio[iState][SigmaEta]) >0.0) {
 75     AddSigmaEtaMode(decayTable, parentName, br <<  87     AddSigmaEtaMode( decayTable, parentName, br, iIso3, fAnti);
 76   }                                                88   }
 77                                                    89 
 78   if ((br = bRatio[iState][LambdaStarPi]) > 0. <<  90   if ( (br=bRatio[iState][LambdaStarPi]) >0.0) {
 79     AddLambdaStarPiMode(decayTable, parentName <<  91     AddLambdaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
 80   }                                                92   }
 81                                                    93 
 82   if ((br = bRatio[iState][DeltaK]) > 0.0) {   <<  94   if ( (br=bRatio[iState][DeltaK]) >0.0) {
 83     AddDeltaKMode(decayTable, parentName, br,  <<  95     AddDeltaKMode( decayTable, parentName, br, iIso3, fAnti);
 84   }                                                96   }
 85                                                    97 
 86   return decayTable;                           <<  98   return  decayTable;
 87 }                                                  99 }
 88                                                   100 
 89 G4DecayTable* G4ExcitedSigmaConstructor::AddSi << 101 G4DecayTable*  G4ExcitedSigmaConstructor::AddSigmaEtaMode( 
 90                                                << 102                                    G4DecayTable* decayTable, const G4String& nameParent,
 91                                                << 103                                     G4double br, G4int iIso3, G4bool fAnti)
 92 {                                                 104 {
 93   G4VDecayChannel* mode;                          105   G4VDecayChannel* mode;
 94   //                                           << 106   // 
 95   G4String daughterH;                          << 107   G4String daughterH;  
 96   if (iIso3 == +2) {                           << 108   if (iIso3== +2) {
 97     daughterH = "sigma+";                      << 109      daughterH = "sigma+";
 98   }                                            << 110    } else if (iIso3== 0) {
 99   else if (iIso3 == 0) {                       << 111      daughterH = "sigma0";
100     daughterH = "sigma0";                      << 112    } else if (iIso3== -2) {
101   }                                            << 113      daughterH = "sigma-";
102   else if (iIso3 == -2) {                      << 114    }
103     daughterH = "sigma-";                      << 
104   }                                            << 
105   if (fAnti) daughterH = "anti_" + daughterH;     115   if (fAnti) daughterH = "anti_" + daughterH;
106                                                   116 
107   // create decay channel  [parent    BR     #    117   // create decay channel  [parent    BR     #daughters]
108   mode = new G4PhaseSpaceDecayChannel(namePare << 118   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 119                                            daughterH,"eta");
109   // add decay table                              120   // add decay table
110   decayTable->Insert(mode);                       121   decayTable->Insert(mode);
111                                                   122 
112   return decayTable;                              123   return decayTable;
113 }                                                 124 }
114                                                   125 
115 G4DecayTable* G4ExcitedSigmaConstructor::AddNK << 126 G4DecayTable*  G4ExcitedSigmaConstructor::AddNKMode( 
116                                                << 127                                     G4DecayTable* decayTable, const G4String& nameParent,
117                                                << 128                                     G4double br, G4int iIso3, G4bool fAnti)
                                                   >> 129 
118                                                   130 
119 {                                                 131 {
120   G4VDecayChannel* mode;                          132   G4VDecayChannel* mode;
121                                                   133 
122   G4String daughterN;                             134   G4String daughterN;
123   G4String daughterK;                             135   G4String daughterK;
124   G4double r = 0.;                                136   G4double r = 0.;
125                                                   137 
126   // ------------ N K- ------------            << 138   // ------------ N K- ------------ 
127   // determine daughters                          139   // determine daughters
128   if (iIso3 == +2) {                           << 140   if (iIso3== +2) {
129     r = 0.;                                    << 141     r=0.;
130   }                                            << 142   } else if (iIso3== 0) {
131   else if (iIso3 == 0) {                       << 143     daughterN  = "proton";
132     daughterN = "proton";                      << 144     r = br/2.;
133     r = br / 2.;                               << 145   } else if (iIso3== -2) {
134   }                                            << 146     daughterN  = "neutron";
135   else if (iIso3 == -2) {                      << 
136     daughterN = "neutron";                     << 
137     r = br;                                       147     r = br;
138   }                                               148   }
139   if (!fAnti) {                                   149   if (!fAnti) {
140     daughterK = "kaon-";                          150     daughterK = "kaon-";
141   }                                            << 151   } else {
142   else {                                       << 
143     daughterK = "kaon+";                          152     daughterK = "kaon+";
144   }                                            << 153   }  
145   if (fAnti) daughterN = "anti_" + daughterN;     154   if (fAnti) daughterN = "anti_" + daughterN;
146   if (r > 0.) {                                << 155   if (r>0.) {
147     // create decay channel  [parent    BR        156     // create decay channel  [parent    BR     #daughters]
148     mode = new G4PhaseSpaceDecayChannel(namePa << 157     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 158                                         daughterN,daughterK);
149     // add decay table                            159     // add decay table
150     decayTable->Insert(mode);                     160     decayTable->Insert(mode);
151   }                                               161   }
152                                                   162 
153   // ------------ N K0 ------------            << 163   // ------------ N K0 ------------ 
154   // determine daughters                          164   // determine daughters
155   if (iIso3 == +2) {                           << 165   if (iIso3== +2) {
156     daughterN = "proton";                      << 166     daughterN  = "proton";
157     r = br;                                    << 167     r=br;
158   }                                            << 168   } else if (iIso3== 0) {
159   else if (iIso3 == 0) {                       << 169     daughterN  = "neutron";
160     daughterN = "neutron";                     << 170      r = br/2.;
161     r = br / 2.;                               << 171   } else if (iIso3== -2) {
162   }                                            << 
163   else if (iIso3 == -2) {                      << 
164     r = 0.;                                       172     r = 0.;
165   }                                               173   }
166   if (!fAnti) {                                   174   if (!fAnti) {
167     daughterK = "anti_kaon0";                     175     daughterK = "anti_kaon0";
168   }                                            << 176   } else {
169   else {                                       << 177 
170     daughterK = "kaon0";                          178     daughterK = "kaon0";
171   }                                               179   }
172   if (fAnti) daughterN = "anti_" + daughterN;     180   if (fAnti) daughterN = "anti_" + daughterN;
173   if (r > 0.) {                                << 181   if (r>0.) {
174     // create decay channel  [parent    BR        182     // create decay channel  [parent    BR     #daughters]
175     mode = new G4PhaseSpaceDecayChannel(namePa << 183     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 184                                         daughterN,daughterK);
176     // add decay table                            185     // add decay table
177     decayTable->Insert(mode);                     186     decayTable->Insert(mode);
178   }                                               187   }
179                                                   188 
180   return decayTable;                              189   return decayTable;
181 }                                                 190 }
182                                                   191 
183 G4DecayTable* G4ExcitedSigmaConstructor::AddDe << 192 G4DecayTable*  G4ExcitedSigmaConstructor::AddDeltaKMode( 
184                                                << 193                                     G4DecayTable* decayTable, const G4String& nameParent,
185                                                << 194                                     G4double br, G4int iIso3, G4bool fAnti)
186 {                                                 195 {
187   G4VDecayChannel* mode;                          196   G4VDecayChannel* mode;
188                                                   197 
189   G4String daughterN;                             198   G4String daughterN;
190   G4String daughterK;                             199   G4String daughterK;
191   G4double r = 0.;                                200   G4double r = 0.;
192                                                   201 
193   // ------------ N K- ------------            << 202   // ------------ N K- ------------ 
194   // determine daughters                          203   // determine daughters
195   if (iIso3 == +2) {                           << 204   if (iIso3== +2) {
196     daughterN = "delta++";                     << 205     daughterN  = "delta++";
197     r = 0.75 * br;                             << 206     r=0.75*br;
198   }                                            << 207   } else if (iIso3== 0) {
199   else if (iIso3 == 0) {                       << 208     daughterN  = "delta+";
200     daughterN = "delta+";                      << 209     r = br/2.;
201     r = br / 2.;                               << 210   } else if (iIso3== -2) {
202   }                                            << 211     daughterN  = "delta0";
203   else if (iIso3 == -2) {                      << 212     r = 0.25*br;
204     daughterN = "delta0";                      << 
205     r = 0.25 * br;                             << 
206   }                                               213   }
207   if (!fAnti) {                                   214   if (!fAnti) {
208     daughterK = "kaon-";                          215     daughterK = "kaon-";
209   }                                            << 216   } else {
210   else {                                       << 
211     daughterK = "kaon+";                          217     daughterK = "kaon+";
212   }                                               218   }
213   if (fAnti) daughterN = "anti_" + daughterN;     219   if (fAnti) daughterN = "anti_" + daughterN;
214   if (r > 0.) {                                << 220   if (r>0.) {
215     // create decay channel  [parent    BR        221     // create decay channel  [parent    BR     #daughters]
216     mode = new G4PhaseSpaceDecayChannel(namePa << 222     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 223                                         daughterN,daughterK);
217     // add decay table                            224     // add decay table
218     decayTable->Insert(mode);                     225     decayTable->Insert(mode);
219   }                                               226   }
220                                                   227 
221   // ------------ N K0 ------------            << 228   // ------------ N K0 ------------ 
222   // determine daughters                          229   // determine daughters
223   if (iIso3 == +2) {                           << 230   if (iIso3== +2) {
224     daughterN = "delta+";                      << 231     daughterN  = "delta+";
225     r = 0.25 * br;                             << 232     r=0.25*br;
226   }                                            << 233   } else if (iIso3== 0) {
227   else if (iIso3 == 0) {                       << 234     daughterN  = "delta0";
228     daughterN = "delta0";                      << 235      r = br/2.;
229     r = br / 2.;                               << 236   } else if (iIso3== -2) {
230   }                                            << 237     daughterN  = "delta-";
231   else if (iIso3 == -2) {                      << 238     r=0.75*br;
232     daughterN = "delta-";                      << 
233     r = 0.75 * br;                             << 
234   }                                               239   }
235   if (!fAnti) {                                   240   if (!fAnti) {
236     daughterK = "anti_kaon0";                     241     daughterK = "anti_kaon0";
237   }                                            << 242   } else {
238   else {                                       << 
239     daughterK = "kaon0";                          243     daughterK = "kaon0";
240   }                                               244   }
241   if (fAnti) daughterN = "anti_" + daughterN;     245   if (fAnti) daughterN = "anti_" + daughterN;
242   if (r > 0.) {                                << 246   if (r>0.) {
                                                   >> 247 
                                                   >> 248 
243     // create decay channel  [parent    BR        249     // create decay channel  [parent    BR     #daughters]
244     mode = new G4PhaseSpaceDecayChannel(namePa << 250     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 251                                         daughterN,daughterK);
245     // add decay table                            252     // add decay table
246     decayTable->Insert(mode);                     253     decayTable->Insert(mode);
247   }                                               254   }
248                                                   255 
249   return decayTable;                              256   return decayTable;
250 }                                                 257 }
251                                                   258 
252 G4DecayTable* G4ExcitedSigmaConstructor::AddNK << 259 
253                                                << 260 G4DecayTable*  G4ExcitedSigmaConstructor::AddNKStarMode( 
254                                                << 261                                     G4DecayTable* decayTable, const G4String& nameParent,
                                                   >> 262                                     G4double br, G4int iIso3, G4bool fAnti)
255 {                                                 263 {
256   G4VDecayChannel* mode;                          264   G4VDecayChannel* mode;
257                                                   265 
258   G4String daughterN;                             266   G4String daughterN;
259   G4String daughterK;                             267   G4String daughterK;
260   G4double r = 0.;                                268   G4double r = 0.;
261                                                   269 
262   // ------------ N K- ------------            << 270   // ------------ N K- ------------ 
263   // determine daughters                          271   // determine daughters
264   if (iIso3 == +2) {                           << 272   if (iIso3== +2) {
265     r = 0.;                                    << 273 
266   }                                            << 274     r=0.;
267   else if (iIso3 == 0) {                       << 275   } else if (iIso3== 0) {
268     daughterN = "proton";                      << 276     daughterN  = "proton";
269     r = br / 2.;                               << 277     r = br/2.;
270   }                                            << 278   } else if (iIso3== -2) {
271   else if (iIso3 == -2) {                      << 279     daughterN  = "neutron";
272     daughterN = "neutron";                     << 
273     r = br;                                       280     r = br;
274   }                                               281   }
275   if (!fAnti) {                                   282   if (!fAnti) {
276     daughterK = "k_star-";                        283     daughterK = "k_star-";
277   }                                            << 284   } else {
278   else {                                       << 
279     daughterK = "k_star+";                        285     daughterK = "k_star+";
280   }                                               286   }
281   if (fAnti) daughterN = "anti_" + daughterN;     287   if (fAnti) daughterN = "anti_" + daughterN;
282   if (r > 0.) {                                << 288   if (r>0.) {
283     // create decay channel  [parent    BR        289     // create decay channel  [parent    BR     #daughters]
284     mode = new G4PhaseSpaceDecayChannel(namePa << 290     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 291                                         daughterN,daughterK);
285     // add decay table                            292     // add decay table
286     decayTable->Insert(mode);                     293     decayTable->Insert(mode);
287   }                                               294   }
288                                                   295 
289   // ------------ N K0 ------------            << 296   // ------------ N K0 ------------ 
290                                                   297 
291   // determine daughters                          298   // determine daughters
292   if (iIso3 == +2) {                           << 299   if (iIso3== +2) {
293     daughterN = "proton";                      << 300     daughterN  = "proton";
294     r = br;                                    << 301     r=br;
295   }                                            << 302   } else if (iIso3== 0) {
296   else if (iIso3 == 0) {                       << 303     daughterN  = "neutron";
297     daughterN = "neutron";                     << 304     r = br/2.;
298     r = br / 2.;                               << 305   } else if (iIso3== -2) {
299   }                                            << 
300   else if (iIso3 == -2) {                      << 
301     r = 0.;                                       306     r = 0.;
302   }                                               307   }
303   if (!fAnti) {                                   308   if (!fAnti) {
304     daughterK = "anti_k_star0";                   309     daughterK = "anti_k_star0";
305   }                                            << 310   } else {
306   else {                                       << 
307     daughterK = "k_star0";                        311     daughterK = "k_star0";
308   }                                               312   }
309   if (fAnti) daughterN = "anti_" + daughterN;     313   if (fAnti) daughterN = "anti_" + daughterN;
310   // create decay channel  [parent    BR     #    314   // create decay channel  [parent    BR     #daughters]
311   if (r > 0.) {                                << 315   mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
312     mode = new G4PhaseSpaceDecayChannel(namePa << 316                                            daughterN,daughterK);
313     // add decay table                         << 317   // add decay table
314     decayTable->Insert(mode);                  << 318   decayTable->Insert(mode);
315   }                                            << 319 
316                                                   320 
317   return decayTable;                              321   return decayTable;
318 }                                                 322 }
319                                                   323 
320 G4DecayTable* G4ExcitedSigmaConstructor::AddSi << 324 G4DecayTable*  G4ExcitedSigmaConstructor::AddSigmaPiMode( 
321                                                << 325                                     G4DecayTable* decayTable, const G4String& nameParent,
322                                                << 326                                     G4double br, G4int iIso3, G4bool fAnti)
323 {                                                 327 {
324   G4VDecayChannel* mode;                          328   G4VDecayChannel* mode;
325                                                   329 
326   G4String daughterSigma;                         330   G4String daughterSigma;
327   G4String daughterPi;                            331   G4String daughterPi;
328   G4double r = 0.;                                332   G4double r = 0.;
329                                                   333 
330   // ------------ Sigma+ pi - ------------     << 334   // ------------ Sigma+ pi - ------------ 
331   // determine daughters                          335   // determine daughters
332   if (iIso3 == +2) {                           << 336   if (iIso3== +2) {
333     r = 0.;                                       337     r = 0.;
334   }                                            << 338   } else if (iIso3== 0) {
335   else if (iIso3 == 0) {                       << 
336     daughterSigma = "sigma+";                     339     daughterSigma = "sigma+";
337     r = br / 2.;                               << 340     r = br/2.;
338   }                                            << 341   } else if (iIso3== -2) {
339   else if (iIso3 == -2) {                      << 
340     daughterSigma = "sigma0";                     342     daughterSigma = "sigma0";
341     r = br / 2.;                               << 343     r = br/2.;
342   }                                               344   }
343   if (!fAnti) {                                   345   if (!fAnti) {
344     daughterPi = "pi-";                           346     daughterPi = "pi-";
345   }                                            << 347   } else {
346   else {                                       << 
347     daughterPi = "pi+";                           348     daughterPi = "pi+";
348   }                                               349   }
349   if (fAnti) daughterSigma = "anti_" + daughte    350   if (fAnti) daughterSigma = "anti_" + daughterSigma;
350   if (r > 0.) {                                << 351   if (r>0.) {
351     // create decay channel  [parent    BR        352     // create decay channel  [parent    BR     #daughters]
352     mode = new G4PhaseSpaceDecayChannel(namePa << 353     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 354                                         daughterSigma,daughterPi);
353     // add decay table                            355     // add decay table
354     decayTable->Insert(mode);                     356     decayTable->Insert(mode);
355   }                                               357   }
356   // ------------ Sigma0 Pi0 ------------      << 358   // ------------ Sigma0 Pi0 ------------ 
357   // determine daughters                          359   // determine daughters
358   if (iIso3 == +2) {                           << 360   if (iIso3== +2) {
359     daughterSigma = "sigma+";                     361     daughterSigma = "sigma+";
360     r = br / 2.;                               << 362     r = br/2.;
361   }                                            << 363   } else if (iIso3== 0) {
362   else if (iIso3 == 0) {                       << 
363     r = 0.;                                       364     r = 0.;
364   }                                            << 365   } else if (iIso3== -2) {
365   else if (iIso3 == -2) {                      << 
366     daughterSigma = "sigma-";                     366     daughterSigma = "sigma-";
367                                                   367 
368     r = br / 2.;                               << 368 
                                                   >> 369     r = br/2.;
369   }                                               370   }
370   daughterPi = "pi0";                             371   daughterPi = "pi0";
371   if (fAnti) daughterSigma = "anti_" + daughte    372   if (fAnti) daughterSigma = "anti_" + daughterSigma;
372   if (r > 0.) {                                << 373   if (r>0.) {
373     // create decay channel  [parent    BR        374     // create decay channel  [parent    BR     #daughters]
374     mode = new G4PhaseSpaceDecayChannel(namePa << 375     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 376                                         daughterSigma,daughterPi);
375     // add decay table                            377     // add decay table
376     decayTable->Insert(mode);                     378     decayTable->Insert(mode);
377   }                                               379   }
378                                                   380 
379   // ------------ Sigma- pi + ------------     << 381   // ------------ Sigma- pi + ------------ 
380   // determine daughters                          382   // determine daughters
381   if (iIso3 == +2) {                           << 383   if (iIso3== +2) {
382     daughterSigma = "sigma0";                     384     daughterSigma = "sigma0";
383     r = br / 2.;                               << 385     r = br/2.;
384   }                                            << 386   } else if (iIso3== 0) {
385   else if (iIso3 == 0) {                       << 
386     daughterSigma = "sigma-";                     387     daughterSigma = "sigma-";
387     r = br / 2.;                               << 388     r = br/2.;
388   }                                            << 389   } else if (iIso3== -2) {
389   else if (iIso3 == -2) {                      << 
390     r = 0.;                                       390     r = 0.;
391   }                                               391   }
392   if (!fAnti) {                                   392   if (!fAnti) {
393     daughterPi = "pi+";                           393     daughterPi = "pi+";
394   }                                            << 394   } else {
395   else {                                       << 
396     daughterPi = "pi-";                           395     daughterPi = "pi-";
397   }                                               396   }
398   if (fAnti) daughterSigma = "anti_" + daughte    397   if (fAnti) daughterSigma = "anti_" + daughterSigma;
399   if (r > 0.) {                                << 398   if (r>0.) {
400     // create decay channel  [parent    BR        399     // create decay channel  [parent    BR     #daughters]
401     mode = new G4PhaseSpaceDecayChannel(namePa << 400     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 401                                         daughterSigma,daughterPi);
402     // add decay table                            402     // add decay table
403     decayTable->Insert(mode);                     403     decayTable->Insert(mode);
404   }                                               404   }
405                                                   405 
406   return decayTable;                              406   return decayTable;
407 }                                                 407 }
408                                                   408 
409 G4DecayTable* G4ExcitedSigmaConstructor::AddSi << 409 
410                                                << 410 G4DecayTable*  G4ExcitedSigmaConstructor::AddSigmaStarPiMode( 
411                                                << 411                                     G4DecayTable* decayTable, const G4String& nameParent,
                                                   >> 412                                     G4double br, G4int iIso3, G4bool fAnti)
412 {                                                 413 {
413   G4VDecayChannel* mode;                          414   G4VDecayChannel* mode;
414                                                   415 
                                                   >> 416 
415   G4String daughterSigma;                         417   G4String daughterSigma;
416   G4String daughterPi;                            418   G4String daughterPi;
417   G4double r = 0.;                                419   G4double r = 0.;
418                                                   420 
419   // ------------ Sigma+ pi - ------------     << 421   // ------------ Sigma+ pi - ------------ 
420   // determine daughters                          422   // determine daughters
421   if (iIso3 == +2) {                           << 423   if (iIso3== +2) {
422     r = 0.;                                       424     r = 0.;
423   }                                            << 425   } else if (iIso3== 0) {
424   else if (iIso3 == 0) {                       << 
425     daughterSigma = "sigma(1385)+";               426     daughterSigma = "sigma(1385)+";
426     r = br / 2.;                               << 427     r = br/2.;
427   }                                            << 428   } else if (iIso3== -2) {
428   else if (iIso3 == -2) {                      << 
429     daughterSigma = "sigma(1385)0";               429     daughterSigma = "sigma(1385)0";
430     r = br / 2.;                               << 430     r = br/2.;
431   }                                               431   }
432   if (!fAnti) {                                   432   if (!fAnti) {
433     daughterPi = "pi-";                           433     daughterPi = "pi-";
434   }                                            << 434   } else {
435   else {                                       << 
436     daughterPi = "pi+";                           435     daughterPi = "pi+";
437   }                                               436   }
438   if (fAnti) daughterSigma = "anti_" + daughte    437   if (fAnti) daughterSigma = "anti_" + daughterSigma;
439   if (r > 0.) {                                << 438   if (r>0.) {
440     // create decay channel  [parent    BR        439     // create decay channel  [parent    BR     #daughters]
441     mode = new G4PhaseSpaceDecayChannel(namePa << 440     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 441                                         daughterSigma,daughterPi);
442     // add decay table                            442     // add decay table
443     decayTable->Insert(mode);                     443     decayTable->Insert(mode);
444   }                                               444   }
445   // ------------ Sigma0 Pi0 ------------      << 445   // ------------ Sigma0 Pi0 ------------ 
446   // determine daughters                          446   // determine daughters
447   if (iIso3 == +2) {                           << 447   if (iIso3== +2) {
448     daughterSigma = "sigma(1385)+";               448     daughterSigma = "sigma(1385)+";
449     r = br / 2.;                               << 449     r = br/2.;
450   }                                            << 450   } else if (iIso3== 0) {
451   else if (iIso3 == 0) {                       << 
452     r = 0.;                                       451     r = 0.;
453   }                                            << 452   } else if (iIso3== -2) {
454   else if (iIso3 == -2) {                      << 
455     daughterSigma = "sigma(1385)-";               453     daughterSigma = "sigma(1385)-";
456     r = br / 2.;                               << 454     r = br/2.;
457   }                                               455   }
458   daughterPi = "pi0";                             456   daughterPi = "pi0";
459   if (fAnti) daughterSigma = "anti_" + daughte    457   if (fAnti) daughterSigma = "anti_" + daughterSigma;
460   if (r > 0.) {                                << 458   if (r>0.) {
461     // create decay channel  [parent    BR        459     // create decay channel  [parent    BR     #daughters]
462     mode = new G4PhaseSpaceDecayChannel(namePa << 460     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 461                                         daughterSigma,daughterPi);
463                                                   462 
464     // add decay table                            463     // add decay table
465     decayTable->Insert(mode);                     464     decayTable->Insert(mode);
466   }                                               465   }
467                                                   466 
468   // ------------ Sigma- pi + ------------     << 467   // ------------ Sigma- pi + ------------ 
469   // determine daughters                          468   // determine daughters
470   if (iIso3 == +2) {                           << 469   if (iIso3== +2) {
471     daughterSigma = "sigma(1385)0";               470     daughterSigma = "sigma(1385)0";
472     r = br / 2.;                               << 471     r = br/2.;
473   }                                            << 472   } else if (iIso3== 0) {
474   else if (iIso3 == 0) {                       << 
475     daughterSigma = "sigma(1385)-";               473     daughterSigma = "sigma(1385)-";
476     r = br / 2.;                               << 474     r = br/2.;
477   }                                            << 475   } else if (iIso3== -2) {
478   else if (iIso3 == -2) {                      << 
479     r = 0.;                                       476     r = 0.;
480   }                                               477   }
481   if (!fAnti) {                                   478   if (!fAnti) {
482     daughterPi = "pi+";                           479     daughterPi = "pi+";
483   }                                            << 480   } else {
484   else {                                       << 
485     daughterPi = "pi-";                           481     daughterPi = "pi-";
486   }                                               482   }
487   if (fAnti) daughterSigma = "anti_" + daughte    483   if (fAnti) daughterSigma = "anti_" + daughterSigma;
488   if (r > 0.) {                                << 484   if (r>0.) {
489     // create decay channel  [parent    BR        485     // create decay channel  [parent    BR     #daughters]
490                                                   486 
491     mode = new G4PhaseSpaceDecayChannel(namePa << 487     mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 488                                         daughterSigma,daughterPi);
492     // add decay table                            489     // add decay table
493     decayTable->Insert(mode);                     490     decayTable->Insert(mode);
494   }                                               491   }
495                                                   492 
496   return decayTable;                              493   return decayTable;
497 }                                                 494 }
498                                                   495 
499 G4DecayTable* G4ExcitedSigmaConstructor::AddLa << 496 G4DecayTable*  G4ExcitedSigmaConstructor::AddLambdaPiMode( 
500                                                << 497                                     G4DecayTable* decayTable, const G4String& nameParent,
501                                                << 498                                     G4double br, G4int iIso3, G4bool fAnti)
502 {                                                 499 {
503   G4VDecayChannel* mode;                          500   G4VDecayChannel* mode;
504                                                   501 
505   G4String daughterLambda = "lambda";             502   G4String daughterLambda = "lambda";
506   G4String daughterPi;                            503   G4String daughterPi;
507                                                   504 
508   // determine daughters                          505   // determine daughters
509   if (iIso3 == +2) {                           << 506   if (iIso3== +2) {
510     if (!fAnti) {                                 507     if (!fAnti) {
511       daughterPi = "pi+";                         508       daughterPi = "pi+";
512     }                                          << 509     } else {
513     else {                                     << 
514       daughterPi = "pi-";                         510       daughterPi = "pi-";
515     }                                             511     }
516   }                                            << 512   } else if (iIso3== 0) {
517   else if (iIso3 == 0) {                       << 
518     daughterPi = "pi0";                           513     daughterPi = "pi0";
519   }                                            << 514   } else if (iIso3== -2) {
520   else if (iIso3 == -2) {                      << 
521     if (!fAnti) {                                 515     if (!fAnti) {
522       daughterPi = "pi-";                         516       daughterPi = "pi-";
523     }                                          << 517     } else {
524     else {                                     << 
525       daughterPi = "pi+";                         518       daughterPi = "pi+";
526     }                                             519     }
527   }                                               520   }
528   if (fAnti) daughterLambda = "anti_" + daught    521   if (fAnti) daughterLambda = "anti_" + daughterLambda;
529   // create decay channel  [parent    BR     #    522   // create decay channel  [parent    BR     #daughters]
530   mode = new G4PhaseSpaceDecayChannel(namePare << 523   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 524                                            daughterLambda, daughterPi);
531   // add decay table                              525   // add decay table
532   decayTable->Insert(mode);                       526   decayTable->Insert(mode);
533                                                   527 
534   return decayTable;                              528   return decayTable;
535 }                                                 529 }
536                                                   530 
537 G4DecayTable* G4ExcitedSigmaConstructor::AddLa << 531 G4DecayTable*  G4ExcitedSigmaConstructor::AddLambdaStarPiMode( 
538                                                << 532                                     G4DecayTable* decayTable, const G4String& nameParent,
539                                                << 533                                     G4double br, G4int iIso3, G4bool fAnti)
540 {                                                 534 {
541   G4VDecayChannel* mode;                          535   G4VDecayChannel* mode;
542                                                   536 
543   G4String daughterLambda = "lambda(1405)";       537   G4String daughterLambda = "lambda(1405)";
544   G4String daughterPi;                            538   G4String daughterPi;
545                                                   539 
546   // determine daughters                          540   // determine daughters
547   if (iIso3 == +2) {                           << 541   if (iIso3== +2) {
548     if (!fAnti) {                                 542     if (!fAnti) {
549       daughterPi = "pi+";                         543       daughterPi = "pi+";
550     }                                          << 544     } else {
551     else {                                     << 
552       daughterPi = "pi-";                         545       daughterPi = "pi-";
553     }                                             546     }
554   }                                            << 547   } else if (iIso3== 0) {
555   else if (iIso3 == 0) {                       << 
556     daughterPi = "pi0";                           548     daughterPi = "pi0";
557   }                                            << 549   } else if (iIso3== -2) {
558   else if (iIso3 == -2) {                      << 
559     if (!fAnti) {                                 550     if (!fAnti) {
560       daughterPi = "pi-";                         551       daughterPi = "pi-";
561     }                                          << 552     } else {
562     else {                                     << 
563       daughterPi = "pi+";                         553       daughterPi = "pi+";
564     }                                             554     }
565   }                                               555   }
566                                                   556 
567   if (fAnti) daughterLambda = "anti_" + daught    557   if (fAnti) daughterLambda = "anti_" + daughterLambda;
568   // create decay channel  [parent    BR     #    558   // create decay channel  [parent    BR     #daughters]
569   mode = new G4PhaseSpaceDecayChannel(namePare << 559   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 560                                            daughterLambda,daughterPi);
570   // add decay table                              561   // add decay table
571   decayTable->Insert(mode);                       562   decayTable->Insert(mode);
572                                                   563 
573   return decayTable;                              564   return decayTable;
574 }                                                 565 }
575                                                   566 
576 G4double G4ExcitedSigmaConstructor::GetMass(G4 << 
577 {                                              << 
578   G4double fmass = mass[iState];               << 
579   if (iState == 0) {                           << 
580     if (iso3 == +2)                            << 
581       fmass -= 0.9 * MeV;  // sigma+           << 
582     else if (iso3 == -2)                       << 
583       fmass += 3.5 * MeV;  // sigma-           << 
584   }                                            << 
585   return fmass;                                << 
586 }                                              << 
587                                                << 
588 G4double G4ExcitedSigmaConstructor::GetWidth(G << 
589 {                                              << 
590   G4double fw = width[iState];                 << 
591   if (iState == 0) {                           << 
592     if (iso3 == +2)                            << 
593       fw = 36.0 * MeV;  // sigma+              << 
594     else if (iso3 == -2)                       << 
595       fw = 39.4 * MeV;  // sigma-              << 
596   }                                            << 
597   return fw;                                   << 
598 }                                              << 
599                                                << 
600 // clang-format off                            << 
601                                                << 
602 const char* G4ExcitedSigmaConstructor::name[]     567 const char* G4ExcitedSigmaConstructor::name[] = {
603   "sigma(1385)","sigma(1660)","sigma(1670)","s    568   "sigma(1385)","sigma(1660)","sigma(1670)","sigma(1750)","sigma(1775)",
604   "sigma(1915)","sigma(1940)","sigma(2030)"       569   "sigma(1915)","sigma(1940)","sigma(2030)"
605 };                                                570 };
606                                                   571 
607 const G4double G4ExcitedSigmaConstructor::mass    572 const G4double G4ExcitedSigmaConstructor::mass[] = {
608  1.3837*GeV, 1.660*GeV, 1.675*GeV, 1.750*GeV,  << 573   1.384*GeV, 1.660*GeV, 1.670*GeV, 1.750*GeV,  1.775*GeV, 
609   1.915*GeV, 1.940*GeV, 2.030*GeV                 574   1.915*GeV, 1.940*GeV, 2.030*GeV
610 };                                                575 };
611                                                   576 
612 const G4double G4ExcitedSigmaConstructor::widt    577 const G4double G4ExcitedSigmaConstructor::width[] = {
613    36.0*MeV, 200.0*MeV,  70.0*MeV, 150.0*MeV,  << 578    36.0*MeV, 100.0*MeV,  60.0*MeV,  90.0*MeV, 120.0*MeV,
614   120.0*MeV, 250.0*MeV, 180.0*MeV              << 579   120.0*MeV, 220.0*MeV, 180.0*MeV
615 };                                                580 };
616                                                   581 
617 const G4int G4ExcitedSigmaConstructor::iSpin[]    582 const G4int G4ExcitedSigmaConstructor::iSpin[] = {
618     3,   1,   3,   1,   5,                        583     3,   1,   3,   1,   5,
619     5,   3,   7                                   584     5,   3,   7
620 };                                                585 };
621                                                   586 
622 const G4int G4ExcitedSigmaConstructor::iParity    587 const G4int G4ExcitedSigmaConstructor::iParity[] = {
623   +1,  +1,   -1,  -1,  -1,                        588   +1,  +1,   -1,  -1,  -1,
624   +1,  -1,   +1                                   589   +1,  -1,   +1
625 };                                                590 };
626                                                   591 
627                                                   592 
628 const G4int G4ExcitedSigmaConstructor::encodin    593 const G4int G4ExcitedSigmaConstructor::encodingOffset[] = {
629       0, 10000, 10000, 20000,     0,              594       0, 10000, 10000, 20000,     0,
630   10000, 20000,     0                             595   10000, 20000,     0
631 };                                                596 };
632                                                   597 
633 const G4double G4ExcitedSigmaConstructor::bRat << 598 const G4double G4ExcitedSigmaConstructor::bRatio[ G4ExcitedSigmaConstructor::NStates ][ G4ExcitedSigmaConstructor::NumberOfDecayModes] = 
634 {                                                 599 {
635    {   0.0,  0.0, 0.12,  0.0, 0.88,   0.0,   0 << 600    {   0.0,  0.0, 0.12,  0.0, 0.88,   0.0,   0.0,   0.0}, 
636    {  0.30,  0.0, 0.35,  0.0, 0.35,   0.0,   0 << 601    {  0.30,  0.0, 0.35,  0.0, 0.35,   0.0,   0.0,   0.0}, 
637    {  0.15,  0.0, 0.70,  0.0, 0.15,   0.0,   0 << 602    {  0.15,  0.0, 0.70,  0.0, 0.15,   0.0,   0.0,   0.0}, 
638    {  0.40,  0.0, 0.05,  0.0,  0.0,  0.55,   0 << 603    {  0.40,  0.0, 0.05,  0.0,  0.0,  0.55,   0.0,   0.0}, 
639    {  0.40,  0.0, 0.04, 0.10, 0.23,   0.0,  0. << 604    {  0.40,  0.0, 0.04, 0.10, 0.23,   0.0,  0.23,   0.0}, 
640    {  0.15,  0.0, 0.40, 0.05, 0.40,   0.0,   0 << 605    {  0.15,  0.0, 0.40, 0.05, 0.40,   0.0,   0.0,   0.0}, 
641    {  0.10, 0.15, 0.15, 0.15, 0.15,   0.0,  0. << 606    {  0.10, 0.15, 0.15, 0.15, 0.15,   0.0,  0.15,  0.15}, 
642    {  0.20, 0.04, 0.10, 0.10, 0.20,   0.0,  0. << 607    {  0.20, 0.04, 0.10, 0.10, 0.20,   0.0,  0.18,  0.18} 
643                                                   608 
644 };                                                609 };
                                                   >> 610 
                                                   >> 611 
                                                   >> 612 
                                                   >> 613 
                                                   >> 614 
                                                   >> 615 
                                                   >> 616 
                                                   >> 617 
                                                   >> 618 
                                                   >> 619 
                                                   >> 620 
645                                                   621