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.2.p2)


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