Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/management/src/G4ProcessTable.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 /processes/management/src/G4ProcessTable.cc (Version 11.3.0) and /processes/management/src/G4ProcessTable.cc (Version 9.5)


  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 // G4ProcessTable class implementation         << 
 27 //                                                 26 //
 28 // Author: H.Kurashige, 4 August 1998          <<  27 // $Id: G4ProcessTable.cc,v 1.15 2010-10-30 07:51:23 kurasige Exp $
 29 // ------------------------------------------- <<  28 // GEANT4 tag $Name: not supported by cvs2svn $
                                                   >>  29 //
                                                   >>  30 // 
                                                   >>  31 // ------------------------------------------------------------
                                                   >>  32 //  GEANT 4 class header file 
                                                   >>  33 //
                                                   >>  34 //  History: first implementation, based on object model of
                                                   >>  35 //  4th Aug 1998, H.Kurashige
                                                   >>  36 // ------------------------------------------------------------
                                                   >>  37 //  History:
                                                   >>  38 //   Use STL vector instead of RW vector    1. Mar 00 H.Kurashige
                                                   >>  39 //
 30                                                    40 
 31 #include "G4ProcessTableMessenger.hh"              41 #include "G4ProcessTableMessenger.hh"
 32 #include "G4ProcessTable.hh"                       42 #include "G4ProcessTable.hh"
 33 #include "G4ParticleTable.hh"                  << 
 34 #include "G4ios.hh"                            << 
 35                                                << 
 36 // ------------------------------------------- << 
 37 // Static class variable: ptr to single instan << 
 38 G4ThreadLocal G4ProcessTable* G4ProcessTable:: << 
 39                                                    43 
 40 // ------------------------------------------- <<  44 //  constructor //////////////////////////
 41 // Default constructor                         <<  45 G4ProcessTable::G4ProcessTable():verboseLevel(1)
 42 //                                             << 
 43 G4ProcessTable::G4ProcessTable()               << 
 44 {                                                  46 {
 45 #ifdef G4VERBOSE                                   47 #ifdef G4VERBOSE
 46   if (verboseLevel>1)                          <<  48   if (verboseLevel>1){
 47   {                                            << 
 48     G4cout << "--  G4ProcessTable constructor      49     G4cout << "--  G4ProcessTable constructor  --" << G4endl;
 49   }                                                50   }
 50 #endif                                             51 #endif
 51   fProcTblVector  = new  G4ProcTableVector();      52   fProcTblVector  = new  G4ProcTableVector();
 52   fProcNameVector = new  G4ProcNameVector();       53   fProcNameVector = new  G4ProcNameVector();
 53   tmpTblVector    = new  G4ProcTableVector();      54   tmpTblVector    = new  G4ProcTableVector();
 54   fProcTblMessenger = new G4ProcessTableMessen <<  55   fProcTblMessenger = 0;
 55 }                                                  56 }
 56                                                    57 
 57 // ------------------------------------------- <<  58 // copy constructor //////////////////////////
 58 // Destructor                                  <<  59 G4ProcessTable::G4ProcessTable(const G4ProcessTable &)
 59 //                                             <<  60   :verboseLevel(1)
                                                   >>  61 {
                                                   >>  62   fProcTblVector  = 0;
                                                   >>  63   fProcNameVector = 0;
                                                   >>  64   tmpTblVector    = 0;
                                                   >>  65   fProcTblMessenger = 0;
                                                   >>  66 #ifdef G4VERBOSE
                                                   >>  67   if (verboseLevel>0){
                                                   >>  68     G4cout << "--  G4ProcessTable copy constructor  --" << G4endl;
                                                   >>  69   }
                                                   >>  70 #endif
                                                   >>  71 }
                                                   >>  72 
                                                   >>  73 // destructor //////////////////////////
 60 G4ProcessTable::~G4ProcessTable()                  74 G4ProcessTable::~G4ProcessTable()
 61 {                                                  75 {
 62   if ( tmpTblVector != nullptr )               <<  76 #ifdef G4VERBOSE
 63   {                                            <<  77   if (verboseLevel>1){
                                                   >>  78     G4cout << "--  G4ProcessTable destructor  --" << G4endl;
                                                   >>  79   }
                                                   >>  80 #endif
                                                   >>  81 
                                                   >>  82   if ( tmpTblVector != 0) {
 64     tmpTblVector ->clear();                        83     tmpTblVector ->clear();
 65     delete tmpTblVector;                           84     delete tmpTblVector;
 66     tmpTblVector = nullptr;                    << 
 67   }                                                85   }
 68                                                    86 
 69   if ( fProcTblVector != nullptr )             <<  87   if ( fProcTblVector != 0) {
 70   {                                            <<  88     G4ProcTableVector::iterator idx;
 71     for (auto elem : *fProcTblVector)          <<  89     
 72     {                                          <<  90     // destruction of processes has moved to G4VUserPhysicsList
 73       delete elem;                             <<  91     for (idx=fProcTblVector->begin(); idx!=fProcTblVector->end(); ++idx) {
                                                   >>  92       // delete all processes
                                                   >>  93       // delete (*idx)->GetProcess();
                                                   >>  94       delete (*idx);
 74     }                                              95     }  
 75     fProcTblVector ->clear();                      96     fProcTblVector ->clear();
 76     delete fProcTblVector;                         97     delete fProcTblVector;
 77     fProcTblVector = nullptr;                  << 
 78   }                                                98   }
 79                                                    99 
 80   // delete all process except transportation  << 100   if ( fProcNameVector != 0) {
 81   for(auto proc : fListProcesses)              << 101     fProcNameVector ->clear();
 82   {                                            << 102     delete fProcNameVector;
 83     if ( proc != nullptr )                     << 
 84     {                                          << 
 85       G4ProcessType type = proc->GetProcessTyp << 
 86       if (type != fTransportation && type != f << 
 87        && type != fParameterisation)           << 
 88       {                                        << 
 89         delete proc;                           << 
 90       }                                        << 
 91     }                                          << 
 92   }                                               103   }
                                                   >> 104   fProcessTable =0;
                                                   >> 105 }
 93                                                   106 
 94   fListProcesses.clear();                      << 107 /////////////////////////
                                                   >> 108 G4UImessenger* G4ProcessTable::CreateMessenger()
                                                   >> 109 {
                                                   >> 110   if (fProcTblMessenger == 0) {
                                                   >> 111     fProcTblMessenger = new G4ProcessTableMessenger(this);
                                                   >> 112   }
                                                   >> 113   return     fProcTblMessenger;
                                                   >> 114 }
 95                                                   115 
 96   if ( fProcNameVector != nullptr )            << 116 /////////////////////////
 97   {                                            << 117 void  G4ProcessTable::DeleteMessenger()
 98     fProcNameVector ->clear();                 << 118 {
 99     delete fProcNameVector;                    << 119   if (fProcTblMessenger != 0) {
100     fProcNameVector = nullptr;                 << 120     delete fProcTblMessenger;
101   }                                               121   }
102   fProcessTable = nullptr;                     << 
103   delete fProcTblMessenger;                    << 
104 }                                                 122 }
105                                                   123 
106 // ------------------------------------------- << 124 
107 //                                             << 125 //////////////////////////
108 G4ProcessTable* G4ProcessTable::GetProcessTabl << 126 G4ProcessTable & G4ProcessTable::operator=(const G4ProcessTable &right)
109 {                                                 127 {
110   if(fProcessTable == nullptr)                 << 128   verboseLevel = right.verboseLevel;
111   {                                            << 129 #ifdef G4VERBOSE
112     static G4ThreadLocalSingleton<G4ProcessTab << 130   if (verboseLevel>0){
113     fProcessTable = inst.Instance();           << 131     G4cout << "--  G4ProcessTable assignment operator  --" << G4endl;
114   }                                               132   }
115   return fProcessTable;                        << 133 #endif
                                                   >> 134   if (&right == this) return *this;
                                                   >> 135   else return *this;
116 }                                                 136 }
117                                                   137 
118 // ------------------------------------------- << 138 //////////////////////////
119 //                                             << 139 G4int G4ProcessTable::operator==(const G4ProcessTable &right) const
120 G4int G4ProcessTable::Insert(G4VProcess* aProc << 140 {
121                              G4ProcessManager* << 141   return (this == &right);
                                                   >> 142 }
                                                   >> 143 
                                                   >> 144 //////////////////////////
                                                   >> 145 G4int G4ProcessTable::operator!=(const G4ProcessTable &right) const
                                                   >> 146 {
                                                   >> 147   return (this != &right);
                                                   >> 148 }
                                                   >> 149 
                                                   >> 150 // Static class variable: ptr to single instance of class
                                                   >> 151 G4ProcessTable* G4ProcessTable::fProcessTable =0;
                                                   >> 152 
                                                   >> 153 
                                                   >> 154 //////////////////////////
                                                   >> 155 G4ProcessTable* G4ProcessTable::GetProcessTable()
122 {                                                 156 {
123   if ( (aProcess == nullptr) || ( aProcMgr ==  << 157     static G4ProcessTable theProcessTable;
124   {                                            << 158     if (!fProcessTable){
                                                   >> 159       fProcessTable =  &theProcessTable;
                                                   >> 160     }
                                                   >> 161     return fProcessTable;
                                                   >> 162 }
                                                   >> 163 
                                                   >> 164 //////////////////////////
                                                   >> 165 G4int   G4ProcessTable::Insert(G4VProcess* aProcess, 
                                                   >> 166              G4ProcessManager* aProcMgr)
                                                   >> 167 {
                                                   >> 168   if ( (aProcess == 0) || ( aProcMgr == 0 ) ){
125 #ifdef G4VERBOSE                                  169 #ifdef G4VERBOSE
126     if (verboseLevel>0)                        << 170     if (verboseLevel>0){
127     {                                          << 171       G4cout << "G4ProcessTable::Insert : arguments are 0 pointer "
128       G4cout << "G4ProcessTable::Insert() - ar << 172        <<aProcess <<","<<  aProcMgr << G4endl;
129              << aProcess << "," << aProcMgr << << 
130     }                                             173     }
131 #endif                                            174 #endif
132     return -1;                                    175     return -1;
133   }                                               176   }
134                                                   177     
135 #ifdef G4VERBOSE                                  178 #ifdef G4VERBOSE
136   if (verboseLevel>1)                          << 179   if (verboseLevel>1){
137   {                                            << 180     G4cout << "G4ProcessTable::Insert ";
138     G4cout << "G4ProcessTable::Insert() -";    << 
139     G4cout << " Process["  << aProcess->GetPro    181     G4cout << " Process["  << aProcess->GetProcessName() << "]";
140     G4cout << " Particle["  << aProcMgr->GetPa << 182     G4cout << " Particle["  << aProcMgr->GetParticleType()->GetParticleName() << "]";
141            << "]" << G4endl;                   << 183     G4cout << G4endl;
142   }                                               184   }
143 #endif                                            185 #endif
144                                                   186 
145   G4int idxTbl = 0;                            << 187   G4ProcTableVector::iterator itr; 
146   G4int nidx = (G4int)fProcTblVector->size();  << 188   G4int idxTbl=0;
147   G4ProcTblElement* anElement = nullptr;       << 189   G4ProcTblElement* anElement;
                                                   >> 190   G4bool isFoundInTbl = false;
148   // loop over all elements                       191   // loop over all elements
149   for (; idxTbl < nidx; ++idxTbl)              << 192   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
150   {                                            << 193     anElement = (*itr);
151     anElement = (*fProcTblVector)[idxTbl];     << 
152     if(!anElement) { continue; }               << 
153     // check if this process is included          194     // check if this process is included
154     if (aProcess == anElement->GetProcess())   << 195     if (aProcess == anElement->GetProcess()) {
155     {                                          << 196       isFoundInTbl = true;
                                                   >> 197 
156       // add the process manager into the elem    198       // add the process manager into the element 
157       // unless  this process manager is inclu << 199       //  unless  this process manager is included
158       if (!anElement->Contains(aProcMgr))      << 200       if (!anElement->Contains(aProcMgr)) {
159       {                                        << 201   anElement->Insert(aProcMgr);
160         anElement->Insert(aProcMgr);           << 202 #ifdef G4VERBOSE
161 #ifdef G4VERBOSE                               << 203   if (verboseLevel>2){
162         if (verboseLevel>2)                    << 204     G4cout << " This Process Manager is registered !! " << G4endl;
163         {                                      << 205   }
164           G4cout << " This Process Manager is  << 
165         }                                      << 
166 #endif                                            206 #endif
167       }                                           207       }
168       return idxTbl;                           << 208       break;
169     }                                             209     }
170   }                                               210   }
171   // add this process into the table by creati    211   // add this process into the table by creating a new element
172   if (verboseLevel>2)                          << 212   if (!isFoundInTbl) {
173   {                                            << 213     G4ProcTblElement* newElement = new G4ProcTblElement(aProcess);
174     G4cout << " New element is created !! " << << 214     newElement->Insert(aProcMgr);
175   }                                            << 215     fProcTblVector->push_back(newElement);
176   anElement = new G4ProcTblElement(aProcess);  << 216     // add into name vector     
177   anElement->Insert(aProcMgr);                 << 217     G4ProcNameVector::iterator ip;
178   fProcTblVector->push_back(anElement);        << 218     G4bool isFound = false;
179   fProcNameVector->push_back(aProcess->GetProc << 219     for (ip=fProcNameVector->begin(); ip!=fProcNameVector->end(); ++ip) {
180   return nidx;                                 << 220       isFound |= (aProcess->GetProcessName() == (*ip));
                                                   >> 221     }
                                                   >> 222     if (!isFound) {
                                                   >> 223       fProcNameVector->push_back(aProcess->GetProcessName() );
                                                   >> 224 #ifdef G4VERBOSE
                                                   >> 225       if (verboseLevel>2){
                                                   >> 226   G4cout << " This Process is registered !! " << G4endl;
                                                   >> 227       }
                                                   >> 228 #endif
                                                   >> 229     }
                                                   >> 230   }
                                                   >> 231   return idxTbl;
181 }                                                 232 }
182                                                   233 
183 // ------------------------------------------- << 234 //////////////////////////
184 //                                             << 235 G4int  G4ProcessTable::Remove( G4VProcess* aProcess, 
185 G4int G4ProcessTable::Remove( G4VProcess* aPro << 236              G4ProcessManager* aProcMgr)
186                               G4ProcessManager << 
187 {                                                 237 {
188   if ( (aProcess == nullptr) || ( aProcMgr ==  << 238   if ( (aProcess == 0) || ( aProcMgr == 0 ) ){
189   {                                            << 
190 #ifdef G4VERBOSE                                  239 #ifdef G4VERBOSE
191     if (verboseLevel>0)                        << 240     if (verboseLevel>0){
192     {                                          << 241       G4cout << "G4ProcessTable::Remove : arguments are 0 pointer "<< G4endl;
193       G4cout << "G4ProcessTable::Remove() - ar << 
194              << G4endl;                        << 
195     }                                             242     }
196 #endif                                            243 #endif
197     return -1;                                    244     return -1;
198   }                                               245   }
199                                                   246     
200 #ifdef G4VERBOSE                                  247 #ifdef G4VERBOSE
201   if (verboseLevel>1)                          << 248   if (verboseLevel>1){
202   {                                            << 249     G4cout << "G4ProcessTable::Remove ";
203     G4cout << "G4ProcessTable::Remove() -";    << 
204     G4cout << " Process["  << aProcess->GetPro    250     G4cout << " Process["  << aProcess->GetProcessName() << "]";
205     G4cout << " Particle[" << aProcMgr->GetPar << 251     G4cout << " Particle[" << aProcMgr->GetParticleType()->GetParticleName() << "]" << G4endl;
206            << "]" << G4endl;                   << 
207   }                                               252   }
208 #endif                                            253 #endif
209                                                   254 
210   G4int idxTbl = 0;                            << 255   G4ProcTableVector::iterator itr; 
211   G4int nidx = (G4int)fProcTblVector->size();  << 256   G4int idxTbl=0;
212   G4ProcTblElement* anElement =nullptr;        << 257   G4ProcTblElement* anElement=0;
                                                   >> 258   G4bool isFound = false;
213   // loop over all elements                       259   // loop over all elements
214   for (; idxTbl < nidx; ++idxTbl)              << 260   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
215   {                                            << 261     anElement = (*itr);
216     anElement = (*fProcTblVector)[idxTbl];     << 
217     if(!anElement) { continue; }               << 
218                                                   262 
219     // check if this process is included          263     // check if this process is included
220     if (aProcess == anElement->GetProcess())   << 264     if (aProcess == anElement->GetProcess()) {
221     {                                          << 265       isFound = anElement->Contains(aProcMgr);
222       if(anElement->Contains(aProcMgr))        << 266       // remove the process manager from the element
223       {                                        << 267       anElement->Remove(aProcMgr);
224         // remove the process manager from the << 
225         anElement->Remove(aProcMgr);           << 
226 #ifdef G4VERBOSE                                  268 #ifdef G4VERBOSE
227         if (verboseLevel>2)                    << 269       if (verboseLevel>2){
228         {                                      << 270   G4cout << " This Process Manager is removed !! " << G4endl;
229           G4cout << " This Process Manager is  << 
230         }                                      << 
231 #endif                                         << 
232         if(anElement->Length() == 0)           << 
233         {                                      << 
234           delete anElement;                    << 
235           (*fProcTblVector)[idxTbl] = nullptr; << 
236 #ifdef G4VERBOSE                               << 
237           if (verboseLevel>1)                  << 
238           {                                    << 
239             G4cout << " This Process is remove << 
240           }                                    << 
241 #endif                                         << 
242         }                                      << 
243         return idxTbl;                         << 
244       }                                           271       }
                                                   >> 272 #endif
                                                   >> 273       break;
245     }                                             274     }
246   }                                               275   }
                                                   >> 276   // 
                                                   >> 277   if (!isFound) {
247 #ifdef G4VERBOSE                                  278 #ifdef G4VERBOSE
248   if (verboseLevel>1)                          << 279     if (verboseLevel>0){
249   {                                            << 280       G4cout << " This Process Manager is not registered !! " << G4endl;
250     G4cout << " This Process Manager is not re << 281     }
251            << G4endl;                          << 
252   }                                            << 
253 #endif                                            282 #endif
254   return -1;                                   << 283     return -1;
255 }                                              << 
256                                                << 
257 // ------------------------------------------- << 
258 //                                             << 
259 void G4ProcessTable::RegisterProcess(G4VProces << 
260 {                                              << 
261   for(auto proc : fListProcesses)              << 
262   {                                            << 
263     if(ptr == proc) { return; }                << 
264   }                                               284   }
265   fListProcesses.push_back(ptr);               << 285   // remove the element if it has no entry
266 }                                              << 286   if (anElement->Length() == 0){
267                                                << 287     fProcTblVector->erase(itr);
268 // ------------------------------------------- << 288     delete anElement;
269 //                                             << 289     // check other prcesses with same name exist or not
270 void G4ProcessTable::DeRegisterProcess(G4VProc << 290     G4bool isSameName = false;
271 {                                              << 291     for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr) {
272   std::size_t nn = fListProcesses.size();      << 292       anElement = (*itr);
273   for(std::size_t i=0; i<nn; ++i)              << 293       if (anElement->GetProcessName() == aProcess->GetProcessName()) {
274   {                                            << 294   isSameName = true;
275     if(ptr == fListProcesses[i])               << 295   break;
276     {                                          << 296       }
277       fListProcesses[i] = nullptr;             << 
278       return;                                  << 
279     }                                             297     }
280   }                                            << 298     // remove from name vector
281 }                                              << 299     if (!isSameName ) {
282                                                << 300       G4ProcNameVector::iterator i; 
283 // ------------------------------------------- << 301       for (i=fProcNameVector->begin(); i!=fProcNameVector->end(); ++i) {
284 //                                             << 302   if ( *i == aProcess->GetProcessName() ) {
285 G4VProcess* G4ProcessTable::FindProcess(const  << 303     fProcNameVector->erase(i);
286                                         const  << 304     break;
287 {                                              << 305   }
288   return FindProcess(processName,              << 306       }
289           G4ParticleTable::GetParticleTable()- << 
290 }                                              << 
291                                                << 
292 // ------------------------------------------- << 
293 //                                             << 
294 G4VProcess* G4ProcessTable::FindProcess(const  << 
295                                         const  << 
296                                         const  << 
297 {                                              << 
298   for (auto anElement : *fProcTblVector)       << 
299   {                                            << 
300     // check name and if the processManage is  << 
301     if (anElement && anElement->GetProcessName << 
302         && anElement->Contains(processManager) << 
303     {                                          << 
304       return anElement->GetProcess();          << 
305     }                                             307     }
306   }                                            << 
307 #ifdef G4VERBOSE                                  308 #ifdef G4VERBOSE
308   if (verboseLevel > 1)                        << 309     if (verboseLevel>1){
309   {                                            << 310       G4cout << " This Process is removed !! " << G4endl;
310     G4cout << " G4ProcessTable::FindProcess()  << 
311     G4cout << " The Process[" << processName < << 
312     G4cout << " for [" << processManager->GetP << 
313            << "]" << G4endl;                   << 
314   }                                            << 
315 #endif                                         << 
316   return nullptr;                              << 
317 }                                              << 
318                                                << 
319 // ------------------------------------------- << 
320 //                                             << 
321 G4VProcess*                                    << 
322 G4ProcessTable::FindProcess(G4ProcessType proc << 
323                             const G4ParticleDe << 
324 {                                              << 
325   // find the first process of given type for  << 
326                                                << 
327   const G4ProcessManager* processManager = par << 
328   for (auto anElement : *fProcTblVector)       << 
329   {                                            << 
330     if (anElement && anElement->GetProcess()-> << 
331         && anElement->Contains(processManager) << 
332     {                                          << 
333       return anElement->GetProcess();          << 
334     }                                             311     }
335   }                                            << 
336 #ifdef G4VERBOSE                               << 
337   if (verboseLevel > 1)                        << 
338   {                                            << 
339     G4cout << " G4ProcessTable::FindProcess()  << 
340     G4cout << " The Process Type " << processT << 
341     G4cout << " for [" << particle->GetParticl << 
342   }                                            << 
343 #endif                                            312 #endif
344   return nullptr;                              << 313   }
                                                   >> 314   return idxTbl;
345 }                                                 315 }
346                                                   316 
347 // ------------------------------------------- << 317 //////////////////////////
348 //                                             << 318 G4VProcess* G4ProcessTable::FindProcess(const G4String& processName, 
349 G4VProcess*                                    << 319                       const G4ProcessManager* processManager)
350 G4ProcessTable::FindProcess(G4int procSubType, << 320                                         const
351                             const G4ParticleDe << 
352 {                                                 321 {
353   // find the first process of given type for  << 322   G4ProcTableVector::iterator itr;   
354                                                << 323   G4int idxTbl = 0;
355   const G4ProcessManager* processManager = par << 324   G4bool isFound = false;
356   for (auto anElement : *fProcTblVector)       << 325   G4ProcTblElement* anElement=0;
357   {                                            << 326   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
358     if ( anElement != nullptr                  << 327     anElement = (*itr);
359       && anElement->GetProcess()->GetProcessSu << 328     // check name
360       && anElement->Contains(processManager) ) << 329     if ( anElement->GetProcessName() == processName ) {
361     {                                          << 330       // check if the processManage is included
362       return anElement->GetProcess();          << 331       if ( anElement->Contains(processManager) ) {
                                                   >> 332   isFound = true;
                                                   >> 333   break;
                                                   >> 334       }
363     }                                             335     }
364   }                                               336   }
365 #ifdef G4VERBOSE                                  337 #ifdef G4VERBOSE
366   if (verboseLevel > 1)                        << 338   if (!isFound && verboseLevel>1){
367   {                                            << 339     G4cout << " G4ProcessTable::FindProcess :" ;
368     G4cout << " G4ProcessTable::FindProcess()  << 340     G4cout << " The Process[" << processName << "] is not found  ";
369     G4cout << " The Process SubType " << procS << 341     G4cout << " for " << processManager->GetParticleType()->GetParticleName() << G4endl;
370     G4cout << " for [" << particle->GetParticl << 
371   }                                               342   }
372 #endif                                            343 #endif
373   return nullptr;                              << 344   
                                                   >> 345   if (isFound) return anElement->GetProcess();
                                                   >> 346   else         return 0;
374 }                                                 347 }
375                                                   348 
376 // ------------------------------------------- << 349 ///////////////
377 //                                             << 350 G4ProcessTable::G4ProcTableVector* G4ProcessTable::Find( 
378 G4ProcessTable::G4ProcTableVector*             << 351            G4ProcTableVector*,
379 G4ProcessTable::Find(const G4String& processNa << 352            const G4String& processName )
380 {                                                 353 {
381   tmpTblVector->clear();                          354   tmpTblVector->clear();
382                                                   355 
                                                   >> 356   G4ProcTableVector::iterator itr; 
383   G4bool isFound = false;                         357   G4bool isFound = false;
384   G4ProcTblElement* anElement = nullptr;       << 358   G4ProcTblElement* anElement=0;
385   for (auto itr=fProcTblVector->cbegin(); itr! << 359   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr) {
386   {                                            << 
387     anElement = (*itr);                           360     anElement = (*itr);
388     // check name                                 361     // check name
389     if ( anElement != nullptr && anElement->Ge << 362     if ( anElement->GetProcessName() == processName ) {
390     {                                          << 
391       isFound = true;                             363       isFound = true;
392       tmpTblVector->push_back(anElement);         364       tmpTblVector->push_back(anElement);
393     }                                             365     }
394   }                                               366   }
395                                                   367 
396   if (!isFound && verboseLevel>0)              << 
397   {                                            << 
398 #ifdef G4VERBOSE                                  368 #ifdef G4VERBOSE
399     G4cout << " G4ProcessTable::Find() -" ;    << 369   if (!isFound && verboseLevel>0){
                                                   >> 370     G4cout << " G4ProcessTable::Find :" ;
400     G4cout << " The Process[" << processName <    371     G4cout << " The Process[" << processName << "] is not found  " << G4endl;
401 #endif                                         << 
402   }                                               372   }
403                                                << 373 #endif
                                                   >> 374   
404   return tmpTblVector;                            375   return tmpTblVector;
405 }                                              << 
406                                                   376 
407 // ------------------------------------------- << 377 }     
408 //                                             << 378 ///////////////
409 G4ProcessTable::G4ProcTableVector*             << 379 G4ProcessTable::G4ProcTableVector* G4ProcessTable::Find( 
410 G4ProcessTable::Find(G4ProcessType processType << 380            G4ProcTableVector*,
                                                   >> 381            G4ProcessType   processType )
411 {                                                 382 {
412   tmpTblVector->clear();                          383   tmpTblVector->clear();
413                                                   384 
                                                   >> 385   G4ProcTableVector::iterator itr; 
414   G4bool isFound = false;                         386   G4bool isFound = false;
415   G4ProcTblElement* anElement = nullptr;       << 387   G4ProcTblElement* anElement=0;
416   for (auto itr=fProcTblVector->cbegin(); itr! << 388   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr) {
417   {                                            << 
418     anElement = (*itr);                           389     anElement = (*itr);
419     // check name                                 390     // check name
420     if ( anElement != nullptr && anElement->Ge << 391     if ( anElement->GetProcess()->GetProcessType() == processType ) {
421     {                                          << 
422       isFound = true;                             392       isFound = true;
423       tmpTblVector->push_back(anElement);         393       tmpTblVector->push_back(anElement);
424     }                                             394     }
425   }                                               395   }
426                                                   396 
427   if (!isFound && verboseLevel>0)              << 
428   {                                            << 
429 #ifdef G4VERBOSE                                  397 #ifdef G4VERBOSE
430     G4cout << " G4ProcessTable::Find() -" ;    << 398   if (!isFound && verboseLevel>0){
431     G4cout << " The ProcessType[" << processTy << 399     G4cout << " G4ProcessTable::Find :" ;
432            << G4endl;                          << 400     G4cout << " The ProcessType[" << processType << "] is not found  " << G4endl;
433 #endif                                         << 
434   }                                               401   }
435                                                << 402 #endif
                                                   >> 403   
436   return tmpTblVector;                            404   return tmpTblVector;
                                                   >> 405 
437 }                                                 406 }     
438                                                   407 
439 // ------------------------------------------- << 408 ///////////////
440 //                                             << 409 G4ProcessVector* G4ProcessTable::ExtractProcesses( G4ProcTableVector* procTblVector)
441 G4ProcessVector*                               << 
442 G4ProcessTable::ExtractProcesses(G4ProcTableVe << 
443 {                                                 410 {
444   G4ProcessVector* procList = new G4ProcessVec    411   G4ProcessVector* procList = new G4ProcessVector();
                                                   >> 412   G4ProcTableVector::iterator itr; 
445   // loop over all elements                       413   // loop over all elements
446   for (auto itr=procTblVector->cbegin(); itr!= << 414   for (itr=procTblVector->begin(); itr!=procTblVector->end(); ++itr) {
447   {                                            << 
448     G4ProcTblElement* anElement = (*itr);         415     G4ProcTblElement* anElement = (*itr);
449     if ( anElement != nullptr) procList->inser << 416     procList->insert( anElement->GetProcess() );
450   }                                               417   }
451   return procList;                                418   return procList;
452 }                                                 419 }
453                                                   420 
454 // ------------------------------------------- << 421 ///////////////
455 //                                             << 422 G4ProcessVector* G4ProcessTable::FindProcesses()
456 void G4ProcessTable::SetProcessActivation(cons << 
457                                           cons << 
458                                                << 
459 {                                                 423 {
460   if (particleName == "ALL" )                  << 424   return ExtractProcesses(fProcTblVector);
461   {                                            << 
462     SetProcessActivation( processName, fActive << 
463   }                                            << 
464   else                                         << 
465   {                                            << 
466     SetProcessActivation(processName,          << 
467         G4ParticleTable::GetParticleTable()->F << 
468         fActive );                             << 
469   }                                            << 
470 }                                                 425 }
471                                                   426 
472 // ------------------------------------------- << 427 ///////////////
473 //                                             << 428 G4ProcessVector* G4ProcessTable::FindProcesses( const G4ProcessManager* pManager )
474 void G4ProcessTable::SetProcessActivation(G4Pr << 
475                                           cons << 
476                                                << 
477 {                                                 429 {
478   if ((particleName == "ALL" ) || (particleNam << 430   G4ProcessVector* procList = pManager->GetProcessList();
479   {                                            << 431   return new G4ProcessVector(*procList);
480     SetProcessActivation( processType, fActive << 
481   }                                            << 
482   else                                         << 
483   {                                            << 
484     SetProcessActivation(processType,          << 
485         G4ParticleTable::GetParticleTable()->F << 
486         fActive );                             << 
487   }                                            << 
488 }                                                 432 }
489                                                   433 
490 // ------------------------------------------- << 434 ///////////////
491 //                                             << 435 G4ProcessVector* G4ProcessTable::FindProcesses( const G4String& processName )
                                                   >> 436 {
                                                   >> 437   G4ProcTableVector* pTblVector =  Find(fProcTblVector, processName);
                                                   >> 438   return ExtractProcesses(pTblVector);
                                                   >> 439 }
                                                   >> 440 
                                                   >> 441 ///////////////
                                                   >> 442 G4ProcessVector* G4ProcessTable::FindProcesses( G4ProcessType processType)
                                                   >> 443 {
                                                   >> 444   G4ProcTableVector* pTblVector =  Find(fProcTblVector, processType);
                                                   >> 445   return ExtractProcesses(pTblVector);
                                                   >> 446 }
                                                   >> 447 
                                                   >> 448 ///////////////
492 void G4ProcessTable::SetProcessActivation( con    449 void G4ProcessTable::SetProcessActivation( const G4String& processName, 
493                                            G4b << 450                          G4bool          fActive  )
494 {                                                 451 {
495 #ifdef G4VERBOSE                                  452 #ifdef G4VERBOSE
496   if (verboseLevel>1)                          << 453   if (verboseLevel>1){
497   {                                            << 454     G4cout << " G4ProcessTable::SetProcessActivation:" ;
498     G4cout << " G4ProcessTable::SetProcessActi << 
499     G4cout << " The Process[" << processName <    455     G4cout << " The Process[" << processName << "] "<< G4endl;
500   }                                               456   }
501 #endif                                            457 #endif
502                                                   458 
503   G4ProcTableVector* pTblVector =  Find(proces << 459   G4ProcTableVector* pTblVector =  Find(fProcTblVector, processName);
                                                   >> 460   G4ProcTableVector::iterator itr; 
504   G4ProcTblElement* anElement;                    461   G4ProcTblElement* anElement;  
505    // loop over all elements                      462    // loop over all elements
506   for (auto itr=pTblVector->cbegin(); itr!=pTb << 463   for (itr=pTblVector->begin(); itr!=pTblVector->end(); ++itr) {
507   {                                            << 
508     anElement = (*itr);                           464     anElement = (*itr);
509     if ( anElement == nullptr ) continue;      << 
510     G4VProcess* process = anElement->GetProces    465     G4VProcess* process = anElement->GetProcess();
511     for (G4int idx = 0 ; idx < anElement->Leng << 466     for (G4int idx = 0 ; idx < anElement->Length(); idx++) {
512     {                                          << 
513       G4ProcessManager* manager = anElement->G    467       G4ProcessManager* manager = anElement->GetProcessManager(idx);
514       manager->SetProcessActivation(process, f    468       manager->SetProcessActivation(process, fActive);
515 #ifdef G4VERBOSE                                  469 #ifdef G4VERBOSE
516       if (verboseLevel>1)                      << 470       if (verboseLevel>1){
517       {                                        << 
518         G4cout << "  for " << manager->GetPart    471         G4cout << "  for " << manager->GetParticleType()->GetParticleName();
519         G4cout << "  Index = " << manager->Get << 472   G4cout << "  Index = " << manager->GetProcessIndex(process); 
520         G4cout << G4endl;                         473         G4cout << G4endl;
521       }                                           474       }
522 #endif                                            475 #endif
523     }                                             476     }
524   }                                               477   }
525 }                                                 478 }
526                                                   479 
527 // ------------------------------------------- << 480 ///////////////
528 //                                             << 481 void G4ProcessTable::SetProcessActivation( 
529 void G4ProcessTable::SetProcessActivation(cons << 482          const G4String& processName, 
530                                           G4Pr << 483                G4ProcessManager* processManager, 
531                                           G4bo << 484          G4bool          fActive  )
532 {                                                 485 {
533 #ifdef G4VERBOSE                                  486 #ifdef G4VERBOSE
534   if (verboseLevel>1)                          << 487   if (verboseLevel>1){
535   {                                            << 488     G4cout << " G4ProcessTable::SetProcessActivation:" ;
536     G4cout << " G4ProcessTable::SetProcessActi << 
537     G4cout << " The Process[" << processName <    489     G4cout << " The Process[" << processName << "] "<< G4endl;
538   }                                               490   }
539 #endif                                            491 #endif
540                                                   492   
541   G4VProcess* process = FindProcess( processNa    493   G4VProcess* process = FindProcess( processName,  processManager);
542   if ( process != nullptr)                     << 494   if ( process != 0) {
543   {                                            << 
544     processManager->SetProcessActivation(proce    495     processManager->SetProcessActivation(process, fActive);
545 #ifdef G4VERBOSE                                  496 #ifdef G4VERBOSE
546     if (verboseLevel>1)                        << 497     if (verboseLevel>1){
547     {                                          << 498       G4cout << "  for " << processManager->GetParticleType()->GetParticleName();
548       G4cout << "  for "                       << 499       G4cout << "  Index = " << processManager->GetProcessIndex(process) << G4endl;
549              << processManager->GetParticleTyp << 
550       G4cout << "  Index = "                   << 
551              << processManager->GetProcessInde << 
552     }                                             500     }
553 #endif                                            501 #endif
554   }                                               502   } 
555 }                                                 503 }
556                                                   504 
557 // ------------------------------------------- << 505 
558 //                                             << 506 ///////////////
559 void G4ProcessTable::SetProcessActivation( G4P << 507 void G4ProcessTable::SetProcessActivation( G4ProcessType   processType, 
560                                            G4b << 508                          G4bool          fActive  )
561 {                                                 509 {
562 #ifdef G4VERBOSE                                  510 #ifdef G4VERBOSE
563   if (verboseLevel>1)                          << 511   if (verboseLevel>1){
564   {                                            << 512     G4cout << " G4ProcessTable::SetProcessActivation:" ;
565     G4cout << " G4ProcessTable::SetProcessActi << 
566     G4cout << " The ProcessType[" << G4int(pro    513     G4cout << " The ProcessType[" << G4int(processType) << "] "<< G4endl;
567   }                                               514   }
568 #endif                                            515 #endif
569                                                   516 
570   G4ProcTableVector* pTblVector = Find(process << 517   G4ProcTableVector* pTblVector =  Find(fProcTblVector, processType);
                                                   >> 518   G4ProcTableVector::iterator itr; 
571   G4ProcTblElement* anElement;                    519   G4ProcTblElement* anElement;  
572   // loop over all elements                       520   // loop over all elements
573   for (auto itr=pTblVector->cbegin(); itr!=pTb << 521   for (itr=pTblVector->begin(); itr!=pTblVector->end(); ++itr) {
574   {                                            << 
575     anElement = (*itr);                           522     anElement = (*itr);
576     if ( anElement == nullptr ) continue;      << 
577     G4VProcess* process = anElement->GetProces    523     G4VProcess* process = anElement->GetProcess();
578 #ifdef G4VERBOSE                                  524 #ifdef G4VERBOSE
579     if (verboseLevel>1)                        << 525     if (verboseLevel>1){
580     {                                          << 
581       G4cout << " The Process[" << process->Ge    526       G4cout << " The Process[" << process->GetProcessName()<< "] "<< G4endl;
582     }                                             527     }
583 #endif                                            528 #endif
584     for (G4int idx = 0 ; idx < anElement->Leng << 529     for (G4int idx = 0 ; idx < anElement->Length(); idx++) {
585     {                                          << 
586       G4ProcessManager* manager = anElement->G    530       G4ProcessManager* manager = anElement->GetProcessManager(idx);
587       manager->SetProcessActivation(process, f    531       manager->SetProcessActivation(process, fActive);
588 #ifdef G4VERBOSE                                  532 #ifdef G4VERBOSE
589       if (verboseLevel>1)                      << 533       if (verboseLevel>1){
590       {                                        << 
591         G4cout << "  for " << manager->GetPart    534         G4cout << "  for " << manager->GetParticleType()->GetParticleName();
592         G4cout << "  Index = " << manager->Get << 535   G4cout << "  Index = " << manager->GetProcessIndex(process) << G4endl;
593       }                                           536       }
594 #endif                                            537 #endif
595     }                                             538     }
596   }                                               539   }
597 }                                                 540 }
598                                                   541 
599 // ------------------------------------------- << 542 ///////////////
600 //                                             << 543 void G4ProcessTable::SetProcessActivation( 
601 void G4ProcessTable::SetProcessActivation( G4P << 544          G4ProcessType   processType, 
602                                            G4P << 545                G4ProcessManager* processManager, 
603                                            G4b << 546          G4bool          fActive  )
604 {                                                 547 {
605 #ifdef G4VERBOSE                                  548 #ifdef G4VERBOSE
606   if (verboseLevel>1)                          << 549   if (verboseLevel>1){
607   {                                            << 550     G4cout << " G4ProcessTable::SetProcessActivation:" ;
608     G4cout << " G4ProcessTable::SetProcessActi << 
609     G4cout << " The ProcessType[" << G4int(pro    551     G4cout << " The ProcessType[" << G4int(processType) << "] "<< G4endl;
610   }                                               552   }
611 #endif                                            553 #endif
612                                                   554   
613   G4ProcessVector* procList =  processManager-    555   G4ProcessVector* procList =  processManager->GetProcessList();
614   for (G4int idx = 0; idx < (G4int)procList->l << 556   for (G4int idx = 0; idx < procList->length(); idx++) {
615   {                                            << 
616     G4VProcess* process = (*procList)(idx);       557     G4VProcess* process = (*procList)(idx);
617     if ( process->GetProcessType() == processT << 558     if ( process->GetProcessType() == processType) {
618     {                                          << 
619       processManager->SetProcessActivation(pro    559       processManager->SetProcessActivation(process, fActive);
620 #ifdef G4VERBOSE                                  560 #ifdef G4VERBOSE
621       if (verboseLevel>1)                      << 561       if (verboseLevel>1){
622       {                                        << 
623         G4cout << " The Process[" << process->    562         G4cout << " The Process[" << process->GetProcessName()<< "] "<< G4endl;
624         G4cout << "  for "                     << 563   G4cout << "  for " << processManager->GetParticleType()->GetParticleName();
625                << processManager->GetParticleT << 564   G4cout << "  Index = " << idx << G4endl;
626         G4cout << "  Index = " << idx << G4end << 
627       }                                           565       }
628 #endif                                            566 #endif
629     }                                             567     }
630   }                                               568   }
631 }                                                 569 }
632                                                   570 
633 // ------------------------------------------- << 571 
634 //                                             << 572 /////////////
635 void G4ProcessTable::DumpInfo(G4VProcess* proc    573 void G4ProcessTable::DumpInfo(G4VProcess* process, 
636                               const G4Particle << 574             G4ParticleDefinition* particle)
637 {                                                 575 {
                                                   >> 576   G4ProcTableVector::iterator itr; 
638   G4int idxTbl=0;                                 577   G4int idxTbl=0;
639   G4ProcTblElement* anElement = nullptr;       << 578   G4ProcTblElement* anElement=0;
640   G4bool isFoundInTbl = false;                    579   G4bool isFoundInTbl = false;
641   G4ProcessManager* manager = nullptr;         << 580   G4ProcessManager* manager=0;
642   G4int idx;                                      581   G4int idx;
643   // loop over all elements                       582   // loop over all elements
644   for (auto itr=fProcTblVector->cbegin();      << 583   for (itr=fProcTblVector->begin(); itr!=fProcTblVector->end(); ++itr, ++idxTbl) {
645             itr!=fProcTblVector->cend(); ++itr << 
646   {                                            << 
647     anElement = (*itr);                           584     anElement = (*itr);
648     if ( anElement == nullptr ) continue;      << 585     if (process == anElement->GetProcess() ){
649     if (process == anElement->GetProcess() )   << 586       if (particle!=0) {
650     {                                          << 587   for (idx=0; idx<anElement->Length(); idx++){
651       if (particle != nullptr)                 << 588     manager = anElement->GetProcessManager(idx);
652       {                                        << 589     if (particle == manager->GetParticleType()) {
653         for (idx=0; idx<anElement->Length(); + << 590       isFoundInTbl = true;
654         {                                      << 591       break;
655           manager = anElement->GetProcessManag << 592     }
656           if (particle == manager->GetParticle << 593   }
657           {                                    << 594       } else {
658             isFoundInTbl = true;               << 595   isFoundInTbl = true;
659             break;                             << 
660           }                                    << 
661         }                                      << 
662       }                                        << 
663       else                                     << 
664       {                                        << 
665         isFoundInTbl = true;                   << 
666       }                                           596       }
667       break;                                      597       break;
668     }                                             598     }
669   }                                               599   }
670   if  (!isFoundInTbl ) return;                    600   if  (!isFoundInTbl ) return;
671                                                   601   
672   G4int tmpVerbose = process->GetVerboseLevel(    602   G4int tmpVerbose = process->GetVerboseLevel();
673   process->SetVerboseLevel(verboseLevel);         603   process->SetVerboseLevel(verboseLevel);
674   process->DumpInfo();                            604   process->DumpInfo();
675   process->SetVerboseLevel(tmpVerbose);           605   process->SetVerboseLevel(tmpVerbose);
676   if (particle == nullptr)                     << 606   if (particle==0) {
677   {                                            << 607     for (idx=0; idx<anElement->Length(); idx++){
678     for (idx=0; idx<anElement->Length(); ++idx << 
679     {                                          << 
680       manager = anElement->GetProcessManager(i    608       manager = anElement->GetProcessManager(idx);
681       G4cout << " for " << manager->GetParticl    609       G4cout << " for " << manager->GetParticleType()->GetParticleName();
682       G4cout << G4endl;                           610       G4cout << G4endl;
683 #ifdef G4VERBOSE                                  611 #ifdef G4VERBOSE
684       if (verboseLevel >2)                     << 612       if (verboseLevel >2){
685       {                                        << 613   tmpVerbose = manager->GetVerboseLevel();
686         tmpVerbose = manager->GetVerboseLevel( << 614   manager->SetVerboseLevel(verboseLevel);
687         manager->SetVerboseLevel(verboseLevel) << 615   manager->DumpInfo();
688         manager->DumpInfo();                   << 616   manager->SetVerboseLevel(tmpVerbose);
689         manager->SetVerboseLevel(tmpVerbose);  << 
690       }                                           617       }
691 #endif                                            618 #endif
692     }                                             619     }
693   }                                            << 620   } else {
694   else                                         << 
695   {                                            << 
696     G4cout << " for " << manager->GetParticleT    621     G4cout << " for " << manager->GetParticleType()->GetParticleName();
697     G4cout << G4endl;                             622     G4cout << G4endl;
698 #ifdef G4VERBOSE                                  623 #ifdef G4VERBOSE
699     if (verboseLevel >2)                       << 624     if (verboseLevel >2){
700     {                                          << 
701       tmpVerbose = manager->GetVerboseLevel();    625       tmpVerbose = manager->GetVerboseLevel();
702       manager->SetVerboseLevel(verboseLevel);     626       manager->SetVerboseLevel(verboseLevel);
703       manager->DumpInfo();                        627       manager->DumpInfo();
704       manager->SetVerboseLevel(tmpVerbose);       628       manager->SetVerboseLevel(tmpVerbose);
705     }                                             629     }
706 #endif                                            630 #endif
707   }                                               631   }
708 }                                                 632 }
                                                   >> 633 
                                                   >> 634 
                                                   >> 635 
                                                   >> 636 
                                                   >> 637 
                                                   >> 638 
709                                                   639