Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4VITTimeStepper.hh
Go to the documentation of this file.
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// $Id: G4VITTimeStepper.hh 64057 2012-10-30 15:04:49Z gcosmo $
27//
28// Author: Mathieu Karamitros (kara (AT) cenbg . in2p3 . fr)
29//
30// WARNING : This class is released as a prototype.
31// It might strongly evolve or even disapear in the next releases.
32//
33// History:
34// -----------
35// 10 Oct 2011 M.Karamitros created
36//
37// -------------------------------------------------------------------
38#ifndef G4VITTimeStepper_H
39#define G4VITTimeStepper_H
40
41#include "G4Track.hh"
42#include "G4ITReactionTable.hh"
44#include "AddClone_def.hh"
45
47
48/**
49 * Before stepping all tracks G4ITStepManager calls all the G4VITModel
50 * which may contain a G4VITTimeStepper (optionnal).
51 * G4VITTimeStepper returns what should be the next global time step.
52 * Time step that will be used to step all tracks.
53 */
54
56{
57public:
59 virtual ~G4VITTimeStepper();
60
63
64 /** This macro defined in AddClone_def **/
66
67 // First initialization (done once for all at the begin of the run)
68 // eg. check if the reaction table is given ...
69 inline virtual void Initialize(){;}
70
71 // Preparation part
72 static void SetTimes(const G4double&, const G4double&);
73// inline virtual void PrepareForAllProcessors(){;}
74 inline virtual void Prepare() ;
75
76 virtual G4double CalculateStep(const G4Track&, const G4double&) = 0;
77
79 inline virtual void ResetReactants(){fReactants = 0;}
80
81 //
83
84 inline void SetReactionTable(const G4ITReactionTable*);
85 inline const G4ITReactionTable* GetReactionTable();
86
87protected :
90
93
95
96private:
97 G4int fVerbose ;
98};
99
101{
102 fpReactionTable = table;
103}
104
106{
107 return fpReactionTable ;
108}
109
111{
112 fReactants = 0 ;
113}
114
116{
117 return fSampledMinTimeStep ;
118}
119
121{
122 return fReactants ;
123}
124#endif // G4VITTimeStepper_H
#define G4IT_TO_BE_CLONED(parent_class)
Definition: AddClone_def.hh:42
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4ReferenceCountedHandle< std::vector< G4Track * > > G4TrackVectorHandle
virtual void Prepare()
void SetReactionTable(const G4ITReactionTable *)
virtual G4double CalculateStep(const G4Track &, const G4double &)=0
virtual void Initialize()
static G4double fUserMinTimeStep
static void SetTimes(const G4double &, const G4double &)
G4double fSampledMinTimeStep
G4TrackVectorHandle GetReactants()
G4double GetSampledMinTimeStep()
G4TrackVectorHandle fReactants
G4VITTimeStepper & operator=(const G4VITTimeStepper &other)
const G4ITReactionTable * fpReactionTable
const G4ITReactionTable * GetReactionTable()
virtual void ResetReactants()
static G4double fCurrentGlobalTime
virtual ~G4VITTimeStepper()
#define inline
Definition: internal.h:71