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
G4VITTimeStepComputer.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VITTimeStepComputer.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
//
27
// Author: Mathieu Karamitros
29
// The code is developed in the framework of the ESA AO7146
30
//
31
// We would be very happy hearing from you, so do not hesitate to
32
// send us your feedback!
33
//
34
// In order for Geant4-DNA to be maintained and still open-source,
35
// article citations are crucial.
36
// If you use Geant4-DNA chemistry and you publish papers about
37
// your software, in addition to the general paper on Geant4-DNA:
38
//
39
// The Geant4-DNA project, S. Incerti et al.,
40
// Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178
41
//
42
// we ask that you please cite the following papers reference papers
43
// related to chemistry:
44
//
45
// Diffusion-controlled reactions modelling in Geant4-DNA,
46
// M. Karamitros et al., 2014 (submitted)
47
// Modeling Radiation Chemistry in the Geant4 Toolkit, M. Karamitros et al.,
48
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
49
50
#ifndef G4VITTimeStepper_H
51
#define G4VITTimeStepper_H
52
53
#include "
G4Track.hh
"
54
#include "
G4ITReactionTable.hh
"
55
#include "
G4ReferenceCountedHandle.hh
"
56
#include "
AddClone_def.hh
"
57
#include "
G4memory.hh
"
58
59
//typedef G4ReferenceCountedHandle< std::vector<G4Track*> > G4TrackVectorHandle;
60
typedef
G4shared_ptr< std::vector<G4Track*> >
G4TrackVectorHandle
;
61
69
class
G4VITTimeStepComputer
70
{
71
public
:
72
G4VITTimeStepComputer
();
73
virtual
~G4VITTimeStepComputer
();
74
75
G4VITTimeStepComputer
(
const
G4VITTimeStepComputer
&);
76
G4VITTimeStepComputer
&
operator=
(
const
G4VITTimeStepComputer
& other);
77
79
G4IT_TO_BE_CLONED
(
G4VITTimeStepComputer
)
80
81
// First initialization (done once for all at the begin of the run)
82
// eg. check if the reaction table is given ...
83
inline
virtual
void
Initialize
(){;}
84
85
// Preparation part
86
static
void
SetTimes
(
const
G4double
&,
const
G4double
&);
87
// inline virtual void PrepareForAllProcessors(){;}
88
inline
virtual
void
Prepare
() ;
89
90
virtual
G4double
CalculateStep
(
const
G4Track
&,
const
G4double
&) = 0;
91
92
inline
G4TrackVectorHandle
GetReactants
();
93
inline
virtual
void
ResetReactants
()
94
// {fReactants = 0;}
95
{
fReactants
.reset();}
96
97
//
98
inline
G4double
GetSampledMinTimeStep
() ;
99
100
inline
void
SetReactionTable
(
const
G4ITReactionTable
*);
101
inline
const
G4ITReactionTable
*
GetReactionTable
();
102
103
protected
:
104
static
G4ThreadLocal
G4double
fCurrentGlobalTime
;
105
static
G4ThreadLocal
G4double
fUserMinTimeStep
;
106
107
G4double
fSampledMinTimeStep
;
108
G4TrackVectorHandle
fReactants
;
109
110
const
G4ITReactionTable
*
fpReactionTable
;
111
112
private
:
113
G4int
fVerbose
;
114
};
115
116
inline
void
G4VITTimeStepComputer::SetReactionTable
(
const
G4ITReactionTable
* table)
117
{
118
fpReactionTable
= table;
119
}
120
121
inline
const
G4ITReactionTable
*
G4VITTimeStepComputer::GetReactionTable
()
122
{
123
return
fpReactionTable
;
124
}
125
126
inline
void
G4VITTimeStepComputer::Prepare
()
127
{
128
// fReactants = 0 ;
129
fReactants
.reset() ;
130
}
131
132
inline
G4double
G4VITTimeStepComputer::GetSampledMinTimeStep
()
133
{
134
return
fSampledMinTimeStep
;
135
}
136
137
inline
G4TrackVectorHandle
G4VITTimeStepComputer::GetReactants
()
138
{
139
return
fReactants
;
140
}
141
#endif // G4VITTimeStepper_H
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
dna
management
include
G4VITTimeStepComputer.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:28
using
1.8.2 with
ECCE GitHub integration