Geant4 Cross Reference |
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 // G4VUserPhysicsList << 27 // 26 // 28 // Class description: << 27 // $Id: G4VUserPhysicsList.hh,v 1.41 2009/08/09 14:31:46 kurasige Exp $ >> 28 // GEANT4 tag $Name: geant4-09-03 $ 29 // 29 // 30 // This class is an abstract class for constru << 30 // 31 // User must implement the following two pure << 31 // ------------------------------------------------------------ 32 // class derived from this class: << 32 // GEANT 4 class header file 33 // - G4VUserPhysicsList::ConstructParticle() << 33 // Class Description: 34 // Construct particles << 34 // This class is an abstract class for 35 // - G4VUserPhysicsList::ConstructProcess() << 35 // constructing particles and processes. 36 // Construct procesess and register them t << 36 // User must implement following three virtual methods 37 << 37 // in his/her own concrete class derived from this class. 38 // Original author: H.Kurashige (Kobe Universi << 38 // G4VUserPhysicsList::ConstructParticle() 39 // ------------------------------------------- << 39 // Construct particles 40 #ifndef G4VUserPhysicsList_hh << 40 // G4VUserPhysicsList::ConstructProcess() 41 #define G4VUserPhysicsList_hh 1 << 41 // Construct procesess and register them to particles >> 42 // G4VUserPhysicsList::SetCuts() >> 43 // set cut values in range to all particles >> 44 // (and rebuilding physics table will be invoked ) >> 45 // >> 46 // ------------------------------------------- >> 47 // History >> 48 // first version 09 Jan. 1998 by H.Kurashige >> 49 // modified 24 Jan. 1998 by H.Kurashige >> 50 // rename DumpCutValues/DumpCutValuesTable >> 51 // change SetCuts method >> 52 // add SetCutsWithDefault method >> 53 // modified 06 June 1998 by H.Kurashige >> 54 // add AddProcessManager >> 55 // add BuildPhysicsTable >> 56 // modified 29 June 1998 by H.Kurashige >> 57 // add AddProcessManager >> 58 // modified 05 Dec. 1998 by H.Kurashige >> 59 // add ConstructAllParticles() >> 60 // modified 14, Apr 1999 by H.Kurashige >> 61 // change BuildPhysicsTable as public >> 62 // removed ConstructAllParticles() and related methods >> 63 // changed SetCuts method argument >> 64 // modified 08, Nov 2000 by H.Kurashige >> 65 // added Retrieve/StorePhysicsTable and related methods >> 66 // modified 08, Mar 2001 by H.Kurashige >> 67 // added binary mode for Retrieve/StorePhysicsTable >> 68 // added RetrieveCutValues and related >> 69 // added Set/ResetStoredInAscii() to switch on ascii mode >> 70 // for Retrieve/StorePhysicsTable >> 71 // modified for CUTS per REGION 10, Oct 2002 by H.Kurashige >> 72 // removed following methods >> 73 // void ReCalcCutValue() >> 74 // void SetCutValueForOthers() >> 75 // void SetCutValueForOtherThan() >> 76 // void ReCalcCutValueForOthers() >> 77 // virtual G4bool StoreMaterialInfo() >> 78 // virtual G4bool StoreCutValues() >> 79 // virtual G4bool RetrieveCutValues() >> 80 // virtual G4bool CheckForRetrievePhysicsTable() >> 81 // virtual G4bool CheckMaterialInfo() >> 82 // added void BuildPhysicsTable() >> 83 // ------------------------------------------------------------ >> 84 #ifndef G4VUserPhysicsList_h >> 85 #define G4VUserPhysicsList_h 1 >> 86 #include "globals.hh" >> 87 #include "G4ios.hh" 42 88 43 #include "G4ParticleDefinition.hh" << 44 #include "G4ParticleTable.hh" 89 #include "G4ParticleTable.hh" 45 #include "G4PhysicsModelCatalog.hh" << 90 #include "G4ParticleDefinition.hh" 46 #include "G4ProductionCutsTable.hh" 91 #include "G4ProductionCutsTable.hh" 47 #include "G4Threading.hh" << 48 #include "G4VUPLSplitter.hh" << 49 #include "G4ios.hh" << 50 #include "globals.hh" << 51 << 52 #include "rundefs.hh" << 53 #include "tls.hh" << 54 92 55 class G4UserPhysicsListMessenger; 93 class G4UserPhysicsListMessenger; 56 class G4PhysicsListHelper; << 57 class G4VProcess; 94 class G4VProcess; 58 95 59 // Encapsulate the fields of class G4VUserPhys << 60 class G4VUPLData << 61 { << 62 public: << 63 void initialize(); << 64 << 65 G4ParticleTable::G4PTblDicIterator* _thePa << 66 G4UserPhysicsListMessenger* _theMessenger << 67 G4PhysicsListHelper* _thePLHelper = nullpt << 68 G4bool _fIsPhysicsTableBuilt = false; << 69 G4int _fDisplayThreshold = 0; << 70 }; << 71 << 72 // The type G4VUPLManager is introduced to enc << 73 // both the master thread and worker threads t << 74 // the fields encapsulated by the class G4VUPL << 75 // changes the value for these fields, it refe << 76 // definition defined below. For every G4VUser << 77 // there is a corresponding G4VUPLData instanc << 78 // are organized by the class G4VUPLManager as << 79 // The field "int g4vuplInstanceID" is added t << 80 // The value of this field in each G4VUserPhys << 81 // subscript of the corresponding G44VUPLData << 82 // In order to use the class G44VUPLManager, w << 83 // G4VUserPhysicsList as follows: "static G4VU << 84 // Both the master thread and worker threads c << 85 // for G44VUPLData instances mutually along wi << 86 // instances are created. For each worker thre << 87 // Consider any thread A, if there is any othe << 88 // This ion is shared by the thread A. So the << 89 // in the array of G4PDefData instances for th << 90 // << 91 // Important Note: you may wonder why we are i << 92 // since there is only one PL << 93 // This is true, in the sense << 94 // to be associated to a G4Run << 95 // instantiate as many PLs are << 96 // of the PLs to be used we th << 97 // guarantee that the system w << 98 // this (unusual) case. This m << 99 // << 100 using G4VUPLManager = G4VUPLSplitter<G4VUPLDat << 101 using G4VUserPhysicsListSubInstanceManager = G << 102 << 103 class G4VUserPhysicsList 96 class G4VUserPhysicsList 104 { 97 { 105 public: << 98 public: 106 G4VUserPhysicsList(); 99 G4VUserPhysicsList(); 107 virtual ~G4VUserPhysicsList(); 100 virtual ~G4VUserPhysicsList(); 108 G4VUserPhysicsList(const G4VUserPhysicsLis << 109 G4VUserPhysicsList& operator=(const G4VUse << 110 << 111 // Each particle type will be instantiated << 112 // This method is invoked by the RunManger << 113 virtual void ConstructParticle() = 0; << 114 << 115 // By calling the "Construct" method, << 116 // process manager and processes are creat << 117 void Construct(); << 118 << 119 // Each physics process will be instantiat << 120 // registered to the process manager of ea << 121 // Invoked in the Construct() method. << 122 virtual void ConstructProcess() = 0; << 123 << 124 // Sets a cut value for all particle types << 125 virtual void SetCuts(); << 126 << 127 // Set/get the default cut value. Calling << 128 // re-calcuration of cut values and physic << 129 // next event loop. << 130 void SetDefaultCutValue(G4double newCutVal << 131 G4double GetDefaultCutValue() const; << 132 101 133 // Invoke BuildPhysicsTable for all proces << 102 public: // with description >> 103 // Each particle type will be instantiated >> 104 // This method is invoked by the RunManger >> 105 virtual void ConstructParticle() = 0; >> 106 >> 107 // By calling the "Construct" method, >> 108 // process manager and processes are created. >> 109 void Construct(); >> 110 >> 111 // Each physics process will be instantiated and >> 112 // registered to the process manager of each particle type >> 113 // This method is invoked in Construct method >> 114 virtual void ConstructProcess() = 0; >> 115 >> 116 protected: // with description >> 117 // User must invoke this method in his ConstructProcess() >> 118 // implementation in order to insures particle transportation. >> 119 // !! Caution: this class must not be overriden !! >> 120 void AddTransportation(); >> 121 >> 122 ///////////////////////////////////////////////////////////////// >> 123 public: // with description >> 124 // "SetCuts" method sets a cut value for all particle types >> 125 // in the particle table >> 126 virtual void SetCuts() = 0; >> 127 >> 128 public: // with description >> 129 // set/get the default cut value >> 130 // Calling SetDefaultCutValue causes re-calcuration of cut values >> 131 // and physics tables just before the next event loop >> 132 void SetDefaultCutValue(G4double newCutValue); >> 133 G4double GetDefaultCutValue() const; >> 134 >> 135 ///////////////////////////////////////////////////////////////////// >> 136 public: // with description >> 137 // Invoke BuildPhysicsTable for all processes for all particles 134 // In case of "Retrieve" flag is ON, Physi 138 // In case of "Retrieve" flag is ON, PhysicsTable will be 135 // retrieved from files. << 139 // retrieved from files 136 void BuildPhysicsTable(); << 140 void BuildPhysicsTable(); >> 141 >> 142 // do PreparePhysicsTable for specified particle type >> 143 void PreparePhysicsTable(G4ParticleDefinition* ); 137 144 138 // Prepare the PhysicsTable for specified << 145 // do BuildPhysicsTable for specified particle type 139 void PreparePhysicsTable(G4ParticleDefinit << 146 void BuildPhysicsTable(G4ParticleDefinition* ); 140 147 141 // Build the PhysicsTable for specified pa << 148 // Store PhysicsTable together with both material and cut value 142 void BuildPhysicsTable(G4ParticleDefinitio << 143 << 144 // Store PhysicsTable together with both m << 145 // information in files under the specifie 149 // information in files under the specified directory. 146 // Returns "true" if files are successfull << 150 // (return true if files are sucessfully created) 147 G4bool StorePhysicsTable(const G4String& d << 151 G4bool StorePhysicsTable(const G4String& directory = "."); 148 << 152 149 // Return true if "Retrieve" flag is ON. << 153 // Return true if "Retrieve" flag is ON. 150 // (i.e. PhysicsTable will be retrieved fr << 154 // (i.e. PhysicsTable will be retrieved from files) 151 G4bool IsPhysicsTableRetrieved() const; << 155 G4bool IsPhysicsTableRetrieved() const; 152 G4bool IsStoredInAscii() const; << 156 G4bool IsStoredInAscii() const; 153 157 154 // Get directory path for physics table fi 158 // Get directory path for physics table files. 155 const G4String& GetPhysicsTableDirectory() 159 const G4String& GetPhysicsTableDirectory() const; 156 160 157 // Set "Retrieve" flag. Directory path can << 161 // Set "Retrieve" flag 158 // Null string (default) means directory i << 162 // Directory path can be set together. 159 // from the current value. << 163 // Null string (default) means directory is not changed 160 void SetPhysicsTableRetrieved(const G4Stri << 164 // from the current value 161 void SetStoredInAscii(); << 165 void SetPhysicsTableRetrieved(const G4String& directory = ""); 162 << 166 void SetStoredInAscii(); 163 // Reset "Retrieve" flag. << 167 164 void ResetPhysicsTableRetrieved(); << 168 // Reset "Retrieve" flag 165 void ResetStoredInAscii(); << 169 void ResetPhysicsTableRetrieved(); 166 << 170 void ResetStoredInAscii(); 167 // Print out the List of registered partic << 171 >> 172 /////////////////////////////////////////////////////////////////////// >> 173 public: // with description >> 174 // Print out the List of registered particles types 168 void DumpList() const; 175 void DumpList() const; 169 176 170 // Request to print out information of cut << 177 public: // with description 171 // Printing will be performed when all tab << 178 // Request to print out information of cut values 172 void DumpCutValuesTable(G4int flag = 1); << 179 // Printing will be performed when all tables are made 173 << 180 void DumpCutValuesTable(G4int nParticles=4); 174 // Triggers the print-out requested by the << 181 175 // This method must be invoked by RunManag << 182 // The following method actually trigger the print-out requested >> 183 // by the above method. This method must be invoked by RunManager >> 184 // at the proper moment. 176 void DumpCutValuesTableIfRequested(); 185 void DumpCutValuesTableIfRequested(); 177 186 178 // Set/get control flag for output message << 187 void DumpCutValues(const G4String &particle_name = "ALL"); >> 188 void DumpCutValues(G4ParticleDefinition* ); >> 189 >> 190 public: // with description >> 191 void SetVerboseLevel(G4int value); >> 192 G4int GetVerboseLevel() const; >> 193 // set/get controle flag for output message 179 // 0: Silent 194 // 0: Silent 180 // 1: Warning message 195 // 1: Warning message 181 // 2: More 196 // 2: More 182 void SetVerboseLevel(G4int value); << 183 G4int GetVerboseLevel() const; << 184 << 185 void UseCoupledTransportation(G4bool vl = << 186 197 187 // Invokes default SetCuts() method. << 198 /////////////////////////////////////////////////////////////////////////// 188 // Note: cut values will not be overwritte << 199 public: // with description 189 // Use of default SetCuts() method is reco << 200 // "SetCutsWithDefault" method sets the default cut value 190 void SetCutsWithDefault(); << 201 // for all particles for the default region. 191 << 202 void SetCutsWithDefault(); 192 // Sets a cut value for a particle type fo << 203 193 void SetCutValue(G4double aCut, const G4St << 204 // Following are utility methods for SetCuts 194 << 205 195 // Gets a cut value for a particle type fo << 206 // SetCutValue sets a cut value for a particle type for the default region 196 G4double GetCutValue(const G4String& pname << 207 void SetCutValue(G4double aCut, const G4String& pname); 197 << 208 198 // Sets a cut value for a particle type fo << 209 // SetCutValue sets a cut value for a particle type for a region 199 void SetCutValue(G4double aCut, const G4St << 210 void SetCutValue(G4double aCut, const G4String& pname, const G4String& rname); 200 << 211 201 // Invoke SetCuts for specified particle f << 212 // Invoke SetCuts for specified particle for a region 202 // If the pointer to the region is NULL, t << 213 // If the pointer to the region is NULL, the default region is used 203 // In case of "Retrieve" flag is ON, cut v << 214 // In case of "Retrieve" flag is ON, 204 // from files. << 215 // Cut values will be retrieved from files 205 void SetParticleCuts(G4double cut, G4Parti << 216 void SetParticleCuts(G4double cut,G4ParticleDefinition* particle,G4Region* region=0); 206 void SetParticleCuts(G4double cut, const G << 217 207 << 218 // Invoke SetCuts for all particles in a region 208 // Invoke SetCuts() for all particles in a << 219 void SetCutsForRegion(G4double aCut, const G4String& rname); 209 void SetCutsForRegion(G4double aCut, const << 220 210 << 221 // Following are utility methods are obsolete 211 // Gets/sets the flag for ApplyCuts(). << 222 void ResetCuts(); 212 void SetApplyCuts(G4bool value, const G4St << 223 213 G4bool GetApplyCuts(const G4String& name) << 224 /////////////////////////////////////////////////////////////////// >> 225 public: >> 226 // Get/SetApplyCuts gets/sets the flag for ApplyCuts >> 227 void SetApplyCuts(G4bool value, const G4String& name); >> 228 G4bool GetApplyCuts(const G4String& name) const; >> 229 >> 230 /////////////////////////////////////////////////////////////////////////////// >> 231 protected: >> 232 // do BuildPhysicsTable for make the integral schema >> 233 void BuildIntegralPhysicsTable(G4VProcess* ,G4ParticleDefinition* ); >> 234 >> 235 >> 236 protected: >> 237 // Retrieve PhysicsTable from files for proccess belongng the particle. >> 238 // Normal BuildPhysics procedure of processes will be invoked, >> 239 // if it fails (in case of Process's RetrievePhysicsTable returns false) >> 240 virtual void RetrievePhysicsTable(G4ParticleDefinition* , >> 241 const G4String& directory, >> 242 G4bool ascii = false); >> 243 >> 244 ///////////////////////////////////////////////////////////////// >> 245 protected: >> 246 // adds new ProcessManager to all particles in the Particle Table >> 247 // this routine is used in Construct() >> 248 void InitializeProcessManager(); 214 249 215 // Remove and delete ProcessManagers for a << 250 public: // with description 216 // Particle Table. << 251 // remove and delete ProcessManagers for all particles in tha Particle Table >> 252 // this routine is invoked from RunManager 217 void RemoveProcessManager(); 253 void RemoveProcessManager(); 218 254 219 // Remove and delete TrackingManagers for << 255 public: // with description 220 // Particle Table. << 256 // add process manager for particles created on-the-fly 221 void RemoveTrackingManager(); << 222 << 223 // Add process manager for particles creat << 224 void AddProcessManager(G4ParticleDefinitio 257 void AddProcessManager(G4ParticleDefinition* newParticle, 225 G4ProcessManager* n << 258 G4ProcessManager* newManager = 0 ); >> 259 >> 260 ///////////////////////////////////////////////////////////////// >> 261 public: >> 262 // check consistencies of list of particles 226 263 227 // Check consistencies of list of particle << 228 void CheckParticleList(); 264 void CheckParticleList(); 229 265 230 void DisableCheckParticleList(); 266 void DisableCheckParticleList(); >> 267 >> 268 protected: >> 269 >> 270 bool fDisableCheckParticleList; 231 271 232 inline G4int GetInstanceID() const; << 272 //////////////////////////////////////////////////////////////////////// 233 static const G4VUPLManager& GetSubInstance << 234 << 235 // Used by Worker threads on the shared in << 236 // to initialise workers. Derived class re << 237 // must also call this base class method. << 238 virtual void InitializeWorker(); << 239 << 240 // Destroy thread-local data. Note that de << 241 // implementing this method should still c << 242 virtual void TerminateWorker(); << 243 << 244 protected: 273 protected: 245 // User must invoke this method in his Con << 274 // the particle table has the complete List of existing particle types 246 // implementation in order to enable parti << 275 G4ParticleTable* theParticleTable; 247 void AddTransportation(); << 276 G4ParticleTable::G4PTblDicIterator* theParticleIterator; 248 << 277 249 // Register a process to the particle type << 278 protected: 250 // according to the ordering parameter tab << 279 // pointer to G4UserPhysicsListMessenger 251 // 'true' is returned if the process is re << 280 G4UserPhysicsListMessenger* theMessenger; 252 G4bool RegisterProcess(G4VProcess* process << 253 << 254 // Build PhysicsTable for making the integ << 255 void BuildIntegralPhysicsTable(G4VProcess* << 256 << 257 // Retrieve PhysicsTable from files for pr << 258 // Normal BuildPhysics procedure of proces << 259 // fails (in case of process's RetrievePhy << 260 virtual void RetrievePhysicsTable(G4Partic << 261 G4bool a << 262 281 263 // Adds new ProcessManager to all particle << 282 protected: 264 // This function is used in Construct(). << 283 G4int verboseLevel; 265 void InitializeProcessManager(); << 266 284 267 G4ParticleTable::G4PTblDicIterator* GetPar << 285 protected: >> 286 // this is the default cut value for all particles >> 287 G4double defaultCutValue; 268 288 269 protected: 289 protected: 270 // The particle table has the complete Lis << 290 // pointer to ProductionCutsTable 271 G4ParticleTable* theParticleTable = nullpt << 291 G4ProductionCutsTable* fCutsTable; >> 292 >> 293 // flag to determine physics table will be build from file or not >> 294 G4bool fRetrievePhysicsTable; >> 295 G4bool fStoredInAscii; >> 296 >> 297 G4bool fIsCheckedForRetrievePhysicsTable; >> 298 G4bool fIsRestoredCutValues; 272 299 273 G4int verboseLevel = 1; << 300 // directory name for physics table files >> 301 G4String directoryPhysicsTable; 274 302 275 // Default cut value for all particles << 303 // flag for displaying the range cuts & energy thresholds 276 G4double defaultCutValue = 1.0; << 304 G4int fDisplayThreshold; 277 G4bool isSetDefaultCutValue = false; << 278 305 279 // Pointer to ProductionCutsTable. << 306 // flag for Physics Table has been built 280 G4ProductionCutsTable* fCutsTable = nullpt << 307 G4bool fIsPhysicsTableBuilt; 281 308 282 // Flag to determine if physics table will << 309 private: 283 G4bool fRetrievePhysicsTable = false; << 310 enum { FixedStringLengthForStore = 32 }; 284 G4bool fStoredInAscii = true; << 285 311 286 G4bool fIsCheckedForRetrievePhysicsTable = << 287 G4bool fIsRestoredCutValues = false; << 288 312 289 // Directory name for physics table files. << 313 private: 290 G4String directoryPhysicsTable = "."; << 314 G4bool useCoupledTransportation; >> 315 >> 316 public: >> 317 inline void UseCoupledTransportation(G4bool vl=true) >> 318 { useCoupledTransportation = vl; } 291 319 292 // Flag for CheckParticleList(). << 320 //////////////////////////////////////////////////////////////////////////// 293 G4bool fDisableCheckParticleList = false; << 321 // Following method is for backward compatibility and removed soon >> 322 //////////////////////////////////////////////////////////////////////////// >> 323 protected: >> 324 void SetCutValueForOthers(G4double) const; 294 325 295 // MT data << 296 G4int g4vuplInstanceID = 0; << 297 G4RUN_DLL static G4VUPLManager subInstance << 298 }; 326 }; 299 327 300 // Inline methods implementations << 328 inline >> 329 void G4VUserPhysicsList::SetCutValueForOthers(G4double) const >> 330 { >> 331 G4cerr << "WARNING !" << G4endl; >> 332 G4cerr << " SetCutValueForOthers became obsolete." << G4endl; >> 333 G4cerr << " It is harmless to remove this invokation without any side effects." << G4endl; >> 334 G4cerr << " This dummy method implementation will be removed soon." << G4endl; >> 335 } 301 336 302 inline void G4VUserPhysicsList::Construct() 337 inline void G4VUserPhysicsList::Construct() 303 { 338 { 304 #ifdef G4VERBOSE << 339 #ifdef G4VERBOSE 305 if (verboseLevel > 1) G4cout << "G4VUserPhys << 340 if (verboseLevel >1) G4cout << "G4VUserPhysicsList::Construct()" << G4endl; 306 #endif 341 #endif 307 342 308 if (G4Threading::IsMasterThread()) G4Physics << 309 << 310 InitializeProcessManager(); 343 InitializeProcessManager(); 311 344 312 #ifdef G4VERBOSE << 345 #ifdef G4VERBOSE 313 if (verboseLevel > 1) G4cout << "Construct p << 346 if (verboseLevel >1) G4cout << "Construct processes " << G4endl; 314 #endif 347 #endif 315 ConstructProcess(); 348 ConstructProcess(); >> 349 316 } 350 } 317 351 318 inline G4double G4VUserPhysicsList::GetDefault 352 inline G4double G4VUserPhysicsList::GetDefaultCutValue() const 319 { 353 { 320 return defaultCutValue; 354 return defaultCutValue; 321 } 355 } 322 356 323 inline G4int G4VUserPhysicsList::GetVerboseLev << 357 >> 358 inline G4int G4VUserPhysicsList::GetVerboseLevel() const 324 { 359 { 325 return verboseLevel; << 360 return verboseLevel; 326 } 361 } 327 362 328 inline G4bool G4VUserPhysicsList::IsPhysicsTab << 363 inline >> 364 G4bool G4VUserPhysicsList::IsPhysicsTableRetrieved() const 329 { 365 { 330 return fRetrievePhysicsTable; << 366 return fRetrievePhysicsTable; 331 } 367 } 332 368 333 inline G4bool G4VUserPhysicsList::IsStoredInAs << 369 inline >> 370 G4bool G4VUserPhysicsList::IsStoredInAscii() const 334 { 371 { 335 return fStoredInAscii; 372 return fStoredInAscii; 336 } 373 } 337 374 338 inline const G4String& G4VUserPhysicsList::Get << 375 inline >> 376 const G4String& G4VUserPhysicsList::GetPhysicsTableDirectory() const 339 { 377 { 340 return directoryPhysicsTable; << 378 return directoryPhysicsTable; 341 } 379 } 342 380 343 inline void G4VUserPhysicsList::SetStoredInAsc << 381 inline >> 382 void G4VUserPhysicsList::SetStoredInAscii() 344 { 383 { 345 fStoredInAscii = true; 384 fStoredInAscii = true; 346 } 385 } 347 << 386 348 inline void G4VUserPhysicsList::ResetPhysicsTa << 387 >> 388 inline >> 389 void G4VUserPhysicsList::ResetPhysicsTableRetrieved() 349 { 390 { 350 fRetrievePhysicsTable = false; 391 fRetrievePhysicsTable = false; 351 fIsRestoredCutValues = false; 392 fIsRestoredCutValues = false; 352 fIsCheckedForRetrievePhysicsTable = false; << 393 fIsCheckedForRetrievePhysicsTable=false; 353 } 394 } 354 395 355 inline void G4VUserPhysicsList::ResetStoredInA << 396 >> 397 inline >> 398 void G4VUserPhysicsList::ResetStoredInAscii() 356 { 399 { 357 fStoredInAscii = false; 400 fStoredInAscii = false; 358 } 401 } 359 402 360 inline void G4VUserPhysicsList::DisableCheckPa << 403 inline 361 { << 404 void G4VUserPhysicsList::DisableCheckParticleList() >> 405 { 362 fDisableCheckParticleList = true; 406 fDisableCheckParticleList = true; 363 } 407 } 364 408 365 inline G4int G4VUserPhysicsList::GetInstanceID << 366 { << 367 return g4vuplInstanceID; << 368 } << 369 << 370 inline const G4VUPLManager& G4VUserPhysicsList << 371 { << 372 return subInstanceManager; << 373 } << 374 409 375 #endif 410 #endif >> 411 376 412