ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4UserLimits.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4UserLimits.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
//
28
//
29
// class G4UserLimits
30
//
31
// Class description:
32
//
33
// Simple placeholder for user Step limitations
34
// In order to activate these limitations, users need to register
35
// their "special" processes to each particle they want.
36
// Sample processes below can be found under processes/transportation
37
// MaxAllowedStep : UserStepLimit
38
// other limitation : UserSpecialCuts
39
// In addition, users can add their own Step limitations by creating
40
// new class derived from G4UserLimits. In these case, fType member
41
// is supposed to be used to identify class.
42
//
43
// Author: Paul Kent August 96
44
//
45
// 01-11-97: change GetMaxAllowedStep(), Hisaya Kurashige
46
// 08-04-98: new data members, mma
47
// 02-16-00: add fType member and accessors, Hisaya Kurashige
48
//
49
#ifndef G4USERLIMITS_HH
50
#define G4USERLIMITS_HH
51
52
#include "
globals.hh
"
53
54
class
G4Track
;
55
56
class
G4UserLimits
57
{
58
public
:
// with description
59
60
G4UserLimits
(
G4double
ustepMax =
DBL_MAX
,
61
G4double
utrakMax =
DBL_MAX
,
62
G4double
utimeMax =
DBL_MAX
,
63
G4double
uekinMin = 0.,
64
G4double
urangMin = 0. );
65
G4UserLimits
(
const
G4String
& type,
66
G4double
ustepMax =
DBL_MAX
,
67
G4double
utrakMax =
DBL_MAX
,
68
G4double
utimeMax =
DBL_MAX
,
69
G4double
uekinMin = 0.,
70
G4double
urangMin = 0. );
71
virtual
~G4UserLimits
();
72
73
public
:
// with description
74
75
virtual
G4double
GetMaxAllowedStep
(
const
G4Track
&);
76
// If a Logical Volume has a G4UserLimits object, the Step length can
77
// be limited as shorter than MaxAllowedStep in the volume.
78
79
//
80
virtual
G4double
GetUserMaxTrackLength
(
const
G4Track
&) ;
81
virtual
G4double
GetUserMaxTime
(
const
G4Track
&);
82
virtual
G4double
GetUserMinEkine
(
const
G4Track
&);
83
virtual
G4double
GetUserMinRange
(
const
G4Track
&);
84
85
virtual
void
SetMaxAllowedStep
(
G4double
ustepMax);
86
virtual
void
SetUserMaxTrackLength
(
G4double
utrakMax);
87
virtual
void
SetUserMaxTime
(
G4double
utimeMax);
88
virtual
void
SetUserMinEkine
(
G4double
uekinMin);
89
virtual
void
SetUserMinRange
(
G4double
urangMin);
90
91
const
G4String
&
GetType
()
const
;
92
void
SetType
(
const
G4String
& type);
93
// Set/Get type name for UserLimits.
94
// This type member is supposed to be used to check real class types for
95
// each concrete instantiation of G4UserLimits. In other words, users who
96
// use special classes derived from this base class should name their class
97
// with a proper identifier.
98
99
protected
:
// with description
100
101
G4double
fMaxStep
;
// max allowed Step size in this volume
102
G4double
fMaxTrack
;
// max total track length
103
G4double
fMaxTime
;
// max time
104
G4double
fMinEkine
;
// min kinetic energy (only for charged particles)
105
G4double
fMinRange
;
// min remaining range (only for charged particles)
106
107
G4String
fType
;
// type name
108
};
109
110
#include "G4UserLimits.icc"
111
112
#endif
geant4
tree
geant4-10.6-release
source
global
management
include
G4UserLimits.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:21
using
1.8.2 with
ECCE GitHub integration