Geant4 Cross Reference

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


  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 // -------------------------------------------     33 // ---------------------------------------------------------------
 31 //    01 Oct. 02 Fixed PDG codes for a0(1450),     34 //    01 Oct. 02 Fixed PDG codes for a0(1450), f0(1370), k0_star(1430)
 32 //                                             << 
 33 //    Update mass and width following PDG 2023 << 
 34                                                    35 
 35 #include "G4ExcitedMesonConstructor.hh"            36 #include "G4ExcitedMesonConstructor.hh"
 36                                                    37 
 37 #include "G4DecayTable.hh"                     <<  38 #include "G4SystemOfUnits.hh"
 38 #include "G4ExcitedMesons.hh"                  <<  39 #include "G4ParticleDefinition.hh"
 39 #include "G4ParticleTable.hh"                      40 #include "G4ParticleTable.hh"
 40 #include "G4PhaseSpaceDecayChannel.hh"             41 #include "G4PhaseSpaceDecayChannel.hh"
 41 #include "G4SystemOfUnits.hh"                  << 
 42 #include "G4VDecayChannel.hh"                      42 #include "G4VDecayChannel.hh"
                                                   >>  43 #include "G4DecayTable.hh"
                                                   >>  44 
                                                   >>  45 
                                                   >>  46 G4ExcitedMesonConstructor::G4ExcitedMesonConstructor(G4int ,
                                                   >>  47                    G4int )
                                                   >>  48     :   type("meson"), leptonNumber(0), baryonNumber(0)
                                                   >>  49 {
                                                   >>  50 }
 43                                                    51 
 44 G4ExcitedMesonConstructor::G4ExcitedMesonConst <<  52 G4ExcitedMesonConstructor::~G4ExcitedMesonConstructor()
                                                   >>  53 {
                                                   >>  54 }
 45                                                    55 
 46 void G4ExcitedMesonConstructor::Construct(G4in     56 void G4ExcitedMesonConstructor::Construct(G4int idx)
 47 {                                                  57 {
 48   G4int iType;                                     58   G4int iType;
 49   if (idx < 0) {                               <<  59   if (idx < 0 ) {
 50     for (G4int state = 0; state < NMultiplets; <<  60     for (G4int state=0; state< NMultiplets; state +=1) {
 51       for (iType = 0; iType < NMesonTypes; iTy <<  61       for (iType = 0; iType < NMesonTypes ; iType++) 
 52         ConstructMesons(state, iType);         <<  62   ConstructMesons(state, iType);
 53     }                                          <<  63     }
 54   }                                            <<  64   } else if (idx < NMultiplets ) {
 55   else if (idx < NMultiplets) {                <<  65       for (iType = 0; iType < NMesonTypes ; iType++) 
 56     for (iType = 0; iType < NMesonTypes; iType <<  66   ConstructMesons(idx, iType);
 57       ConstructMesons(idx, iType);             <<  67   } else {
 58   }                                            << 
 59   else {                                       << 
 60 #ifdef G4VERBOSE                                   68 #ifdef G4VERBOSE
 61     if (G4ParticleTable::GetParticleTable()->G <<  69     if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>1) {
 62       G4cerr << "G4ExcitedMesonConstructor::Co     70       G4cerr << "G4ExcitedMesonConstructor::Construct()";
 63       G4cerr << "   illegal index os state = "     71       G4cerr << "   illegal index os state = " << idx << G4endl;
 64     }                                              72     }
 65 #endif                                             73 #endif
 66   }                                                74   }
 67 }                                                  75 }
 68                                                    76 
 69 G4bool G4ExcitedMesonConstructor::Exist(G4int      77 G4bool G4ExcitedMesonConstructor::Exist(G4int idxState, G4int idxType)
 70 {                                                  78 {
 71   G4bool value = true;                             79   G4bool value = true;
 72   if (idxType == TEtaPrime) {                  <<  80   if ( idxType == TEtaPrime ) {
 73     if (idxState == N13P0) value = false;      <<  81     if (idxState==N13P0) value = false;      
 74     if (idxState == N13D1) value = false;      <<  82     if (idxState==N13D1) value = false;      
 75   }                                            <<  83   } else if ( idxType == TPi ) {
 76   else if (idxType == TPi) {                   <<  84     if (idxState==N23P2) value = false;      
 77     if (idxState == N23P2) value = false;      << 
 78   }                                                85   }
 79   return value;                                    86   return value;
 80 }                                                  87 }
 81                                                    88 
                                                   >>  89 #include "G4ExcitedMesons.hh"
                                                   >>  90 
 82 void G4ExcitedMesonConstructor::ConstructMeson     91 void G4ExcitedMesonConstructor::ConstructMesons(G4int iState, G4int iType)
 83 {                                                  92 {
 84   if (!Exist(iState, iType)) return;           <<  93   if (!Exist(iState, iType) ) return;
 85                                                    94 
 86   //    Construct Resonace particles as dynami     95   //    Construct Resonace particles as dynamic object
 87   //    Arguments for constructor are as follo     96   //    Arguments for constructor are as follows
 88   //               name             mass       <<  97   //               name             mass          width        
 89   //             charge           2*spin       <<  98   //             charge           2*spin           
 90   //             parity    C-conjugation           99   //             parity    C-conjugation
 91   //          2*Isospin       2*Isospin3       << 100   //          2*Isospin       2*Isospin3       
 92   //          G-parity                            101   //          G-parity
 93   //               type    lepton number  Bary << 102   //               type    lepton number  Baryon number   
 94   //        PDG encoding                          103   //        PDG encoding
 95   //             stable         lifetime    de << 104   //             stable         lifetime    decay table 
 96                                                << 105   
                                                   >> 106   
 97   G4String aName;                                 107   G4String aName;
 98   G4ExcitedMesons* particle;                      108   G4ExcitedMesons* particle;
 99                                                << 109   
100   for (G4int iIso3 = (-1) * iIsoSpin[iType]; i << 110   for ( G4int iIso3=(-1)*iIsoSpin[iType]; iIso3<=iIsoSpin[iType]; iIso3+=2) {
101     aName = GetName(iIso3, iState, iType);     << 111     aName= GetName(iIso3, iState, iType);
102     G4double fmass = mass[iState][iType];      << 112     G4double fmass =  mass[iState][iType];
103     G4double fwidth = width[iState][iType];       113     G4double fwidth = width[iState][iType];
104     if ((iType == TK) || (iType == TAntiK)) {  << 114   if ( (iType== TK) || (iType==TAntiK ) ) {
105       if (GetCharge(iIso3, iType) == 0.0) {    << 115     if ( GetCharge(iIso3,iType) == 0.0) {
106         fmass += massKdiff[iState];            << 116     fmass  += massKdiff[iState];
107         fwidth += widthKdiff[iState];          << 117       fwidth += widthKdiff[iState];
108       }                                           118       }
109     }                                          << 119    }
110                                                << 120     particle = new G4ExcitedMesons(            
111     // clang-format off                        << 121              aName,   fmass,         fwidth,    
112     particle = new G4ExcitedMesons(            << 
113              aName,   fmass,         fwidth,   << 
114      GetCharge(iIso3,iType),                 i    122      GetCharge(iIso3,iType),                 iSpin[iState],
115       iParity[iState],    iChargeConjugation[i    123       iParity[iState],    iChargeConjugation[iState],
116                         iIsoSpin[iType],       << 124                         iIsoSpin[iType],                         iIso3,   
117                 iGParity[iState][iType],          125                 iGParity[iState][iType],
118                              type,  leptonNumb << 126                              type,  leptonNumber,   baryonNumber, 
119      GetEncoding(iIso3, iState, iType),           127      GetEncoding(iIso3, iState, iType),
120                             false,           0 << 128                             false,           0.0,            NULL
121             );                                    129             );
122     // clang-format on                         << 
123                                                   130 
124     if ((iType == TEta) || (iType == TEtaPrime << 131     if ( (iType==TEta) || (iType==TEtaPrime) || ((iType==TPi)&&(iIso3==0)) ) {
125       // set same encoding for AntiParticle    << 132     // set same encoding for AntiParticle
126       particle->SetAntiPDGEncoding(GetEncoding    133       particle->SetAntiPDGEncoding(GetEncoding(iIso3, iState, iType));
127     }                                             134     }
128     particle->SetMultipletName(name[iState][iT    135     particle->SetMultipletName(name[iState][iType]);
129     particle->SetDecayTable(CreateDecayTable(a << 136     particle->SetDecayTable(CreateDecayTable( aName, iIso3, iState, iType));
130   }                                               137   }
131 }                                                 138 }
132                                                   139 
133 G4int G4ExcitedMesonConstructor::GetQuarkConte << 140 
                                                   >> 141 G4int  G4ExcitedMesonConstructor::GetQuarkContents(G4int iQ, 
                                                   >> 142                G4int iIso3,
                                                   >> 143                G4int iType)
134 {                                                 144 {
135   // Quark contents                               145   // Quark contents
136                                                   146 
137   G4int quark = 0;                             << 147   G4int quark=0;
138   if (iType == TPi) {                             148   if (iType == TPi) {
139     if (iIso3 == 2) {                          << 149     if ( iIso3 == 2 ){
140       if (iQ == 0) {                           << 150       if ( iQ == 0 ){ quark = 2; }
141         quark = 2;                             << 151       else          { quark = 1; }
142       }                                        << 152     } else if ( iIso3 == 0 ){
143       else {                                   << 
144         quark = 1;                             << 
145       }                                        << 
146     }                                          << 
147     else if (iIso3 == 0) {                     << 
148       quark = 1;                                  153       quark = 1;
                                                   >> 154     }  else if ( iIso3 == -2 ){
                                                   >> 155       if ( iQ == 0 ){ quark = 1; }
                                                   >> 156       else          { quark = 2; }
149     }                                             157     }
150     else if (iIso3 == -2) {                    << 158   } else if (iType == TEta) {
151       if (iQ == 0) {                           << 
152         quark = 1;                             << 
153       }                                        << 
154       else {                                   << 
155         quark = 2;                             << 
156       }                                        << 
157     }                                          << 
158   }                                            << 
159   else if (iType == TEta) {                    << 
160     quark = 2;                                    159     quark = 2;
161   }                                            << 160 
162   else if (iType == TEtaPrime) {               << 161   } else if (iType == TEtaPrime) {
163     quark = 3;                                    162     quark = 3;
164   }                                            << 163 
165   else if (iType == TAntiK) {                  << 164   } else if (iType == TAntiK) {
166     if (iIso3 == 1) {                          << 165     if ( iIso3 == 1 ){
167       if (iQ == 0) {                           << 166       if ( iQ == 0 ){ quark = 3; }
168         quark = 3;                             << 167       else          { quark = 1; }
169       }                                        << 168     } else if ( iIso3 == -1 ){
170       else {                                   << 169       if ( iQ == 0 ){ quark = 3; }
171         quark = 1;                             << 170       else          { quark = 2; }
172       }                                        << 171     }
173     }                                          << 172  
174     else if (iIso3 == -1) {                    << 173   } else if (iType == TK) {
175       if (iQ == 0) {                           << 174     if ( iIso3 == 1 ){
176         quark = 3;                             << 175       if ( iQ == 0 ){ quark = 2; }
177       }                                        << 176       else          { quark = 3; }
178       else {                                   << 177     } else if ( iIso3 == -1 ){
179         quark = 2;                             << 178       if ( iQ == 0 ){ quark = 1; }
180       }                                        << 179       else          { quark = 3; }
181     }                                          << 
182   }                                            << 
183   else if (iType == TK) {                      << 
184     if (iIso3 == 1) {                          << 
185       if (iQ == 0) {                           << 
186         quark = 2;                             << 
187       }                                        << 
188       else {                                   << 
189         quark = 3;                             << 
190       }                                        << 
191     }                                          << 
192     else if (iIso3 == -1) {                    << 
193       if (iQ == 0) {                           << 
194         quark = 1;                             << 
195       }                                        << 
196       else {                                   << 
197         quark = 3;                             << 
198       }                                        << 
199     }                                             180     }
                                                   >> 181 
200   }                                               182   }
201   return quark;                                   183   return quark;
202 }                                                 184 }
203                                                   185 
204 G4double G4ExcitedMesonConstructor::GetCharge( << 186 G4double  G4ExcitedMesonConstructor::GetCharge(G4int iIsoSpin3, G4int idxType )
205 {                                                 187 {
206   // clang-format off                          << 188   static const G4double quark_charge[7] = 
207   static const G4double quark_charge[7] =      << 
208   {                                               189   {
209     0., -1./3., +2./3., -1./3., +2./3., -1./3.    190     0., -1./3., +2./3., -1./3., +2./3., -1./3., +2./3.
210   };                                              191   };
211   // clang-format on                           << 192   
212                                                << 193   G4double charge =  quark_charge[GetQuarkContents(0, iIsoSpin3, idxType)]*eplus;
213   G4double charge = quark_charge[GetQuarkConte << 194   charge -=  quark_charge[GetQuarkContents(1, iIsoSpin3, idxType)]*eplus;
214   charge -= quark_charge[GetQuarkContents(1, i << 
215   return charge;                                  195   return charge;
216 }                                                 196 }
217                                                   197 
218 G4int G4ExcitedMesonConstructor::GetEncoding(G << 198 G4int     G4ExcitedMesonConstructor::GetEncoding(G4int iIsoSpin3, 
                                                   >> 199              G4int idxState, 
                                                   >> 200              G4int idxType    )
219 {                                                 201 {
220   G4int encoding = encodingOffset[idxState];      202   G4int encoding = encodingOffset[idxState];
221   encoding += iSpin[idxState] + 1;             << 203   encoding +=  iSpin[idxState] +1;
222   G4int iQ = 0;                                   204   G4int iQ = 0;
223   G4int iQbar = 1;                                205   G4int iQbar = 1;
224                                                   206 
225   if (idxType == TPi) {                        << 207   if ( idxType == TPi ) {
226     if (iIsoSpin3 < 0) {                       << 208     if (iIsoSpin3<0) {
227       iQ = 1;                                     209       iQ = 1;
228       iQbar = 0;                               << 210       iQbar = 0; 
229     }                                             211     }
230   }                                            << 212   } else if ( idxType == TK ) {
231   else if (idxType == TK) {                    << 
232     iQ = 1;                                       213     iQ = 1;
233     iQbar = 0;                                 << 214     iQbar = 0; 
234   }                                               215   }
235                                                   216 
236   encoding += 100 * GetQuarkContents(iQ, iIsoS << 217 
237   encoding += 10 * GetQuarkContents(iQbar, iIs << 218   encoding +=  100*GetQuarkContents(iQ, iIsoSpin3, idxType);
238   if (idxType == TPi) {                        << 219   encoding +=   10*GetQuarkContents(iQbar, iIsoSpin3, idxType);
239     if (iIsoSpin3 < 0) {                       << 220   if ( idxType == TPi ) {
240       encoding *= -1;                          << 221     if (iIsoSpin3<0) {
                                                   >> 222       encoding *=  -1;
241     }                                             223     }
242   }                                            << 224   } else if ( idxType == TAntiK ) {
243   else if (idxType == TAntiK) {                << 225     encoding *=  -1;
244     encoding *= -1;                            << 
245   }                                               226   }
246                                                   227 
247   // PDG2005                                   << 228 // PDG2005
248   //                                           << 229 //
249   if (idxState == 9) {                         << 230   if (idxState == 9 ) {
250     if (idxType == TEta) {                        231     if (idxType == TEta) {
251       //   f2(1810)  9030225                   << 232 //   f2(1810)  9030225
252       encoding = 9030225;                         233       encoding = 9030225;
253     }                                          << 234     } else if (idxType == TEtaPrime) {
254     else if (idxType == TEtaPrime) {           << 235 //   f2(2010)  9060225
255       //   f2(2010)  9060225                   << 
256       encoding = 9060225;                         236       encoding = 9060225;
257     }                                             237     }
258   }                                               238   }
259                                                   239 
260   // PDG2013                                   << 240 // PDG2013
261   if (idxState == 1) {                         << 241   if (idxState == 1 ) {
262     if (idxType == TEta) {                        242     if (idxType == TEta) {
263       //   f0(1370)  30221                     << 243 //   f0(1370)  30221
264       encoding = 30221;                           244       encoding = 30221;
265     }                                             245     }
266   }                                               246   }
267   return encoding;                                247   return encoding;
268 }                                                 248 }
269                                                   249 
270 G4DecayTable* G4ExcitedMesonConstructor::Creat << 250 G4DecayTable*  G4ExcitedMesonConstructor::CreateDecayTable(
271                                                << 251               const G4String& parentName,
                                                   >> 252               G4int           iIso3,
                                                   >> 253                                             G4int           iState, 
                                                   >> 254               G4int           iType)
272 {                                                 255 {
273   // create decay table                        << 256    // create decay table
274   auto decayTable = new G4DecayTable();        << 257   G4DecayTable* decayTable =  new G4DecayTable();
275   G4double br;                                    258   G4double br;
276                                                << 259  
277   if ((iType == TK) || (iType == TAntiK)) {    << 260   if ((iType==TK)||(iType==TAntiK)) {
278     if ((br = bRatio[iState][iType][MKPi]) > 0 << 261     
279       AddKPiMode(decayTable, parentName, br, i << 262     if ( (br=bRatio[iState][iType][MKPi]) >0.0) {
                                                   >> 263       AddKPiMode( decayTable, parentName, br, iIso3, iType );
280     }                                             264     }
281     if ((br = bRatio[iState][iType][MKStarPi]) << 265     if ( (br=bRatio[iState][iType][MKStarPi]) >0.0) {
282       AddKStarPiMode(decayTable, parentName, b << 266       AddKStarPiMode( decayTable, parentName, br, iIso3, iType );
283     }                                             267     }
284     if ((br = bRatio[iState][iType][MKRho]) >  << 268     if ( (br=bRatio[iState][iType][MKRho]) >0.0) {
285       AddKRhoMode(decayTable, parentName, br,  << 269       AddKRhoMode( decayTable, parentName, br, iIso3, iType );
286     }                                             270     }
287     if ((br = bRatio[iState][iType][MKOmega])  << 271     if ( (br=bRatio[iState][iType][MKOmega]) >0.0) {
288       AddKOmegaMode(decayTable, parentName, br << 272       AddKOmegaMode( decayTable, parentName, br, iIso3, iType );
289     }                                             273     }
290     if ((br = bRatio[iState][iType][MKStar2Pi] << 274     if ( (br=bRatio[iState][iType][MKStar2Pi]) >0.0) {
291       AddKStar2PiMode(decayTable, parentName,  << 275       AddKStar2PiMode( decayTable, parentName, br, iIso3, iType );
292     }                                             276     }
293     if ((br = bRatio[iState][iType][MKTwoPi])  << 277     if ( (br=bRatio[iState][iType][MKTwoPi]) >0.0) {
294       AddKTwoPiMode(decayTable, parentName, br << 278       AddKTwoPiMode( decayTable, parentName, br, iIso3, iType );
295     }                                             279     }
296     if ((br = bRatio[iState][iType][MKEta]) >  << 280     if ( (br=bRatio[iState][iType][MKEta]) >0.0) {
297       AddKEtaMode(decayTable, parentName, br,  << 281       AddKEtaMode( decayTable, parentName, br, iIso3, iType );
298     }                                             282     }
299   }                                            << 283 
300   else {                                       << 284   } else {
301     if ((br = bRatio[iState][iType][MPiGamma]) << 285     if ( (br=bRatio[iState][iType][MPiGamma]) >0.0) {
302       AddPiGammaMode(decayTable, parentName, b << 286       AddPiGammaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
303     }                                             287     }
304     if ((br = bRatio[iState][iType][MRhoGamma] << 288     if ( (br=bRatio[iState][iType][MRhoGamma]) >0.0) {
305       AddRhoGammaMode(decayTable, parentName,  << 289       AddRhoGammaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
306     }                                             290     }
307     if ((br = bRatio[iState][iType][M2Pi]) > 0 << 291     if ( (br=bRatio[iState][iType][M2Pi]) >0.0) {
308       Add2PiMode(decayTable, parentName, br, i << 292       Add2PiMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
309     }                                             293     }
310     if ((br = bRatio[iState][iType][MPiRho]) > << 294     if ( (br=bRatio[iState][iType][MPiRho]) >0.0) {
311       AddPiRhoMode(decayTable, parentName, br, << 295       AddPiRhoMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
312     }                                             296     }
313     if ((br = bRatio[iState][iType][MPiEta]) > << 297     if ( (br=bRatio[iState][iType][MPiEta]) >0.0) {
314       AddPiEtaMode(decayTable, parentName, br, << 298       AddPiEtaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
315     }                                             299     }
316     if ((br = bRatio[iState][iType][M3Pi]) > 0 << 300     if ( (br=bRatio[iState][iType][M3Pi]) >0.0) {
317       Add3PiMode(decayTable, parentName, br, i << 301       Add3PiMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
318     }                                             302     }
319     if ((br = bRatio[iState][iType][M4Pi]) > 0 << 303     if ( (br=bRatio[iState][iType][M4Pi]) >0.0) {
320       Add4PiMode(decayTable, parentName, br, i << 304       Add4PiMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
321     }                                             305     }
322     if ((br = bRatio[iState][iType][MKKStar])  << 306     if ( (br=bRatio[iState][iType][MKKStar]) >0.0) {
323       AddKKStarMode(decayTable, parentName, br << 307       AddKKStarMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
324     }                                             308     }
325     if ((br = bRatio[iState][iType][M2PiEta])  << 309     if ( (br=bRatio[iState][iType][M2PiEta]) >0.0) {
326       Add2PiEtaMode(decayTable, parentName, br << 310       Add2PiEtaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
327     }                                             311     }
328     if ((br = bRatio[iState][iType][MRhoEta])  << 312     if ( (br=bRatio[iState][iType][MRhoEta]) >0.0) {
329       AddRhoEtaMode(decayTable, parentName, br << 313       AddRhoEtaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
330     }                                             314     }
331     if ((br = bRatio[iState][iType][M2PiRho])  << 315     if ( (br=bRatio[iState][iType][M2PiRho]) >0.0) {
332       Add2PiRhoMode(decayTable, parentName, br << 316       Add2PiRhoMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
333     }                                             317     }
334     if ((br = bRatio[iState][iType][M2PiOmega] << 318     if ( (br=bRatio[iState][iType][M2PiOmega]) >0.0) {
335       Add2PiOmegaMode(decayTable, parentName,  << 319       Add2PiOmegaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
336     }                                             320     }
337     if ((br = bRatio[iState][iType][M2Eta]) >  << 321     if ( (br=bRatio[iState][iType][M2Eta]) >0.0) {
338       Add2EtaMode(decayTable, parentName, br,  << 322       Add2EtaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
339     }                                             323     }
340     if ((br = bRatio[iState][iType][M2K]) > 0. << 324     if ( (br=bRatio[iState][iType][M2K]) >0.0) {
341       Add2KMode(decayTable, parentName, br, iI << 325       Add2KMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
342     }                                             326     }
343     if ((br = bRatio[iState][iType][M2KPi]) >  << 327     if ( (br=bRatio[iState][iType][M2KPi]) >0.0) {
344       Add2KPiMode(decayTable, parentName, br,  << 328       Add2KPiMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
345     }                                             329     }
346     if ((br = bRatio[iState][iType][MPiOmega]) << 330    if ( (br=bRatio[iState][iType][MPiOmega]) >0.0) {
347       AddPiOmegaMode(decayTable, parentName, b << 331       AddPiOmegaMode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
348     }                                             332     }
349     if ((br = bRatio[iState][iType][MPiF2]) >  << 333    if ( (br=bRatio[iState][iType][MPiF2]) >0.0) {
350       AddPiF2Mode(decayTable, parentName, br,  << 334       AddPiF2Mode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
351     }                                             335     }
352     if ((br = bRatio[iState][iType][MPiF0]) >  << 336    if ( (br=bRatio[iState][iType][MPiF0]) >0.0) {
353       AddPiF0Mode(decayTable, parentName, br,  << 337       AddPiF0Mode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
354     }                                             338     }
355     if ((br = bRatio[iState][iType][MPiA2]) >  << 339    if ( (br=bRatio[iState][iType][MPiA2]) >0.0) {
356       AddPiA2Mode(decayTable, parentName, br,  << 340       AddPiA2Mode( decayTable, parentName, br, iIso3, iIsoSpin[iType] );
357     }                                             341     }
358   }                                               342   }
359                                                   343 
360   return decayTable;                              344   return decayTable;
361 }                                                 345 }
362                                                   346 
363 G4DecayTable* G4ExcitedMesonConstructor::AddKP << 347 G4DecayTable*  G4ExcitedMesonConstructor::AddKPiMode( 
364                                                << 348                                    G4DecayTable* decayTable, const G4String& nameParent,
365                                                << 349                                     G4double br, G4int iIso3, G4int iType)
366 {                                                 350 {
367   G4VDecayChannel* mode;                          351   G4VDecayChannel* mode;
368   //                                           << 352   // 
369   if (iIso3 == +1) {                              353   if (iIso3 == +1) {
370     if (iType == TK) {                         << 354     if (iType == TK) {    
371       mode = new G4PhaseSpaceDecayChannel(name << 355       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 356              "kaon+","pi0");
372       decayTable->Insert(mode);                   357       decayTable->Insert(mode);
373       mode = new G4PhaseSpaceDecayChannel(name << 358       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 359              "kaon0","pi+");
374       decayTable->Insert(mode);                   360       decayTable->Insert(mode);
375     }                                          << 361     }else if (iType==TAntiK) {
376     else if (iType == TAntiK) {                << 362       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
377       mode = new G4PhaseSpaceDecayChannel(name << 363              "anti_kaon0","pi0");
378       decayTable->Insert(mode);                   364       decayTable->Insert(mode);
379       mode = new G4PhaseSpaceDecayChannel(name << 365       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 366              "kaon-","pi+");
380       decayTable->Insert(mode);                   367       decayTable->Insert(mode);
381     }                                          << 368    }
382   }                                            << 369   } else if (iIso3 == -1) {
383   else if (iIso3 == -1) {                      << 370     if (iType == TK) {    
384     if (iType == TK) {                         << 371       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
385       mode = new G4PhaseSpaceDecayChannel(name << 372              "kaon0","pi0");
386       decayTable->Insert(mode);                   373       decayTable->Insert(mode);
387       mode = new G4PhaseSpaceDecayChannel(name << 374       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 375              "kaon+","pi-");
388       decayTable->Insert(mode);                   376       decayTable->Insert(mode);
389     }                                          << 377  
390     else if (iType == TAntiK) {                << 378     }else if (iType==TAntiK) {
391       mode = new G4PhaseSpaceDecayChannel(name << 379       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 380              "kaon-","pi0");
392       decayTable->Insert(mode);                   381       decayTable->Insert(mode);
393       mode = new G4PhaseSpaceDecayChannel(name << 382       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 383              "anti_kaon0","pi-");
394       decayTable->Insert(mode);                   384       decayTable->Insert(mode);
395     }                                             385     }
396   }                                               386   }
397                                                   387 
398   return decayTable;                              388   return decayTable;
399 }                                                 389 }
400 G4DecayTable* G4ExcitedMesonConstructor::AddKT << 390 G4DecayTable*  G4ExcitedMesonConstructor::AddKTwoPiMode( 
401                                                << 391                                    G4DecayTable* decayTable, const G4String& nameParent,
402                                                << 392                                     G4double br, G4int iIso3, G4int iType)
403 {                                                 393 {
404   G4VDecayChannel* mode;                          394   G4VDecayChannel* mode;
405   //                                           << 395   // 
406   if (iIso3 == +1) {                              396   if (iIso3 == +1) {
407     if (iType == TK) {                         << 397     if (iType == TK) {    
408       mode = new G4PhaseSpaceDecayChannel(name << 398       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 399              "k2_star(1430)+","pi0");
409       decayTable->Insert(mode);                   400       decayTable->Insert(mode);
410       mode = new G4PhaseSpaceDecayChannel(name << 401       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 402              "k2_star(1430)0","pi+");
411       decayTable->Insert(mode);                   403       decayTable->Insert(mode);
412     }                                          << 404     }else if (iType==TAntiK) {
413     else if (iType == TAntiK) {                << 405       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
414       mode = new G4PhaseSpaceDecayChannel(name << 406              "anti_k2_star(1430)0","pi0");
415       decayTable->Insert(mode);                   407       decayTable->Insert(mode);
416       mode = new G4PhaseSpaceDecayChannel(name << 408       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 409              "k2_star(1430)-","pi+");
417       decayTable->Insert(mode);                   410       decayTable->Insert(mode);
418     }                                          << 411    }
419   }                                            << 412   } else if (iIso3 == -1) {
420   else if (iIso3 == -1) {                      << 413     if (iType == TK) {    
421     if (iType == TK) {                         << 414       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
422       mode = new G4PhaseSpaceDecayChannel(name << 415              "k2_star(1430)0","pi0");
423       decayTable->Insert(mode);                   416       decayTable->Insert(mode);
424       mode = new G4PhaseSpaceDecayChannel(name << 417       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 418              "k2_star(1430)+","pi-");
425       decayTable->Insert(mode);                   419       decayTable->Insert(mode);
426     }                                          << 420  
427     else if (iType == TAntiK) {                << 421     }else if (iType==TAntiK) {
428       mode = new G4PhaseSpaceDecayChannel(name << 422       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 423              "k2_star(1430)-","pi0");
429       decayTable->Insert(mode);                   424       decayTable->Insert(mode);
430       mode =                                   << 425       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
431         new G4PhaseSpaceDecayChannel(nameParen << 426              "anti_k2_star(1430)0","pi-");
432       decayTable->Insert(mode);                   427       decayTable->Insert(mode);
433     }                                             428     }
434   }                                               429   }
435                                                   430 
436   return decayTable;                              431   return decayTable;
437 }                                                 432 }
438                                                   433 
439 G4DecayTable* G4ExcitedMesonConstructor::AddKO << 434 G4DecayTable*  G4ExcitedMesonConstructor::AddKOmegaMode( 
440                                                << 435                                    G4DecayTable* decayTable, const G4String& nameParent,
441                                                << 436                                     G4double br, G4int iIso3, G4int iType)
442 {                                                 437 {
443   G4VDecayChannel* mode;                          438   G4VDecayChannel* mode;
444   //                                           << 439   // 
445   if (iIso3 == +1) {                              440   if (iIso3 == +1) {
446     if (iType == TK) {                         << 441     if (iType == TK) {    
447       mode = new G4PhaseSpaceDecayChannel(name << 442       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 443              "kaon+","omega");
448       decayTable->Insert(mode);                   444       decayTable->Insert(mode);
449     }                                          << 445     }else if (iType==TAntiK) {
450     else if (iType == TAntiK) {                << 446       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
451       mode = new G4PhaseSpaceDecayChannel(name << 447              "anti_kaon0","omega");
452       decayTable->Insert(mode);                   448       decayTable->Insert(mode);
453     }                                          << 449    } 
454   }                                            << 450   } else if (iIso3 == -1) {
455   else if (iIso3 == -1) {                      << 451     if (iType == TK) {    
456     if (iType == TK) {                         << 452       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
457       mode = new G4PhaseSpaceDecayChannel(name << 453              "kaon0","omega");
458       decayTable->Insert(mode);                   454       decayTable->Insert(mode);
459     }                                          << 455     }else if (iType==TAntiK) {
460     else if (iType == TAntiK) {                << 456       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
461       mode = new G4PhaseSpaceDecayChannel(name << 457              "kaon-","omega");
462       decayTable->Insert(mode);                   458       decayTable->Insert(mode);
463     }                                             459     }
464   }                                               460   }
465                                                   461 
466   return decayTable;                              462   return decayTable;
467 }                                                 463 }
468                                                   464 
469 G4DecayTable* G4ExcitedMesonConstructor::AddKE << 465 G4DecayTable*  G4ExcitedMesonConstructor::AddKEtaMode( 
470                                                << 466                                    G4DecayTable* decayTable, const G4String& nameParent,
471                                                << 467                                     G4double br, G4int iIso3, G4int iType)
472 {                                                 468 {
473   G4VDecayChannel* mode;                          469   G4VDecayChannel* mode;
474   //                                           << 470   // 
475   if (iIso3 == +1) {                              471   if (iIso3 == +1) {
476     if (iType == TK) {                         << 472     if (iType == TK) {    
477       mode = new G4PhaseSpaceDecayChannel(name << 473       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 474              "kaon+","eta");
478       decayTable->Insert(mode);                   475       decayTable->Insert(mode);
479     }                                          << 476     }else if (iType==TAntiK) {
480     else if (iType == TAntiK) {                << 477       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
481       mode = new G4PhaseSpaceDecayChannel(name << 478              "anti_kaon0","eta");
482       decayTable->Insert(mode);                   479       decayTable->Insert(mode);
483     }                                          << 480    }   
484   }                                            << 481   } else if (iIso3 == -1) {
485   else if (iIso3 == -1) {                      << 482     if (iType == TK) {    
486     if (iType == TK) {                         << 483       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
487       mode = new G4PhaseSpaceDecayChannel(name << 484              "kaon0","eta");
488       decayTable->Insert(mode);                   485       decayTable->Insert(mode);
489     }                                          << 486     }else if (iType==TAntiK) {
490     else if (iType == TAntiK) {                << 487       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
491       mode = new G4PhaseSpaceDecayChannel(name << 488              "kaon-","eta");
492       decayTable->Insert(mode);                   489       decayTable->Insert(mode);
493     }                                             490     }
494   }                                               491   }
495                                                   492 
496   return decayTable;                              493   return decayTable;
497 }                                                 494 }
498                                                   495 
499 G4DecayTable* G4ExcitedMesonConstructor::AddKR << 496 G4DecayTable*  G4ExcitedMesonConstructor::AddKRhoMode( 
500                                                << 497                                    G4DecayTable* decayTable, const G4String& nameParent,
501                                                << 498                                     G4double br, G4int iIso3, G4int iType)
502 {                                                 499 {
503   G4VDecayChannel* mode;                          500   G4VDecayChannel* mode;
504   //                                           << 501   // 
505   if (iIso3 == +1) {                              502   if (iIso3 == +1) {
506     if (iType == TK) {                         << 503     if (iType == TK) {    
507       mode = new G4PhaseSpaceDecayChannel(name << 504       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 505              "kaon+","rho0");
508       decayTable->Insert(mode);                   506       decayTable->Insert(mode);
509       mode = new G4PhaseSpaceDecayChannel(name << 507       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 508              "kaon0","rho+");
510       decayTable->Insert(mode);                   509       decayTable->Insert(mode);
511     }                                          << 510     }else if (iType==TAntiK) {
512     else if (iType == TAntiK) {                << 511       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
513       mode = new G4PhaseSpaceDecayChannel(name << 512              "anti_kaon0","rho0");
514       decayTable->Insert(mode);                   513       decayTable->Insert(mode);
515       mode = new G4PhaseSpaceDecayChannel(name << 514       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 515              "kaon-","rho+");
516       decayTable->Insert(mode);                   516       decayTable->Insert(mode);
517     }                                          << 517    }
518   }                                            << 518   } else if (iIso3 == -1) {
519   else if (iIso3 == -1) {                      << 519     if (iType == TK) {    
520     if (iType == TK) {                         << 520       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
521       mode = new G4PhaseSpaceDecayChannel(name << 521              "kaon0","rho0");
522       decayTable->Insert(mode);                   522       decayTable->Insert(mode);
523       mode = new G4PhaseSpaceDecayChannel(name << 523       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 524              "kaon+","rho-");
524       decayTable->Insert(mode);                   525       decayTable->Insert(mode);
525     }                                          << 526  
526     else if (iType == TAntiK) {                << 527     }else if (iType==TAntiK) {
527       mode = new G4PhaseSpaceDecayChannel(name << 528       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 529              "kaon-","rho0");
528       decayTable->Insert(mode);                   530       decayTable->Insert(mode);
529       mode = new G4PhaseSpaceDecayChannel(name << 531       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 532              "anti_kaon0","rho-");
530       decayTable->Insert(mode);                   533       decayTable->Insert(mode);
531     }                                             534     }
532   }                                               535   }
533                                                   536 
534   return decayTable;                              537   return decayTable;
535 }                                                 538 }
536                                                   539 
537 G4DecayTable* G4ExcitedMesonConstructor::AddKS << 540 G4DecayTable*  G4ExcitedMesonConstructor::AddKStarPiMode( 
538                                                << 541                                    G4DecayTable* decayTable, const G4String& nameParent,
539                                                << 542                                     G4double br, G4int iIso3, G4int iType)
540 {                                                 543 {
541   G4VDecayChannel* mode;                          544   G4VDecayChannel* mode;
542   //                                           << 545   // 
543   if (iIso3 == +1) {                              546   if (iIso3 == +1) {
544     if (iType == TK) {                         << 547     if (iType == TK) {    
545       mode = new G4PhaseSpaceDecayChannel(name << 548       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 549              "k_star+","pi0");
546       decayTable->Insert(mode);                   550       decayTable->Insert(mode);
547       mode = new G4PhaseSpaceDecayChannel(name << 551       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 552              "k_star0","pi+");
548       decayTable->Insert(mode);                   553       decayTable->Insert(mode);
549     }                                          << 554     }else if (iType==TAntiK) {
550     else if (iType == TAntiK) {                << 555       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
551       mode = new G4PhaseSpaceDecayChannel(name << 556              "anti_k_star0","pi0");
552       decayTable->Insert(mode);                   557       decayTable->Insert(mode);
553       mode = new G4PhaseSpaceDecayChannel(name << 558       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 559              "k_star-","pi+");
554       decayTable->Insert(mode);                   560       decayTable->Insert(mode);
555     }                                          << 561    }
556   }                                            << 562   } else if (iIso3 == -1) {
557   else if (iIso3 == -1) {                      << 563     if (iType == TK) {    
558     if (iType == TK) {                         << 564       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
559       mode = new G4PhaseSpaceDecayChannel(name << 565              "k_star0","pi0");
560       decayTable->Insert(mode);                   566       decayTable->Insert(mode);
561       mode = new G4PhaseSpaceDecayChannel(name << 567       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 568              "k_star+","pi-");
562       decayTable->Insert(mode);                   569       decayTable->Insert(mode);
563     }                                          << 570  
564     else if (iType == TAntiK) {                << 571     }else if (iType==TAntiK) {
565       mode = new G4PhaseSpaceDecayChannel(name << 572       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 2,
                                                   >> 573              "k_star-","pi0");
566       decayTable->Insert(mode);                   574       decayTable->Insert(mode);
567       mode = new G4PhaseSpaceDecayChannel(name << 575       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 2,
                                                   >> 576              "anti_k_star0","pi-");
568       decayTable->Insert(mode);                   577       decayTable->Insert(mode);
569     }                                             578     }
570   }                                               579   }
571                                                   580 
572   return decayTable;                              581   return decayTable;
573 }                                                 582 }
574                                                   583 
575 G4DecayTable* G4ExcitedMesonConstructor::AddKS << 584 G4DecayTable*  G4ExcitedMesonConstructor::AddKStar2PiMode( 
576                                                << 585                                    G4DecayTable* decayTable, const G4String& nameParent,
577                                                << 586                                     G4double br, G4int iIso3, G4int iType)
578 {                                                 587 {
579   // K* --> K pipi(I=1)                           588   // K* --> K pipi(I=1)
580   G4VDecayChannel* mode;                          589   G4VDecayChannel* mode;
581   //                                           << 590   // 
582   if (iIso3 == +1) {                              591   if (iIso3 == +1) {
583     if (iType == TK) {                         << 592     if (iType == TK) {    
584       mode = new G4PhaseSpaceDecayChannel(name << 593       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 594              "k_star+","pi+","pi-");
585       decayTable->Insert(mode);                   595       decayTable->Insert(mode);
586       mode = new G4PhaseSpaceDecayChannel(name << 596       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 597              "k_star0","pi+","pi0");
587       decayTable->Insert(mode);                   598       decayTable->Insert(mode);
588     }                                          << 599     }else if (iType==TAntiK) {
589     else if (iType == TAntiK) {                << 600       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
590       mode = new G4PhaseSpaceDecayChannel(name << 601              "anti_k_star0","pi+","pi-");
591       decayTable->Insert(mode);                   602       decayTable->Insert(mode);
592       mode = new G4PhaseSpaceDecayChannel(name << 603       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 604              "k_star-","pi+","pi0");
593       decayTable->Insert(mode);                   605       decayTable->Insert(mode);
594     }                                          << 606    }
595   }                                            << 607   } else if (iIso3 == -1) {
596   else if (iIso3 == -1) {                      << 608     if (iType == TK) {    
597     if (iType == TK) {                         << 609       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
598       mode = new G4PhaseSpaceDecayChannel(name << 610              "k_star0","pi+","pi-");
599       decayTable->Insert(mode);                   611       decayTable->Insert(mode);
600       mode = new G4PhaseSpaceDecayChannel(name << 612       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 613              "k_star+","pi-","pi0");
601       decayTable->Insert(mode);                   614       decayTable->Insert(mode);
602     }                                          << 615  
603     else if (iType == TAntiK) {                << 616     }else if (iType==TAntiK) {
604       mode = new G4PhaseSpaceDecayChannel(name << 617       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 618              "k_star-","pi+","pi-");
605       decayTable->Insert(mode);                   619       decayTable->Insert(mode);
606       mode =                                   << 620       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
607         new G4PhaseSpaceDecayChannel(nameParen << 621              "anti_k_star0","pi-","pi0");
608       decayTable->Insert(mode);                   622       decayTable->Insert(mode);
609     }                                             623     }
610   }                                               624   }
611                                                   625 
612   return decayTable;                              626   return decayTable;
613 }                                                 627 }
614                                                   628 
615 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 629 G4DecayTable*  G4ExcitedMesonConstructor::AddPiGammaMode( 
616                                                << 630                                    G4DecayTable* decayTable, const G4String& nameParent,
617                                                << 631                                     G4double br, G4int iIso3, G4int iIso)
618 {                                                 632 {
619   if ((iIso != 2) && (iIso != 0)) return decay << 633   if ((iIso!=2)&&(iIso!=0)) return decayTable;
620                                                   634 
621   G4VDecayChannel* mode;                          635   G4VDecayChannel* mode;
622   //                                           << 636   // 
623   G4String daughter;                              637   G4String daughter;
624   if (iIso3 == +2) {                           << 638   if (iIso3 == +2) { 
625     daughter = "pi+";                          << 639     daughter = "pi+";  
626   }                                            << 640   } else if (iIso3 == 0) { 
627   else if (iIso3 == 0) {                       << 641     daughter = "pi0";  
628     daughter = "pi0";                          << 642   } else if (iIso3 ==-2) { 
629   }                                            << 643     daughter = "pi-";  
630   else if (iIso3 == -2) {                      << 644   } else {
631     daughter = "pi-";                          << 645     return decayTable; 
632   }                                            << 646   } 
633   else {                                       << 647     // create decay channel  [parent    BR     #daughters]
634     return decayTable;                         << 648   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
635   }                                            << 649                                            daughter,"gamma");
636   // create decay channel  [parent    BR     # << 
637   mode = new G4PhaseSpaceDecayChannel(namePare << 
638   // add decay table                              650   // add decay table
639   decayTable->Insert(mode);                       651   decayTable->Insert(mode);
640                                                   652 
641   return decayTable;                              653   return decayTable;
642 }                                                 654 }
643                                                   655 
644 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 656 G4DecayTable*  G4ExcitedMesonConstructor::AddPiOmegaMode( 
645                                                << 657                                    G4DecayTable* decayTable, const G4String& nameParent,
646                                                << 658                                     G4double br, G4int iIso3, G4int iIso)
647 {                                                 659 {
648   if ((iIso != 2) && (iIso != 0)) return decay << 660   if ((iIso!=2)&&(iIso!=0)) return decayTable;
649                                                   661 
650   G4VDecayChannel* mode;                          662   G4VDecayChannel* mode;
651   //                                           << 663   // 
652   G4String daughter;                              664   G4String daughter;
653   if (iIso3 == +2) {                           << 665   if (iIso3 == +2) { 
654     daughter = "pi+";                          << 666     daughter = "pi+";  
655   }                                            << 667   } else if (iIso3 == 0) { 
656   else if (iIso3 == 0) {                       << 668     daughter = "pi0";  
657     daughter = "pi0";                          << 669   } else if (iIso3 ==-2) { 
658   }                                            << 670     daughter = "pi-";  
659   else if (iIso3 == -2) {                      << 671   } else {
660     daughter = "pi-";                          << 672     return decayTable; 
661   }                                            << 673   } 
662   else {                                       << 674     // create decay channel  [parent    BR     #daughters]
663     return decayTable;                         << 675   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
664   }                                            << 676                                            daughter,"omega");
665   // create decay channel  [parent    BR     # << 
666   mode = new G4PhaseSpaceDecayChannel(namePare << 
667   // add decay table                              677   // add decay table
668   decayTable->Insert(mode);                       678   decayTable->Insert(mode);
669                                                   679 
670   return decayTable;                              680   return decayTable;
671 }                                                 681 }
672                                                   682 
673 G4DecayTable* G4ExcitedMesonConstructor::AddRh << 683 G4DecayTable*  G4ExcitedMesonConstructor::AddRhoGammaMode( 
674                                                << 684                                    G4DecayTable* decayTable, const G4String& nameParent,
675                                                << 685                                     G4double br, G4int iIso3, G4int iIso)
676 {                                                 686 {
677   if ((iIso != 2) && (iIso != 0)) return decay << 687   if ((iIso!=2)&&(iIso!=0)) return decayTable;
678                                                   688 
679   G4VDecayChannel* mode;                          689   G4VDecayChannel* mode;
680   //                                           << 690   // 
681   G4String daughter;                              691   G4String daughter;
682   if (iIso3 == +2) {                           << 692   if (iIso3 == +2) { 
683     daughter = "rho+";                         << 693     daughter = "rho+";  
684   }                                            << 694   } else if (iIso3 == 0) { 
685   else if (iIso3 == 0) {                       << 695     daughter = "rho0";  
686     daughter = "rho0";                         << 696   } else if (iIso3 ==-2) { 
687   }                                            << 697     daughter = "rho-";  
688   else if (iIso3 == -2) {                      << 698   } else {
689     daughter = "rho-";                         << 699     return decayTable; 
690   }                                            << 700   } 
691   else {                                       << 
692     return decayTable;                         << 
693   }                                            << 
694   // create decay channel  [parent    BR     #    701   // create decay channel  [parent    BR     #daughters]
695   mode = new G4PhaseSpaceDecayChannel(namePare << 702   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 703                                            daughter,"gamma");
696   // add decay table                              704   // add decay table
697   decayTable->Insert(mode);                       705   decayTable->Insert(mode);
698                                                   706 
699   return decayTable;                              707   return decayTable;
700 }                                                 708 }
701                                                   709 
702 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 710 G4DecayTable*  G4ExcitedMesonConstructor::AddPiEtaMode( 
703                                                << 711                                    G4DecayTable* decayTable, const G4String& nameParent,
704                                                << 712                                     G4double br, G4int iIso3, G4int iIso)
705 {                                                 713 {
706   if ((iIso != 2) && (iIso != 0)) return decay << 714   if ((iIso!=2)&&(iIso!=0)) return decayTable;
707                                                   715 
708   G4VDecayChannel* mode;                          716   G4VDecayChannel* mode;
709   //                                           << 717   // 
710   G4String daughter;                              718   G4String daughter;
711   if (iIso3 == +2) {                           << 719   if (iIso3 == +2) { 
712     daughter = "pi+";                          << 720     daughter = "pi+";  
713   }                                            << 721   } else if (iIso3 == 0) { 
714   else if (iIso3 == 0) {                       << 722     daughter = "pi0";  
715     daughter = "pi0";                          << 723   } else if (iIso3 ==-2) { 
716   }                                            << 724     daughter = "pi-";  
717   else if (iIso3 == -2) {                      << 725   } else {
718     daughter = "pi-";                          << 726     return decayTable; 
719   }                                            << 727   } 
720   else {                                       << 
721     return decayTable;                         << 
722   }                                            << 
723   // create decay channel  [parent    BR     #    728   // create decay channel  [parent    BR     #daughters]
724   mode = new G4PhaseSpaceDecayChannel(namePare << 729   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 730                                            daughter,"eta");
725   // add decay table                              731   // add decay table
726   decayTable->Insert(mode);                       732   decayTable->Insert(mode);
727                                                   733 
728   return decayTable;                              734   return decayTable;
729 }                                                 735 }
730                                                   736 
731 G4DecayTable* G4ExcitedMesonConstructor::AddRh << 737 G4DecayTable*  G4ExcitedMesonConstructor::AddRhoEtaMode( 
732                                                << 738                                    G4DecayTable* decayTable, const G4String& nameParent,
733                                                << 739                                     G4double br, G4int iIso3, G4int iIso)
734 {                                                 740 {
735   if ((iIso != 2) && (iIso != 0)) return decay << 741   if ((iIso!=2)&&(iIso!=0)) return decayTable;
736                                                   742 
737   G4VDecayChannel* mode;                          743   G4VDecayChannel* mode;
738   //                                           << 744   // 
739   G4String daughter;                              745   G4String daughter;
740   if (iIso3 == +2) {                           << 746   if (iIso3 == +2) { 
741     daughter = "rho+";                         << 747     daughter = "rho+";  
742   }                                            << 748   } else if (iIso3 == 0) { 
743   else if (iIso3 == 0) {                       << 749     daughter = "rho0";  
744     daughter = "rho0";                         << 750   } else if (iIso3 ==-2) { 
745   }                                            << 751     daughter = "rho-";  
746   else if (iIso3 == -2) {                      << 752   } else {
747     daughter = "rho-";                         << 753     return decayTable; 
748   }                                            << 754   } 
749   else {                                       << 
750     return decayTable;                         << 
751   }                                            << 
752   // create decay channel  [parent    BR     #    755   // create decay channel  [parent    BR     #daughters]
753   mode = new G4PhaseSpaceDecayChannel(namePare << 756   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 757                                            daughter,"eta");
754   // add decay table                              758   // add decay table
755   decayTable->Insert(mode);                       759   decayTable->Insert(mode);
756                                                   760 
757   return decayTable;                              761   return decayTable;
758 }                                                 762 }
759                                                   763 
760 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 764 G4DecayTable*  G4ExcitedMesonConstructor::AddPiF2Mode( 
761                                                << 765                                    G4DecayTable* decayTable, const G4String& nameParent,
762                                                << 766                                     G4double br, G4int iIso3, G4int iIso)
763 {                                                 767 {
764   if ((iIso != 2) && (iIso != 0)) return decay << 768   if ((iIso!=2)&&(iIso!=0)) return decayTable;
765                                                   769 
766   G4VDecayChannel* mode;                          770   G4VDecayChannel* mode;
767   //                                           << 771   // 
768   G4String daughter;                              772   G4String daughter;
769   if (iIso3 == +2) {                           << 773   if (iIso3 == +2) { 
770     daughter = "pi+";                          << 774     daughter = "pi+";  
771   }                                            << 775   } else if (iIso3 == 0) { 
772   else if (iIso3 == 0) {                       << 776     daughter = "pi0";  
773     daughter = "pi0";                          << 777   } else if (iIso3 ==-2) { 
774   }                                            << 778     daughter = "pi-";  
775   else if (iIso3 == -2) {                      << 779   } else {
776     daughter = "pi-";                          << 780     return decayTable; 
777   }                                            << 781   } 
778   else {                                       << 
779     return decayTable;                         << 
780   }                                            << 
781   // create decay channel  [parent    BR     #    782   // create decay channel  [parent    BR     #daughters]
782   mode = new G4PhaseSpaceDecayChannel(namePare << 783   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 784                                            daughter,"f2(1270)");
783   // add decay table                              785   // add decay table
784   decayTable->Insert(mode);                       786   decayTable->Insert(mode);
785                                                   787 
786   return decayTable;                              788   return decayTable;
787 }                                                 789 }
788                                                   790 
789 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 791 G4DecayTable*  G4ExcitedMesonConstructor::AddPiF0Mode( 
790                                                << 792                                    G4DecayTable* decayTable, const G4String& nameParent,
791                                                << 793                                     G4double br, G4int iIso3, G4int iIso)
792 {                                                 794 {
793   if ((iIso != 2) && (iIso != 0)) return decay << 795   if ((iIso!=2)&&(iIso!=0)) return decayTable;
794                                                   796 
795   G4VDecayChannel* mode;                          797   G4VDecayChannel* mode;
796   //                                           << 798   // 
797   G4String daughter;                              799   G4String daughter;
798   if (iIso3 == +2) {                           << 800   if (iIso3 == +2) { 
799     daughter = "pi+";                          << 801     daughter = "pi+";  
800   }                                            << 802   } else if (iIso3 == 0) { 
801   else if (iIso3 == 0) {                       << 803     daughter = "pi0";  
802     daughter = "pi0";                          << 804   } else if (iIso3 ==-2) { 
803   }                                            << 805     daughter = "pi-";  
804   else if (iIso3 == -2) {                      << 806   } else {
805     daughter = "pi-";                          << 807     return decayTable; 
806   }                                            << 808   } 
807   else {                                       << 
808     return decayTable;                         << 
809   }                                            << 
810   // create decay channel  [parent    BR     #    809   // create decay channel  [parent    BR     #daughters]
811   mode = new G4PhaseSpaceDecayChannel(namePare << 810   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 811                                            daughter,"f0(1370)");
812   // add decay table                              812   // add decay table
813   decayTable->Insert(mode);                       813   decayTable->Insert(mode);
814   return decayTable;                              814   return decayTable;
815 }                                                 815 }
816                                                   816 
817 G4DecayTable* G4ExcitedMesonConstructor::Add2P << 817 
818                                                << 818 G4DecayTable*  G4ExcitedMesonConstructor::Add2PiMode( 
819                                                << 819                                     G4DecayTable* decayTable, const G4String& nameParent,
                                                   >> 820                                     G4double br, G4int iIso3, G4int iIso)
820 {                                                 821 {
821   G4VDecayChannel* mode;                          822   G4VDecayChannel* mode;
822                                                   823 
823   G4String daughterPi1;                           824   G4String daughterPi1;
824   G4String daughterPi2;                           825   G4String daughterPi2;
825   G4double r;                                  << 826   G4double r; 
826                                                   827 
827   // I = 0 states                                 828   // I = 0 states
828   if (iIso == 0) {                             << 829   if (iIso==0) {
829     if (iIso3 == 0) {                          << 830     if (iIso3==0) {
830       // pi+ + pi-                             << 831      // pi+ + pi-
831       daughterPi1 = "pi+";                        832       daughterPi1 = "pi+";
832       daughterPi2 = "pi-";                        833       daughterPi2 = "pi-";
833       r = br * 2. / 3.;                        << 834       r = br*2./3.;
834       mode = new G4PhaseSpaceDecayChannel(name << 835       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 836             daughterPi1,daughterPi2);
835       decayTable->Insert(mode);                   837       decayTable->Insert(mode);
836                                                   838 
837       // pi0 + pi0                                839       // pi0 + pi0
838       daughterPi1 = "pi0";                        840       daughterPi1 = "pi0";
839       daughterPi2 = "pi0";                        841       daughterPi2 = "pi0";
840       r = br * 1. / 3.;                        << 842       r = br*1./3.;
841       mode = new G4PhaseSpaceDecayChannel(name << 843       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
842       decayTable->Insert(mode);                << 844             daughterPi1,daughterPi2);
843     }                                          << 845       decayTable->Insert(mode);
844   }                                            << 846     } 
845   else if (iIso == 2) {                        << 847   } else if (iIso==2) {
846     if (iIso3 == +2) {                         << 848     if (iIso3==+2) {
847       // pi+ + pi0                                849       // pi+ + pi0
848       daughterPi1 = "pi+";                        850       daughterPi1 = "pi+";
849       daughterPi2 = "pi0";                        851       daughterPi2 = "pi0";
850       r = br;                                     852       r = br;
851       mode = new G4PhaseSpaceDecayChannel(name << 853             mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 854             daughterPi1,daughterPi2);
852       // add decay table                          855       // add decay table
853       decayTable->Insert(mode);                   856       decayTable->Insert(mode);
854     }                                          << 857     } else if (iIso3==0) {
855     else if (iIso3 == 0) {                     << 858        // pi+ + pi-
856       // pi+ + pi-                             << 
857       daughterPi1 = "pi+";                        859       daughterPi1 = "pi+";
858       daughterPi2 = "pi-";                        860       daughterPi2 = "pi-";
859       r = br;                                     861       r = br;
860       mode = new G4PhaseSpaceDecayChannel(name << 862       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 863             daughterPi1,daughterPi2);
861       decayTable->Insert(mode);                   864       decayTable->Insert(mode);
862     }                                          << 865      } else if (iIso3==-2) {
863     else if (iIso3 == -2) {                    << 866        // pi- + pi0
864       // pi- + pi0                             << 
865       daughterPi1 = "pi-";                        867       daughterPi1 = "pi-";
866       daughterPi2 = "pi0";                        868       daughterPi2 = "pi0";
867       r = br;                                     869       r = br;
868       mode = new G4PhaseSpaceDecayChannel(name << 870       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 871             daughterPi1,daughterPi2);
869       decayTable->Insert(mode);                   872       decayTable->Insert(mode);
870     }                                             873     }
871   }                                               874   }
872   return decayTable;                              875   return decayTable;
873 }                                                 876 }
874                                                   877 
875 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 878 G4DecayTable*  G4ExcitedMesonConstructor::AddPiRhoMode( 
876                                                << 879                                     G4DecayTable* decayTable, const G4String& nameParent,
877                                                << 880                                     G4double br, G4int iIso3, G4int iIso)
878 {                                                 881 {
879   G4VDecayChannel* mode;                          882   G4VDecayChannel* mode;
880                                                   883 
881   G4String daughterPi;                            884   G4String daughterPi;
882   G4String daughterRho;                           885   G4String daughterRho;
883   G4double r;                                  << 886   G4double r; 
884                                                   887 
885   // I = 0 states                                 888   // I = 0 states
886   if (iIso == 0) {                             << 889   if (iIso==0) {
887     if (iIso3 == 0) {                          << 890     if (iIso3==0) {
888       // pi+ + rho-                               891       // pi+ + rho-
889       daughterPi = "pi+";                         892       daughterPi = "pi+";
890       daughterRho = "rho-";                       893       daughterRho = "rho-";
891       r = br / 3.;                             << 894       r = br/3.;
892       mode = new G4PhaseSpaceDecayChannel(name << 895       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 896             daughterPi,daughterRho);
893       decayTable->Insert(mode);                   897       decayTable->Insert(mode);
894                                                << 898       
895       // pi0 + rho0                               899       // pi0 + rho0
896       daughterPi = "pi0";                         900       daughterPi = "pi0";
897       daughterRho = "rho0";                       901       daughterRho = "rho0";
898       r = br * 1. / 3.;                        << 902       r = br*1./3.;
899       mode = new G4PhaseSpaceDecayChannel(name << 903       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 904             daughterPi,daughterRho);
900       decayTable->Insert(mode);                   905       decayTable->Insert(mode);
901                                                << 906       
902       // pi- + rho+                               907       // pi- + rho+
903       daughterPi = "pi-";                         908       daughterPi = "pi-";
904       daughterRho = "rho+";                       909       daughterRho = "rho+";
905       r = br * 1. / 3.;                        << 910       r = br*1./3.;
906       mode = new G4PhaseSpaceDecayChannel(name << 911       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
907       decayTable->Insert(mode);                << 912             daughterPi,daughterRho);
908     }                                          << 913       decayTable->Insert(mode);
909   }                                            << 914     } 
910   else if (iIso == 2) {                        << 915   } else if (iIso==2) {
911     if (iIso3 == +2) {                         << 916     if (iIso3==+2) {
912       // pi+ + rho0                               917       // pi+ + rho0
913       daughterPi = "pi+";                         918       daughterPi = "pi+";
914       daughterRho = "rho0";                       919       daughterRho = "rho0";
915       r = br / 2.;                             << 920       r = br/2.;
916       mode = new G4PhaseSpaceDecayChannel(name << 921       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 922             daughterPi,daughterRho);
917       decayTable->Insert(mode);                   923       decayTable->Insert(mode);
918                                                << 924  
919       // pi0 + rho+                               925       // pi0 + rho+
920       daughterPi = "pi0";                         926       daughterPi = "pi0";
921       daughterRho = "rho+";                       927       daughterRho = "rho+";
922       r = br / 2.;                             << 928       r = br/2.;
923       mode = new G4PhaseSpaceDecayChannel(name << 929       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 930             daughterPi,daughterRho);
924       decayTable->Insert(mode);                   931       decayTable->Insert(mode);
925     }                                          << 932     } else if (iIso3==0) {
926     else if (iIso3 == 0) {                     << 933        // pi+ + rho-
927       // pi+ + rho-                            << 
928       daughterPi = "pi+";                         934       daughterPi = "pi+";
929       daughterRho = "rho-";                       935       daughterRho = "rho-";
930       r = br / 2.;                             << 936       r = br/2.;
931       mode = new G4PhaseSpaceDecayChannel(name << 937       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 938             daughterPi,daughterRho);
932       decayTable->Insert(mode);                   939       decayTable->Insert(mode);
933                                                   940 
934       // pi- + rho+                            << 941        // pi- + rho+
935       daughterPi = "pi-";                         942       daughterPi = "pi-";
936       daughterRho = "rho+";                       943       daughterRho = "rho+";
937       r = br / 2.;                             << 944       r = br/2.;
938       mode = new G4PhaseSpaceDecayChannel(name << 945       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 946             daughterPi,daughterRho);
939       decayTable->Insert(mode);                   947       decayTable->Insert(mode);
940     }                                          << 948      } else if (iIso3==-2) {
941     else if (iIso3 == -2) {                    << 949        // pi- + rho0
942       // pi- + rho0                            << 
943       daughterPi = "pi-";                         950       daughterPi = "pi-";
944       daughterRho = "rho0";                       951       daughterRho = "rho0";
945       r = br / 2.;                             << 952       r = br/2.;
946       mode = new G4PhaseSpaceDecayChannel(name << 953       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 954             daughterPi,daughterRho);
947       decayTable->Insert(mode);                   955       decayTable->Insert(mode);
948                                                << 956     
949       // pi0 + rho-                               957       // pi0 + rho-
950       daughterPi = "pi0";                         958       daughterPi = "pi0";
951       daughterRho = "rho-";                       959       daughterRho = "rho-";
952       r = br / 2.;                             << 960       r = br/2.;
953       mode = new G4PhaseSpaceDecayChannel(name << 961       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 962             daughterPi,daughterRho);
954       decayTable->Insert(mode);                   963       decayTable->Insert(mode);
955     }                                             964     }
956   }                                               965   }
957   return decayTable;                              966   return decayTable;
958 }                                                 967 }
959                                                   968 
960 G4DecayTable* G4ExcitedMesonConstructor::AddPi << 969 G4DecayTable*  G4ExcitedMesonConstructor::AddPiA2Mode( 
961                                                << 970                                     G4DecayTable* decayTable, const G4String& nameParent,
962                                                << 971                                     G4double br, G4int iIso3, G4int iIso)
963 {                                                 972 {
964   G4VDecayChannel* mode;                          973   G4VDecayChannel* mode;
965                                                   974 
966   G4String daughterPi;                            975   G4String daughterPi;
967   G4String daughterA2;                            976   G4String daughterA2;
968   G4double r;                                  << 977   G4double r; 
969                                                   978 
970   // I = 0 states                                 979   // I = 0 states
971   if (iIso == 0) {                             << 980   if (iIso==0) {
972     if (iIso3 == 0) {                          << 981     if (iIso3==0) {
973       // pi+ + a2(1320)-                          982       // pi+ + a2(1320)-
974       daughterPi = "pi+";                         983       daughterPi = "pi+";
975       daughterA2 = "a2(1320)-";                   984       daughterA2 = "a2(1320)-";
976       r = br / 3.;                             << 985       r = br/3.;
977       mode = new G4PhaseSpaceDecayChannel(name << 986       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 987             daughterPi,daughterA2);
978       decayTable->Insert(mode);                   988       decayTable->Insert(mode);
979                                                << 989       
980       // pi0 + a2(1320)0                          990       // pi0 + a2(1320)0
981       daughterPi = "pi0";                         991       daughterPi = "pi0";
982       daughterA2 = "a2(1320)0";                   992       daughterA2 = "a2(1320)0";
983       r = br * 1. / 3.;                        << 993       r = br*1./3.;
984       mode = new G4PhaseSpaceDecayChannel(name << 994       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 995             daughterPi,daughterA2);
985       decayTable->Insert(mode);                   996       decayTable->Insert(mode);
986                                                << 997       
987       // pi- + a2(1320)+                          998       // pi- + a2(1320)+
988       daughterPi = "pi-";                         999       daughterPi = "pi-";
989       daughterA2 = "a2(1320)+";                   1000       daughterA2 = "a2(1320)+";
990       r = br * 1. / 3.;                        << 1001       r = br*1./3.;
991       mode = new G4PhaseSpaceDecayChannel(name << 1002       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
992       decayTable->Insert(mode);                << 1003             daughterPi,daughterA2);
993     }                                          << 1004       decayTable->Insert(mode);
994   }                                            << 1005     } 
995   else if (iIso == 2) {                        << 1006   } else if (iIso==2) {
996     if (iIso3 == +2) {                         << 1007     if (iIso3==+2) {
997       // pi+ + a2(1320)0                          1008       // pi+ + a2(1320)0
998       daughterPi = "pi+";                         1009       daughterPi = "pi+";
999       daughterA2 = "a2(1320)0";                   1010       daughterA2 = "a2(1320)0";
1000       r = br / 2.;                            << 1011       r = br/2.;
1001       mode = new G4PhaseSpaceDecayChannel(nam << 1012       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1013             daughterPi,daughterA2);
1002       decayTable->Insert(mode);                  1014       decayTable->Insert(mode);
1003                                               << 1015  
1004       // pi0 + a2(1320)+                         1016       // pi0 + a2(1320)+
1005       daughterPi = "pi0";                        1017       daughterPi = "pi0";
1006       daughterA2 = "a2(1320)+";                  1018       daughterA2 = "a2(1320)+";
1007       r = br / 2.;                            << 1019       r = br/2.;
1008       mode = new G4PhaseSpaceDecayChannel(nam << 1020       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1021             daughterPi,daughterA2);
1009       decayTable->Insert(mode);                  1022       decayTable->Insert(mode);
1010     }                                         << 1023     } else if (iIso3==0) {
1011     else if (iIso3 == 0) {                    << 1024        // pi+ + a2(1320)-
1012       // pi+ + a2(1320)-                      << 
1013       daughterPi = "pi+";                        1025       daughterPi = "pi+";
1014       daughterA2 = "a2(1320)-";                  1026       daughterA2 = "a2(1320)-";
1015       r = br / 2.;                            << 1027       r = br/2.;
1016       mode = new G4PhaseSpaceDecayChannel(nam << 1028       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1029             daughterPi,daughterA2);
1017       decayTable->Insert(mode);                  1030       decayTable->Insert(mode);
1018                                                  1031 
1019       // pi- + a2(1320)+                      << 1032        // pi- + a2(1320)+
1020       daughterPi = "pi-";                        1033       daughterPi = "pi-";
1021       daughterA2 = "a2(1320)+";                  1034       daughterA2 = "a2(1320)+";
1022       r = br / 2.;                            << 1035       r = br/2.;
1023       mode = new G4PhaseSpaceDecayChannel(nam << 1036       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1037             daughterPi,daughterA2);
1024       decayTable->Insert(mode);                  1038       decayTable->Insert(mode);
1025     }                                         << 1039      } else if (iIso3==-2) {
1026     else if (iIso3 == -2) {                   << 1040        // pi- + a2(1320)0
1027       // pi- + a2(1320)0                      << 
1028       daughterPi = "pi-";                        1041       daughterPi = "pi-";
1029       daughterA2 = "a2(1320)0";                  1042       daughterA2 = "a2(1320)0";
1030       r = br / 2.;                            << 1043       r = br/2.;
1031       mode = new G4PhaseSpaceDecayChannel(nam << 1044       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1045             daughterPi,daughterA2);
1032       decayTable->Insert(mode);                  1046       decayTable->Insert(mode);
1033                                               << 1047     
1034       // pi0 + a2(1320)-                         1048       // pi0 + a2(1320)-
1035       daughterPi = "pi0";                        1049       daughterPi = "pi0";
1036       daughterA2 = "a2(1320)-";                  1050       daughterA2 = "a2(1320)-";
1037       r = br / 2.;                            << 1051       r = br/2.;
1038       mode = new G4PhaseSpaceDecayChannel(nam << 1052       mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
                                                   >> 1053             daughterPi,daughterA2);
1039       decayTable->Insert(mode);                  1054       decayTable->Insert(mode);
1040     }                                            1055     }
1041   }                                              1056   }
1042   return decayTable;                             1057   return decayTable;
1043 }                                                1058 }
1044                                                  1059 
1045 G4DecayTable* G4ExcitedMesonConstructor::Add3 << 1060 G4DecayTable*  G4ExcitedMesonConstructor::Add3PiMode( 
1046                                               << 1061                                     G4DecayTable* decayTable, const G4String& nameParent,
1047                                               << 1062                                     G4double br, G4int iIso3, G4int iIso)
1048 {                                                1063 {
1049   G4VDecayChannel* mode;                         1064   G4VDecayChannel* mode;
1050                                                  1065 
1051   // I =0 state                                  1066   // I =0 state
1052   // This mode is X(I=0,J=1) --> pi+,pi-,pi0     1067   // This mode is X(I=0,J=1) --> pi+,pi-,pi0 mode
1053   if (iIso == 0) {                            << 1068   if (iIso==0) {
1054     // pi+ + pi-                                 1069     // pi+ + pi-
1055     mode = new G4PhaseSpaceDecayChannel(nameP << 1070     mode = new G4PhaseSpaceDecayChannel(nameParent, br, 3,
                                                   >> 1071           "pi+","pi-","pi0");
1056     decayTable->Insert(mode);                    1072     decayTable->Insert(mode);
1057   }                                           << 1073   } else if (iIso==2) {
1058   else if (iIso == 2) {                       << 1074   // This mode is X(I=1) --> pi + pipi(I=0) mode
1059     // This mode is X(I=1) --> pi + pipi(I=0) << 1075     if (iIso3==+2) {
1060     if (iIso3 == +2) {                        << 1076       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
1061       mode = new G4PhaseSpaceDecayChannel(nam << 1077           "pi+","pi0","pi0");
1062       decayTable->Insert(mode);                  1078       decayTable->Insert(mode);
1063       mode = new G4PhaseSpaceDecayChannel(nam << 1079       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 1080           "pi+","pi+","pi-");
1064       decayTable->Insert(mode);                  1081       decayTable->Insert(mode);
1065     }                                         << 1082     } else if (iIso3==0) {
1066     else if (iIso3 == 0) {                    << 1083       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
1067       mode = new G4PhaseSpaceDecayChannel(nam << 1084           "pi0","pi0","pi0");
1068       decayTable->Insert(mode);                  1085       decayTable->Insert(mode);
1069       mode = new G4PhaseSpaceDecayChannel(nam << 1086       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 1087           "pi0","pi+","pi-");
1070       decayTable->Insert(mode);                  1088       decayTable->Insert(mode);
1071     }                                         << 1089     } else if (iIso3==-2) {
1072     else if (iIso3 == -2) {                   << 1090       mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
1073       mode = new G4PhaseSpaceDecayChannel(nam << 1091           "pi-","pi0","pi0");
1074       decayTable->Insert(mode);                  1092       decayTable->Insert(mode);
1075       mode = new G4PhaseSpaceDecayChannel(nam << 1093       mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 1094           "pi-","pi+","pi-");
1076       decayTable->Insert(mode);                  1095       decayTable->Insert(mode);
1077     }                                            1096     }
1078   }                                           << 1097   } 
1079   return decayTable;                             1098   return decayTable;
1080 }                                                1099 }
1081                                                  1100 
1082 G4DecayTable* G4ExcitedMesonConstructor::Add4 << 1101 G4DecayTable*  G4ExcitedMesonConstructor::Add4PiMode( 
1083                                               << 1102                                     G4DecayTable* decayTable, const G4String& nameParent,
1084                                               << 1103                                     G4double br, G4int iIso3, G4int )
1085 {                                                1104 {
1086   G4VDecayChannel* mode;                         1105   G4VDecayChannel* mode;
1087                                                  1106 
1088   if (iIso3 == 0) {                           << 1107   if (iIso3==0) {
1089     // 2pi+ + 2pi-                               1108     // 2pi+ + 2pi-
1090     mode = new G4PhaseSpaceDecayChannel(nameP << 1109     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 4,
                                                   >> 1110           "pi+","pi-","pi+","pi-");
1091     decayTable->Insert(mode);                    1111     decayTable->Insert(mode);
1092     // pi+ + pi- + 2pi0                       << 1112     // pi+ + pi- + 2pi0 
1093     mode = new G4PhaseSpaceDecayChannel(nameP << 1113     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 4,
                                                   >> 1114           "pi+","pi-","pi0","pi0");
1094     decayTable->Insert(mode);                    1115     decayTable->Insert(mode);
1095   }                                           << 1116   } else if (iIso3==+2) {
1096   else if (iIso3 == +2) {                     << 
1097     // pi+ + 3pi0                                1117     // pi+ + 3pi0
1098     mode = new G4PhaseSpaceDecayChannel(nameP << 1118     mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 4,
                                                   >> 1119           "pi+","pi0","pi0","pi0");
1099     decayTable->Insert(mode);                    1120     decayTable->Insert(mode);
1100     // 2pi+ + pi- + pi0                          1121     // 2pi+ + pi- + pi0
1101     mode = new G4PhaseSpaceDecayChannel(nameP << 1122     mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 4,
                                                   >> 1123           "pi+","pi+","pi-","pi0");
1102     decayTable->Insert(mode);                    1124     decayTable->Insert(mode);
1103   }                                           << 1125   } else if (iIso3==-2) {
1104   else if (iIso3 == -2) {                     << 
1105     // pi- + 3pi0                                1126     // pi- + 3pi0
1106     mode = new G4PhaseSpaceDecayChannel(nameP << 1127     mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 4,
                                                   >> 1128           "pi-","pi0","pi0","pi0");
1107     decayTable->Insert(mode);                    1129     decayTable->Insert(mode);
1108     // 2pi- + pi+ + pi0                          1130     // 2pi- + pi+ + pi0
1109     mode = new G4PhaseSpaceDecayChannel(nameP << 1131     mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 4,
                                                   >> 1132           "pi-","pi-","pi+","pi0");
1110     decayTable->Insert(mode);                    1133     decayTable->Insert(mode);
1111   }                                              1134   }
1112   return decayTable;                             1135   return decayTable;
1113 }                                                1136 }
1114                                                  1137 
1115 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1138 G4DecayTable*  G4ExcitedMesonConstructor::Add2PiEtaMode( 
1116                                               << 1139                                     G4DecayTable* decayTable, const G4String& nameParent,
1117                                               << 1140                                     G4double br, G4int , G4int iIso)
1118 {                                                1141 {
1119   // f1-->eta + pi + pi mode                     1142   // f1-->eta + pi + pi mode
1120                                                  1143 
1121   if (iIso != 0) return decayTable;           << 1144   if (iIso!=0) return decayTable;
1122                                                  1145 
1123   G4VDecayChannel* mode;                         1146   G4VDecayChannel* mode;
1124                                                  1147 
1125   // eta pi+ pi-                                 1148   // eta pi+ pi-
1126   mode = new G4PhaseSpaceDecayChannel(namePar << 1149   mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 1150                   "eta","pi+","pi-");
1127   decayTable->Insert(mode);                      1151   decayTable->Insert(mode);
1128                                                  1152 
1129   // eta pi+ pi-                                 1153   // eta pi+ pi-
1130   mode = new G4PhaseSpaceDecayChannel(namePar << 1154   mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 1155                   "eta","pi0","pi0");
1131   decayTable->Insert(mode);                      1156   decayTable->Insert(mode);
1132   return decayTable;                             1157   return decayTable;
1133 }                                                1158 }
1134                                                  1159 
1135 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1160 G4DecayTable*  G4ExcitedMesonConstructor::Add2EtaMode( 
1136                                               << 1161                                     G4DecayTable* decayTable, const G4String& nameParent,
1137                                               << 1162                                     G4double br, G4int , G4int iIso)
1138 {                                                1163 {
1139   if (iIso != 0) return decayTable;           << 1164   if (iIso!=0) return decayTable;
1140                                                  1165 
1141   G4VDecayChannel* mode;                         1166   G4VDecayChannel* mode;
1142                                                  1167 
1143   // eta eta                                     1168   // eta eta
1144   mode = new G4PhaseSpaceDecayChannel(namePar << 1169   mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 1170                   "eta","eta");
1145   decayTable->Insert(mode);                      1171   decayTable->Insert(mode);
1146   return decayTable;                             1172   return decayTable;
1147 }                                                1173 }
1148                                                  1174 
1149 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1175 G4DecayTable*  G4ExcitedMesonConstructor::Add2PiOmegaMode( 
1150                                               << 1176                                     G4DecayTable* decayTable, const G4String& nameParent,
1151                                               << 1177                                     G4double br, G4int iIso3, G4int iIso)
1152 {                                                1178 {
                                                   >> 1179 
1153   G4VDecayChannel* mode;                         1180   G4VDecayChannel* mode;
1154   if (iIso == 0) {                            << 1181   if (iIso==0) {
1155     // omega pi+ pi-                             1182     // omega pi+ pi-
1156     mode = new G4PhaseSpaceDecayChannel(nameP << 1183     mode = new G4PhaseSpaceDecayChannel(nameParent, br*2./3., 3,
                                                   >> 1184                   "omega","pi+","pi-");
1157     decayTable->Insert(mode);                    1185     decayTable->Insert(mode);
1158                                                  1186 
1159     // omega pi+ pi-                             1187     // omega pi+ pi-
1160     mode = new G4PhaseSpaceDecayChannel(nameP << 1188     mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 1189                   "omega","pi0","pi0");
1161     decayTable->Insert(mode);                    1190     decayTable->Insert(mode);
1162   }                                           << 1191   } else if (iIso==2) {
1163   else if (iIso == 2) {                       << 1192     if (iIso3==+2) {
1164     if (iIso3 == +2) {                        << 
1165       // omega pi+ pi0                           1193       // omega pi+ pi0
1166       mode = new G4PhaseSpaceDecayChannel(nam << 1194       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 3,
                                                   >> 1195                   "omega","pi+","pi0");
1167       decayTable->Insert(mode);                  1196       decayTable->Insert(mode);
1168     }                                         << 1197     } else if (iIso3==0) {
1169     else if (iIso3 == 0) {                    << 
1170       // omega pi+ pi-                           1198       // omega pi+ pi-
1171       mode = new G4PhaseSpaceDecayChannel(nam << 1199       mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 3,
                                                   >> 1200                   "omega","pi-","pi+");
1172       decayTable->Insert(mode);                  1201       decayTable->Insert(mode);
1173       // omega pi0 pi0                           1202       // omega pi0 pi0
1174       mode = new G4PhaseSpaceDecayChannel(nam << 1203       mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 3,
                                                   >> 1204                   "omega","pi0","pi0");
1175       decayTable->Insert(mode);                  1205       decayTable->Insert(mode);
1176     }                                         << 1206      } else if (iIso3==-2) {
1177     else if (iIso3 == -2) {                   << 
1178       // omega pi- pi0                           1207       // omega pi- pi0
1179       mode = new G4PhaseSpaceDecayChannel(nam << 1208       mode = new G4PhaseSpaceDecayChannel(nameParent, br, 3,
                                                   >> 1209                   "omega","pi-","pi0");
1180       decayTable->Insert(mode);                  1210       decayTable->Insert(mode);
1181     }                                         << 1211      }
1182   }                                              1212   }
1183   return decayTable;                             1213   return decayTable;
1184 }                                                1214 }
                                                   >> 1215   
                                                   >> 1216 
1185                                                  1217 
1186 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1218 G4DecayTable*  G4ExcitedMesonConstructor::Add2PiRhoMode( 
1187                                               << 1219                                     G4DecayTable* decayTable, const G4String& nameParent,
1188                                               << 1220                                     G4double br, G4int iIso3, G4int iIso)
1189 {                                                1221 {
1190   G4VDecayChannel* mode;                         1222   G4VDecayChannel* mode;
1191                                                  1223 
1192   if (iIso == 0) {                            << 1224   if (iIso==0) {
1193     // f1 --> rho0 + pi+ pi-                     1225     // f1 --> rho0 + pi+ pi-
1194     // rho0 pi+ pi-                              1226     // rho0 pi+ pi-
1195     mode = new G4PhaseSpaceDecayChannel(nameP << 1227     mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1228                   "rho0","pi+","pi-");
1196     decayTable->Insert(mode);                    1229     decayTable->Insert(mode);
1197   }                                           << 1230   } else if (iIso==2) {
1198   else if (iIso == 2) {                       << 1231     if (iIso3==+2) {
1199     if (iIso3 == +2) {                        << 
1200       // rho+ pi0 pi0                            1232       // rho+ pi0 pi0
1201       mode = new G4PhaseSpaceDecayChannel(nam << 1233       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1234                   "rho+","pi0","pi0");
1202       decayTable->Insert(mode);                  1235       decayTable->Insert(mode);
1203       // rho+ pi+ pi-                            1236       // rho+ pi+ pi-
1204       mode = new G4PhaseSpaceDecayChannel(nam << 1237       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1238                   "rho+","pi+","pi-");
1205       decayTable->Insert(mode);                  1239       decayTable->Insert(mode);
1206       // rho0 pi+ pi0                            1240       // rho0 pi+ pi0
1207       mode = new G4PhaseSpaceDecayChannel(nam << 1241       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1242                   "rho0","pi+","pi0");
1208       decayTable->Insert(mode);                  1243       decayTable->Insert(mode);
1209       // rho- pi+ pi+                            1244       // rho- pi+ pi+
1210       mode = new G4PhaseSpaceDecayChannel(nam << 1245       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1246                   "rho-","pi+","pi+");
1211       decayTable->Insert(mode);                  1247       decayTable->Insert(mode);
1212     }                                         << 1248     } else if (iIso3==-2) {
1213     else if (iIso3 == -2) {                   << 
1214       // rho- pi0 pi0                            1249       // rho- pi0 pi0
1215       mode = new G4PhaseSpaceDecayChannel(nam << 1250       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1251                   "rho-","pi0","pi0");
1216       decayTable->Insert(mode);                  1252       decayTable->Insert(mode);
1217       // rho- pi+ pi-                            1253       // rho- pi+ pi-
1218       mode = new G4PhaseSpaceDecayChannel(nam << 1254       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1255                   "rho-","pi+","pi-");
1219       decayTable->Insert(mode);                  1256       decayTable->Insert(mode);
1220       // rho0 pi- pi0                            1257       // rho0 pi- pi0
1221       mode = new G4PhaseSpaceDecayChannel(nam << 1258       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1259                   "rho0","pi-","pi0");
1222       decayTable->Insert(mode);                  1260       decayTable->Insert(mode);
1223       // rho+ pi- pi-                            1261       // rho+ pi- pi-
1224       mode = new G4PhaseSpaceDecayChannel(nam << 1262       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1263                   "rho+","pi-","pi-");
1225       decayTable->Insert(mode);                  1264       decayTable->Insert(mode);
1226     }                                         << 1265     } else if (iIso3==0) {
1227     else if (iIso3 == 0) {                    << 
1228       // rho+ pi- pi0                            1266       // rho+ pi- pi0
1229       mode = new G4PhaseSpaceDecayChannel(nam << 1267       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1268                   "rho+","pi-","pi0");
1230       decayTable->Insert(mode);                  1269       decayTable->Insert(mode);
1231       // rho0 pi+ pi-                            1270       // rho0 pi+ pi-
1232       mode = new G4PhaseSpaceDecayChannel(nam << 1271       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1272                   "rho0","pi+","pi-");
1233       decayTable->Insert(mode);                  1273       decayTable->Insert(mode);
1234       // rho0 pi0 pi0                            1274       // rho0 pi0 pi0
1235       mode = new G4PhaseSpaceDecayChannel(nam << 1275       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1276                   "rho0","pi0","pi0");
1236       decayTable->Insert(mode);                  1277       decayTable->Insert(mode);
1237       // rho- pi+ pi0                            1278       // rho- pi+ pi0
1238       mode = new G4PhaseSpaceDecayChannel(nam << 1279       mode = new G4PhaseSpaceDecayChannel(nameParent, br/5., 3,
                                                   >> 1280                   "rho-","pi+","pi-");
1239       decayTable->Insert(mode);                  1281       decayTable->Insert(mode);
1240     }                                            1282     }
1241   }                                              1283   }
1242   return decayTable;                             1284   return decayTable;
1243 }                                                1285 }
1244                                                  1286 
1245 G4DecayTable* G4ExcitedMesonConstructor::AddK << 1287 
1246                                               << 1288 G4DecayTable*  G4ExcitedMesonConstructor::AddKKStarMode( 
1247                                               << 1289                                     G4DecayTable* decayTable, const G4String& nameParent,
                                                   >> 1290                                     G4double br, G4int iIso3, G4int )
1248 {                                                1291 {
1249   G4VDecayChannel* mode;                         1292   G4VDecayChannel* mode;
1250                                                  1293 
1251   if (iIso3 == 0) {                           << 1294   if (iIso3==0) {
1252     // X(I=0,J=1)-->K + Anti-K*, Anti_K + K*     1295     // X(I=0,J=1)-->K + Anti-K*, Anti_K + K* mode
1253     // K+ + K*-                                  1296     // K+ + K*-
1254     mode = new G4PhaseSpaceDecayChannel(nameP << 1297     mode = new G4PhaseSpaceDecayChannel(nameParent, br/4., 2,
                                                   >> 1298           "kaon+","k_star-");
1255     decayTable->Insert(mode);                    1299     decayTable->Insert(mode);
1256                                               << 1300     
1257     // K- + K*+                                  1301     // K- + K*+
1258     mode = new G4PhaseSpaceDecayChannel(nameP << 1302     mode = new G4PhaseSpaceDecayChannel(nameParent, br/4., 2,
                                                   >> 1303           "kaon-","k_star0");
1259     decayTable->Insert(mode);                    1304     decayTable->Insert(mode);
1260                                               << 1305     
1261     // K0 + Anti_K*0                             1306     // K0 + Anti_K*0
1262     mode = new G4PhaseSpaceDecayChannel(nameP << 1307     mode = new G4PhaseSpaceDecayChannel(nameParent, br/4., 2,
                                                   >> 1308           "kaon0","anti_k_star0");
1263     decayTable->Insert(mode);                    1309     decayTable->Insert(mode);
1264                                               << 1310     
1265     // Anti_K0 + K*0                             1311     // Anti_K0 + K*0
1266     mode = new G4PhaseSpaceDecayChannel(nameP << 1312     mode = new G4PhaseSpaceDecayChannel(nameParent, br/4., 2,
1267     decayTable->Insert(mode);                 << 1313           "anti_kaon0","k_star0");
1268   }                                           << 
1269   else if (iIso3 == 2) {                      << 
1270     // K+ + Anti_K*0                          << 
1271     mode = new G4PhaseSpaceDecayChannel(nameP << 
1272     decayTable->Insert(mode);                    1314     decayTable->Insert(mode);
1273                                                  1315 
1274     // K0 + K*+                               << 1316   } else if (iIso3==2) {  
1275     mode = new G4PhaseSpaceDecayChannel(nameP << 1317      // K+ + Anti_K*0
                                                   >> 1318     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
                                                   >> 1319             "kaon+","anti_k_star0");
1276     decayTable->Insert(mode);                    1320     decayTable->Insert(mode);
1277   }                                           << 1321     
1278   else if (iIso3 == -2) {                     << 1322      // K0 + K*+
1279     // K- + K*0                               << 1323     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
1280     mode = new G4PhaseSpaceDecayChannel(nameP << 1324             "anti_kaon0","k_star+");
1281     decayTable->Insert(mode);                    1325     decayTable->Insert(mode);
1282                                                  1326 
1283     // K0 + K*-                               << 1327   } else if (iIso3==-2) {  
1284     mode = new G4PhaseSpaceDecayChannel(nameP << 1328      // K- + K*0
                                                   >> 1329     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
                                                   >> 1330             "kaon-","k_star0");
                                                   >> 1331     decayTable->Insert(mode);
                                                   >> 1332     
                                                   >> 1333      // K0 + K*-
                                                   >> 1334     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
                                                   >> 1335             "kaon0","k_star-");
1285     decayTable->Insert(mode);                    1336     decayTable->Insert(mode);
                                                   >> 1337     
1286   }                                              1338   }
1287                                                  1339 
1288   return decayTable;                             1340   return decayTable;
1289 }                                                1341 }
1290                                                  1342 
1291 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1343 G4DecayTable*  G4ExcitedMesonConstructor::Add2KMode( 
1292                                               << 1344                                     G4DecayTable* decayTable, const G4String& nameParent,
1293                                               << 1345                                     G4double br, G4int iIso3, G4int )
1294 {                                                1346 {
1295   G4VDecayChannel* mode;                         1347   G4VDecayChannel* mode;
1296                                                  1348 
1297   if (iIso3 == 0) {                           << 1349   if (iIso3==0) {
1298     // K+ + K-                                   1350     // K+ + K-
1299     mode = new G4PhaseSpaceDecayChannel(nameP << 1351     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
                                                   >> 1352                   "kaon+","kaon-");
1300     decayTable->Insert(mode);                    1353     decayTable->Insert(mode);
1301                                               << 1354    
1302     // K0 + Anti_K0                              1355     // K0 + Anti_K0
1303     mode = new G4PhaseSpaceDecayChannel(nameP << 1356     mode = new G4PhaseSpaceDecayChannel(nameParent, br/2., 2,
                                                   >> 1357                 "kaon0","anti_kaon0");
1304     decayTable->Insert(mode);                    1358     decayTable->Insert(mode);
1305   }                                           << 1359   } else if  (iIso3==+2) {
1306   else if (iIso3 == +2) {                     << 
1307     // K+ + anti_K0                              1360     // K+ + anti_K0
1308     mode = new G4PhaseSpaceDecayChannel(nameP << 1361     mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 1362                   "kaon+","anti_kaon0");
1309     decayTable->Insert(mode);                    1363     decayTable->Insert(mode);
1310   }                                           << 1364   } else if  (iIso3==-2) {
1311   else if (iIso3 == -2) {                     << 
1312     // K- + K0                                   1365     // K- + K0
1313     mode = new G4PhaseSpaceDecayChannel(nameP << 1366     mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
                                                   >> 1367                   "kaon-","kaon0");
1314     decayTable->Insert(mode);                    1368     decayTable->Insert(mode);
1315   }                                           << 1369   }   
1316                                               << 1370    
1317   return decayTable;                             1371   return decayTable;
1318 }                                                1372 }
1319                                                  1373 
1320 G4DecayTable* G4ExcitedMesonConstructor::Add2 << 1374 G4DecayTable*  G4ExcitedMesonConstructor::Add2KPiMode( 
1321                                               << 1375                                     G4DecayTable* decayTable, const G4String& nameParent,
1322                                               << 1376                                     G4double br, G4int , G4int iIso)
1323 {                                                1377 {
1324   // X(I=0)-->KKpi                            << 1378 
1325   if (iIso != 0) return decayTable;           << 1379   // X(I=0)-->KKpi 
                                                   >> 1380   if (iIso!=0) return decayTable; 
1326                                                  1381 
1327   G4VDecayChannel* mode;                         1382   G4VDecayChannel* mode;
1328                                                  1383 
1329   // K+ + K- + pi0                               1384   // K+ + K- + pi0
1330   mode = new G4PhaseSpaceDecayChannel(namePar << 1385   mode = new G4PhaseSpaceDecayChannel(nameParent, br/6., 3,
                                                   >> 1386               "kaon+","kaon-","pi0");
1331   decayTable->Insert(mode);                      1387   decayTable->Insert(mode);
1332                                               << 1388   
1333   // K0 + Anti_K0 + pi0                          1389   // K0 + Anti_K0 + pi0
1334   mode = new G4PhaseSpaceDecayChannel(namePar << 1390   mode = new G4PhaseSpaceDecayChannel(nameParent, br/6., 3,
                                                   >> 1391               "kaon0","anti_kaon0","pi0");
1335   decayTable->Insert(mode);                      1392   decayTable->Insert(mode);
1336                                               << 1393   
1337   // K+ + anti_K0 + pi-                          1394   // K+ + anti_K0 + pi-
1338   mode = new G4PhaseSpaceDecayChannel(namePar << 1395   mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 1396                   "kaon+","anti_kaon0","pi-");
1339   decayTable->Insert(mode);                      1397   decayTable->Insert(mode);
1340                                               << 1398   
1341   // K- + K0 + pi+                               1399   // K- + K0 + pi+
1342   mode = new G4PhaseSpaceDecayChannel(namePar << 1400   mode = new G4PhaseSpaceDecayChannel(nameParent, br/3., 3,
                                                   >> 1401                   "kaon-","kaon0","pi+");
1343   decayTable->Insert(mode);                      1402   decayTable->Insert(mode);
1344                                               << 1403  
                                                   >> 1404    
1345   return decayTable;                             1405   return decayTable;
1346 }                                                1406 }
1347                                                  1407 
1348 // clang-format off                           << 
1349                                               << 
1350 // PDG2005                                       1408 // PDG2005
1351 //   eta(1440)   is renamed to eta(1475)      << 1409 //   eta(1440)   is renamed to eta(1475)  
1352 //   omega(1600)  is renamed to omega(1650)      1410 //   omega(1600)  is renamed to omega(1650)
1353 //                                               1411 //
1354 //                                               1412 //
1355                                                  1413 
1356                                                  1414 
1357 const char* G4ExcitedMesonConstructor::name[G    1415 const char* G4ExcitedMesonConstructor::name[G4ExcitedMesonConstructor::NMultiplets ][ G4ExcitedMesonConstructor::NMesonTypes ] =
1358 {                                                1416 {
1359   { "b1(1235)",   "h1(1170)",   "h1(1380)",      1417   { "b1(1235)",   "h1(1170)",   "h1(1380)",      "k1(1270)",      "k1(1270)" },
1360   { "a0(1450)",   "f0(1370)",           "", "    1418   { "a0(1450)",   "f0(1370)",           "", "k0_star(1430)", "k0_star(1430)" },
1361   { "a1(1260)",   "f1(1285)",   "f1(1420)",      1419   { "a1(1260)",   "f1(1285)",   "f1(1420)",      "k1(1400)",      "k1(1400)" },
1362   { "a2(1320)",   "f2(1270)","f2_prime(1525)"    1420   { "a2(1320)",   "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"},
1363   {"pi2(1670)", "eta2(1645)", "eta2(1870)",      1421   {"pi2(1670)", "eta2(1645)", "eta2(1870)",      "k2(1770)",      "k2(1770)" },
1364   {"rho(1700)", "omega(1650)",          "",      1422   {"rho(1700)", "omega(1650)",          "",  "k_star(1680)",  "k_star(1680)" },
1365   {"rho3(1690)","omega3(1670)","phi3(1850)",     1423   {"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" },
1366   { "pi(1300)",  "eta(1295)",  "eta(1475)",      1424   { "pi(1300)",  "eta(1295)",  "eta(1475)",       "k(1460)",       "k(1460)" },
1367   {"rho(1450)","omega(1420)",  "phi(1680)",      1425   {"rho(1450)","omega(1420)",  "phi(1680)",  "k_star(1410)",  "k_star(1410)" },
1368   {         "",   "f2(1810)",   "f2(2010)", "    1426   {         "",   "f2(1810)",   "f2(2010)", "k2_star(1980)", "k2_star(1980)" }
1369 };                                               1427 };
1370                                                  1428 
1371 const G4double G4ExcitedMesonConstructor::mas << 1429 const G4double G4ExcitedMesonConstructor::mass[G4ExcitedMesonConstructor::NMultiplets ][ G4ExcitedMesonConstructor::NMesonTypes ] = 
1372 {                                                1430 {
1373   {  1.2295*GeV, 1.166*GeV, 1.409*GeV, 1.253* << 1431   {  1.2295*GeV, 1.170*GeV, 1.386*GeV, 1.272*GeV,  1.272*GeV },
1374   {   1.439*GeV, 1.350*GeV,       0.0, 1.425* << 1432   {   1.474*GeV, 1.350*GeV,       0.0, 1.430*GeV,  1.430*GeV },
1375   {   1.230*GeV,1.2819*GeV,1.4263*GeV, 1.403* << 1433   {   1.230*GeV,1.2819*GeV,1.4264*GeV, 1.403*GeV,  1.403*GeV },
1376   {  1.3182*GeV,1.2750*GeV,1.5174*GeV,1.4273* << 1434   {  1.3183*GeV,1.2755*GeV, 1.525*GeV,1.4256*GeV, 1.4256*GeV },
1377   {  1.6706*GeV, 1.617*GeV, 1.842*GeV, 1.773* << 1435   {  1.6722*GeV, 1.617*GeV, 1.842*GeV, 1.773*GeV,  1.773*GeV },
1378   {   1.729*GeV, 1.670*GeV,       0.0, 1.718* << 1436   {   1.720*GeV, 1.670*GeV,       0.0, 1.718*GeV,  1.718*GeV },
1379   {  1.6888*GeV, 1.667*GeV, 1.854*GeV, 1.779* << 1437   {  1.6888*GeV, 1.667*GeV, 1.854*GeV, 1.776*GeV,  1.776*GeV },
1380   {   1.300*GeV, 1.294*GeV, 1.475*GeV, 1.482* << 1438   {   1.300*GeV, 1.294*GeV, 1.476*GeV, 1.460*GeV,  1.460*GeV },
1381   {   1.465*GeV, 1.410*GeV, 1.680*GeV, 1.414* << 1439   {   1.465*GeV, 1.425*GeV, 1.680*GeV, 1.421*GeV,  1.421*GeV },
1382   {         0.0, 1.815*GeV, 2.011*GeV, 1.994* << 1440   {         0.0, 1.815*GeV, 2.010*GeV, 1.973*GeV,  1.973*GeV }
1383 };                                               1441 };
1384                                                  1442 
1385 const G4double  G4ExcitedMesonConstructor::ma    1443 const G4double  G4ExcitedMesonConstructor::massKdiff[ G4ExcitedMesonConstructor::NMultiplets ] = {
1386   0.0*MeV,  0.0*MeV, 0.0*MeV, 6.8*MeV, 0.0*Me << 1444   0.0*MeV,  0.0*MeV, 0.0*MeV, 6.8*MeV, 0.0*MeV, 
1387     0.0*MeV,  0.0*MeV, 0.0*MeV, 0.0*MeV, 0.0*    1445     0.0*MeV,  0.0*MeV, 0.0*MeV, 0.0*MeV, 0.0*MeV
1388 };                                               1446 };
1389                                                  1447 
1390 const G4double  G4ExcitedMesonConstructor::wi    1448 const G4double  G4ExcitedMesonConstructor::widthKdiff[ G4ExcitedMesonConstructor::NMultiplets ] = {
1391   0.0*MeV,  0.0*MeV, 0.0*MeV, 10.5*MeV, 0.0*M << 1449   0.0*MeV,  0.0*MeV, 0.0*MeV, 10.5*MeV, 0.0*MeV, 
1392     0.0*MeV,  0.0*MeV, 0.0*MeV, 0.0*MeV, 0.0*    1450     0.0*MeV,  0.0*MeV, 0.0*MeV, 0.0*MeV, 0.0*MeV
1393 };                                               1451 };
1394                                                  1452 
1395 const G4double G4ExcitedMesonConstructor::wid << 1453 const G4double G4ExcitedMesonConstructor::width[G4ExcitedMesonConstructor::NMultiplets ][ G4ExcitedMesonConstructor::NMesonTypes ] = 
1396 {                                                1454 {
1397   {  142.0*MeV, 375.0*MeV,  78.0*MeV,  90.0*M << 1455   {  142.0*MeV, 360.0*MeV,  91.0*MeV,  90.0*MeV,  90.0*MeV },
1398   {  258.0*MeV, 350.0*MeV,       0.0, 270.0*M << 1456   {  265.0*MeV, 350.0*MeV,       0.0, 270.0*MeV, 270.0*MeV },
1399   {  420.0*MeV,  22.7*MeV,  54.5*MeV, 174.0*M << 1457   {  420.0*MeV,  22.7*MeV,  54.9*MeV, 174.0*MeV, 174.0*MeV },
1400   {  107.0*MeV, 186.6*MeV,  86.0*MeV, 100.0*M << 1458   {  107.0*MeV, 186.7*MeV,  73.0*MeV,  98.5*MeV,  98.5*MeV },
1401   {  258.0*MeV, 181.0*MeV, 225.0*MeV, 186.0*M << 1459   {  260.0*MeV, 181.0*MeV, 225.0*MeV, 186.0*MeV, 186.0*MeV },
1402   {  250.0*MeV, 315.0*MeV,       0.0, 322.0*M << 1460   {  250.0*MeV, 315.0*MeV,       0.0, 320.0*MeV, 320.0*MeV },
1403   {  161.0*MeV, 168.0*MeV,  87.0*MeV, 161.0*M << 1461   {  161.0*MeV, 168.0*MeV,  87.0*MeV, 159.0*MeV, 159.0*MeV },
1404   {  400.0*MeV,  55.0*MeV,  90.0*MeV, 335.0*M << 1462   {  400.0*MeV,  55.0*MeV,  85.0*MeV, 260.0*MeV, 260.0*MeV },
1405   {  400.0*MeV, 290.0*MeV, 150.0*MeV, 232.0*M << 1463   {  400.0*MeV, 215.0*MeV, 150.0*MeV, 236.0*MeV, 236.0*MeV },
1406   {        0.0, 197.0*MeV, 202.0*MeV, 348.0*M << 1464   {        0.0, 197.0*MeV, 200.0*MeV, 373.0*MeV, 373.0*MeV }
1407 };                                               1465 };
1408                                                  1466 
1409                                                  1467 
1410 const G4int    G4ExcitedMesonConstructor::iIs    1468 const G4int    G4ExcitedMesonConstructor::iIsoSpin[] =
1411 {                                                1469 {
1412 //  Tpi  TEta  TEtaPrime   TK  TAntiK            1470 //  Tpi  TEta  TEtaPrime   TK  TAntiK
1413      2,     0,         0,   1,     1             1471      2,     0,         0,   1,     1
1414 };                                               1472 };
1415                                                  1473 
1416 const G4int    G4ExcitedMesonConstructor::iSp    1474 const G4int    G4ExcitedMesonConstructor::iSpin[] =
1417 {                                                1475 {
1418 //N   1     1     1     1     1     1     1      1476 //N   1     1     1     1     1     1     1     2     2     2
1419 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3    1477 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3   1S0   3S1   3P2
1420       2,    0,    2,    4,    4,    2,    6,     1478       2,    0,    2,    4,    4,    2,    6,    0,    2,    4
1421 };                                               1479 };
1422                                                  1480 
1423 const G4int    G4ExcitedMesonConstructor::iPa    1481 const G4int    G4ExcitedMesonConstructor::iParity[] =
1424 {                                                1482 {
1425 //N   1     1     1     1     1     1     1      1483 //N   1     1     1     1     1     1     1     2     2     2
1426 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3    1484 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3   1S0   3S1   3P2
1427      +1,   +1,   +1,   +1,   -1,   -1,   -1,     1485      +1,   +1,   +1,   +1,   -1,   -1,   -1,   -1,   -1,   +1
1428 };                                               1486 };
1429                                                  1487 
1430 const G4int    G4ExcitedMesonConstructor::iCh    1488 const G4int    G4ExcitedMesonConstructor::iChargeConjugation[] =
1431 {                                                1489 {
1432 //N   1     1     1     1     1     1     1      1490 //N   1     1     1     1     1     1     1     2     2     2
1433 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3    1491 //    1P1   3P0   3P1   3P2   1D2   3D1   3D3   1S0   3S1   3P2
1434      -1,   +1,   +1,   +1,   +1,   -1,   -1,     1492      -1,   +1,   +1,   +1,   +1,   -1,   -1,   +1,   -1,   +1
1435 };                                               1493 };
1436                                                  1494 
1437 const G4int    G4ExcitedMesonConstructor::iGP    1495 const G4int    G4ExcitedMesonConstructor::iGParity[G4ExcitedMesonConstructor::NMultiplets ][ G4ExcitedMesonConstructor::NMesonTypes ]=
1438 {                                                1496 {
1439   {  +1,  -1,  -1,  0,  0},                      1497   {  +1,  -1,  -1,  0,  0},
1440   {  -1,  +1,   0,  0,  0},                      1498   {  -1,  +1,   0,  0,  0},
1441   {  -1,  +1,  +1,  0,  0},                      1499   {  -1,  +1,  +1,  0,  0},
1442   {  -1,  +1,  +1,  0,  0},                      1500   {  -1,  +1,  +1,  0,  0},
1443   {  -1,  +1,  +1,  0,  0},                      1501   {  -1,  +1,  +1,  0,  0},
1444   {  +1,  -1,   0,  0,  0},                      1502   {  +1,  -1,   0,  0,  0},
1445   {  +1,  -1,  -1,  0,  0},                      1503   {  +1,  -1,  -1,  0,  0},
1446   {  -1,  +1, +1,  0,  0},                       1504   {  -1,  +1, +1,  0,  0},
1447   {  +1,  -1,  -1,  0,  0},                      1505   {  +1,  -1,  -1,  0,  0},
1448   {   0,  +1,  +1,  0,  0}                       1506   {   0,  +1,  +1,  0,  0}
1449 };                                               1507 };
1450                                                  1508 
1451                                                  1509 
1452 const G4int    G4ExcitedMesonConstructor::enc    1510 const G4int    G4ExcitedMesonConstructor::encodingOffset[]=
1453 { 10000, 10000, 20000,      0, 10000, 30000,     1511 { 10000, 10000, 20000,      0, 10000, 30000,     0, 100000,100000,100000};
1454                                                  1512 
1455                                                  1513 
1456                                                  1514 
1457                                                  1515 
1458 const G4double G4ExcitedMesonConstructor::bRa    1516 const G4double G4ExcitedMesonConstructor::bRatio[G4ExcitedMesonConstructor::NMultiplets][G4ExcitedMesonConstructor::NMesonTypes][G4ExcitedMesonConstructor::NumberOfDecayModes]=
1459 {                                                1517 {
1460    //    0    1     2     3     4     5     6    1518    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1461    // "b1(1235)",   "h1(1170)",   "h1(1380)", << 1519    // "b1(1235)",   "h1(1170)",   "h1(1380)",      "k1(1270)",      "k1(1270)" 
1462   {                                              1520   {
1463    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1521    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00 },
1464    { 0.00, 0.00, 0.00, 0.90, 0.10, 0.00, 0.00    1522    { 0.00, 0.00, 0.00, 0.90, 0.10, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1465    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1523    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1466    { 0.00, 0.47, 0.42, 0.11, 0.00, 0.00, 0.00    1524    { 0.00, 0.47, 0.42, 0.11, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1467    { 0.00, 0.47, 0.42, 0.11, 0.00, 0.00, 0.00    1525    { 0.00, 0.47, 0.42, 0.11, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1468  },                                              1526  },
1469    //    0    1     2     3     4     5     6    1527    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1470    // "a0(1450)",   "f0(1370)",           "", << 1528    // "a0(1450)",   "f0(1370)",           "", "k0_star(1430)", "k0_star(1430)" 
1471   {                                              1529   {
1472    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.90, 0.00    1530    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.90, 0.00, 0.00, 0.00, 0.10, 0.00, 0.00, 0.00, 0.10, 0.00, 0.00, 0.00, 0.00, 0.00 },
1473    { 0.00, 0.00, 0.10, 0.00, 0.00, 0.00, 0.70    1531    { 0.00, 0.00, 0.10, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.20, 0.00, 0.00, 0.00, 0.00, 0.00 },
1474    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1532    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1475    { 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1533    { 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1476    { 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1534    { 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1477   },                                             1535   },
1478    //    0    1     2     3     4     5     6    1536    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1479    // "a1(1260)",   "f1(1285)",   "f1(1420)", << 1537    // "a1(1260)",   "f1(1285)",   "f1(1420)",      "k1(1400)",      "k1(1400)" 
1480   {                                              1538   {
1481    { 0.10, 0.00, 0.00, 0.90, 0.00, 0.00, 0.00    1539    { 0.10, 0.00, 0.00, 0.90, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1482    { 0.00, 0.07, 0.00, 0.00, 0.00, 0.00, 0.20    1540    { 0.00, 0.07, 0.00, 0.00, 0.00, 0.00, 0.20, 0.00, 0.54, 0.00, 0.10, 0.00, 0.00, 0.00, 0.09, 0.00, 0.00, 0.00, 0.00 },
1483    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1541    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00 },
1484    { 0.00, 0.96, 0.03, 0.01, 0.00, 0.00, 0.00    1542    { 0.00, 0.96, 0.03, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1485    { 0.00, 0.96, 0.03, 0.01, 0.00, 0.00, 0.00    1543    { 0.00, 0.96, 0.03, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1486   },                                             1544   },
1487    //    0    1     2     3     4     5     6    1545    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1488    //"a2(1320)",   "f2(1270)","f2_prime(1525)    1546    //"a2(1320)",   "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"
1489   {                                              1547   {
1490    { 0.00, 0.00, 0.00, 0.70, 0.00, 0.14, 0.00    1548    { 0.00, 0.00, 0.00, 0.70, 0.00, 0.14, 0.00, 0.00, 0.00, 0.00, 0.00, 0.11, 0.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00 },
1491    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.30    1549    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.20, 0.00, 0.00, 0.00, 0.00, 0.00 },
1492    { 0.00, 0.00, 0.01, 0.00, 0.00, 0.00, 0.00    1550    { 0.00, 0.00, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.10, 0.89, 0.00, 0.00, 0.00, 0.00, 0.00 },
1493    { 0.50, 0.25, 0.09, 0.03, 0.13, 0.00, 0.00    1551    { 0.50, 0.25, 0.09, 0.03, 0.13, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1494    { 0.50, 0.25, 0.09, 0.03, 0.13, 0.00, 0.00    1552    { 0.50, 0.25, 0.09, 0.03, 0.13, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1495   },                                             1553   },
1496    //    0    1     2     3     4     5     6    1554    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1497    // "pi2(1670)", "eta2(1645)", "eta2(1870)" << 1555    // "pi2(1670)", "eta2(1645)", "eta2(1870)",      "k2(1770)",      "k2(1770)" 
1498   {                                              1556   {
1499    { 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00    1557    { 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00, 0.04, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.56, 0.10, 0.00 },
1500    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1558    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.10, 0.00, 0.00, 0.00, 0.90 },
1501    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50    1559    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50 },
1502    { 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00    1560    { 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1503    { 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00    1561    { 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1504   },                                             1562   },
1505    //    0    1     2     3     4     5     6    1563    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1506    // "rho(1700)", "omega(1650)",          "" << 1564    // "rho(1700)", "omega(1650)",          "",  "k_star(1680)",  "k_star(1680)" 
1507   {                                              1565   {
1508    { 0.00, 0.00, 0.10, 0.00, 0.00, 0.20, 0.00    1566    { 0.00, 0.00, 0.10, 0.00, 0.00, 0.20, 0.00, 0.00, 0.00, 0.00, 0.70, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1509    { 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00    1567    { 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1510    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1568    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1511    { 0.00, 0.40, 0.30, 0.30, 0.00, 0.00, 0.00    1569    { 0.00, 0.40, 0.30, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1512    { 0.00, 0.40, 0.30, 0.30, 0.00, 0.00, 0.00    1570    { 0.00, 0.40, 0.30, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1513   },                                             1571   },
1514    //    0    1     2     3     4     5     6    1572    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1515    // "rho3(1690)","omega3(1670)","phi3(1850)    1573    // "rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)"
1516   {                                              1574   {
1517    { 0.00, 0.00, 0.24, 0.00, 0.00, 0.00, 0.60    1575    { 0.00, 0.00, 0.24, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.01, 0.04, 0.11, 0.00, 0.00, 0.00 },
1518    { 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00    1576    { 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1519    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1577    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00, 0.00 },
1520    { 0.19, 0.20, 0.31, 0.00, 0.00, 0.00, 0.30    1578    { 0.19, 0.20, 0.31, 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1521    { 0.19, 0.20, 0.31, 0.00, 0.00, 0.00, 0.30    1579    { 0.19, 0.20, 0.31, 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1522   },                                             1580   },
1523    //    0    1     2     3     4     5     6    1581    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1524    // "pi(1300)",  "eta(1295)",  "eta(1475)", << 1582    // "pi(1300)",  "eta(1295)",  "eta(1475)",       "k(1460)",       "k(1460)" 
1525   {                                              1583   {
1526    { 0.00, 0.00, 0.00, 0.50, 0.50, 0.00, 0.00    1584    { 0.00, 0.00, 0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1527    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1585    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1528    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1586    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.20, 0.20, 0.00, 0.00, 0.00, 0.00, 0.00, 0.60, 0.00, 0.00, 0.00, 0.00 },
1529    { 0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00    1587    { 0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1530    { 0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00    1588    { 0.00, 0.50, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1531   },                                             1589   },
1532    //    0    1     2     3     4     5     6    1590    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1533    // "rho(1450)","omega(1420)",  "phi(1680)" << 1591    // "rho(1450)","omega(1420)",  "phi(1680)",  "k_star(1410)",  "k_star(1410)" 
1534   {                                              1592   {
1535    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.50    1593    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1536    { 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00    1594    { 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1537    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1595    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.80, 0.00, 0.00, 0.00, 0.00, 0.00, 0.10, 0.10, 0.00, 0.00, 0.00, 0.00 },
1538    { 0.30, 0.65, 0.05, 0.00, 0.00, 0.00, 0.00    1596    { 0.30, 0.65, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1539    { 0.30, 0.65, 0.05, 0.00, 0.00, 0.00, 0.00    1597    { 0.30, 0.65, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1540   },                                             1598   },
1541    //    0    1     2     3     4     5     6    1599    //    0    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
1542    //         "",   "f2(1810)",   "f2(2010)", << 1600    //         "",   "f2(1810)",   "f2(2010)", "k2_star(1980)", "k2_star(1980)" 
1543   {                                              1601   {
1544    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1602    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1545    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00    1603    { 0.00, 0.00, 0.50, 0.00, 0.00, 0.00, 0.00, 0.00, 0.30, 0.00, 0.00, 0.00, 0.00, 0.20, 0.00, 0.00, 0.00, 0.00, 0.00 },
1546    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00    1604    { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1547    { 0.00, 0.00, 0.60, 0.40, 0.00, 0.00, 0.00    1605    { 0.00, 0.00, 0.60, 0.40, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 },
1548    { 0.00, 0.00, 0.60, 0.40, 0.00, 0.00, 0.00    1606    { 0.00, 0.00, 0.60, 0.40, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 }
1549   }                                              1607   }
1550 };                                               1608 };
                                                   >> 1609 
                                                   >> 1610 
                                                   >> 1611 
                                                   >> 1612 
                                                   >> 1613 
                                                   >> 1614 
1551                                                  1615