Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/run/src/G4PhysicsListHelper.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 /run/src/G4PhysicsListHelper.cc (Version 11.3.0) and /run/src/G4PhysicsListHelper.cc (Version 10.6.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // G4PhysicsListHelper implementation          << 
 27 //                                                 26 //
 28 // Author: H.Kurashige, 29 April 2011          <<  27 //
 29 // ------------------------------------------- <<  28 // 
                                                   >>  29 // ------------------------------------------------------------
                                                   >>  30 //  GEANT 4 class header file 
                                                   >>  31 //
                                                   >>  32 // ------------------------------------------------------------
                                                   >>  33 //  History
                                                   >>  34 //       first version                   29 Apr 2011 by H.Kurashige
                                                   >>  35 // ------------------------------------------------------------
 30                                                    36 
                                                   >>  37 #include "globals.hh"
 31 #include "G4PhysicsListHelper.hh"                  38 #include "G4PhysicsListHelper.hh"
 32                                                << 
 33 #include "G4CoupledTransportation.hh"          << 
 34 #include "G4DecayProcessType.hh"               << 
 35 #include "G4EmProcessSubType.hh"               << 
 36 #include "G4HadronicProcessType.hh"            << 
 37 #include "G4LowEnergyEmProcessSubType.hh"      << 
 38 #include "G4OpProcessSubType.hh"               << 
 39 #include "G4ParticleDefinition.hh"                 39 #include "G4ParticleDefinition.hh"
 40 #include "G4ParticleTable.hh"                  << 
 41 #include "G4ProcessManager.hh"                     40 #include "G4ProcessManager.hh"
 42 #include "G4ProcessType.hh"                    <<  41 #include "G4ParticleTable.hh"
 43 #include "G4RunManagerKernel.hh"               << 
 44 #include "G4ScoringManager.hh"                 << 
 45 #include "G4Transportation.hh"                 << 
 46 #include "G4TransportationProcessType.hh"      << 
 47 #include "G4ios.hh"                            << 
 48 #include "globals.hh"                          << 
 49                                                    42 
 50 #include <fstream>                             <<  43 #include "G4ios.hh"
 51 #include <iomanip>                                 44 #include <iomanip>
                                                   >>  45 #include <fstream>
 52                                                    46 
                                                   >>  47 ////////////////////////////////////////////////////////
 53 G4ThreadLocal G4PhysicsListHelper* G4PhysicsLi     48 G4ThreadLocal G4PhysicsListHelper* G4PhysicsListHelper::pPLHelper = nullptr;
 54                                                <<  49  
 55 // ------------------------------------------- <<  50 ////////////////////////////////////////////////////////
 56 G4PhysicsListHelper::G4PhysicsListHelper()         51 G4PhysicsListHelper::G4PhysicsListHelper()
                                                   >>  52   :  useCoupledTransportation(false),
                                                   >>  53      theTransportationProcess(nullptr),
                                                   >>  54      verboseLevel(1),
                                                   >>  55      theTable(nullptr),
                                                   >>  56      sizeOfTable(0),
                                                   >>  57      ordParamFileName("")
 57 {                                                  58 {
 58   // pointer to the particle table                 59   // pointer to the particle table
 59   theParticleTable = G4ParticleTable::GetParti     60   theParticleTable = G4ParticleTable::GetParticleTable();
 60   aParticleIterator = theParticleTable->GetIte     61   aParticleIterator = theParticleTable->GetIterator();
 61                                                    62 
 62   ReadOrdingParameterTable();                      63   ReadOrdingParameterTable();
 63                                                    64 
 64 #ifdef G4VERBOSE                                   65 #ifdef G4VERBOSE
 65   if (verboseLevel > 1) {                      <<  66   if (verboseLevel >1){
 66     DumpOrdingParameterTable();                    67     DumpOrdingParameterTable();
 67   }                                                68   }
 68 #endif                                             69 #endif
 69 }                                                  70 }
 70                                                    71 
 71 // ------------------------------------------- <<  72 ////////////////////////////////////////////////////////
 72 G4PhysicsListHelper::~G4PhysicsListHelper()        73 G4PhysicsListHelper::~G4PhysicsListHelper()
 73 {                                                  74 {
 74   if (theTable != nullptr) {                   <<  75   if (theTable !=0) {
 75     theTable->clear();                             76     theTable->clear();
 76     delete theTable;                               77     delete theTable;
 77     theTable = nullptr;                        <<  78     theTable=0;
 78     sizeOfTable = 0;                           <<  79     sizeOfTable=0;
 79   }                                                80   }
                                                   >>  81   /*
                                                   >>  82   if (theTransportationProcess!=0) {
                                                   >>  83     delete theTransportationProcess;
                                                   >>  84     theTransportationProcess=0;
                                                   >>  85   }
                                                   >>  86   */
 80 }                                                  87 }
 81                                                    88 
 82 // ------------------------------------------- <<  89 ////////////////////////////////////////////////////////
 83 G4PhysicsListHelper* G4PhysicsListHelper::GetP <<  90 G4PhysicsListHelper* G4PhysicsListHelper::GetPhysicsListHelper()  
 84 {                                                  91 {
 85   if (pPLHelper == nullptr) {                  <<  92   if (!pPLHelper)
                                                   >>  93   {
 86     static G4ThreadLocalSingleton<G4PhysicsLis     94     static G4ThreadLocalSingleton<G4PhysicsListHelper> inst;
 87     pPLHelper = inst.Instance();                   95     pPLHelper = inst.Instance();
 88   }                                                96   }
 89   return pPLHelper;                                97   return pPLHelper;
 90 }                                                  98 }
 91                                                    99 
 92 // ------------------------------------------- << 100 ////////////////////////////////////////////////////////
 93 void G4PhysicsListHelper::CheckParticleList()     101 void G4PhysicsListHelper::CheckParticleList() const
 94 {                                                 102 {
 95   G4bool isElectron = false;                      103   G4bool isElectron = false;
 96   G4bool isPositron = false;                      104   G4bool isPositron = false;
 97   G4bool isGamma = false;                      << 105   G4bool isGamma    = false;
 98   G4bool isProton = false;                     << 106   G4bool isProton   = false;
 99   G4bool isGenericIon = false;                    107   G4bool isGenericIon = false;
100   G4bool isAnyIon = false;                     << 108   G4bool isAnyIon   = false;
101   G4bool isAnyChargedBaryon = false;           << 109   G4bool isAnyChargedBaryon   = false;
102   G4bool isEmProc = false;                     << 110   G4bool isEmProc   = false;
103                                                   111 
104   // loop over all particles in G4ParticleTabl    112   // loop over all particles in G4ParticleTable
105   aParticleIterator->reset();                     113   aParticleIterator->reset();
106   while ((*aParticleIterator)()) {             << 114   while( (*aParticleIterator)() ){
107     G4ParticleDefinition* particle = aParticle    115     G4ParticleDefinition* particle = aParticleIterator->value();
108     G4String name = particle->GetParticleName(    116     G4String name = particle->GetParticleName();
109     // check if any EM process exists             117     // check if any EM process exists
110     if (!isEmProc) {                              118     if (!isEmProc) {
111       G4ProcessVector* list = particle->GetPro    119       G4ProcessVector* list = particle->GetProcessManager()->GetProcessList();
112       for (G4int idx = 0; idx < (G4int)list->s << 120       for (std::size_t idx=0; idx<list->size(); ++idx){
113         isEmProc = ((*list)[idx])->GetProcessT << 121   isEmProc = ((*list)[idx])->GetProcessType() == fElectromagnetic;
114         if (isEmProc) break;                   << 122   if (isEmProc) break;
115       }                                           123       }
116     }                                             124     }
117                                                << 125     
118     if (name == "e-")                          << 126     if      ( name == "e-") isElectron = true; 
119       isElectron = true;                       << 127     else if ( name == "e+") isPositron = true; 
120     else if (name == "e+")                     << 128     else if ( name == "gamma") isGamma = true; 
121       isPositron = true;                       << 129     else if ( name == "GenericIon") isGenericIon = true; 
122     else if (name == "gamma")                  << 130     else if ( name == "proton") isProton = true; 
123       isGamma = true;                          << 131     else if ( particle->GetParticleType() == "nucleus") isAnyIon = true;
124     else if (name == "GenericIon")             << 132     else if ( particle->GetParticleType() == "baryon") {
125       isGenericIon = true;                     << 133        if ( particle->GetPDGCharge() != 0.0 ) isAnyChargedBaryon = true;
126     else if (name == "proton")                 << 
127       isProton = true;                         << 
128     else if (particle->GetParticleType() == "n << 
129       isAnyIon = true;                         << 
130     else if (particle->GetParticleType() == "b << 
131       if (particle->GetPDGCharge() != 0.0) isA << 
132     }                                             134     }
133   }                                               135   }
134                                                   136 
135   if (!isEmProc) return;                          137   if (!isEmProc) return;
136                                                   138 
137   // RULE 1                                       139   // RULE 1
138   //  e+, e- and gamma should exist            << 140   //  e+, e- and gamma should exist 
139   //   if one of them exist                       141   //   if one of them exist
140   G4bool isEmBasic = isElectron || isPositron  << 142   G4bool isEmBasic =  isElectron || isPositron || isGamma;
141   G4bool isMissingEmBasic = !isElectron || !is << 143   G4bool isMissingEmBasic =  !isElectron || !isPositron || !isGamma;
142   if (isEmBasic && isMissingEmBasic) {            144   if (isEmBasic && isMissingEmBasic) {
143     G4String missingName = "";                 << 145     G4String missingName="";
144     if (!isElectron) missingName += "e- ";        146     if (!isElectron) missingName += "e- ";
145     if (!isPositron) missingName += "e+ ";        147     if (!isPositron) missingName += "e+ ";
146     if (!isGamma) missingName += "gamma ";        148     if (!isGamma) missingName += "gamma ";
147                                                   149 
148 #ifdef G4VERBOSE                                  150 #ifdef G4VERBOSE
149     if (verboseLevel > 0) {                    << 151     if (verboseLevel >0){
150       G4cout << "G4PhysicsListHelper::CheckPar << 152       G4cout << "G4PhysicsListHelper::CheckParticleList: "
151              << G4endl;                        << 153        << missingName << " do not exist " << G4endl; 
152       G4cout << " These particle are necessary << 154       G4cout << " These particle are necessary for basic EM processes" 
                                                   >> 155        << G4endl;
153     }                                             156     }
154 #endif                                            157 #endif
155     G4Exception("G4PhysicsListHelper::CheckPar << 158     G4Exception("G4PhysicsListHelper::CheckParticleList",
156                 "Missing EM basic particle");  << 159     "Run0101", FatalException,
                                                   >> 160     "Missing EM basic particle");
157   }                                               161   }
158                                                   162 
159   // RULE 2                                       163   // RULE 2
160   //  proton should exist                      << 164   //  proton should exist 
161   //   if any other charged baryon  exist         165   //   if any other charged baryon  exist
162   if (!isProton && isAnyChargedBaryon) {          166   if (!isProton && isAnyChargedBaryon) {
163     G4String missingName = "proton ";          << 167     G4String missingName="proton ";
164                                                   168 
165 #ifdef G4VERBOSE                                  169 #ifdef G4VERBOSE
166     if (verboseLevel > 0) {                    << 170     if (verboseLevel >0){
167       G4cout << "G4PhysicsListHelper::CheckPar << 171       G4cout << "G4PhysicsListHelper::CheckParticleList: "
168              << G4endl;                        << 172        << missingName << " does not exist "<< G4endl; 
169       G4cout << " Proton is necessary for EM b    173       G4cout << " Proton is necessary for EM baryon processes" << G4endl;
170     }                                             174     }
171 #endif                                            175 #endif
172     missingName += " should be created ";         176     missingName += " should be created ";
173     G4Exception("G4PhysicsListHelper::CheckPar << 177     G4Exception("G4PhysicsListHelper::CheckParticleList",
174                 "Missing Proton");             << 178     "Run0102", FatalException,
                                                   >> 179     "Missing Proton");
175   }                                               180   }
176                                                << 181    
177   // RULE 3                                       182   // RULE 3
178   //  GenericIonn should exist                 << 183   //  GenericIonn should exist 
179   //   if any other ion  exist                    184   //   if any other ion  exist
180   if (!isGenericIon && isAnyIon) {                185   if (!isGenericIon && isAnyIon) {
181     G4String missingName = "GenericIon ";      << 186     G4String missingName="GenericIon ";
182                                                   187 
183 #ifdef G4VERBOSE                                  188 #ifdef G4VERBOSE
184     if (verboseLevel > 0) {                    << 189     if (verboseLevel >0){
185       G4cout << "G4PhysicsListHelper::CheckPar << 190       G4cout << "G4PhysicsListHelper::CheckParticleList: "
186              << G4endl;                        << 191        << missingName << " does not exist "<< G4endl; 
187       G4cout << " GenericIon should be created    192       G4cout << " GenericIon should be created if any ion is necessary" << G4endl;
188     }                                             193     }
189 #endif                                            194 #endif
190     G4Exception("G4PhysicsListHelper::CheckPar << 195     G4Exception("G4PhysicsListHelper::CheckParticleList",
191                 "Missing GenericIon");         << 196     "Run0103", FatalException,
                                                   >> 197     "Missing GenericIon");
192   }                                               198   }
                                                   >> 199       
193 }                                                 200 }
194                                                   201 
195 // ------------------------------------------- << 202 
                                                   >> 203 ////////////////////////////////////////////////////////
                                                   >> 204 #include "G4Transportation.hh"
                                                   >> 205 #include "G4CoupledTransportation.hh"
                                                   >> 206 #include "G4RunManagerKernel.hh"
                                                   >> 207 #include "G4ScoringManager.hh"
                                                   >> 208 
196 void G4PhysicsListHelper::AddTransportation()     209 void G4PhysicsListHelper::AddTransportation()
197 {                                                 210 {
198   G4int verboseLevelTransport = 0;                211   G4int verboseLevelTransport = 0;
199                                                << 212   
200 #ifdef G4VERBOSE                                  213 #ifdef G4VERBOSE
201   if (verboseLevel > 2) {                      << 214   if (verboseLevel >2){
202     G4cout << "G4PhysicsListHelper::AddTranspo << 215     G4cout << "G4PhysicsListHelper::AddTransportation()  "<< G4endl;
203   }                                               216   }
204 #endif                                            217 #endif
205                                                   218 
206   G4int nParaWorld = G4RunManagerKernel::GetRu << 219   G4int nParaWorld = 
207                                                << 220     G4RunManagerKernel::GetRunManagerKernel()->GetNumberOfParallelWorld();
208   if (nParaWorld > 0 || useCoupledTransportati << 221   
209       || (G4ScoringManager::GetScoringManagerI << 222   if ( nParaWorld>0 || 
                                                   >> 223        useCoupledTransportation || 
                                                   >> 224        G4ScoringManager::GetScoringManagerIfExist())
210   {                                               225   {
211     auto coupledTransport = new G4CoupledTrans << 226     auto coupledTransport= new G4CoupledTransportation(verboseLevelTransport);
212     if (theLooperThresholds == 0) coupledTrans << 227     if( theLooperThresholds == 0 ) coupledTransport->SetLowLooperThresholds();
213     if (theLooperThresholds == 2) coupledTrans << 228     if( theLooperThresholds == 2 ) coupledTransport->SetHighLooperThresholds();
214     theTransportationProcess = coupledTranspor    229     theTransportationProcess = coupledTransport;
215                                                   230 
216     if (verboseLevel > 0) {                    << 231     if (verboseLevel >0) {
217       G4cout << "--- G4CoupledTransportation i << 232       G4cout << "--- G4CoupledTransportation is used "  << G4endl;
218     }                                             233     }
219   }                                            << 234   } else {
220   else {                                       << 
221     auto simpleTransport = new G4Transportatio    235     auto simpleTransport = new G4Transportation(verboseLevelTransport);
222     if (theLooperThresholds == 0) simpleTransp << 236     if( theLooperThresholds == 0 ) simpleTransport->SetLowLooperThresholds();
223     if (theLooperThresholds == 2) simpleTransp << 237     if( theLooperThresholds == 2 ) simpleTransport->SetHighLooperThresholds();
224     theTransportationProcess = simpleTransport    238     theTransportationProcess = simpleTransport;
225   }                                               239   }
226                                                << 240  
227   // loop over all particles in G4ParticleTabl    241   // loop over all particles in G4ParticleTable
228   aParticleIterator->reset();                     242   aParticleIterator->reset();
229   while ((*aParticleIterator)()) {             << 243   while( (*aParticleIterator)() ){
230     G4ParticleDefinition* particle = aParticle    244     G4ParticleDefinition* particle = aParticleIterator->value();
231     G4ProcessManager* pmanager = particle->Get    245     G4ProcessManager* pmanager = particle->GetProcessManager();
232     // Add transportation process for all part << 246     // Add transportation process for all particles 
233     if (pmanager == nullptr) {                 << 247     if ( pmanager == 0) {
234       // Error !! no process manager              248       // Error !! no process manager
235 #ifdef G4VERBOSE                                  249 #ifdef G4VERBOSE
236       if (verboseLevel > 0) {                  << 250       if (verboseLevel>0){
237         G4cout << "G4PhysicsListHelper::AddTra << 251   G4cout << "G4PhysicsListHelper::AddTransportation  "
238                << " : No Process Manager for " << 252          <<" : No Process Manager for "
                                                   >> 253          << particle->GetParticleName() << G4endl;
239       }                                           254       }
240 #endif                                            255 #endif
241       G4Exception("G4PhysicsListHelper::AddTra << 256       G4Exception("G4PhysicsListHelper::AddTransportation",
242                   "No process manager");       << 257       "Run0104", FatalException,
                                                   >> 258       "No process manager");
243       continue;                                   259       continue;
244     }                                          << 260     } 
245     // Molecule use different type transportat    261     // Molecule use different type transportation
246     if (particle->GetParticleType() == "Molecu << 262     if(particle->GetParticleType() == "Molecule") continue; 
247                                                   263 
248     // add transportation with ordering = ( -1    264     // add transportation with ordering = ( -1, "first", "first" )
249     pmanager->AddProcess(theTransportationProc << 265     pmanager ->AddProcess(theTransportationProcess);
250     pmanager->SetProcessOrderingToFirst(theTra << 266     pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxAlongStep);
251     pmanager->SetProcessOrderingToFirst(theTra << 267     pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxPostStep);
252   }                                               268   }
253 }                                                 269 }
254                                                   270 
255 // ------------------------------------------- << 271 ////////////////////////////////////////////////////////
                                                   >> 272 #include "G4ProcessManager.hh"
                                                   >> 273   
256 void G4PhysicsListHelper::ReadOrdingParameterT    274 void G4PhysicsListHelper::ReadOrdingParameterTable()
257 {                                                 275 {
258   std::ifstream fIn;                           << 276   G4bool readInFile = false;
                                                   >> 277   std::ifstream fIn;  
259                                                   278 
260   // create OrdParamTable                      << 279   if( std::getenv("G4ORDPARAMTABLE") ){
261   if (theTable != nullptr) {                   << 280     ordParamFileName = std::getenv("G4ORDPARAMTABLE");
                                                   >> 281 #ifdef G4VERBOSE
                                                   >> 282     if (verboseLevel >1){
                                                   >> 283       G4cout << "G4PhysicsListHelper::ReadOrdingParameterTable  :"
                                                   >> 284        << ordParamFileName << " is assigned to Ordering Parameter Table "
                                                   >> 285        << G4endl; 
                                                   >> 286     }
                                                   >> 287 #endif
                                                   >> 288     // open input file //
                                                   >> 289     fIn.open(ordParamFileName, std::ios::in);
                                                   >> 290     // check if the file has been opened successfully 
                                                   >> 291     if (!fIn) {
                                                   >> 292 #ifdef G4VERBOSE
                                                   >> 293       if (verboseLevel >0) {
                                                   >> 294   G4cout << "G4PhysicsListHelper::ReadOrdingParameterTable  "
                                                   >> 295          << " Can not open file " << ordParamFileName << G4endl;
                                                   >> 296       }
                                                   >> 297 #endif
                                                   >> 298       G4Exception("G4PhysicsListHelper::ReadOrdingParameterTable",
                                                   >> 299       "Run0105", JustWarning, 
                                                   >> 300       "Fail to open ordering paramter table ");
                                                   >> 301     } else {
                                                   >> 302       readInFile = true;
                                                   >> 303     }
                                                   >> 304   }
                                                   >> 305  
                                                   >> 306 
                                                   >> 307   // create OrdParamTable   
                                                   >> 308   if (theTable !=0) {
262     theTable->clear();                            309     theTable->clear();
263     delete theTable;                              310     delete theTable;
264     theTable = nullptr;                        << 311     theTable=0;
265     sizeOfTable = 0;                           << 312     sizeOfTable=0;
266   }                                               313   }
267   theTable = new G4OrdParamTable();               314   theTable = new G4OrdParamTable();
268   sizeOfTable = 0;                             << 315   sizeOfTable=0;
269                                                   316 
270   ReadInDefaultOrderingParameter();            << 317   if (readInFile){
                                                   >> 318     // read in the file and fill the table 
                                                   >> 319     while(!fIn.eof()) {
                                                   >> 320       G4PhysicsListOrderingParameter tmp;
                                                   >> 321       G4int flag;
                                                   >> 322       fIn >> tmp.processTypeName >>  tmp.processType >> tmp.processSubType
                                                   >> 323     >> tmp.ordering[0] >> tmp.ordering[1] >> tmp.ordering[2] >> flag;
                                                   >> 324       tmp.isDuplicable = (flag!=0);
                                                   >> 325       theTable->push_back(tmp);
                                                   >> 326       sizeOfTable +=1;  
                                                   >> 327     }
                                                   >> 328     fIn.close();
                                                   >> 329   } else {
                                                   >> 330     ReadInDefaultOrderingParameter();
                                                   >> 331   }
271                                                   332 
272   if (sizeOfTable == 0) {                      << 333   if (sizeOfTable==0){
273 #ifdef G4VERBOSE                                  334 #ifdef G4VERBOSE
274     if (verboseLevel > 0) {                    << 335     if (verboseLevel >0) {
275       G4cout << "G4PhysicsListHelper::ReadOrdi    336       G4cout << "G4PhysicsListHelper::ReadOrdingParameterTable "
276              << " Empty file " << ordParamFile << 337        << " Empty file " << ordParamFileName << G4endl;
277     }                                             338     }
278 #endif                                            339 #endif
279     G4Exception("G4PhysicsListHelper::ReadOrdi << 340     G4Exception("G4PhysicsListHelper::ReadOrdingParameterTable",
280                 "The ordering parameter table  << 341     "Run0106", JustWarning, 
                                                   >> 342     "The ordering parameter table is empty ");
281     delete theTable;                              343     delete theTable;
282     theTable = nullptr;                        << 344     theTable=0;
283   }                                               345   }
284   return;                                      << 346   return;  
285 }                                                 347 }
286                                                   348 
287 // ------------------------------------------- << 349 ////////////////////////////////////////////////////////
288 void G4PhysicsListHelper::DumpOrdingParameterT    350 void G4PhysicsListHelper::DumpOrdingParameterTable(G4int subType) const
289 {                                                 351 {
290   if (theTable == nullptr) {                   << 352   if (theTable==0) {
291 #ifdef G4VERBOSE                                  353 #ifdef G4VERBOSE
292     if (verboseLevel > 0) {                    << 354     if (verboseLevel >0) {
293       G4cout << "G4PhysicsListHelper::DumpOrdi    355       G4cout << "G4PhysicsListHelper::DumpOrdingParameterTable   "
294              << " No ordering parameter table  << 356        << " No ordering parameter table  : " << ordParamFileName 
                                                   >> 357        << G4endl;
295     }                                             358     }
296 #endif                                            359 #endif
297     return;                                       360     return;
298   }                                               361   }
299   G4cout << "G4PhysicsListHelper::DumpOrdingPa << 362   G4cout << "G4PhysicsListHelper::DumpOrdingParameterTable  : "
300   G4cout << "          TypeName  "             << 363    << ordParamFileName << G4endl; 
301          << "    ProcessType"                  << 364   G4cout << "          TypeName  " 
302          << "        SubType"                  << 365    << "    ProcessType" <<  "        SubType"
303          << "         AtRest"                  << 366    << "         AtRest" <<  "      AlongStep" <<  "        PostStep"
304          << "      AlongStep"                  << 367    << "     Duplicable" << G4endl;
305          << "        PostStep"                 << 368   for (G4int i=0; i<sizeOfTable ; ++i){
306          << "     Duplicable" << G4endl;       << 369     G4PhysicsListOrderingParameter* tmp=&(theTable->at(i));
307   for (G4int i = 0; i < sizeOfTable; ++i) {    << 370     if ((subType>=0) && (subType!=tmp->processSubType)) continue;
308     G4PhysicsListOrderingParameter* tmp = &(th << 371     G4cout << std::setw(18)     << tmp->processTypeName 
309     if ((subType >= 0) && (subType != tmp->pro << 372      << std::setw(15)     << tmp->processType 
310     G4cout << std::setw(18) << tmp->processTyp << 373      << std::setw(15) << tmp->processSubType
311            << std::setw(15) << tmp->processSub << 374      << std::setw(15) << tmp->ordering[0] 
312            << std::setw(15) << tmp->ordering[1 << 375      << std::setw(15) << tmp->ordering[1] 
                                                   >> 376      << std::setw(15) << tmp->ordering[2];
313     if (tmp->isDuplicable) {                      377     if (tmp->isDuplicable) {
314       G4cout << "  true";                         378       G4cout << "  true";
315     }                                          << 379     } else {
316     else {                                     << 
317       G4cout << "  false";                        380       G4cout << "  false";
318     }                                             381     }
319     G4cout << G4endl;                          << 382     G4cout <<G4endl;
320   }                                            << 383   }  
321 }                                                 384 }
322                                                   385 
323 // ------------------------------------------- << 386 ////////////////////////////////////////////////////////
324 G4PhysicsListOrderingParameter G4PhysicsListHe    387 G4PhysicsListOrderingParameter G4PhysicsListHelper::GetOrdingParameter(G4int subType) const
325 {                                                 388 {
326   G4PhysicsListOrderingParameter value;           389   G4PhysicsListOrderingParameter value;
327                                                   390 
328   if (theTable == nullptr) {                   << 391  if (theTable==0) {
329 #ifdef G4VERBOSE                                  392 #ifdef G4VERBOSE
330     if (verboseLevel > 0) {                    << 393     if (verboseLevel >0) {
331       G4cout << "G4PhysicsListHelper::GetOrder    394       G4cout << "G4PhysicsListHelper::GetOrderingParameter : "
332              << " No ordering parameter table  << 395        << " No ordering parameter table  : " << ordParamFileName 
                                                   >> 396        << G4endl;
333     }                                             397     }
334 #endif                                            398 #endif
335     return value;                                 399     return value;
336   }                                               400   }
337                                                   401 
338   for (G4int i = 0; i < sizeOfTable; ++i) {    << 402   for (G4int i=0; i<sizeOfTable ; ++i){
339     G4PhysicsListOrderingParameter* tmp = &(th << 403     G4PhysicsListOrderingParameter* tmp=&(theTable->at(i));
340     if (subType == tmp->processSubType) {      << 404     if (subType == tmp->processSubType){
341       value.processTypeName = tmp->processType << 405       value.processTypeName = tmp->processTypeName; 
342       value.processType = tmp->processType;    << 406       value.processType     = tmp->processType; 
343       value.processSubType = tmp->processSubTy << 407       value.processSubType  = tmp->processSubType; 
344       value.ordering[0] = tmp->ordering[0];    << 408       value.ordering[0]     = tmp->ordering[0]; 
345       value.ordering[1] = tmp->ordering[1];    << 409       value.ordering[1]     = tmp->ordering[1]; 
346       value.ordering[2] = tmp->ordering[2];    << 410       value.ordering[2]     = tmp->ordering[2]; 
347       value.isDuplicable = tmp->isDuplicable;  << 411       value.isDuplicable    = tmp->isDuplicable;
348     }                                             412     }
349   }                                            << 413   }  
350   return value;                                   414   return value;
351 }                                                 415 }
352                                                   416 
353 // ------------------------------------------- << 417 ////////////////////////////////////////////////////////
354 G4bool G4PhysicsListHelper::RegisterProcess(G4 << 418 G4bool G4PhysicsListHelper::RegisterProcess(G4VProcess*            process,
                                                   >> 419               G4ParticleDefinition*  particle)
355 {                                                 420 {
356   if (theTable == nullptr) {                   << 421   if (theTable==0) {
357 #ifdef G4VERBOSE                                  422 #ifdef G4VERBOSE
358     if (verboseLevel > 0) {                    << 423     if (verboseLevel >0) {
359       G4cout << "G4PhysicsListHelper::Register    424       G4cout << "G4PhysicsListHelper::RegisterProcess :"
360              << " No ordering parameter table  << 425        << " No ordering parameter table  : " << ordParamFileName 
                                                   >> 426        << G4endl;
361     }                                             427     }
362 #endif                                            428 #endif
363     G4Exception("G4PhysicsListHelper::Register << 429     G4Exception("G4PhysicsListHelper::RegisterProcess",
364                 "No Ordering Parameter Table") << 430     "Run0107", FatalException, 
                                                   >> 431     "No Ordering Parameter Table");
365     return false;                                 432     return false;
366   }                                               433   }
367                                                   434 
368   const G4String pName = process->GetProcessNa << 435   const G4String pName = process->GetProcessName(); 
369   const G4int pType = process->GetProcessType( << 436   const G4int pType    = process->GetProcessType();
370   const G4int pSubType = process->GetProcessSu    437   const G4int pSubType = process->GetProcessSubType();
371                                                << 438   
372 #ifdef G4VERBOSE                                  439 #ifdef G4VERBOSE
373   if (verboseLevel > 2) {                      << 440   if (verboseLevel >2) {
374     G4cout << "G4PhysicsListHelper::RegisterPr << 441     G4cout << "G4PhysicsListHelper::RegisterProcess :"
375            << " SubType = " << pSubType << " t << 442      << pName << " Process Type = " << pType 
                                                   >> 443      << " SubType = "<< pSubType  
                                                   >> 444      << " to " << particle->GetParticleName()
                                                   >> 445      << G4endl;
376   }                                               446   }
377 #endif                                            447 #endif
378                                                   448 
379   // Check Process Type/SubType                   449   // Check Process Type/SubType
380   if ((pType < 1) || (pSubType < 1)) {         << 450   if ((pType <1)||(pSubType<1)) {
381 #ifdef G4VERBOSE                                  451 #ifdef G4VERBOSE
382     if (verboseLevel > 0) {                    << 452     if (verboseLevel >0) {
383       G4cout << "G4PhysicsListHelper::Register << 453       G4cout << "G4PhysicsListHelper::RegisterProcess :"
384              << particle->GetParticleName() << << 454        << pName << " for " << particle->GetParticleName()
385              << " SubType = " << pSubType << G << 455        << " has illegal Process Type = " << pType 
                                                   >> 456        << " SubType = "<< pSubType << G4endl;
386     }                                             457     }
387 #endif                                            458 #endif
388     G4Exception("G4PhysicsListHelper::Register << 459     G4Exception("G4PhysicsListHelper::RegisterProcess",
389                 "No Matching process Type/SubT << 460     "Run0108", FatalException, 
                                                   >> 461     "No Matching process Type/SubType");
390     return false;                                 462     return false;
391   }                                               463   }
392                                                << 464   
393   G4bool isFound = false;                         465   G4bool isFound = false;
394   G4int ord[3];                                << 466   G4int  ord[3];
395   G4bool duplicable = false;                      467   G4bool duplicable = false;
396   for (G4int i = 0; i < sizeOfTable; ++i) {    << 468   for (G4int i=0; i<sizeOfTable ; ++i){
397     G4PhysicsListOrderingParameter* tmp = &(th << 469     G4PhysicsListOrderingParameter* tmp=&(theTable->at(i));
398     if ((tmp->processType == pType) && (tmp->p << 470     if ((tmp->processType==pType)&&(tmp->processSubType==pSubType)){
399       ord[0] = tmp->ordering[0];               << 471       ord[0] = tmp->ordering[0]; 
400       ord[1] = tmp->ordering[1];               << 472       ord[1] = tmp->ordering[1]; 
401       ord[2] = tmp->ordering[2];                  473       ord[2] = tmp->ordering[2];
402       duplicable = tmp->isDuplicable;             474       duplicable = tmp->isDuplicable;
403       isFound = true;                             475       isFound = true;
404       break;                                      476       break;
405     }                                             477     }
406   }                                            << 478   } 
407   if (!isFound) {                                 479   if (!isFound) {
408 #ifdef G4VERBOSE                                  480 #ifdef G4VERBOSE
409     if (verboseLevel > 0) {                    << 481     if (verboseLevel >0) {
410       G4cout << "G4PhysicsListHelper::Register << 482       G4cout << "G4PhysicsListHelper::RegisterProcess :"
411              << particle->GetParticleName() << << 483        << pName << " for " << particle->GetParticleName()
412              << "  is not registered in Ording << 484        << " with  type/subtype =" 
                                                   >> 485        << pType << "/" << pSubType 
                                                   >> 486        << "  is not reigstered in OrdingParameterTable  "
                                                   >> 487        << G4endl;
413     }                                             488     }
414 #endif                                            489 #endif
415     G4Exception("G4PhysicsListHelper::Register << 490     G4Exception("G4PhysicsListHelper::RegisterProcess",
416                 "No Matching process Type/SubT << 491     "Run0109", FatalException, 
                                                   >> 492     "No Matching process Type/SubType");
417     return false;                                 493     return false;
418   }                                               494   }
419                                                   495 
420   // Check Process Manager                        496   // Check Process Manager
421   G4ProcessManager* pManager = particle->GetPr    497   G4ProcessManager* pManager = particle->GetProcessManager();
422   if (pManager == nullptr) {                   << 498   if ( pManager == 0) {
423     // Error !! no process manager             << 499       // Error !! no process manager
424 #ifdef G4VERBOSE                                  500 #ifdef G4VERBOSE
425     if (verboseLevel > 0) {                    << 501     if (verboseLevel>0){
426       G4cout << "G4PhysicsListHelper::Register    502       G4cout << "G4PhysicsListHelper::RegisterProcess "
427              << " : No Process Manager for " < << 503        <<" : No Process Manager for "
                                                   >> 504        << particle->GetParticleName() << G4endl;
428     }                                             505     }
429 #endif                                            506 #endif
430     G4Exception("G4PhysicsListHelper::Register << 507     G4Exception("G4PhysicsListHelper::RegisterProcess   ",
431                 "No process manager");         << 508     "Riun0110", FatalException,
                                                   >> 509     "No process manager");
432     return false;                                 510     return false;
433   }                                               511   }
434                                                   512 
435   // Check Duplication                            513   // Check Duplication
436   if (!duplicable) {                           << 514   if (!duplicable){
437     G4bool duplicated = false;                    515     G4bool duplicated = false;
438     G4ProcessVector* pList = pManager->GetProc    516     G4ProcessVector* pList = pManager->GetProcessList();
439     for (G4int idx = 0; idx < (G4int)pList->si << 517     for (std::size_t idx=0; idx<pList->size(); ++idx) {
440       const G4VProcess* p = (*pList)[idx];        518       const G4VProcess* p = (*pList)[idx];
441       if ((p->GetProcessType() == pType) && (p << 519       if ((p->GetProcessType()== pType)  && 
442         duplicated = true;                     << 520     (p->GetProcessSubType()== pSubType)){
                                                   >> 521   duplicated = true;
443 #ifdef G4VERBOSE                                  522 #ifdef G4VERBOSE
444         if (verboseLevel > 0) {                << 523   if (verboseLevel >0) {
445           G4cout << "G4PhysicsListHelper::Regi << 524     G4cout << "G4PhysicsListHelper::RegisterProcess :"
446                  << particle->GetParticleName( << 525      << pName << " for " << particle->GetParticleName()
447                  << pSubType << "  is has same << 526      << " with  type/subtype =" 
448                  << particle->GetParticleName( << 527      << pType << "/" << pSubType 
449           G4cout << "It will not be added !!"  << 528      << "  is has same subType as "
450         }                                      << 529      << p->GetProcessName()
                                                   >> 530      << " for " << particle->GetParticleName()
                                                   >> 531      << G4endl;
                                                   >> 532     G4cout << "It will not be added !!" << G4endl;
                                                   >> 533   }
451 #endif                                            534 #endif
452         G4Exception("G4PhysicsListHelper::Regi << 535   G4Exception("G4PhysicsListHelper::RegisterProcess",
453                     "Duplication of processes" << 536         "Run0111", JustWarning, 
                                                   >> 537         "Duplication of processes");
454       }                                           538       }
455     }                                             539     }
456     if (duplicated) return false;                 540     if (duplicated) return false;
457   }                                               541   }
458                                                   542 
459   // Add Process                                  543   // Add Process
460   G4int code = pManager->AddProcess(process);  << 544   G4int code = pManager ->AddProcess(process);
461   if (code < 0) return false;                  << 545   if (code <0) return false;
462                                                   546 
463   // Set Ordering Parameter                       547   // Set Ordering Parameter
464   for (G4int idx = 0; idx < 3; ++idx) {        << 548   for(G4int idx=0; idx<3; ++idx){
465     auto idxOrd = static_cast<G4ProcessVectorD << 549     G4ProcessVectorDoItIndex idxOrd = static_cast<G4ProcessVectorDoItIndex>(idx);
466     if (ord[idx] < 0) {                        << 550     if (ord[idx]<0) {
467       // Do Nothing because NO DOIT               551       // Do Nothing because NO DOIT
468     }                                          << 552     } else if (ord[idx]==0) {
469     else if (ord[idx] == 0) {                  << 553       pManager->SetProcessOrderingToFirst( process, idxOrd );
470       pManager->SetProcessOrderingToFirst(proc << 554     } else if (ord[idx]<9999) {
471     }                                          << 555       pManager->SetProcessOrdering( process, idxOrd , ord[idx]);
472     else if (ord[idx] < 9999) {                << 556     } else {
473       pManager->SetProcessOrdering(process, id << 557       pManager->SetProcessOrderingToLast( process, idxOrd );
474     }                                          << 558     } 
475     else {                                     << 559   } 
476       pManager->SetProcessOrderingToLast(proce << 
477     }                                          << 
478   }                                            << 
479 #ifdef G4VERBOSE                                  560 #ifdef G4VERBOSE
480   if (verboseLevel > 1) {                      << 561   if (verboseLevel >1) {
481     G4cout << "G4PhysicsListHelper::RegisterPr << 562     G4cout << "G4PhysicsListHelper::RegisterProcess :"
482            << particle->GetParticleName() << " << 563      << pName << " for " << particle->GetParticleName()
483            << " is successfully registered wit << 564      << " with  type/subtype =" 
484            << ":" << ord[2] << G4endl;         << 565      << pType << "/" << pSubType 
485   }                                            << 566      << " is sucessfully registered with ordering parameters "
                                                   >> 567      << ord[0] << ":" << ord[1] << ":" << ord[2]
                                                   >> 568      << G4endl;
                                                   >> 569   }
486 #endif                                            570 #endif
487   return true;                                    571   return true;
488 }                                                 572 }
489                                                   573 
490 // ------------------------------------------- << 
491 void G4PhysicsListHelper::ReadInDefaultOrderin    574 void G4PhysicsListHelper::ReadInDefaultOrderingParameter()
492 {                                                 575 {
                                                   >> 576   
493   G4PhysicsListOrderingParameter tmp;             577   G4PhysicsListOrderingParameter tmp;
494                                                << 578   
495   // NOTE: please use enum values, rather than << 
496   //       for both the processType and proces << 
497                                                << 
498   tmp.processTypeName = "Transportation";         579   tmp.processTypeName = "Transportation";
499   tmp.processType = fTransportation;           << 580   tmp.processType     = 1;
500   tmp.processSubType = TRANSPORTATION;         << 581   tmp.processSubType  = 91;
501   tmp.ordering[0] = -1;                        << 582   tmp.ordering[0]     = -1;
502   tmp.ordering[1] = 0;                         << 583   tmp.ordering[1]     =  0;
503   tmp.ordering[2] = 0;                         << 584   tmp.ordering[2]     =  0;
504   tmp.isDuplicable = false;                    << 585   tmp.isDuplicable =  false;
505   theTable->push_back(tmp);                       586   theTable->push_back(tmp);
506   sizeOfTable += 1;                            << 587   sizeOfTable +=1;  
507                                                   588 
508   tmp.processTypeName = "CoupleTrans";            589   tmp.processTypeName = "CoupleTrans";
509   tmp.processType = fTransportation;           << 590   tmp.processType     = 1;
510   tmp.processSubType = COUPLED_TRANSPORTATION; << 591   tmp.processSubType  = 92;
511   tmp.ordering[0] = -1;                        << 592   tmp.ordering[0]     = -1;
512   tmp.ordering[1] = 0;                         << 593   tmp.ordering[1]     =  0;
513   tmp.ordering[2] = 0;                         << 594   tmp.ordering[2]     =  0;
514   tmp.isDuplicable = false;                    << 595   tmp.isDuplicable =  false;
515   theTable->push_back(tmp);                       596   theTable->push_back(tmp);
516   sizeOfTable += 1;                            << 597   sizeOfTable +=1;  
517                                                   598 
518   tmp.processTypeName = "CoulombScat";            599   tmp.processTypeName = "CoulombScat";
519   tmp.processType = fElectromagnetic;          << 600   tmp.processType     = 2;
520   tmp.processSubType = fCoulombScattering;     << 601   tmp.processSubType  =  1;
521   tmp.ordering[0] = -1;                        << 602   tmp.ordering[0]     = -1;
522   tmp.ordering[1] = -1;                        << 603   tmp.ordering[1]     = -1;
523   tmp.ordering[2] = 1000;                      << 604   tmp.ordering[2]     = 1000;
524   tmp.isDuplicable = false;                    << 605   tmp.isDuplicable =  false;
525   theTable->push_back(tmp);                       606   theTable->push_back(tmp);
526   sizeOfTable += 1;                            << 607   sizeOfTable +=1;  
527                                                   608 
528   tmp.processTypeName = "Ionisation";             609   tmp.processTypeName = "Ionisation";
529   tmp.processType = fElectromagnetic;          << 610   tmp.processType     = 2;
530   tmp.processSubType = fIonisation;            << 611   tmp.processSubType  =  2;
531   tmp.ordering[0] = -1;                        << 612   tmp.ordering[0]     = -1;
532   tmp.ordering[1] = 2;                         << 613   tmp.ordering[1]     =  2;
533   tmp.ordering[2] = 2;                         << 614   tmp.ordering[2]     =  2;
534   tmp.isDuplicable = false;                    << 615   tmp.isDuplicable =  false;
535   theTable->push_back(tmp);                       616   theTable->push_back(tmp);
536   sizeOfTable += 1;                            << 617   sizeOfTable +=1;  
537                                                   618 
538   tmp.processTypeName = "Brems";                  619   tmp.processTypeName = "Brems";
539   tmp.processType = fElectromagnetic;          << 620   tmp.processType     = 2;
540   tmp.processSubType = fBremsstrahlung;        << 621   tmp.processSubType  =  3;
541   tmp.ordering[0] = -1;                        << 622   tmp.ordering[0]     = -1;
542   tmp.ordering[1] = -1;                        << 623   tmp.ordering[1]     = -1;
543   tmp.ordering[2] = 3;                         << 624   tmp.ordering[2]     =  3;
544   tmp.isDuplicable = false;                    << 625   tmp.isDuplicable =  false;
545   theTable->push_back(tmp);                       626   theTable->push_back(tmp);
546   sizeOfTable += 1;                            << 627   sizeOfTable +=1;  
547                                                   628 
548   tmp.processTypeName = "PairProdCharged";        629   tmp.processTypeName = "PairProdCharged";
549   tmp.processType = fElectromagnetic;          << 630   tmp.processType     = 2;
550   tmp.processSubType = fPairProdByCharged;     << 631   tmp.processSubType  =  4;
551   tmp.ordering[0] = -1;                        << 632   tmp.ordering[0]     = -1;
552   tmp.ordering[1] = -1;                        << 633   tmp.ordering[1]     = -1;
553   tmp.ordering[2] = 4;                         << 634   tmp.ordering[2]     =  4;
554   tmp.isDuplicable = false;                    << 635   tmp.isDuplicable =  false;
555   theTable->push_back(tmp);                       636   theTable->push_back(tmp);
556   sizeOfTable += 1;                            << 637   sizeOfTable +=1;  
557                                                   638 
558   tmp.processTypeName = "Annih";                  639   tmp.processTypeName = "Annih";
559   tmp.processType = fElectromagnetic;          << 640   tmp.processType     = 2;
560   tmp.processSubType = fAnnihilation;          << 641   tmp.processSubType  =  5;
561   tmp.ordering[0] = 5;                         << 642   tmp.ordering[0]     =  5;
562   tmp.ordering[1] = -1;                        << 643   tmp.ordering[1]     = -1;
563   tmp.ordering[2] = 5;                         << 644   tmp.ordering[2]     =  5;
564   tmp.isDuplicable = false;                    << 645   tmp.isDuplicable =  false;
565   theTable->push_back(tmp);                       646   theTable->push_back(tmp);
566   sizeOfTable += 1;                            << 647   sizeOfTable +=1;  
567                                                   648 
568   tmp.processTypeName = "AnnihToMuMu";            649   tmp.processTypeName = "AnnihToMuMu";
569   tmp.processType = fElectromagnetic;          << 650   tmp.processType     = 2;
570   tmp.processSubType = fAnnihilationToMuMu;    << 651   tmp.processSubType  =  6;
571   tmp.ordering[0] = -1;                        << 652   tmp.ordering[0]     = -1;
572   tmp.ordering[1] = -1;                        << 653   tmp.ordering[1]     = -1;
573   tmp.ordering[2] = 6;                         << 654   tmp.ordering[2]     =  6;
574   tmp.isDuplicable = false;                    << 655   tmp.isDuplicable =  false;
575   theTable->push_back(tmp);                    << 
576   sizeOfTable += 1;                            << 
577                                                << 
578   tmp.processTypeName = "AnnihToTauTau";       << 
579   tmp.processType = fElectromagnetic;          << 
580   tmp.processSubType = fAnnihilationToTauTau;  << 
581   tmp.ordering[0] = -1;                        << 
582   tmp.ordering[1] = -1;                        << 
583   tmp.ordering[2] = 7;                         << 
584   tmp.isDuplicable = false;                    << 
585   theTable->push_back(tmp);                       656   theTable->push_back(tmp);
586   sizeOfTable += 1;                            << 657   sizeOfTable +=1;  
587                                                   658 
588   tmp.processTypeName = "AnnihToHad";             659   tmp.processTypeName = "AnnihToHad";
589   tmp.processType = fElectromagnetic;          << 660   tmp.processType     = 2;
590   tmp.processSubType = fAnnihilationToHadrons; << 661   tmp.processSubType  =  7;
591   tmp.ordering[0] = -1;                        << 662   tmp.ordering[0]     = -1;
592   tmp.ordering[1] = -1;                        << 663   tmp.ordering[1]     = -1;
593   tmp.ordering[2] = 8;                         << 664   tmp.ordering[2]     =  7;
594   tmp.isDuplicable = false;                    << 665   tmp.isDuplicable =  false;
595   theTable->push_back(tmp);                    << 666   theTable->push_back(tmp);
596   sizeOfTable += 1;                            << 667   sizeOfTable +=1;  
597                                                << 668 
598   tmp.processTypeName = "NuclearStopping";     << 669   tmp.processTypeName = "NuclearStopp";
599   tmp.processType = fElectromagnetic;          << 670   tmp.processType     = 2;
600   tmp.processSubType = fNuclearStopping;       << 671   tmp.processSubType  =  8;
601   tmp.ordering[0] = -1;                        << 672   tmp.ordering[0]     = -1;
602   tmp.ordering[1] = 9;                         << 673   tmp.ordering[1]     =  8;
603   tmp.ordering[2] = -1;                        << 674   tmp.ordering[2]     = -1;
604   tmp.isDuplicable = false;                    << 675   tmp.isDuplicable =  false;
605   theTable->push_back(tmp);                    << 676   theTable->push_back(tmp);
606   sizeOfTable += 1;                            << 677   sizeOfTable +=1;  
607                                                << 678 
608   tmp.processTypeName = "ElectronGeneral";     << 679   tmp.processTypeName = "ElectronSuper";
609   tmp.processType = fElectromagnetic;          << 680   tmp.processType     = 2;
610   tmp.processSubType = fElectronGeneralProcess << 681   tmp.processSubType  =  9;
611   tmp.ordering[0] = -1;                        << 682   tmp.ordering[0]     = -1;
612   tmp.ordering[1] = 1;                         << 683   tmp.ordering[1]     =  1;
613   tmp.ordering[2] = 1;                         << 684   tmp.ordering[2]     =  1;
614   tmp.isDuplicable = false;                    << 685   tmp.isDuplicable =  false;
615   theTable->push_back(tmp);                       686   theTable->push_back(tmp);
616   sizeOfTable += 1;                            << 687   sizeOfTable +=1;  
617                                                   688 
618   tmp.processTypeName = "Msc";                    689   tmp.processTypeName = "Msc";
619   tmp.processType = fElectromagnetic;          << 690   tmp.processType     = 2;
620   tmp.processSubType = fMultipleScattering;    << 691   tmp.processSubType  = 10;
621   tmp.ordering[0] = -1;                        << 692   tmp.ordering[0]     = -1;
622   tmp.ordering[1] = 1;                         << 693   tmp.ordering[1]     =  1;
623   tmp.ordering[2] = -1;                        << 694   tmp.ordering[2]     = -1;
624   tmp.isDuplicable = false;                    << 695   tmp.isDuplicable =  false;
625   theTable->push_back(tmp);                       696   theTable->push_back(tmp);
626   sizeOfTable += 1;                            << 697   sizeOfTable +=1;  
627                                                   698 
628   tmp.processTypeName = "Rayleigh";               699   tmp.processTypeName = "Rayleigh";
629   tmp.processType = fElectromagnetic;          << 700   tmp.processType     = 2;
630   tmp.processSubType = fRayleigh;              << 701   tmp.processSubType  = 11;
631   tmp.ordering[0] = -1;                        << 702   tmp.ordering[0]     = -1;
632   tmp.ordering[1] = -1;                        << 703   tmp.ordering[1]     = -1;
633   tmp.ordering[2] = 1000;                      << 704   tmp.ordering[2]     =  1000;
634   tmp.isDuplicable = false;                    << 705   tmp.isDuplicable =  false;
635   theTable->push_back(tmp);                       706   theTable->push_back(tmp);
636   sizeOfTable += 1;                            << 707   sizeOfTable +=1;  
637                                                   708 
638   tmp.processTypeName = "PhotoElectric";          709   tmp.processTypeName = "PhotoElectric";
639   tmp.processType = fElectromagnetic;          << 710   tmp.processType     = 2;
640   tmp.processSubType = fPhotoElectricEffect;   << 711   tmp.processSubType  = 12;
641   tmp.ordering[0] = -1;                        << 712   tmp.ordering[0]     = -1;
642   tmp.ordering[1] = -1;                        << 713   tmp.ordering[1]     = -1;
643   tmp.ordering[2] = 1000;                      << 714   tmp.ordering[2]     =  1000;
644   tmp.isDuplicable = false;                    << 715   tmp.isDuplicable =  false;
645   theTable->push_back(tmp);                       716   theTable->push_back(tmp);
646   sizeOfTable += 1;                            << 717   sizeOfTable +=1;  
647                                                   718 
648   tmp.processTypeName = "Compton";                719   tmp.processTypeName = "Compton";
649   tmp.processType = fElectromagnetic;          << 720   tmp.processType     = 2;
650   tmp.processSubType = fComptonScattering;     << 721   tmp.processSubType  = 13;
651   tmp.ordering[0] = -1;                        << 722   tmp.ordering[0]     = -1;
652   tmp.ordering[1] = -1;                        << 723   tmp.ordering[1]     = -1;
653   tmp.ordering[2] = 1000;                      << 724   tmp.ordering[2]     =  1000;
654   tmp.isDuplicable = false;                    << 725   tmp.isDuplicable =  false;
655   theTable->push_back(tmp);                       726   theTable->push_back(tmp);
656   sizeOfTable += 1;                            << 727   sizeOfTable +=1;  
657                                                   728 
658   tmp.processTypeName = "Conv";                   729   tmp.processTypeName = "Conv";
659   tmp.processType = fElectromagnetic;          << 730   tmp.processType     = 2;
660   tmp.processSubType = fGammaConversion;       << 731   tmp.processSubType  = 14;
661   tmp.ordering[0] = -1;                        << 732   tmp.ordering[0]     = -1;
662   tmp.ordering[1] = -1;                        << 733   tmp.ordering[1]     = -1;
663   tmp.ordering[2] = 1000;                      << 734   tmp.ordering[2]     =  1000;
664   tmp.isDuplicable = false;                    << 735   tmp.isDuplicable =  false;
665   theTable->push_back(tmp);                       736   theTable->push_back(tmp);
666   sizeOfTable += 1;                            << 737   sizeOfTable +=1;  
667                                                   738 
668   tmp.processTypeName = "ConvToMuMu";             739   tmp.processTypeName = "ConvToMuMu";
669   tmp.processType = fElectromagnetic;          << 740   tmp.processType     = 2;
670   tmp.processSubType = fGammaConversionToMuMu; << 741   tmp.processSubType  = 15;
671   tmp.ordering[0] = -1;                        << 742   tmp.ordering[0]     = -1;
672   tmp.ordering[1] = -1;                        << 743   tmp.ordering[1]     = -1;
673   tmp.ordering[2] = 1000;                      << 744   tmp.ordering[2]     =  1000;
674   tmp.isDuplicable = false;                    << 745   tmp.isDuplicable =  false;
675   theTable->push_back(tmp);                    << 746   theTable->push_back(tmp);
676   sizeOfTable += 1;                            << 747   sizeOfTable +=1;  
677                                                << 748 
678   tmp.processTypeName = "GammaGeneral";        << 749   tmp.processTypeName = "GammaSuper";
679   tmp.processType = fElectromagnetic;          << 750   tmp.processType     = 2;
680   tmp.processSubType = fGammaGeneralProcess;   << 751   tmp.processSubType  = 16;
681   tmp.ordering[0] = -1;                        << 752   tmp.ordering[0]     = -1;
682   tmp.ordering[1] = -1;                        << 753   tmp.ordering[1]     = -1;
683   tmp.ordering[2] = 1000;                      << 754   tmp.ordering[2]     =  1000;
684   tmp.isDuplicable = false;                    << 755   tmp.isDuplicable =  false;
685   theTable->push_back(tmp);                    << 
686   sizeOfTable += 1;                            << 
687                                                << 
688   tmp.processTypeName = "XrayReflection";      << 
689   tmp.processType = fElectromagnetic;          << 
690   tmp.processSubType = fGammaReflection;       << 
691   tmp.ordering[0] = -1;                        << 
692   tmp.ordering[1] = -1;                        << 
693   tmp.ordering[2] = 1000;                      << 
694   tmp.isDuplicable = false;                    << 
695   theTable->push_back(tmp);                    << 
696   sizeOfTable += 1;                            << 
697                                                << 
698   tmp.processTypeName = "PositronGeneral";     << 
699   tmp.processType = fElectromagnetic;          << 
700   tmp.processSubType = fPositronGeneralProcess << 
701   tmp.ordering[0] = 1;                         << 
702   tmp.ordering[1] = 1;                         << 
703   tmp.ordering[2] = 1;                         << 
704   tmp.isDuplicable = false;                    << 
705   theTable->push_back(tmp);                    << 
706   sizeOfTable += 1;                            << 
707                                                << 
708   tmp.processTypeName = "MuPairByMuon";        << 
709   tmp.processType = fElectromagnetic;          << 
710   tmp.processSubType = fMuonPairProdByCharged; << 
711   tmp.ordering[0] = -1;                        << 
712   tmp.ordering[1] = -1;                        << 
713   tmp.ordering[2] = 10;                        << 
714   tmp.isDuplicable = false;                    << 
715   theTable->push_back(tmp);                       756   theTable->push_back(tmp);
716   sizeOfTable += 1;                            << 757   sizeOfTable +=1;  
717                                                   758 
718   tmp.processTypeName = "Cerenkov";               759   tmp.processTypeName = "Cerenkov";
719   tmp.processType = fElectromagnetic;          << 760   tmp.processType     = 2;
720   tmp.processSubType = fCerenkov;              << 761   tmp.processSubType  = 21;
721   tmp.ordering[0] = -1;                        << 762   tmp.ordering[0]     = -1;
722   tmp.ordering[1] = -1;                        << 763   tmp.ordering[1]     = -1;
723   tmp.ordering[2] = 1000;                      << 764   tmp.ordering[2]     =  1000;
724   tmp.isDuplicable = false;                    << 765   tmp.isDuplicable =  false;
725   theTable->push_back(tmp);                       766   theTable->push_back(tmp);
726   sizeOfTable += 1;                            << 767   sizeOfTable +=1;  
727                                                   768 
728   tmp.processTypeName = "Scintillation";          769   tmp.processTypeName = "Scintillation";
729   tmp.processType = fElectromagnetic;          << 770   tmp.processType     = 2;
730   tmp.processSubType = fScintillation;         << 771   tmp.processSubType  = 22;
731   tmp.ordering[0] = 9999;                      << 772   tmp.ordering[0]     =  9999;
732   tmp.ordering[1] = -1;                        << 773   tmp.ordering[1]     = -1;
733   tmp.ordering[2] = 9999;                      << 774   tmp.ordering[2]     =  9999;
734   tmp.isDuplicable = false;                    << 775   tmp.isDuplicable =  false;
735   theTable->push_back(tmp);                       776   theTable->push_back(tmp);
736   sizeOfTable += 1;                            << 777   sizeOfTable +=1;  
737                                                   778 
738   tmp.processTypeName = "SynchRad";               779   tmp.processTypeName = "SynchRad";
739   tmp.processType = fElectromagnetic;          << 780   tmp.processType     = 2;
740   tmp.processSubType = fSynchrotronRadiation;  << 781   tmp.processSubType  = 23;
741   tmp.ordering[0] = -1;                        << 782   tmp.ordering[0]     = -1;
742   tmp.ordering[1] = -1;                        << 783   tmp.ordering[1]     = -1;
743   tmp.ordering[2] = 1000;                      << 784   tmp.ordering[2]     =  1000;
744   tmp.isDuplicable = false;                    << 785   tmp.isDuplicable =  false;
745   theTable->push_back(tmp);                       786   theTable->push_back(tmp);
746   sizeOfTable += 1;                            << 787   sizeOfTable +=1;  
747                                                   788 
748   tmp.processTypeName = "TransRad";               789   tmp.processTypeName = "TransRad";
749   tmp.processType = fElectromagnetic;          << 790   tmp.processType     = 2;
750   tmp.processSubType = fTransitionRadiation;   << 791   tmp.processSubType  = 24;
751   tmp.ordering[0] = -1;                        << 792   tmp.ordering[0]     = -1;
752   tmp.ordering[1] = -1;                        << 793   tmp.ordering[1]     = -1;
753   tmp.ordering[2] = 1000;                      << 794   tmp.ordering[2]     =  1000;
754   tmp.isDuplicable = false;                    << 795   tmp.isDuplicable =  false;
755   theTable->push_back(tmp);                    << 
756   sizeOfTable += 1;                            << 
757                                                << 
758   tmp.processTypeName = "SurfaceRefl";         << 
759   tmp.processType = fElectromagnetic;          << 
760   tmp.processSubType = fSurfaceReflection;     << 
761   tmp.ordering[0] = -1;                        << 
762   tmp.ordering[1] = -1;                        << 
763   tmp.ordering[2] = 1000;                      << 
764   tmp.isDuplicable = false;                    << 
765   theTable->push_back(tmp);                       796   theTable->push_back(tmp);
766   sizeOfTable += 1;                            << 797   sizeOfTable +=1;  
767                                                   798 
768   tmp.processTypeName = "OpAbsorb";               799   tmp.processTypeName = "OpAbsorb";
769   tmp.processType = fOptical;                  << 800   tmp.processType     = 3;
770   tmp.processSubType = fOpAbsorption;          << 801   tmp.processSubType  = 31;
771   tmp.ordering[0] = -1;                        << 802   tmp.ordering[0]     = -1;
772   tmp.ordering[1] = -1;                        << 803   tmp.ordering[1]     = -1;
773   tmp.ordering[2] = 1000;                      << 804   tmp.ordering[2]     =  1000;
774   tmp.isDuplicable = false;                    << 805   tmp.isDuplicable =  false;
775   theTable->push_back(tmp);                       806   theTable->push_back(tmp);
776   sizeOfTable += 1;                            << 807   sizeOfTable +=1;  
777                                                   808 
778   tmp.processTypeName = "OpBoundary";             809   tmp.processTypeName = "OpBoundary";
779   tmp.processType = fOptical;                  << 810   tmp.processType     = 3;
780   tmp.processSubType = fOpBoundary;            << 811   tmp.processSubType  = 32;
781   tmp.ordering[0] = -1;                        << 812   tmp.ordering[0]     = -1;
782   tmp.ordering[1] = -1;                        << 813   tmp.ordering[1]     = -1;
783   tmp.ordering[2] = 1000;                      << 814   tmp.ordering[2]     =  1000;
784   tmp.isDuplicable = false;                    << 815   tmp.isDuplicable =  false;
785   theTable->push_back(tmp);                       816   theTable->push_back(tmp);
786   sizeOfTable += 1;                            << 817   sizeOfTable +=1;  
787                                                   818 
788   tmp.processTypeName = "OpRayleigh";             819   tmp.processTypeName = "OpRayleigh";
789   tmp.processType = fOptical;                  << 820   tmp.processType     = 3;
790   tmp.processSubType = fOpRayleigh;            << 821   tmp.processSubType  = 33;
791   tmp.ordering[0] = -1;                        << 822   tmp.ordering[0]     = -1;
792   tmp.ordering[1] = -1;                        << 823   tmp.ordering[1]     = -1;
793   tmp.ordering[2] = 1000;                      << 824   tmp.ordering[2]     =  1000;
794   tmp.isDuplicable = false;                    << 825   tmp.isDuplicable =  false;
795   theTable->push_back(tmp);                       826   theTable->push_back(tmp);
796   sizeOfTable += 1;                            << 827   sizeOfTable +=1;  
797                                                   828 
798   tmp.processTypeName = "OpWLS";                  829   tmp.processTypeName = "OpWLS";
799   tmp.processType = fOptical;                  << 830   tmp.processType     = 3;
800   tmp.processSubType = fOpWLS;                 << 831   tmp.processSubType  = 34;
801   tmp.ordering[0] = -1;                        << 832   tmp.ordering[0]     = -1;
802   tmp.ordering[1] = -1;                        << 833   tmp.ordering[1]     = -1;
803   tmp.ordering[2] = 1000;                      << 834   tmp.ordering[2]     =  1000;
804   tmp.isDuplicable = false;                    << 835   tmp.isDuplicable =  false;
805   theTable->push_back(tmp);                       836   theTable->push_back(tmp);
806   sizeOfTable += 1;                            << 837   sizeOfTable +=1;  
807                                                   838 
808   tmp.processTypeName = "OpMieHG";                839   tmp.processTypeName = "OpMieHG";
809   tmp.processType = fOptical;                  << 840   tmp.processType     = 3;
810   tmp.processSubType = fOpMieHG;               << 841   tmp.processSubType  = 35;
811   tmp.ordering[0] = -1;                        << 842   tmp.ordering[0]     = -1;
812   tmp.ordering[1] = -1;                        << 843   tmp.ordering[1]     = -1;
813   tmp.ordering[2] = 1000;                      << 844   tmp.ordering[2]     =  1000;
814   tmp.isDuplicable = false;                    << 845   tmp.isDuplicable =  false;
815   theTable->push_back(tmp);                    << 
816   sizeOfTable += 1;                            << 
817                                                << 
818   tmp.processTypeName = "OpWLS2";              << 
819   tmp.processType = fOptical;                  << 
820   tmp.processSubType = fOpWLS2;                << 
821   tmp.ordering[0] = -1;                        << 
822   tmp.ordering[1] = -1;                        << 
823   tmp.ordering[2] = 1000;                      << 
824   tmp.isDuplicable = false;                    << 
825   theTable->push_back(tmp);                       846   theTable->push_back(tmp);
826   sizeOfTable += 1;                            << 847   sizeOfTable +=1;  
827                                                   848 
828   tmp.processTypeName = "DNAElastic";             849   tmp.processTypeName = "DNAElastic";
829   tmp.processType = fElectromagnetic;          << 850   tmp.processType     = 2;
830   tmp.processSubType = fLowEnergyElastic;      << 851   tmp.processSubType  = 51;
831   tmp.ordering[0] = -1;                        << 852   tmp.ordering[0]     = -1;
832   tmp.ordering[1] = -1;                        << 853   tmp.ordering[1]     = -1;
833   tmp.ordering[2] = 1000;                      << 854   tmp.ordering[2]     =  1000;
834   tmp.isDuplicable = false;                    << 855   tmp.isDuplicable =  false;
835   theTable->push_back(tmp);                       856   theTable->push_back(tmp);
836   sizeOfTable += 1;                            << 857   sizeOfTable +=1;  
837                                                   858 
838   tmp.processTypeName = "DNAExcit";               859   tmp.processTypeName = "DNAExcit";
839   tmp.processType = fElectromagnetic;          << 860   tmp.processType     = 2;
840   tmp.processSubType = fLowEnergyExcitation;   << 861   tmp.processSubType  = 52;
841   tmp.ordering[0] = -1;                        << 862   tmp.ordering[0]     = -1;
842   tmp.ordering[1] = -1;                        << 863   tmp.ordering[1]     = -1;
843   tmp.ordering[2] = 1000;                      << 864   tmp.ordering[2]     =  1000;
844   tmp.isDuplicable = false;                    << 865   tmp.isDuplicable =  false;
845   theTable->push_back(tmp);                       866   theTable->push_back(tmp);
846   sizeOfTable += 1;                            << 867   sizeOfTable +=1;  
847                                                   868 
848   tmp.processTypeName = "DNAIonisation";          869   tmp.processTypeName = "DNAIonisation";
849   tmp.processType = fElectromagnetic;          << 870   tmp.processType     = 2;
850   tmp.processSubType = fLowEnergyIonisation;   << 871   tmp.processSubType  = 53;
851   tmp.ordering[0] = -1;                        << 872   tmp.ordering[0]     = -1;
852   tmp.ordering[1] = -1;                        << 873   tmp.ordering[1]     = -1;
853   tmp.ordering[2] = 1000;                      << 874   tmp.ordering[2]     =  1000;
854   tmp.isDuplicable = false;                    << 875   tmp.isDuplicable =  false;
855   theTable->push_back(tmp);                       876   theTable->push_back(tmp);
856   sizeOfTable += 1;                            << 877   sizeOfTable +=1;  
857                                                   878 
858   tmp.processTypeName = "DNAVibExcit";            879   tmp.processTypeName = "DNAVibExcit";
859   tmp.processType = fElectromagnetic;          << 880   tmp.processType     = 2;
860   tmp.processSubType = fLowEnergyVibrationalEx << 881   tmp.processSubType  = 54;
861   tmp.ordering[0] = -1;                        << 882   tmp.ordering[0]     = -1;
862   tmp.ordering[1] = -1;                        << 883   tmp.ordering[1]     = -1;
863   tmp.ordering[2] = 1000;                      << 884   tmp.ordering[2]     =  1000;
864   tmp.isDuplicable = false;                    << 885   tmp.isDuplicable =  false;
865   theTable->push_back(tmp);                       886   theTable->push_back(tmp);
866   sizeOfTable += 1;                            << 887   sizeOfTable +=1;  
867                                                   888 
868   tmp.processTypeName = "DNAAttachment";          889   tmp.processTypeName = "DNAAttachment";
869   tmp.processType = fElectromagnetic;          << 890   tmp.processType     = 2;
870   tmp.processSubType = fLowEnergyAttachment;   << 891   tmp.processSubType  = 55;
871   tmp.ordering[0] = -1;                        << 892   tmp.ordering[0]     = -1;
872   tmp.ordering[1] = -1;                        << 893   tmp.ordering[1]     = -1;
873   tmp.ordering[2] = 1000;                      << 894   tmp.ordering[2]     =  1000;
874   tmp.isDuplicable = false;                    << 895   tmp.isDuplicable =  false;
875   theTable->push_back(tmp);                       896   theTable->push_back(tmp);
876   sizeOfTable += 1;                            << 897   sizeOfTable +=1;  
877                                                   898 
878   tmp.processTypeName = "DNAChargeDec";           899   tmp.processTypeName = "DNAChargeDec";
879   tmp.processType = fElectromagnetic;          << 900   tmp.processType     = 2;
880   tmp.processSubType = fLowEnergyChargeDecreas << 901   tmp.processSubType  = 56;
881   tmp.ordering[0] = -1;                        << 902   tmp.ordering[0]     = -1;
882   tmp.ordering[1] = -1;                        << 903   tmp.ordering[1]     = -1;
883   tmp.ordering[2] = 1000;                      << 904   tmp.ordering[2]     =  1000;
884   tmp.isDuplicable = false;                    << 905   tmp.isDuplicable =  false;
885   theTable->push_back(tmp);                    << 906   theTable->push_back(tmp);
886   sizeOfTable += 1;                            << 907   sizeOfTable +=1;  
887                                                << 908 
888   tmp.processTypeName = "DNAChargeInc";        << 909   tmp.processTypeName =  "DNAChargeInc";
889   tmp.processType = fElectromagnetic;          << 910   tmp.processType     = 2;
890   tmp.processSubType = fLowEnergyChargeIncreas << 911   tmp.processSubType  = 57;
891   tmp.ordering[0] = -1;                        << 912   tmp.ordering[0]     = -1;
892   tmp.ordering[1] = -1;                        << 913   tmp.ordering[1]     = -1;
893   tmp.ordering[2] = 1000;                      << 914   tmp.ordering[2]     =  1000;
894   tmp.isDuplicable = false;                    << 915   tmp.isDuplicable =  false;
895   theTable->push_back(tmp);                    << 916   theTable->push_back(tmp);
896   sizeOfTable += 1;                            << 917   sizeOfTable +=1;  
897                                                << 918 
898   tmp.processTypeName = "DNAElecSolv";         << 919   tmp.processTypeName =  "DNAElectronSolvatation";
899   tmp.processType = fElectromagnetic;          << 920   tmp.processType     = 2;
900   tmp.processSubType = fLowEnergyElectronSolva << 921   tmp.processSubType  = 58;
901   tmp.ordering[0] = -1;                        << 922   tmp.ordering[0]     = -1;
902   tmp.ordering[1] = -1;                        << 923   tmp.ordering[1]     = -1;
903   tmp.ordering[2] = 1000;                      << 924   tmp.ordering[2]     =  1000;
904   tmp.isDuplicable = false;                    << 925   tmp.isDuplicable =  false;
905   theTable->push_back(tmp);                    << 926   theTable->push_back(tmp);
906   sizeOfTable += 1;                            << 927   sizeOfTable +=1;
907                                                << 928 
908   tmp.processTypeName = "DNAMolecDecay";       << 929   tmp.processTypeName = "DNAMolecularDecay";
909   tmp.processType = fDecay;                    << 930   tmp.processType     = 6;
910   tmp.processSubType = fLowEnergyMolecularDeca << 931   tmp.processSubType  = 59;
911   tmp.ordering[0] = 1000;                      << 932   tmp.ordering[0]     =  1000;
912   tmp.ordering[1] = -1;                        << 933   tmp.ordering[1]     = -1;
913   tmp.ordering[2] = -1;                        << 934   tmp.ordering[2]     = -1;
914   tmp.isDuplicable = false;                    << 935   tmp.isDuplicable =  false;
915   theTable->push_back(tmp);                    << 936   theTable->push_back(tmp);
916   sizeOfTable += 1;                            << 937   sizeOfTable +=1;
917                                                << 938 
918   tmp.processTypeName = "ITTransport";         << 939   tmp.processTypeName = "ITTransportation";
919   tmp.processType = fTransportation;           << 940   tmp.processType     = 1;
920   tmp.processSubType = fLowEnergyTransportatio << 941   tmp.processSubType  = 60;
921   tmp.ordering[0] = -1;                        << 942   tmp.ordering[0]     = -1;
922   tmp.ordering[1] = 0;                         << 943   tmp.ordering[1]     =  0;
923   tmp.ordering[2] = 0;                         << 944   tmp.ordering[2]     =  0;
924   tmp.isDuplicable = false;                    << 945   tmp.isDuplicable =  false;
925   theTable->push_back(tmp);                    << 946   theTable->push_back(tmp);
926   sizeOfTable += 1;                            << 947   sizeOfTable +=1;
927                                                << 948 
928   tmp.processTypeName = "DNABrownTrans";       << 949   tmp.processTypeName = "DNABrownianTransportation";
929   tmp.processType = fTransportation;           << 950   tmp.processType     = 1;
930   tmp.processSubType = fLowEnergyBrownianTrans << 951   tmp.processSubType  = 61;
931   tmp.ordering[0] = -1;                        << 952   tmp.ordering[0]     = -1;
932   tmp.ordering[1] = 0;                         << 953   tmp.ordering[1]     = 0; 
933   tmp.ordering[2] = 0;                         << 954   tmp.ordering[2]     = 0;
934   tmp.isDuplicable = false;                    << 955   tmp.isDuplicable =  false;
935   theTable->push_back(tmp);                    << 956   theTable->push_back(tmp);
936   sizeOfTable += 1;                            << 957   sizeOfTable +=1;
937                                                << 958 
938   tmp.processTypeName = "DNADoubleIoni";       << 959   tmp.processTypeName = "DNADoubleIonisation";
939   tmp.processType = fElectromagnetic;          << 960   tmp.processType     = 2;
940   tmp.processSubType = fLowEnergyDoubleIonisat << 961   tmp.processSubType  = 62;
941   tmp.ordering[0] = -1;                        << 962   tmp.ordering[0]     =  -1;
942   tmp.ordering[1] = -1;                        << 963   tmp.ordering[1]     =  -1;
943   tmp.ordering[2] = 1000;                      << 964   tmp.ordering[2]     =  1000;
944   tmp.isDuplicable = false;                    << 965   tmp.isDuplicable =  false;
945   theTable->push_back(tmp);                    << 966   theTable->push_back(tmp);
946   sizeOfTable += 1;                            << 967   sizeOfTable +=1;
947                                                << 968 
948   tmp.processTypeName = "DNADoubleCap";        << 969   tmp.processTypeName = "DNADoubleCapture";
949   tmp.processType = fElectromagnetic;          << 970   tmp.processType     = 2;
950   tmp.processSubType = fLowEnergyDoubleCap;    << 971   tmp.processSubType  = 63;
951   tmp.ordering[0] = -1;                        << 972   tmp.ordering[0]     =  -1;
952   tmp.ordering[1] = -1;                        << 973   tmp.ordering[1]     =  -1;
953   tmp.ordering[2] = 1000;                      << 974   tmp.ordering[2]     =  1000;
954   tmp.isDuplicable = false;                    << 975   tmp.isDuplicable =  false;
955   theTable->push_back(tmp);                    << 976   theTable->push_back(tmp);
956   sizeOfTable += 1;                            << 977   sizeOfTable +=1;
957                                                << 978 
958   tmp.processTypeName = "DNAIoniTransfer";     << 979   tmp.processTypeName = "DNAIonisingTransfer";
959   tmp.processType = fElectromagnetic;          << 980   tmp.processType     = 2;
960   tmp.processSubType = fLowEnergyIoniTransfer; << 981   tmp.processSubType  = 64;
961   tmp.ordering[0] = -1;                        << 982   tmp.ordering[0]     =  -1;
962   tmp.ordering[1] = -1;                        << 983   tmp.ordering[1]     =  -1;
963   tmp.ordering[2] = 1000;                      << 984   tmp.ordering[2]     =  1000;
964   tmp.isDuplicable = false;                    << 985   tmp.isDuplicable =  false;
965   theTable->push_back(tmp);                    << 
966   sizeOfTable += 1;                            << 
967                                                << 
968   tmp.processTypeName = "DNAStaticMol";        << 
969   tmp.processType = fUserDefined;              << 
970   tmp.processSubType = fLowEnergyStaticMol;    << 
971   tmp.ordering[0] = -1;                        << 
972   tmp.ordering[1] = -1;                        << 
973   tmp.ordering[2] = 1000;                      << 
974   tmp.isDuplicable = false;                    << 
975   theTable->push_back(tmp);                    << 
976   sizeOfTable += 1;                            << 
977                                                << 
978   tmp.processTypeName = "DNAScavenger";        << 
979   tmp.processType = fUserDefined;              << 
980   tmp.processSubType = fLowEnergyScavenger;    << 
981   tmp.ordering[0] = -1;                        << 
982   tmp.ordering[1] = -1;                        << 
983   tmp.ordering[2] = 1000;                      << 
984   tmp.isDuplicable = false;                    << 
985   theTable->push_back(tmp);                    << 
986   sizeOfTable += 1;                            << 
987                                                << 
988   tmp.processTypeName = "DNATripleIoni";       << 
989   tmp.processType = fElectromagnetic;          << 
990   tmp.processSubType = fLowEnergyTripleIonisat << 
991   tmp.ordering[0] = -1;                        << 
992   tmp.ordering[1] = -1;                        << 
993   tmp.ordering[2] = 1000;                      << 
994   tmp.isDuplicable = false;                    << 
995   theTable->push_back(tmp);                    << 
996   sizeOfTable += 1;                            << 
997                                                << 
998   tmp.processTypeName = "DNAQuadrupleIoni";    << 
999   tmp.processType = fElectromagnetic;          << 
1000   tmp.processSubType = fLowEnergyQuadrupleIon << 
1001   tmp.ordering[0] = -1;                       << 
1002   tmp.ordering[1] = -1;                       << 
1003   tmp.ordering[2] = 1000;                     << 
1004   tmp.isDuplicable = false;                   << 
1005   theTable->push_back(tmp);                      986   theTable->push_back(tmp);
1006   sizeOfTable += 1;                           << 987   sizeOfTable +=1;
1007                                                  988 
1008   tmp.processTypeName = "HadElastic";            989   tmp.processTypeName = "HadElastic";
1009   tmp.processType = fHadronic;                << 990   tmp.processType     = 4;
1010   tmp.processSubType = fHadronElastic;        << 991   tmp.processSubType  = 111;
1011   tmp.ordering[0] = -1;                       << 992   tmp.ordering[0]     = -1;
1012   tmp.ordering[1] = -1;                       << 993   tmp.ordering[1]     = -1;
1013   tmp.ordering[2] = 1000;                     << 994   tmp.ordering[2]     =  1000;
1014   tmp.isDuplicable = false;                   << 995   tmp.isDuplicable =  false;
1015   theTable->push_back(tmp);                   << 996   theTable->push_back(tmp);
1016   sizeOfTable += 1;                           << 997   sizeOfTable +=1;  
1017                                               << 998 
1018   tmp.processTypeName = "NeutronGeneral";     << 999   tmp.processTypeName =  "HadInElastic";
1019   tmp.processType = fHadronic;                << 1000   tmp.processType     = 4;
1020   tmp.processSubType = fNeutronGeneral;       << 1001   tmp.processSubType  = 121;
1021   tmp.ordering[0] = -1;                       << 1002   tmp.ordering[0]     = -1;
1022   tmp.ordering[1] = -1;                       << 1003   tmp.ordering[1]     = -1;
1023   tmp.ordering[2] = 1000;                     << 1004   tmp.ordering[2]     =  1000;
1024   tmp.isDuplicable = false;                   << 1005   tmp.isDuplicable =  false;
1025   theTable->push_back(tmp);                   << 
1026   sizeOfTable += 1;                           << 
1027                                               << 
1028   tmp.processTypeName = "HadInelastic";       << 
1029   tmp.processType = fHadronic;                << 
1030   tmp.processSubType = fHadronInelastic;      << 
1031   tmp.ordering[0] = -1;                       << 
1032   tmp.ordering[1] = -1;                       << 
1033   tmp.ordering[2] = 1000;                     << 
1034   tmp.isDuplicable = false;                   << 
1035   theTable->push_back(tmp);                      1006   theTable->push_back(tmp);
1036   sizeOfTable += 1;                           << 1007   sizeOfTable +=1;  
1037                                                  1008 
1038   tmp.processTypeName = "HadCapture";            1009   tmp.processTypeName = "HadCapture";
1039   tmp.processType = fHadronic;                << 1010   tmp.processType     = 4;
1040   tmp.processSubType = fCapture;              << 1011   tmp.processSubType  = 131;
1041   tmp.ordering[0] = -1;                       << 1012   tmp.ordering[0]     = -1;
1042   tmp.ordering[1] = -1;                       << 1013   tmp.ordering[1]     = -1;
1043   tmp.ordering[2] = 1000;                     << 1014   tmp.ordering[2]     =  1000;
1044   tmp.isDuplicable = false;                   << 1015   tmp.isDuplicable =  false;
1045   theTable->push_back(tmp);                   << 1016   theTable->push_back(tmp);
1046   sizeOfTable += 1;                           << 1017   sizeOfTable +=1;  
1047                                               << 1018 
1048   tmp.processTypeName = "MuAtomCapture";      << 1019   tmp.processTypeName = "MuAtomicCapture";
1049   tmp.processType = fHadronic;                << 1020   tmp.processType     = 4;
1050   tmp.processSubType = fMuAtomicCapture;      << 1021   tmp.processSubType  = 132;
1051   tmp.ordering[0] = -1;                       << 1022   tmp.ordering[0]     = -1;
1052   tmp.ordering[1] = -1;                       << 1023   tmp.ordering[1]     = -1;
1053   tmp.ordering[2] = 1000;                     << 1024   tmp.ordering[2]     =  1000;
1054   tmp.isDuplicable = false;                   << 1025   tmp.isDuplicable =  false;
1055   theTable->push_back(tmp);                   << 1026   theTable->push_back(tmp);
1056   sizeOfTable += 1;                           << 1027   sizeOfTable +=1;  
1057                                               << 1028 
1058   tmp.processTypeName = "HadFission";         << 1029   tmp.processTypeName =  "HadFission";
1059   tmp.processType = fHadronic;                << 1030   tmp.processType     = 4;
1060   tmp.processSubType = fFission;              << 1031   tmp.processSubType  = 141;
1061   tmp.ordering[0] = -1;                       << 1032   tmp.ordering[0]     = -1;
1062   tmp.ordering[1] = -1;                       << 1033   tmp.ordering[1]     = -1;
1063   tmp.ordering[2] = 1000;                     << 1034   tmp.ordering[2]     =  1000;
1064   tmp.isDuplicable = false;                   << 1035   tmp.isDuplicable =  false;
1065   theTable->push_back(tmp);                      1036   theTable->push_back(tmp);
1066   sizeOfTable += 1;                           << 1037   sizeOfTable +=1;  
1067                                                  1038 
1068   tmp.processTypeName = "HadAtRest";             1039   tmp.processTypeName = "HadAtRest";
1069   tmp.processType = fHadronic;                << 1040   tmp.processType     = 4;
1070   tmp.processSubType = fHadronAtRest;         << 1041   tmp.processSubType  = 151;
1071   tmp.ordering[0] = 1000;                     << 1042   tmp.ordering[0]     =  1000;
1072   tmp.ordering[1] = -1;                       << 1043   tmp.ordering[1]     = -1;
1073   tmp.ordering[2] = -1;                       << 1044   tmp.ordering[2]     = -1;
1074   tmp.isDuplicable = false;                   << 1045   tmp.isDuplicable =  false;
1075   theTable->push_back(tmp);                   << 1046   theTable->push_back(tmp);
1076   sizeOfTable += 1;                           << 1047   sizeOfTable +=1;  
1077                                               << 1048 
1078   tmp.processTypeName = "HadCEX";             << 1049   tmp.processTypeName =  "HadCEX";
1079   tmp.processType = fHadronic;                << 1050   tmp.processType     = 4;
1080   tmp.processSubType = fChargeExchange;       << 1051   tmp.processSubType  = 161;
1081   tmp.ordering[0] = -1;                       << 1052   tmp.ordering[0]     = -1;
1082   tmp.ordering[1] = -1;                       << 1053   tmp.ordering[1]     = -1;
1083   tmp.ordering[2] = 1000;                     << 1054   tmp.ordering[2]     =  1000;
1084   tmp.isDuplicable = false;                   << 1055   tmp.isDuplicable =  false;
1085   theTable->push_back(tmp);                   << 1056   theTable->push_back(tmp);
1086   sizeOfTable += 1;                           << 1057   sizeOfTable +=1;  
1087                                               << 1058 
1088   tmp.processTypeName = "Decay";              << 1059   tmp.processTypeName =  "Decay";
1089   tmp.processType = fDecay;                   << 1060   tmp.processType     = 6;
1090   tmp.processSubType = DECAY;                 << 1061   tmp.processSubType  = 201;
1091   tmp.ordering[0] = 1000;                     << 1062   tmp.ordering[0]     =  1000;
1092   tmp.ordering[1] = -1;                       << 1063   tmp.ordering[1]     = -1;
1093   tmp.ordering[2] = 1000;                     << 1064   tmp.ordering[2]     =  1000;
1094   tmp.isDuplicable = false;                   << 1065   tmp.isDuplicable =  false;
1095   theTable->push_back(tmp);                   << 1066   theTable->push_back(tmp);
1096   sizeOfTable += 1;                           << 1067   sizeOfTable +=1;  
1097                                               << 1068 
1098   tmp.processTypeName = "DecayWSpin";         << 1069   tmp.processTypeName =  "DecayWSpin";
1099   tmp.processType = fDecay;                   << 1070   tmp.processType     = 6;
1100   tmp.processSubType = DECAY_WithSpin;        << 1071   tmp.processSubType  = 202;
1101   tmp.ordering[0] = 1000;                     << 1072   tmp.ordering[0]     =  1000;
1102   tmp.ordering[1] = -1;                       << 1073   tmp.ordering[1]     = -1;
1103   tmp.ordering[2] = 1000;                     << 1074   tmp.ordering[2]     =  1000;
1104   tmp.isDuplicable = false;                   << 1075   tmp.isDuplicable =  false;
1105   theTable->push_back(tmp);                   << 1076   theTable->push_back(tmp);
1106   sizeOfTable += 1;                           << 1077   sizeOfTable +=1;  
1107                                               << 1078 
1108   tmp.processTypeName = "DecayPiSpin";        << 1079   tmp.processTypeName =  "DecayPiSpin";
1109   tmp.processType = fDecay;                   << 1080   tmp.processType     = 6;
1110   tmp.processSubType = DECAY_PionMakeSpin;    << 1081   tmp.processSubType  = 203;
1111   tmp.ordering[0] = 1000;                     << 1082   tmp.ordering[0]     =  1000;
1112   tmp.ordering[1] = -1;                       << 1083   tmp.ordering[1]     = -1;
1113   tmp.ordering[2] = 1000;                     << 1084   tmp.ordering[2]     =  1000;
1114   tmp.isDuplicable = false;                   << 1085   tmp.isDuplicable =  false;
1115   theTable->push_back(tmp);                   << 1086   theTable->push_back(tmp);
1116   sizeOfTable += 1;                           << 1087   sizeOfTable +=1;  
1117                                               << 1088 
1118   tmp.processTypeName = "DecayRadio";         << 1089   tmp.processTypeName =  "DecayRadio";
1119   tmp.processType = fDecay;                   << 1090   tmp.processType     = 6;
1120   tmp.processSubType = DECAY_Radioactive;     << 1091   tmp.processSubType  = 210;
1121   tmp.ordering[0] = 1000;                     << 1092   tmp.ordering[0]     =  1000;
1122   tmp.ordering[1] = -1;                       << 1093   tmp.ordering[1]     = -1;
1123   tmp.ordering[2] = 1000;                     << 1094   tmp.ordering[2]     =  1000;
1124   tmp.isDuplicable = false;                   << 1095   tmp.isDuplicable =  false;
1125   theTable->push_back(tmp);                   << 1096   theTable->push_back(tmp);
1126   sizeOfTable += 1;                           << 1097   sizeOfTable +=1;  
1127                                               << 1098 
1128   tmp.processTypeName = "DecayUnKnown";       << 1099   tmp.processTypeName =  "DecayUnKnown";
1129   tmp.processType = fDecay;                   << 1100   tmp.processType     = 6;
1130   tmp.processSubType = DECAY_Unknown;         << 1101   tmp.processSubType  = 211;
1131   tmp.ordering[0] = -1;                       << 1102   tmp.ordering[0]     = -1;
1132   tmp.ordering[1] = -1;                       << 1103   tmp.ordering[1]     = -1;
1133   tmp.ordering[2] = 1000;                     << 1104   tmp.ordering[2]     =  1000;
1134   tmp.isDuplicable = false;                   << 1105   tmp.isDuplicable =  false;
1135   theTable->push_back(tmp);                   << 1106   theTable->push_back(tmp);
1136   sizeOfTable += 1;                           << 1107   sizeOfTable +=1;  
1137                                               << 1108 
1138   tmp.processTypeName = "DecayMuAtom";        << 1109   tmp.processTypeName =  "DecayMuAtom";
1139   tmp.processType = fDecay;                   << 1110   tmp.processType     = 6;
1140   tmp.processSubType = DECAY_MuAtom;          << 1111   tmp.processSubType  = 221;
1141   tmp.ordering[0] = 1000;                     << 1112   tmp.ordering[0]     =  1000;
1142   tmp.ordering[1] = -1;                       << 1113   tmp.ordering[1]     = -1;
1143   tmp.ordering[2] = 1000;                     << 1114   tmp.ordering[2]     =  1000;
1144   tmp.isDuplicable = false;                   << 1115   tmp.isDuplicable =  false;
1145   theTable->push_back(tmp);                   << 1116   theTable->push_back(tmp);
1146   sizeOfTable += 1;                           << 1117   sizeOfTable +=1;  
1147                                               << 1118 
1148   tmp.processTypeName = "DecayExt";           << 1119   tmp.processTypeName =  "DecayExt";
1149   tmp.processType = fDecay;                   << 1120   tmp.processType     = 6;
1150   tmp.processSubType = DECAY_External;        << 1121   tmp.processSubType  = 231;
1151   tmp.ordering[0] = 1000;                     << 1122   tmp.ordering[0]     =  1000;
1152   tmp.ordering[1] = -1;                       << 1123   tmp.ordering[1]     = -1;
1153   tmp.ordering[2] = 1000;                     << 1124   tmp.ordering[2]     =  1000;
1154   tmp.isDuplicable = false;                   << 1125   tmp.isDuplicable =  false;
1155   theTable->push_back(tmp);                   << 1126   theTable->push_back(tmp);
1156   sizeOfTable += 1;                           << 1127   sizeOfTable +=1;  
1157                                               << 1128 
1158   tmp.processTypeName = "StepLimiter";        << 1129   tmp.processTypeName =  "StepLimiter";
1159   tmp.processType = fGeneral;                 << 1130   tmp.processType     = 7;
1160   tmp.processSubType = STEP_LIMITER;          << 1131   tmp.processSubType  = 401;
1161   tmp.ordering[0] = -1;                       << 1132   tmp.ordering[0]     = -1;
1162   tmp.ordering[1] = -1;                       << 1133   tmp.ordering[1]     = -1;
1163   tmp.ordering[2] = 1000;                     << 1134   tmp.ordering[2]     =  1000;
1164   tmp.isDuplicable = false;                   << 1135   tmp.isDuplicable =  false;
1165   theTable->push_back(tmp);                   << 1136   theTable->push_back(tmp);
1166   sizeOfTable += 1;                           << 1137   sizeOfTable +=1;  
1167                                               << 1138 
1168   tmp.processTypeName = "UsrSepcCuts";        << 1139   tmp.processTypeName =  "UsrSepcCuts";
1169   tmp.processType = fGeneral;                 << 1140   tmp.processType     = 7;
1170   tmp.processSubType = USER_SPECIAL_CUTS;     << 1141   tmp.processSubType  = 402;
1171   tmp.ordering[0] = -1;                       << 1142   tmp.ordering[0]     = -1;
1172   tmp.ordering[1] = -1;                       << 1143   tmp.ordering[1]     = -1;
1173   tmp.ordering[2] = 1000;                     << 1144   tmp.ordering[2]     =  1000;
1174   tmp.isDuplicable = false;                   << 1145   tmp.isDuplicable =  false;
1175   theTable->push_back(tmp);                   << 1146   theTable->push_back(tmp);
1176   sizeOfTable += 1;                           << 1147   sizeOfTable +=1;  
1177                                               << 1148 
1178   tmp.processTypeName = "NeutronKiller";      << 1149   tmp.processTypeName =  "NeutronKiller";
1179   tmp.processType = fGeneral;                 << 1150   tmp.processType     = 7;
1180   tmp.processSubType = NEUTRON_KILLER;        << 1151   tmp.processSubType  = 403;
1181   tmp.ordering[0] = -1;                       << 1152   tmp.ordering[0]     = -1;
1182   tmp.ordering[1] = -1;                       << 1153   tmp.ordering[1]     = -1;
1183   tmp.ordering[2] = 1000;                     << 1154   tmp.ordering[2]     =  1000;
1184   tmp.isDuplicable = false;                   << 1155   tmp.isDuplicable =  false;
1185   theTable->push_back(tmp);                   << 1156   theTable->push_back(tmp);
1186   sizeOfTable += 1;                           << 1157   sizeOfTable +=1;  
1187                                               << 1158 
1188   tmp.processTypeName = "ParallelWorld";      << 1159   tmp.processTypeName =  "ParallelWorld";
1189   tmp.processType = fParallel;                << 1160   tmp.processType     = 10;
1190   tmp.processSubType = PARALLEL_WORLD_PROCESS << 1161   tmp.processSubType  = 491;
1191   tmp.ordering[0] = 9900;                     << 1162   tmp.ordering[0]     = 9900;
1192   tmp.ordering[1] = 1;                        << 1163   tmp.ordering[1]     = 1;
1193   tmp.ordering[2] = 9900;                     << 1164   tmp.ordering[2]     =  9900;
1194   tmp.isDuplicable = true;                    << 1165   tmp.isDuplicable =  true;
1195   theTable->push_back(tmp);                      1166   theTable->push_back(tmp);
1196   sizeOfTable += 1;                           << 1167   sizeOfTable +=1;  
1197 }                                                1168 }
                                                   >> 1169 
                                                   >> 1170 
1198                                                  1171