Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // G4UserLimits 27 // 28 // Class description: 29 // 30 // Simple placeholder for user Step limitation 31 // In order to activate these limitations, use 32 // their "special" processes to each particle 33 // Sample processes below can be found under p 34 // MaxAllowedStep : UserStepLimit 35 // other limitation : UserSpecialCuts 36 // In addition, users can add their own Step l 37 // a new class derived from G4UserLimits. In t 38 // is supposed to be used to identify the clas 39 40 // Author: Paul Kent, August 1996 41 // Revisions: 42 // - 01-11-1997, H.Kurashige: changed GetMaxAl 43 // - 08-04-1998: M.Maire: new data members 44 // ------------------------------------------- 45 #ifndef G4USERLIMITS_HH 46 #define G4USERLIMITS_HH 1 47 48 #include "globals.hh" 49 50 class G4Track; 51 52 class G4UserLimits 53 { 54 public: 55 G4UserLimits(G4double ustepMax = DBL_MAX, G4 56 G4double utimeMax = DBL_MAX, G4 57 G4double urangMin = 0.); 58 G4UserLimits(const G4String& type, G4double 59 G4double utrakMax = DBL_MAX, G4 60 G4double uekinMin = 0., G4doubl 61 virtual ~G4UserLimits(); 62 63 virtual G4double GetMaxAllowedStep(const G4T 64 // If a logical volume has a G4UserLimits ob 65 // be limited as shorter than MaxAllowedStep 66 67 virtual G4double GetUserMaxTrackLength(const 68 virtual G4double GetUserMaxTime(const G4Trac 69 virtual G4double GetUserMinEkine(const G4Tra 70 virtual G4double GetUserMinRange(const G4Tra 71 72 virtual void SetMaxAllowedStep(G4double uste 73 virtual void SetUserMaxTrackLength(G4double 74 virtual void SetUserMaxTime(G4double utimeMa 75 virtual void SetUserMinEkine(G4double uekinM 76 virtual void SetUserMinRange(G4double urangM 77 78 const G4String& GetType() const; 79 void SetType(const G4String& type); 80 // Set/Get type name for UserLimits. 81 // This type member is supposed to be used t 82 // each concrete instantiation of G4UserLimi 83 // use special classes derived from this bas 84 // class with a proper identifier 85 86 protected: 87 G4double fMaxStep = 0.; // max allowed Ste 88 G4double fMaxTrack = 0.; // max total track 89 G4double fMaxTime = 0.; // max time 90 G4double fMinEkine = 0.; // min kinetic ene 91 G4double fMinRange = 0.; // min remaining r 92 93 G4String fType; // type name 94 }; 95 96 #include "G4UserLimits.icc" 97 98 #endif 99