Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 // G4VUserPhysicsList << 27 // 23 // 28 // Class description: << 24 // $Id: G4VUserPhysicsList.hh,v 1.14 2001/10/16 08:35:50 kurasige Exp $ >> 25 // GEANT4 tag $Name: geant4-05-00 $ 29 // 26 // 30 // This class is an abstract class for constru << 27 // 31 // User must implement the following two pure << 28 // ------------------------------------------------------------ 32 // class derived from this class: << 29 // GEANT 4 class header file 33 // - G4VUserPhysicsList::ConstructParticle() << 30 // Class Description: 34 // Construct particles << 31 // This class is an abstruct class for 35 // - G4VUserPhysicsList::ConstructProcess() << 32 // constructing particles and processes. 36 // Construct procesess and register them t << 33 // User must implement following four virtual methods 37 << 34 // in his own concrete class derived from this class. 38 // Original author: H.Kurashige (Kobe Universi << 35 // G4VUserPhysicsList::ConstructParticle() 39 // ------------------------------------------- << 36 // Construct particles 40 #ifndef G4VUserPhysicsList_hh << 37 // G4VUserPhysicsList::constructPhysics() 41 #define G4VUserPhysicsList_hh 1 << 38 // Construct procesess and register them to particles 42 << 39 // G4VUserPhysicsList::SetCuts() 43 #include "G4ParticleDefinition.hh" << 40 // set cut values in range to all particles 44 #include "G4ParticleTable.hh" << 41 // (and rebuilding physics table will be invoked ) 45 #include "G4PhysicsModelCatalog.hh" << 42 // 46 #include "G4ProductionCutsTable.hh" << 43 // ------------------------------------------- 47 #include "G4Threading.hh" << 44 // History 48 #include "G4VUPLSplitter.hh" << 45 // first version 09 Jan. 1998 by H.Kurashige 49 #include "G4ios.hh" << 46 // modified 24 Jan. 1998 by H.Kurashige >> 47 // rename DumpCutValues/DumpCutValuesTable >> 48 // change SetCuts method >> 49 // add SetCutsWithDefault method >> 50 // modified 06 June 1998 by H.Kurashige >> 51 // add AddProcessManager >> 52 // add BuildPhysicsTable >> 53 // modified 29 June 1998 by H.Kurashige >> 54 // add AddProcessManager >> 55 // modified 05 Dec. 1998 by H.Kurashige >> 56 // add ConstructAllParticles() >> 57 // modified 14, Apr 1999 by H.Kurashige >> 58 // change BuildPhysicsTable as public >> 59 // removed ConstructAllParticles() and related methods >> 60 // changed SetCuts method argument >> 61 // modified 08, Nov 2000 by H.Kurashige >> 62 // added Retrieve/StorePhysicsTable and related methods >> 63 // modified 08, Mar 2001 by H.Kurashige >> 64 // added binary mode for Retrieve/StorePhysicsTable >> 65 // added RetrieveCutValues and related >> 66 // added Set/ResetStoredInAscii() to switch on ascii mode >> 67 // for Retrieve/StorePhysicsTable >> 68 // ------------------------------------------------------------ >> 69 #ifndef G4VUserPhysicsList_h >> 70 #define G4VUserPhysicsList_h 1 50 #include "globals.hh" 71 #include "globals.hh" >> 72 #include "G4ios.hh" 51 73 52 #include "rundefs.hh" << 74 #include "G4ParticleTable.hh" 53 #include "tls.hh" << 75 #include "G4ParticleDefinition.hh" 54 76 55 class G4UserPhysicsListMessenger; 77 class G4UserPhysicsListMessenger; 56 class G4PhysicsListHelper; << 57 class G4VProcess; 78 class G4VProcess; 58 79 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 80 class G4VUserPhysicsList 104 { 81 { 105 public: << 82 public: 106 G4VUserPhysicsList(); 83 G4VUserPhysicsList(); 107 virtual ~G4VUserPhysicsList(); 84 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 85 115 // By calling the "Construct" method, << 86 public: // with description 116 // process manager and processes are creat << 87 // By calling the "Construct" method, >> 88 // particles and processes are created 117 void Construct(); 89 void Construct(); >> 90 118 91 119 // Each physics process will be instantiat << 92 protected: // with description 120 // registered to the process manager of ea << 93 // These two methods of ConstructParticle() and ConstructProcess() 121 // Invoked in the Construct() method. << 94 // will be invoked in the Construct() method. 122 virtual void ConstructProcess() = 0; << 95 123 << 96 // each particle type will be instantiated 124 // Sets a cut value for all particle types << 97 virtual void ConstructParticle() = 0; 125 virtual void SetCuts(); << 98 126 << 99 // each physics process will be instantiated and 127 // Set/get the default cut value. Calling << 100 // registered to the process manager of each particle type 128 // re-calcuration of cut values and physic << 101 virtual void ConstructProcess() = 0; 129 // next event loop. << 102 130 void SetDefaultCutValue(G4double newCutVal << 103 protected: // with description 131 G4double GetDefaultCutValue() const; << 104 // User must invoke this method in his ConstructProcess() 132 << 105 // implementation in order to insures particle transportation. 133 // Invoke BuildPhysicsTable for all proces << 106 // !! Caution: this class must not be overriden !! >> 107 void AddTransportation(); >> 108 >> 109 ///////////////////////////////////////////////////////////////// >> 110 public: // with description >> 111 // "SetCuts" method sets a cut value for all particle types >> 112 // in the particle table >> 113 virtual void SetCuts() = 0; >> 114 >> 115 public: // with description >> 116 // set/get the default cut value >> 117 // Calling SetDefaultCutValue causes re-calcuration of cut values >> 118 // and physics tables just before the next event loop >> 119 void SetDefaultCutValue(G4double newCutValue); >> 120 G4double GetDefaultCutValue() const; >> 121 >> 122 ///////////////////////////////////////////////////////////////////// >> 123 public: // with description >> 124 // Invoke BuildPhysicsTable for all processes for specified particle 134 // In case of "Retrieve" flag is ON, Physi 125 // In case of "Retrieve" flag is ON, PhysicsTable will be 135 // retrieved from files. << 126 // retrieved from files 136 void BuildPhysicsTable(); << 127 void BuildPhysicsTable(G4ParticleDefinition* ); 137 << 138 // Prepare the PhysicsTable for specified << 139 void PreparePhysicsTable(G4ParticleDefinit << 140 128 141 // Build the PhysicsTable for specified pa << 129 142 void BuildPhysicsTable(G4ParticleDefinitio << 130 // Store PhysicsTable together with both material and cut value 143 << 144 // Store PhysicsTable together with both m << 145 // information in files under the specifie 131 // information in files under the specified directory. 146 // Returns "true" if files are successfull << 132 // (return true if files are sucessfully created) 147 G4bool StorePhysicsTable(const G4String& d << 133 G4bool StorePhysicsTable(const G4String& directory = "."); 148 << 134 149 // Return true if "Retrieve" flag is ON. << 135 // Return true if "Retrieve" flag is ON. 150 // (i.e. PhysicsTable will be retrieved fr << 136 // (i.e. PhysicsTable will be retrieved from files) 151 G4bool IsPhysicsTableRetrieved() const; << 137 G4bool IsPhysicsTableRetrieved() const; 152 G4bool IsStoredInAscii() const; << 138 G4bool IsStoredInAscii() const; 153 139 154 // Get directory path for physics table fi 140 // Get directory path for physics table files. 155 const G4String& GetPhysicsTableDirectory() 141 const G4String& GetPhysicsTableDirectory() const; 156 142 157 // Set "Retrieve" flag. Directory path can << 143 // Set "Retrieve" flag 158 // Null string (default) means directory i << 144 // Directory path can be set together. 159 // from the current value. << 145 // Null string (default) means directory is not changed 160 void SetPhysicsTableRetrieved(const G4Stri << 146 // from the current value 161 void SetStoredInAscii(); << 147 void SetPhysicsTableRetrieved(const G4String& directory = ""); 162 << 148 void SetStoredInAscii(); 163 // Reset "Retrieve" flag. << 149 164 void ResetPhysicsTableRetrieved(); << 150 // Reset "Retrieve" flag 165 void ResetStoredInAscii(); << 151 void ResetPhysicsTableRetrieved(); 166 << 152 void ResetStoredInAscii(); 167 // Print out the List of registered partic << 153 >> 154 /////////////////////////////////////////////////////////////////////// >> 155 public: // with description >> 156 // Print out the List of registered particles types 168 void DumpList() const; 157 void DumpList() const; 169 158 170 // Request to print out information of cut << 159 public: // with description 171 // Printing will be performed when all tab << 160 // Print out information of cut values 172 void DumpCutValuesTable(G4int flag = 1); << 161 void DumpCutValuesTable() const; 173 << 162 void DumpCutValues(const G4String &particle_name = "ALL") const; 174 // Triggers the print-out requested by the << 163 void DumpCutValues(G4ParticleDefinition* ) const; 175 // This method must be invoked by RunManag << 176 void DumpCutValuesTableIfRequested(); << 177 164 178 // Set/get control flag for output message << 165 public: // with description >> 166 void SetVerboseLevel(G4int value); >> 167 G4int GetVerboseLevel() const; >> 168 // set/get controle flag for output message 179 // 0: Silent 169 // 0: Silent 180 // 1: Warning message 170 // 1: Warning message 181 // 2: More 171 // 2: More 182 void SetVerboseLevel(G4int value); << 183 G4int GetVerboseLevel() const; << 184 << 185 void UseCoupledTransportation(G4bool vl = << 186 172 187 // Invokes default SetCuts() method. << 173 /////////////////////////////////////////////////////////////////////////// 188 // Note: cut values will not be overwritte << 174 protected: // with description 189 // Use of default SetCuts() method is reco << 175 // "SetCutsWithDefault" method sets a cut value with the default 190 void SetCutsWithDefault(); << 176 // cut values for all particle types in the particle table 191 << 177 void SetCutsWithDefault(); 192 // Sets a cut value for a particle type fo << 178 193 void SetCutValue(G4double aCut, const G4St << 179 194 << 180 // Following are utility methods for SetCuts/reCalcCuts 195 // Gets a cut value for a particle type fo << 181 196 G4double GetCutValue(const G4String& pname << 182 // Reset cut values in energy for all particle types 197 << 183 // By calling this methods, the run manager will invoke 198 // Sets a cut value for a particle type fo << 184 // SetCuts() just before event loop 199 void SetCutValue(G4double aCut, const G4St << 185 void ResetCuts(); 200 << 186 201 // Invoke SetCuts for specified particle f << 187 // SetCutValue sets a cut value for a particle type 202 // If the pointer to the region is NULL, t << 188 void SetCutValue(G4double aCut, const G4String& name); 203 // In case of "Retrieve" flag is ON, cut v << 189 void ReCalcCutValue(const G4String& name); 204 // from files. << 190 205 void SetParticleCuts(G4double cut, G4Parti << 191 // "setCutsForOthers" method sets a cut value to all particle types 206 void SetParticleCuts(G4double cut, const G << 192 // which have not be called SetCuts() methods yet. 207 << 193 // (i.e. particles which have no definit cut values) 208 // Invoke SetCuts() for all particles in a << 194 void SetCutValueForOthers(G4double cutValue); 209 void SetCutsForRegion(G4double aCut, const << 195 210 << 196 // "setCutsForOtherThan" sets a cut value to all particle types 211 // Gets/sets the flag for ApplyCuts(). << 197 // other than particle types specified in arguments 212 void SetApplyCuts(G4bool value, const G4St << 198 void SetCutValueForOtherThan(G4double cutValue, 213 G4bool GetApplyCuts(const G4String& name) << 199 G4ParticleDefinition* first, >> 200 G4ParticleDefinition* second = 0, >> 201 G4ParticleDefinition* third = 0, >> 202 G4ParticleDefinition* fourth = 0, >> 203 G4ParticleDefinition* fifth = 0, >> 204 G4ParticleDefinition* sixth = 0, >> 205 G4ParticleDefinition* seventh = 0, >> 206 G4ParticleDefinition* eighth = 0, >> 207 G4ParticleDefinition* nineth = 0, >> 208 G4ParticleDefinition* tenth = 0 ); >> 209 >> 210 // "reCalcCutsForOthers" method re-calculates a cut value >> 211 // to all particle types which have not be called SetCuts() methods yet. >> 212 void ReCalcCutValueForOthers(); >> 213 >> 214 // Invoke SetCuts for specified particle >> 215 // In case of "Retrieve" flag is ON, >> 216 // Cut values will be retrieved from files >> 217 void SetParticleCuts( G4double cut, G4ParticleDefinition* ); >> 218 >> 219 /////////////////////////////////////////////////////////////////////////////// >> 220 public: >> 221 // Get/SetApplyCuts gets/sets the flag for ApplyCuts >> 222 void SetApplyCuts(G4bool value, const G4String& name); >> 223 G4bool GetApplyCuts(const G4String& name) const; >> 224 >> 225 /////////////////////////////////////////////////////////////////////////////// >> 226 protected: >> 227 // do BuildPhysicsTable for make the integral schema >> 228 void BuildIntegralPhysicsTable(G4VProcess* ,G4ParticleDefinition* ); >> 229 >> 230 protected: >> 231 // Retrieve PhysicsTable from files for proccess belongng the particle. >> 232 // Normal BuildPhysics procedure of processes will be invoked, >> 233 // if it fails (in case of Process's RetrievePhysicsTable returns false) >> 234 virtual void RetrievePhysicsTable(G4ParticleDefinition* , >> 235 const G4String& directory, >> 236 G4bool ascii = false); >> 237 >> 238 // Store material information in files under the specified directory. >> 239 virtual G4bool StoreMaterialInfo(const G4String& directory, >> 240 G4bool ascii = false); >> 241 // Store cut values information in files under the specified directory. >> 242 virtual G4bool StoreCutValues(const G4String& directory, >> 243 G4bool ascii = false); >> 244 >> 245 // Retrieve cut values information in files under the specified directory. >> 246 virtual G4bool RetrieveCutValues(const G4String& directory, >> 247 G4bool ascii = false); >> 248 >> 249 >> 250 // check stored material and cut values >> 251 virtual G4bool CheckForRetrievePhysicsTable(const G4String& directory, >> 252 G4bool ascii = false); >> 253 // check stored material is consistent with the current detector setup. >> 254 virtual G4bool CheckMaterialInfo(const G4String& directory, >> 255 G4bool ascii = false); >> 256 ///////////////////////////////////////////////////////////////// >> 257 protected: >> 258 // adds new ProcessManager to all particles in the Particle Table >> 259 // this routine is used in Construct() >> 260 void InitializeProcessManager(); 214 261 215 // Remove and delete ProcessManagers for a << 262 public: // with description 216 // Particle Table. << 263 // remove and delete ProcessManagers for all particles in tha Particle Table >> 264 // this routine is invoked from RunManager 217 void RemoveProcessManager(); 265 void RemoveProcessManager(); 218 266 219 // Remove and delete TrackingManagers for << 267 public: // with description 220 // Particle Table. << 268 // add process manager for particles created on-the-fly 221 void RemoveTrackingManager(); << 222 << 223 // Add process manager for particles creat << 224 void AddProcessManager(G4ParticleDefinitio 269 void AddProcessManager(G4ParticleDefinition* newParticle, 225 G4ProcessManager* n << 270 G4ProcessManager* newManager = 0 ); 226 << 271 227 // Check consistencies of list of particle << 272 228 void CheckParticleList(); << 273 //////////////////////////////////////////////////////////////////////// 229 << 230 void DisableCheckParticleList(); << 231 << 232 inline G4int GetInstanceID() const; << 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: 274 protected: 245 // User must invoke this method in his Con << 275 // the particle table has the complete List of existing particle types 246 // implementation in order to enable parti << 276 G4ParticleTable* theParticleTable; 247 void AddTransportation(); << 277 G4ParticleTable::G4PTblDicIterator* theParticleIterator; 248 << 278 249 // Register a process to the particle type << 279 protected: 250 // according to the ordering parameter tab << 280 // pointer to G4UserPhysicsListMessenger 251 // 'true' is returned if the process is re << 281 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 << 263 // Adds new ProcessManager to all particle << 264 // This function is used in Construct(). << 265 void InitializeProcessManager(); << 266 << 267 G4ParticleTable::G4PTblDicIterator* GetPar << 268 282 269 protected: 283 protected: 270 // The particle table has the complete Lis << 284 G4int verboseLevel; 271 G4ParticleTable* theParticleTable = nullpt << 272 << 273 G4int verboseLevel = 1; << 274 << 275 // Default cut value for all particles << 276 G4double defaultCutValue = 1.0; << 277 G4bool isSetDefaultCutValue = false; << 278 285 279 // Pointer to ProductionCutsTable. << 286 protected: 280 G4ProductionCutsTable* fCutsTable = nullpt << 287 // this is the default cut value for all particles 281 << 288 G4double defaultCutValue; 282 // Flag to determine if physics table will << 283 G4bool fRetrievePhysicsTable = false; << 284 G4bool fStoredInAscii = true; << 285 << 286 G4bool fIsCheckedForRetrievePhysicsTable = << 287 G4bool fIsRestoredCutValues = false; << 288 289 289 // Directory name for physics table files. << 290 protected: 290 G4String directoryPhysicsTable = "."; << 291 // flag to determine physics table will be build from file or not >> 292 G4bool fRetrievePhysicsTable; >> 293 G4bool fStoredInAscii; >> 294 >> 295 G4bool fIsCheckedForRetrievePhysicsTable; >> 296 G4bool fIsRestoredCutValues; >> 297 >> 298 // directory name for physics table files >> 299 G4String directoryPhysicsTable; >> 300 >> 301 // number of materials in G4MaterialTable >> 302 // (this member is used by store/restore physics table) >> 303 G4int numberOfMaterial; 291 304 292 // Flag for CheckParticleList(). << 305 private: 293 G4bool fDisableCheckParticleList = false; << 306 enum { FixedStringLengthForStore = 32 }; 294 307 295 // MT data << 308 //////////////////////////////////////////////////////////////////// 296 G4int g4vuplInstanceID = 0; << 309 protected: 297 G4RUN_DLL static G4VUPLManager subInstance << 310 enum { NumberOfParticlesForStoreCuts = 9}; >> 311 static const G4String particleForStoreCuts[NumberOfParticlesForStoreCuts]; >> 312 G4bool isBuildPhysicsTable[NumberOfParticlesForStoreCuts]; >> 313 G4int isParticleForStoreCuts(const G4ParticleDefinition*) const; 298 }; 314 }; 299 315 300 // Inline methods implementations << 301 316 302 inline void G4VUserPhysicsList::Construct() 317 inline void G4VUserPhysicsList::Construct() 303 { 318 { 304 #ifdef G4VERBOSE << 319 #ifdef G4VERBOSE 305 if (verboseLevel > 1) G4cout << "G4VUserPhys << 320 if (verboseLevel >1) G4cout << "G4VUserPhysicsList::Construct()" << G4endl; 306 #endif << 307 321 308 if (G4Threading::IsMasterThread()) G4Physics << 322 if (verboseLevel >1) G4cout << "Construct particles " << G4endl; >> 323 #endif >> 324 ConstructParticle(); 309 325 310 InitializeProcessManager(); 326 InitializeProcessManager(); 311 327 312 #ifdef G4VERBOSE << 328 #ifdef G4VERBOSE 313 if (verboseLevel > 1) G4cout << "Construct p << 329 if (verboseLevel >1) G4cout << "Construct processes " << G4endl; 314 #endif 330 #endif 315 ConstructProcess(); 331 ConstructProcess(); 316 } 332 } 317 333 318 inline G4double G4VUserPhysicsList::GetDefault 334 inline G4double G4VUserPhysicsList::GetDefaultCutValue() const 319 { 335 { 320 return defaultCutValue; 336 return defaultCutValue; 321 } 337 } 322 338 323 inline G4int G4VUserPhysicsList::GetVerboseLev << 339 inline void G4VUserPhysicsList::SetVerboseLevel(G4int value) 324 { 340 { 325 return verboseLevel; << 341 verboseLevel = value; >> 342 #ifdef G4VERBOSE >> 343 if (verboseLevel >1){ >> 344 G4cout << "G4VUserPhysicsList::SetVerboseLevel :"; >> 345 G4cout << " Verbose level is set to " << verboseLevel << G4endl; >> 346 } >> 347 #endif 326 } 348 } 327 349 328 inline G4bool G4VUserPhysicsList::IsPhysicsTab << 350 inline G4int G4VUserPhysicsList::GetVerboseLevel() const 329 { 351 { 330 return fRetrievePhysicsTable; << 352 return verboseLevel; 331 } 353 } 332 354 333 inline G4bool G4VUserPhysicsList::IsStoredInAs << 355 inline >> 356 G4bool G4VUserPhysicsList::IsPhysicsTableRetrieved() const >> 357 { >> 358 return fRetrievePhysicsTable; >> 359 } >> 360 >> 361 inline >> 362 G4bool G4VUserPhysicsList::IsStoredInAscii() const 334 { 363 { 335 return fStoredInAscii; 364 return fStoredInAscii; 336 } 365 } 337 366 338 inline const G4String& G4VUserPhysicsList::Get << 367 inline >> 368 const G4String& G4VUserPhysicsList::GetPhysicsTableDirectory() const 339 { 369 { 340 return directoryPhysicsTable; << 370 return directoryPhysicsTable; 341 } 371 } 342 372 343 inline void G4VUserPhysicsList::SetStoredInAsc << 373 inline >> 374 void G4VUserPhysicsList::SetStoredInAscii() 344 { 375 { 345 fStoredInAscii = true; 376 fStoredInAscii = true; 346 } 377 } 347 << 378 348 inline void G4VUserPhysicsList::ResetPhysicsTa << 379 >> 380 inline >> 381 void G4VUserPhysicsList::ResetPhysicsTableRetrieved() 349 { 382 { 350 fRetrievePhysicsTable = false; 383 fRetrievePhysicsTable = false; 351 fIsRestoredCutValues = false; 384 fIsRestoredCutValues = false; 352 fIsCheckedForRetrievePhysicsTable = false; << 385 fIsCheckedForRetrievePhysicsTable=false; 353 } 386 } 354 387 355 inline void G4VUserPhysicsList::ResetStoredInA << 388 >> 389 inline >> 390 void G4VUserPhysicsList::ResetStoredInAscii() 356 { 391 { 357 fStoredInAscii = false; 392 fStoredInAscii = false; 358 } 393 } >> 394 #endif >> 395 >> 396 >> 397 359 398 360 inline void G4VUserPhysicsList::DisableCheckPa << 361 { << 362 fDisableCheckParticleList = true; << 363 } << 364 399 365 inline G4int G4VUserPhysicsList::GetInstanceID << 366 { << 367 return g4vuplInstanceID; << 368 } << 369 400 370 inline const G4VUPLManager& G4VUserPhysicsList << 371 { << 372 return subInstanceManager; << 373 } << 374 401 375 #endif << 376 402