Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/shortlived/src/G4ExcitedNucleonConstructor.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/G4ExcitedNucleonConstructor.cc (Version 11.3.0) and /particles/shortlived/src/G4ExcitedNucleonConstructor.cc (Version 10.5.p1)


  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 //
                                                   >>  28 // 
 26 // -------------------------------------------     29 // --------------------------------------------------------------
 27 //  GEANT 4 class implementation file          <<  30 //  GEANT 4 class implementation file 
 28 //      History: first implementation, based o     31 //      History: first implementation, based on object model of
 29 //      10 oct 1998  H.Kurashige                   32 //      10 oct 1998  H.Kurashige
 30 //                                             << 
 31 //      Update mass and width following PDG 20 << 
 32 //        4 nov 2023 S.Okada                   << 
 33 // -------------------------------------------     33 // ---------------------------------------------------------------
 34                                                    34 
                                                   >>  35 
 35 #include "G4ExcitedNucleonConstructor.hh"          36 #include "G4ExcitedNucleonConstructor.hh"
 36                                                    37 
 37 #include "G4DecayTable.hh"                     << 
 38 #include "G4PhaseSpaceDecayChannel.hh"         << 
 39 #include "G4SystemOfUnits.hh"                      38 #include "G4SystemOfUnits.hh"
                                                   >>  39 #include "G4ParticleDefinition.hh"
                                                   >>  40 #include "G4ParticleTable.hh"
                                                   >>  41 #include "G4PhaseSpaceDecayChannel.hh"
 40 #include "G4VDecayChannel.hh"                      42 #include "G4VDecayChannel.hh"
                                                   >>  43 #include "G4DecayTable.hh"
 41                                                    44 
 42 G4ExcitedNucleonConstructor::G4ExcitedNucleonC <<  45 
 43   : G4ExcitedBaryonConstructor(NStates, Nucleo <<  46 G4ExcitedNucleonConstructor::G4ExcitedNucleonConstructor():
 44 {}                                             <<  47     G4ExcitedBaryonConstructor(NStates, NucleonIsoSpin)
                                                   >>  48 {
                                                   >>  49 
                                                   >>  50 }
                                                   >>  51 
                                                   >>  52 G4ExcitedNucleonConstructor::~G4ExcitedNucleonConstructor()
                                                   >>  53 {
                                                   >>  54 }
 45                                                    55 
 46 G4int G4ExcitedNucleonConstructor::GetEncoding     56 G4int G4ExcitedNucleonConstructor::GetEncoding(G4int iIsoSpin3, G4int idxState)
 47 {                                                  57 {
 48   G4int encoding;                                  58   G4int encoding;
 49   // Delta has exceptinal encoding                 59   // Delta has exceptinal encoding
 50   if ((idxState == 1)      // N(1520)          <<  60   if ((idxState==1)||(idxState==6)||(idxState==8)||(idxState==9)||(idxState==12) )  {
 51       || (idxState == 6)   // N(1700)          << 
 52       || (idxState == 8)   // N(1720)          << 
 53       || (idxState == 9)   // N(1900)          << 
 54       || (idxState == 12)) // N(2190)          << 
 55   {                                            << 
 56     encoding = GetEncodingOffset(idxState);        61     encoding = GetEncodingOffset(idxState);
 57     if ((iIsoSpin3 == 3) || (iIsoSpin3 == -3)) <<  62     if ((iIsoSpin3==3)||(iIsoSpin3==-3)) {
 58       // normal encoding                       <<  63       // normal encoding 
 59       encoding += 1000 * GetQuarkContents(0, i <<  64       encoding += 1000*GetQuarkContents(0, iIsoSpin3);
 60       encoding += 100 * GetQuarkContents(1, iI <<  65       encoding +=  100*GetQuarkContents(1, iIsoSpin3);
 61       encoding += 10 * GetQuarkContents(2, iIs <<  66       encoding +=   10*GetQuarkContents(2, iIsoSpin3);
 62     }                                          <<  67     } else if (iIsoSpin3== +1){
 63     else if (iIsoSpin3 == +1) {                <<  68       // 1st <--> 2nd quark 
 64       // 1st <--> 2nd quark                    <<  69       encoding += 1000*GetQuarkContents(0, iIsoSpin3);
 65       encoding += 1000 * GetQuarkContents(0, i <<  70       encoding +=   10*GetQuarkContents(1, iIsoSpin3);
 66       encoding += 10 * GetQuarkContents(1, iIs <<  71       encoding +=  100*GetQuarkContents(2, iIsoSpin3);
 67       encoding += 100 * GetQuarkContents(2, iI <<  72     } else if (iIsoSpin3== -1){
 68     }                                          <<  73       // 1st <--> 0th quark 
 69     else if (iIsoSpin3 == -1) {                <<  74       encoding +=  100*GetQuarkContents(0, iIsoSpin3);
 70       // 1st <--> 0th quark                    <<  75       encoding += 1000*GetQuarkContents(1, iIsoSpin3);
 71       encoding += 100 * GetQuarkContents(0, iI <<  76       encoding +=   10*GetQuarkContents(2, iIsoSpin3);
 72       encoding += 1000 * GetQuarkContents(1, i << 
 73       encoding += 10 * GetQuarkContents(2, iIs << 
 74     }                                              77     }
 75     encoding += GetiSpin(idxState) + 1;        <<  78     encoding += GetiSpin(idxState) +1;
 76   }                                            <<  79   } else {
 77   else                                         << 
 78   {                                            << 
 79     encoding = G4ExcitedBaryonConstructor::Get     80     encoding = G4ExcitedBaryonConstructor::GetEncoding(iIsoSpin3, idxState);
 80   }                                                81   }
 81   return encoding;                                 82   return encoding;
 82 }                                                  83 }
 83                                                    84 
 84 G4DecayTable* G4ExcitedNucleonConstructor::Cre <<  85 G4DecayTable* G4ExcitedNucleonConstructor::CreateDecayTable(
 85                                                <<  86              const G4String&  parentName,  
                                                   >>  87              G4int iIso3, 
                                                   >>  88              G4int iState,
                                                   >>  89              G4bool fAnti)
 86 {                                                  90 {
 87   // create decay table                            91   // create decay table
 88   auto decayTable = new G4DecayTable();        <<  92   G4DecayTable* decayTable =  new G4DecayTable();
 89                                                    93 
 90   G4double br;                                     94   G4double br;
 91   if ((br = bRatio[iState][NGamma]) > 0.0) {   <<  95   if ( (br=bRatio[iState][NGamma]) >0.0) {
 92     AddNGammaMode(decayTable, parentName, br,  <<  96     AddNGammaMode( decayTable, parentName, br, iIso3, fAnti);
 93   }                                                97   }
 94                                                    98 
 95   if ((br = bRatio[iState][NPi]) > 0.0) {      <<  99   if ( (br=bRatio[iState][NPi]) >0.0) {
 96     AddNPiMode(decayTable, parentName, br, iIs << 100     AddNPiMode( decayTable, parentName, br, iIso3, fAnti);
 97   }                                               101   }
 98                                                   102 
 99   if ((br = bRatio[iState][NEta]) > 0.0) {     << 103   if ( (br=bRatio[iState][NEta]) >0.0) {
100     AddNEtaMode(decayTable, parentName, br, iI << 104     AddNEtaMode( decayTable, parentName, br, iIso3, fAnti);
101   }                                               105   }
102                                                   106 
103   if ((br = bRatio[iState][NOmega]) > 0.0) {   << 107   if ( (br=bRatio[iState][NOmega]) >0.0) {
104     AddNOmegaMode(decayTable, parentName, br,  << 108     AddNOmegaMode( decayTable, parentName, br, iIso3, fAnti);
105   }                                               109   }
106                                                   110 
107   if ((br = bRatio[iState][NRho]) > 0.0) {     << 111   if ( (br=bRatio[iState][NRho]) >0.0) {
108     AddNRhoMode(decayTable, parentName, br, iI << 112     AddNRhoMode( decayTable, parentName, br, iIso3, fAnti);
109   }                                               113   }
110                                                   114 
111   if ((br = bRatio[iState][N2Pi]) > 0.0) {     << 115   if ( (br=bRatio[iState][N2Pi]) >0.0) {
112     AddN2PiMode(decayTable, parentName, br, iI << 116     AddN2PiMode( decayTable, parentName, br, iIso3, fAnti);
113   }                                               117   }
114                                                   118 
115   if ((br = bRatio[iState][DeltaPi]) > 0.0) {  << 119   if ( (br=bRatio[iState][DeltaPi]) >0.0) {
116     AddDeltaPiMode(decayTable, parentName, br, << 120     AddDeltaPiMode( decayTable, parentName, br, iIso3, fAnti);
117   }                                               121   }
118                                                   122 
119   if ((br = bRatio[iState][NStarPi]) > 0.0) {  << 123   if ( (br=bRatio[iState][NStarPi]) >0.0) {
120     AddNStarPiMode(decayTable, parentName, br, << 124     AddNStarPiMode( decayTable, parentName, br, iIso3, fAnti);
121   }                                               125   }
122                                                   126 
123   if ((br = bRatio[iState][LambdaK]) > 0.0) {  << 127   if ( (br=bRatio[iState][LambdaK]) >0.0) {
124     AddLambdaKMode(decayTable, parentName, br, << 128     AddLambdaKMode( decayTable, parentName, br, iIso3, fAnti);
125   }                                               129   }
126                                                   130 
127   return decayTable;                           << 131   return  decayTable;
128 }                                                 132 }
129                                                   133 
130 G4DecayTable* G4ExcitedNucleonConstructor::Add << 134 G4DecayTable*  G4ExcitedNucleonConstructor::AddNGammaMode( 
131                                                << 135            G4DecayTable* decayTable, const G4String& nameParent,
132                                                << 136             G4double br, G4int iIso3, G4bool fAnti)
133 {                                                 137 {
134   G4VDecayChannel* mode;                          138   G4VDecayChannel* mode;
135                                                   139 
136   //                                           << 140   // 
137   G4String daughterN;                             141   G4String daughterN;
138   if (iIso3 == +1) {                           << 142   if (iIso3 == +1) { 
139     daughterN = "proton";                      << 143     daughterN = "proton";  
140   }                                            << 144   } else {
141   else {                                       << 145     daughterN = "neutron"; 
142     daughterN = "neutron";                     << 146   } 
143   }                                            << 
144   if (fAnti) daughterN = "anti_" + daughterN;     147   if (fAnti) daughterN = "anti_" + daughterN;
145                                                   148 
146   // create decay channel  [parent    BR     #    149   // create decay channel  [parent    BR     #daughters]
147   mode = new G4PhaseSpaceDecayChannel(namePare << 150   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 151                                            daughterN,"gamma");
148   // add decay table                              152   // add decay table
149   decayTable->Insert(mode);                       153   decayTable->Insert(mode);
150                                                   154 
151   return decayTable;                              155   return decayTable;
152 }                                                 156 }
153                                                   157 
154 G4DecayTable* G4ExcitedNucleonConstructor::Add << 158 G4DecayTable*  G4ExcitedNucleonConstructor::AddNPiMode( 
155                                                << 159             G4DecayTable* decayTable, const G4String& nameParent,
156                                                << 160             G4double br, G4int iIso3, G4bool fAnti)
157 {                                                 161 {
158   G4VDecayChannel* mode;                          162   G4VDecayChannel* mode;
159                                                   163 
160   G4String daughterN;                             164   G4String daughterN;
161   G4String daughterPi;                            165   G4String daughterPi;
162                                                   166 
163   // ------------ N pi0 ------------           << 167   // ------------ N pi0 ------------ 
164   // determine daughters                          168   // determine daughters
165   if (iIso3 == +1) {                              169   if (iIso3 == +1) {
166     daughterN = "proton";                      << 170     daughterN  = "proton";
167     daughterPi = "pi0";                           171     daughterPi = "pi0";
168   }                                            << 172   } else {
169   else {                                       << 173     daughterN  = "neutron";
170     daughterN = "neutron";                     << 
171     daughterPi = "pi0";                           174     daughterPi = "pi0";
172   }                                               175   }
173   if (fAnti) daughterN = "anti_" + daughterN;     176   if (fAnti) daughterN = "anti_" + daughterN;
174   // create decay channel  [parent    BR     #    177   // create decay channel  [parent    BR     #daughters]
175   mode = new G4PhaseSpaceDecayChannel(namePare << 178   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 179                                            daughterN,daughterPi);
176   // add decay table                              180   // add decay table
177   decayTable->Insert(mode);                       181   decayTable->Insert(mode);
178                                                   182 
179   // -------------N pi +/- --------------      << 183   // -------------N pi +/- -------------- 
180   // determine daughters                          184   // determine daughters
181   if (iIso3 == +1) {                              185   if (iIso3 == +1) {
182     daughterN = "neutron";                     << 186     daughterN  = "neutron";
183     if (!fAnti) {                                 187     if (!fAnti) {
184       daughterPi = "pi+";                         188       daughterPi = "pi+";
185     }                                          << 189     } else {
186     else {                                     << 
187       daughterPi = "pi-";                         190       daughterPi = "pi-";
188     }                                             191     }
189   }                                            << 192   } else {
190   else {                                       << 193     daughterN  = "proton";
191     daughterN = "proton";                      << 
192     if (!fAnti) {                                 194     if (!fAnti) {
193       daughterPi = "pi-";                         195       daughterPi = "pi-";
194     }                                          << 196     } else {
195     else {                                     << 
196       daughterPi = "pi+";                         197       daughterPi = "pi+";
197     }                                             198     }
198   }                                               199   }
199   if (fAnti) daughterN = "anti_" + daughterN;     200   if (fAnti) daughterN = "anti_" + daughterN;
200                                                   201 
201   // create decay channel  [parent    BR     #    202   // create decay channel  [parent    BR     #daughters]
202   mode = new G4PhaseSpaceDecayChannel(namePare << 203   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 204                                            daughterN,daughterPi);
203   // add decay table                              205   // add decay table
204   decayTable->Insert(mode);                       206   decayTable->Insert(mode);
205                                                   207 
206   return decayTable;                              208   return decayTable;
207 }                                                 209 }
208                                                   210 
209 G4DecayTable* G4ExcitedNucleonConstructor::Add << 211 G4DecayTable*  G4ExcitedNucleonConstructor::AddNEtaMode( 
210                                                << 212             G4DecayTable* decayTable, const G4String& nameParent,
211                                                << 213             G4double br, G4int iIso3, G4bool fAnti)
212 {                                                 214 {
213   G4VDecayChannel* mode;                          215   G4VDecayChannel* mode;
214                                                   216 
215   G4String daughterN;                             217   G4String daughterN;
216                                                   218 
217   // ------------ N eta------------            << 219   // ------------ N eta------------ 
218   // determine daughters                          220   // determine daughters
219   if (iIso3 == +1) {                              221   if (iIso3 == +1) {
220     daughterN = "proton";                      << 222     daughterN  = "proton";
221   }                                            << 223   } else {
222   else {                                       << 224     daughterN  = "neutron";
223     daughterN = "neutron";                     << 
224   }                                               225   }
225   if (fAnti) daughterN = "anti_" + daughterN;     226   if (fAnti) daughterN = "anti_" + daughterN;
226   // create decay channel  [parent    BR     #    227   // create decay channel  [parent    BR     #daughters]
227   mode = new G4PhaseSpaceDecayChannel(namePare << 228   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 229                                            daughterN, "eta");
228   // add decay table                              230   // add decay table
229   decayTable->Insert(mode);                       231   decayTable->Insert(mode);
230                                                   232 
231   return decayTable;                              233   return decayTable;
232 }                                                 234 }
233                                                   235 
234 G4DecayTable* G4ExcitedNucleonConstructor::Add << 236 G4DecayTable*  G4ExcitedNucleonConstructor::AddNOmegaMode( 
235                                                << 237             G4DecayTable* decayTable, const G4String& nameParent,
236                                                << 238             G4double br, G4int iIso3, G4bool fAnti)
237 {                                                 239 {
238   G4VDecayChannel* mode;                          240   G4VDecayChannel* mode;
239                                                   241 
240   G4String daughterN;                             242   G4String daughterN;
241                                                   243 
242   // ------------ N omega------------          << 244   // ------------ N omega------------ 
243   // determine daughters                          245   // determine daughters
244   if (iIso3 == +1) {                              246   if (iIso3 == +1) {
245     daughterN = "proton";                      << 247     daughterN  = "proton";
246   }                                            << 248   } else {
247   else {                                       << 249     daughterN  = "neutron";
248     daughterN = "neutron";                     << 
249   }                                               250   }
250   if (fAnti) daughterN = "anti_" + daughterN;     251   if (fAnti) daughterN = "anti_" + daughterN;
251   // create decay channel  [parent    BR     #    252   // create decay channel  [parent    BR     #daughters]
252   mode = new G4PhaseSpaceDecayChannel(namePare << 253   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 254                                            daughterN, "omega");
253   // add decay table                              255   // add decay table
254   decayTable->Insert(mode);                       256   decayTable->Insert(mode);
255                                                   257 
256   return decayTable;                              258   return decayTable;
257 }                                                 259 }
258                                                   260 
259 G4DecayTable* G4ExcitedNucleonConstructor::Add << 261 G4DecayTable*  G4ExcitedNucleonConstructor::AddNRhoMode( 
260                                                << 262             G4DecayTable* decayTable, const G4String& nameParent,
261                                                << 263             G4double br, G4int iIso3, G4bool fAnti)
262 {                                                 264 {
263   G4VDecayChannel* mode;                          265   G4VDecayChannel* mode;
264                                                   266 
265   G4String daughterN;                             267   G4String daughterN;
266   G4String daughterRho;                           268   G4String daughterRho;
267                                                   269 
268   // ------------ N rho0 ------------          << 270   // ------------ N rho0 ------------ 
269   // determine daughters                          271   // determine daughters
270   if (iIso3 == +1) {                              272   if (iIso3 == +1) {
271     daughterN = "proton";                      << 273     daughterN  = "proton";
272     daughterRho = "rho0";                         274     daughterRho = "rho0";
273   }                                            << 275   } else {
274   else {                                       << 276     daughterN  = "neutron";
275     daughterN = "neutron";                     << 
276     daughterRho = "rho0";                         277     daughterRho = "rho0";
277   }                                               278   }
278   if (fAnti) daughterN = "anti_" + daughterN;     279   if (fAnti) daughterN = "anti_" + daughterN;
279   // create decay channel  [parent    BR     #    280   // create decay channel  [parent    BR     #daughters]
280   mode = new G4PhaseSpaceDecayChannel(namePare << 281   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 282                                            daughterN,daughterRho);
281   // add decay table                              283   // add decay table
282   decayTable->Insert(mode);                       284   decayTable->Insert(mode);
283                                                   285 
284   // -------------N rho+/- --------------      << 286   // -------------N rho+/- -------------- 
285   // determine daughters                          287   // determine daughters
286   if (iIso3 == +1) {                              288   if (iIso3 == +1) {
287     daughterN = "neutron";                     << 289     daughterN  = "neutron";
288     if (!fAnti) {                                 290     if (!fAnti) {
289       daughterRho = "rho+";                       291       daughterRho = "rho+";
290     }                                          << 292     } else {
291     else {                                     << 
292       daughterRho = "rho-";                       293       daughterRho = "rho-";
293     }                                             294     }
294   }                                            << 295   } else {
295   else {                                       << 296     daughterN  = "proton";
296     daughterN = "proton";                      << 
297     if (!fAnti) {                                 297     if (!fAnti) {
298       daughterRho = "rho-";                       298       daughterRho = "rho-";
299     }                                          << 299     } else {
300     else {                                     << 
301       daughterRho = "rho+";                       300       daughterRho = "rho+";
302     }                                             301     }
303   }                                               302   }
304   if (fAnti) daughterN = "anti_" + daughterN;     303   if (fAnti) daughterN = "anti_" + daughterN;
305                                                   304 
306   // create decay channel  [parent    BR     #    305   // create decay channel  [parent    BR     #daughters]
307   mode = new G4PhaseSpaceDecayChannel(namePare << 306   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 307                                            daughterN,daughterRho);
308   // add decay table                              308   // add decay table
309   decayTable->Insert(mode);                       309   decayTable->Insert(mode);
310                                                   310 
311   return decayTable;                              311   return decayTable;
312 }                                                 312 }
313                                                   313 
314 G4DecayTable* G4ExcitedNucleonConstructor::Add << 314 G4DecayTable*  G4ExcitedNucleonConstructor::AddN2PiMode( 
315                                                << 315             G4DecayTable* decayTable, const G4String& nameParent,
316                                                << 316             G4double br, G4int iIso3, G4bool fAnti)
317 {                                                 317 {
318   // Decay Modes                                  318   // Decay Modes
319   //   N* --> N + pi + pi                         319   //   N* --> N + pi + pi
320   //     Only I=0 states are included for 2-pi << 320   //     Only I=0 states are included for 2-pi system 
321                                                << 321   
322   G4VDecayChannel* mode;                          322   G4VDecayChannel* mode;
323                                                   323 
324   G4String daughterN;                             324   G4String daughterN;
325   G4String daughterPi1;                           325   G4String daughterPi1;
326   G4String daughterPi2;                           326   G4String daughterPi2;
327                                                   327 
328   // -------------N pi+ pi- --------------     << 328   // -------------N pi+ pi- -------------- 
329   // determine daughters                          329   // determine daughters
330   if (iIso3 == +1) {                              330   if (iIso3 == +1) {
331     daughterN = "proton";                      << 331     daughterN  = "proton";
332     daughterPi1 = "pi+";                          332     daughterPi1 = "pi+";
333     daughterPi2 = "pi-";                          333     daughterPi2 = "pi-";
334   }                                            << 334   } else {
335   else {                                       << 335     daughterN  = "neutron";
336     daughterN = "neutron";                     << 
337     daughterPi1 = "pi+";                          336     daughterPi1 = "pi+";
338     daughterPi2 = "pi-";                          337     daughterPi2 = "pi-";
339   }                                               338   }
340   if (fAnti) daughterN = "anti_" + daughterN;     339   if (fAnti) daughterN = "anti_" + daughterN;
341                                                   340 
342   // create decay channel  [parent    BR     #    341   // create decay channel  [parent    BR     #daughters]
343   mode = new G4PhaseSpaceDecayChannel(namePare << 342   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
                                                   >> 343                                            daughterN,daughterPi1,daughterPi2);
344   // add decay table                              344   // add decay table
345   decayTable->Insert(mode);                       345   decayTable->Insert(mode);
346                                                   346 
347   // -------------N pi0 pi0 --------------     << 347   // -------------N pi0 pi0 --------------  
348   // determine daughters                          348   // determine daughters
349   if (iIso3 == +1) {                              349   if (iIso3 == +1) {
350     daughterN = "proton";                      << 350     daughterN  = "proton";
351     daughterPi1 = "pi0";                          351     daughterPi1 = "pi0";
352     daughterPi2 = "pi0";                          352     daughterPi2 = "pi0";
353   }                                            << 353   } else {
354   else {                                       << 354     daughterN  = "neutron";
355     daughterN = "neutron";                     << 
356     daughterPi1 = "pi0";                          355     daughterPi1 = "pi0";
357     daughterPi2 = "pi0";                          356     daughterPi2 = "pi0";
358   }                                               357   }
359   if (fAnti) daughterN = "anti_" + daughterN;     358   if (fAnti) daughterN = "anti_" + daughterN;
360                                                   359 
361   // create decay channel  [parent    BR     #    360   // create decay channel  [parent    BR     #daughters]
362   mode = new G4PhaseSpaceDecayChannel(namePare << 361   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
                                                   >> 362                                            daughterN,daughterPi1,daughterPi2);
363   // add decay table                              363   // add decay table
364   decayTable->Insert(mode);                       364   decayTable->Insert(mode);
365                                                   365 
366   return decayTable;                              366   return decayTable;
367 }                                                 367 }
368                                                   368 
369 G4DecayTable* G4ExcitedNucleonConstructor::Add << 369 G4DecayTable*  G4ExcitedNucleonConstructor::AddNStarPiMode( 
370                                                << 370             G4DecayTable* decayTable, const G4String& nameParent,
371                                                << 371             G4double br, G4int iIso3, G4bool fAnti)
372 {                                                 372 {
373   G4VDecayChannel* mode;                          373   G4VDecayChannel* mode;
374                                                   374 
375   G4String daughterN;                             375   G4String daughterN;
376   G4String daughterPi;                            376   G4String daughterPi;
377                                                   377 
378   // ------------ N pi0 ------------           << 378   // ------------ N pi0 ------------ 
379   // determine daughters                          379   // determine daughters
380   if (iIso3 == +1) {                              380   if (iIso3 == +1) {
381     daughterN = "N(1440)+";                    << 381     daughterN  = "N(1440)+";
382     daughterPi = "pi0";                           382     daughterPi = "pi0";
383   }                                            << 383   } else {
384   else {                                       << 384     daughterN  = "N(1440)0";
385     daughterN = "N(1440)0";                    << 
386     daughterPi = "pi0";                           385     daughterPi = "pi0";
387   }                                               386   }
388   if (fAnti) daughterN = "anti_" + daughterN;     387   if (fAnti) daughterN = "anti_" + daughterN;
389   // create decay channel  [parent    BR     #    388   // create decay channel  [parent    BR     #daughters]
390   mode = new G4PhaseSpaceDecayChannel(namePare << 389   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 390                                            daughterN,daughterPi);
391   // add decay table                              391   // add decay table
392   decayTable->Insert(mode);                       392   decayTable->Insert(mode);
393                                                   393 
394   // -------------N pi +/- --------------      << 394   // -------------N pi +/- -------------- 
395   // determine daughters                          395   // determine daughters
396   if (iIso3 == +1) {                              396   if (iIso3 == +1) {
397     daughterN = "N(1440)0";                    << 397     daughterN  = "N(1440)0";
398     if (!fAnti) {                                 398     if (!fAnti) {
399       daughterPi = "pi+";                         399       daughterPi = "pi+";
400     }                                          << 400     } else {
401     else {                                     << 
402       daughterPi = "pi-";                         401       daughterPi = "pi-";
403     }                                             402     }
404   }                                            << 403   } else {
405   else {                                       << 404     daughterN  = "N(1440)+";
406     daughterN = "N(1440)+";                    << 
407     if (!fAnti) {                                 405     if (!fAnti) {
408       daughterPi = "pi-";                         406       daughterPi = "pi-";
409     }                                          << 407     } else {
410     else {                                     << 
411       daughterPi = "pi+";                         408       daughterPi = "pi+";
412     }                                             409     }
413   }                                               410   }
414   if (fAnti) daughterN = "anti_" + daughterN;     411   if (fAnti) daughterN = "anti_" + daughterN;
415                                                   412 
416   // create decay channel  [parent    BR     #    413   // create decay channel  [parent    BR     #daughters]
417   mode = new G4PhaseSpaceDecayChannel(namePare << 414   mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
                                                   >> 415                                            daughterN,daughterPi);
418   // add decay table                              416   // add decay table
419   decayTable->Insert(mode);                       417   decayTable->Insert(mode);
420                                                   418 
421   return decayTable;                              419   return decayTable;
422 }                                                 420 }
423                                                   421 
424 G4DecayTable* G4ExcitedNucleonConstructor::Add << 422 G4DecayTable*  G4ExcitedNucleonConstructor::AddDeltaPiMode( 
425                                                << 423             G4DecayTable* decayTable, const G4String& nameParent,
426                                                << 424             G4double br, G4int iIso3, G4bool fAnti)
427 {                                                 425 {
428   G4VDecayChannel* mode;                          426   G4VDecayChannel* mode;
429                                                   427 
430   G4String daughterDelta;                         428   G4String daughterDelta;
431   G4String daughterPi;                            429   G4String daughterPi;
432   G4double r;                                     430   G4double r;
433                                                   431 
434   // ------------ Delta pi+/- ------------     << 432   // ------------ Delta pi+/- ------------ 
435   // determine daughters                          433   // determine daughters
436   if (iIso3 == +1) {                              434   if (iIso3 == +1) {
437     daughterDelta = "delta0";                  << 435     daughterDelta  = "delta0";
438     if (!fAnti) {                                 436     if (!fAnti) {
439       daughterPi = "pi+";                         437       daughterPi = "pi+";
440     }                                          << 438     } else {
441     else {                                     << 
442       daughterPi = "pi-";                         439       daughterPi = "pi-";
443     }                                             440     }
444     r = br / 6.0;                              << 441     r = br/6.0;
445   }                                            << 442   } else {
446   else {                                       << 443     daughterDelta  = "delta+";
447     daughterDelta = "delta+";                  << 
448     if (!fAnti) {                                 444     if (!fAnti) {
449       daughterPi = "pi-";                         445       daughterPi = "pi-";
450     }                                          << 446     } else {
451     else {                                     << 
452       daughterPi = "pi+";                         447       daughterPi = "pi+";
453     }                                             448     }
454     r = br / 6.0;                              << 449     r = br/6.0;
455   }                                               450   }
456   if (fAnti) daughterDelta = "anti_" + daughte    451   if (fAnti) daughterDelta = "anti_" + daughterDelta;
457   // create decay channel  [parent    BR     #    452   // create decay channel  [parent    BR     #daughters]
458   mode = new G4PhaseSpaceDecayChannel(namePare << 453   mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 454                                            daughterDelta,daughterPi);
459   // add decay table                              455   // add decay table
460   decayTable->Insert(mode);                       456   decayTable->Insert(mode);
461                                                   457 
462   // ------------ Delta pi+/- ------------     << 458   // ------------ Delta pi+/- ------------ 
463   // determine daughters                          459   // determine daughters
464   if (iIso3 == +1) {                              460   if (iIso3 == +1) {
465     daughterDelta = "delta++";                 << 461     daughterDelta  = "delta++";
466     if (!fAnti) {                                 462     if (!fAnti) {
467       daughterPi = "pi-";                         463       daughterPi = "pi-";
468     }                                          << 464     } else {
469     else {                                     << 
470       daughterPi = "pi+";                         465       daughterPi = "pi+";
471     }                                             466     }
472     r = br / 2.0;                              << 467     r = br/2.0;
473   }                                            << 468   } else {
474   else {                                       << 469     daughterDelta  = "delta-";
475     daughterDelta = "delta-";                  << 
476     if (!fAnti) {                                 470     if (!fAnti) {
477       daughterPi = "pi+";                         471       daughterPi = "pi+";
478     }                                          << 472     } else {
479     else {                                     << 
480       daughterPi = "pi-";                         473       daughterPi = "pi-";
481     }                                             474     }
482     r = br / 2.0;                              << 475     r = br/2.0;
483   }                                               476   }
484   if (fAnti) daughterDelta = "anti_" + daughte    477   if (fAnti) daughterDelta = "anti_" + daughterDelta;
485   // create decay channel  [parent    BR     #    478   // create decay channel  [parent    BR     #daughters]
486   mode = new G4PhaseSpaceDecayChannel(namePare << 479   mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 480                                            daughterDelta,daughterPi);
487   // add decay table                              481   // add decay table
488   decayTable->Insert(mode);                       482   decayTable->Insert(mode);
489                                                   483 
490   // ------------ Delta pi0 ------------       << 484   // ------------ Delta pi0 ------------ 
491   // determine daughters                          485   // determine daughters
492   if (iIso3 == +1) {                              486   if (iIso3 == +1) {
493     daughterDelta = "delta+";                  << 487     daughterDelta  = "delta+";
494     daughterPi = "pi0";                           488     daughterPi = "pi0";
495     r = br / 3.0;                              << 489     r = br/3.0;
496   }                                            << 490   } else {
497   else {                                       << 491     daughterDelta  = "delta0";
498     daughterDelta = "delta0";                  << 
499     daughterPi = "pi0";                           492     daughterPi = "pi0";
500     r = br / 3.0;                              << 493     r = br/3.0;
501   }                                               494   }
502   if (fAnti) daughterDelta = "anti_" + daughte    495   if (fAnti) daughterDelta = "anti_" + daughterDelta;
503   // create decay channel  [parent    BR     #    496   // create decay channel  [parent    BR     #daughters]
504   mode = new G4PhaseSpaceDecayChannel(namePare << 497   mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 498                                            daughterDelta,daughterPi);
505   // add decay table                              499   // add decay table
506   decayTable->Insert(mode);                       500   decayTable->Insert(mode);
507                                                   501 
                                                   >> 502 
508   return decayTable;                              503   return decayTable;
509 }                                                 504 }
510                                                   505 
511 G4DecayTable* G4ExcitedNucleonConstructor::Add << 506 G4DecayTable*  G4ExcitedNucleonConstructor::AddLambdaKMode( 
512                                                << 507             G4DecayTable* decayTable, const G4String& nameParent,
513                                                << 508             G4double br, G4int iIso3, G4bool fAnti)
514 {                                                 509 {
515   G4VDecayChannel* mode;                          510   G4VDecayChannel* mode;
516                                                   511 
517   G4String lambda = "lambda";                     512   G4String lambda = "lambda";
518   G4String daughterK;                             513   G4String daughterK;
519                                                   514 
520   // ------------ N pi0 ------------           << 515   // ------------ N pi0 ------------ 
521   // determine daughters                          516   // determine daughters
522   if (iIso3 == +1) {                              517   if (iIso3 == +1) {
523     if (!fAnti) {                                 518     if (!fAnti) {
524       daughterK = "kaon+";                        519       daughterK = "kaon+";
525     }                                          << 520     } else {
526     else {                                     << 
527       daughterK = "kaon-";                        521       daughterK = "kaon-";
528     }                                             522     }
529   }                                            << 523   } else {
530   else {                                       << 
531     if (!fAnti) {                                 524     if (!fAnti) {
532       daughterK = "kaon0";                        525       daughterK = "kaon0";
533     }                                          << 526     } else {
534     else {                                     << 
535       daughterK = "anti_kaon0";                   527       daughterK = "anti_kaon0";
536     }                                             528     }
537   }                                               529   }
538   if (fAnti) lambda = "anti_" + lambda;           530   if (fAnti) lambda = "anti_" + lambda;
539   // create decay channel  [parent    BR     #    531   // create decay channel  [parent    BR     #daughters]
540   mode = new G4PhaseSpaceDecayChannel(namePare << 532   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 533                                            lambda, daughterK);
541   // add decay table                              534   // add decay table
542   decayTable->Insert(mode);                       535   decayTable->Insert(mode);
543                                                   536 
544   return decayTable;                              537   return decayTable;
545 }                                                 538 }
546                                                   539 
547 // clang-format off                            << 
548                                                << 
549 // PDG2005                                        540 // PDG2005
550 //  N(2090) is renamed to N(2080)              << 541 //  N(2090) is renamed to N(2080) 
551 //   but keep unchanged temporalily Apr 06        542 //   but keep unchanged temporalily Apr 06
552 //                                             << 
553 // -> PDG2023: N(2090) is removed by S.Okada 4 << 
554                                                   543 
555 const char* G4ExcitedNucleonConstructor::name[    544 const char* G4ExcitedNucleonConstructor::name[] = {
556    "N(1440)", "N(1520)", "N(1535)", "N(1650)",    545    "N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)",
557    "N(1680)", "N(1700)", "N(1710)", "N(1720)", << 546    "N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)", 
558    "N(1990)", "N(2090)", "N(2190)", "N(2220)",    547    "N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)"
559 };                                                548 };
560                                                   549 
561 const G4double G4ExcitedNucleonConstructor::ma    550 const G4double G4ExcitedNucleonConstructor::mass[] = {
562   1.440*GeV, 1.515*GeV, 1.535*GeV, 1.650*GeV,  << 551   1.430*GeV, 1.515*GeV, 1.535*GeV, 1.655*GeV,  1.675*GeV, 
563   1.685*GeV, 1.720*GeV, 1.710*GeV, 1.720*GeV,  << 552   1.685*GeV, 1.700*GeV, 1.710*GeV, 1.720*GeV,  1.900*GeV, 
564   2.020*GeV, 2.080*GeV, 2.180*GeV, 2.250*GeV,  << 553   1.950*GeV, 2.080*GeV, 2.190*GeV, 2.250*GeV,  2.275*GeV
565 };                                                554 };
566                                                   555 
567 const G4double G4ExcitedNucleonConstructor::wi    556 const G4double G4ExcitedNucleonConstructor::width[] = {
568   350.0*MeV, 110.0*MeV, 150.0*MeV, 125.0*MeV,  << 557   350.0*MeV, 115.0*MeV, 150.0*MeV, 140.0*MeV, 150.0*MeV,
569   120.0*MeV, 200.0*MeV, 140.0*MeV, 250.0*MeV,  << 558   130.0*MeV, 150.0*MeV, 100.0*MeV, 250.0*MeV, 500.0*MeV,
570   300.0*MeV, 350.0*MeV, 400.0*MeV, 400.0*MeV,  << 559   555.0*MeV, 350.0*MeV, 500.0*MeV, 400.0*MeV, 500.0*MeV
571 };                                                560 };
572                                                   561 
573 const G4int G4ExcitedNucleonConstructor::iSpin    562 const G4int G4ExcitedNucleonConstructor::iSpin[] = {
574     1,   3,   1,   1,   5,                        563     1,   3,   1,   1,   5,
575     5,   3,   1,   3,   3,                        564     5,   3,   1,   3,   3,
576     7,   3,   7,   9,   9                         565     7,   3,   7,   9,   9
577 };                                                566 };
578                                                   567 
579 const G4int G4ExcitedNucleonConstructor::iPari    568 const G4int G4ExcitedNucleonConstructor::iParity[] = {
580   +1,  -1,   -1,  -1,  -1,                        569   +1,  -1,   -1,  -1,  -1,
581   +1,  -1,   +1,  +1,  +1,                        570   +1,  -1,   +1,  +1,  +1,
582   +1,  -1,   +1,  -1,  -1                      << 571   +1,  -1,   +1,  -1,  -1 
583 };                                                572 };
584                                                   573 
585 const G4int G4ExcitedNucleonConstructor::encod    574 const G4int G4ExcitedNucleonConstructor::encodingOffset[] = {
586    10000,       0,  20000,  30000,       0,       575    10000,       0,  20000,  30000,       0,
587    10000,   20000,  40000,  30000,   40000,    << 576    10000,   20000,  40000,  30000,   40000, 
588    10000,   50000,      0,     0,   10000      << 577    10000,   50000,       0,     0,   10000
589 };                                                578 };
590                                                   579 
591 const G4double G4ExcitedNucleonConstructor::bR << 580 const G4double G4ExcitedNucleonConstructor::bRatio[ G4ExcitedNucleonConstructor::NStates ][ G4ExcitedNucleonConstructor::NumberOfDecayModes] = 
592 {                                                 581 {
593    {  0.0, 0.70,  0.0,  0.0,  0.0,  0.05,  0.2 << 582    {  0.0, 0.70,  0.0,  0.0,  0.0,  0.05,  0.25,  0.0,  0.0}, 
594    {  0.0, 0.60,  0.0,  0.0,  0.0,  0.15,  0.2 << 583    {  0.0, 0.60,  0.0,  0.0,  0.0,  0.15,  0.25,  0.0,  0.0}, 
595    {0.001, 0.55, 0.35,  0.0,  0.0,  0.05,  0.0    584    {0.001, 0.55, 0.35,  0.0,  0.0,  0.05,  0.00, 0.05,  0.0},
596    {  0.0, 0.65, 0.05,  0.0,  0.0,  0.05,  0.1    585    {  0.0, 0.65, 0.05,  0.0,  0.0,  0.05,  0.10, 0.05, 0.10},
597    {  0.0, 0.45,  0.0,  0.0,  0.0,  0.00,  0.5    586    {  0.0, 0.45,  0.0,  0.0,  0.0,  0.00,  0.55,  0.0,  0.0},
598    {  0.0, 0.65,  0.0,  0.0,  0.0,  0.20,  0.1    587    {  0.0, 0.65,  0.0,  0.0,  0.0,  0.20,  0.15,  0.0,  0.0},
599    {  0.0, 0.10, 0.05,  0.0, 0.05,  0.45,  0.3    588    {  0.0, 0.10, 0.05,  0.0, 0.05,  0.45,  0.35,  0.0,  0.0},
600    {  0.0, 0.15, 0.20,  0.0, 0.05,  0.20,  0.2    589    {  0.0, 0.15, 0.20,  0.0, 0.05,  0.20,  0.20, 0.10, 0.10},
601    {  0.0, 0.15, 0.00,  0.0, 0.25,  0.45,  0.1    590    {  0.0, 0.15, 0.00,  0.0, 0.25,  0.45,  0.10, 0.00, 0.05},
602    {  0.0, 0.35,  0.0, 0.55, 0.05,  0.00,  0.0    591    {  0.0, 0.35,  0.0, 0.55, 0.05,  0.00,  0.05,  0.0,  0.0},
603    {  0.0, 0.05,  0.0,  0.0, 0.15,  0.25,  0.3    592    {  0.0, 0.05,  0.0,  0.0, 0.15,  0.25,  0.30, 0.15, 0.10},
604    {  0.0, 0.60, 0.05,  0.0, 0.25,  0.05,  0.0    593    {  0.0, 0.60, 0.05,  0.0, 0.25,  0.05,  0.05,  0.0,  0.0},
605    {  0.0, 0.35,  0.0, 0.00, 0.30,  0.15,  0.1    594    {  0.0, 0.35,  0.0, 0.00, 0.30,  0.15,  0.15, 0.05,  0.0},
606    {  0.0, 0.35,  0.0,  0.0, 0.25,  0.20,  0.2    595    {  0.0, 0.35,  0.0,  0.0, 0.25,  0.20,  0.20,  0.0,  0.0},
607    {  0.0, 0.30,  0.0, 0.00, 0.25,  0.20,  0.2    596    {  0.0, 0.30,  0.0, 0.00, 0.25,  0.20,  0.20, 0.05,  0.0}
608 };                                                597 };
                                                   >> 598 
                                                   >> 599 
                                                   >> 600 
                                                   >> 601 
                                                   >> 602 
                                                   >> 603 
                                                   >> 604 
                                                   >> 605 
                                                   >> 606 
                                                   >> 607 
                                                   >> 608 
                                                   >> 609 
                                                   >> 610 
                                                   >> 611 
                                                   >> 612 
                                                   >> 613 
609                                                   614