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 8.3)


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