Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4VScheduler.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/*
27 * G4ITTimeStepper.hh
28 *
29 * Created on: 4 juin 2014
30 * Author: kara
31 */
32
33#ifndef G4ITTIMESTEPPER_HH_
34#define G4ITTIMESTEPPER_HH_
35
36#include "globals.hh"
37#include "tls.hh"
38#include <map>
39
40class G4VITStepModel;
43class G4ITGun;
45
47{
48protected:
50 virtual ~G4VScheduler();
51private:
52 static G4ThreadLocal G4VScheduler* fpInstance;
53
54public:
55 static G4VScheduler* Instance();
56 virtual void Initialize(){;}
57 virtual void Reset(){;}
58
59 virtual void SetVerbose(int){;}
60
61 virtual void SetGun(G4ITGun*){;}
62
63 virtual void Process();
64
65 virtual G4bool IsRunning(){ return false; }
66
67 virtual G4ITModelHandler* GetModelHandler(){ return 0; }
68
69 virtual void RegisterModel(G4VITStepModel*, double){;}
70
71 virtual void SetEndTime(const double){;}
72
73 virtual void SetTimeTolerance(double){;}
74 // Two tracks below the time tolerance are supposed to be
75 // in the same time slice
76 virtual double GetTimeTolerance() const{ return -1;}
77
78 virtual void SetMaxZeroTimeAllowed(int){;}
79 virtual int GetMaxZeroTimeAllowed() const{ return -1;}
80
81 virtual void SetTimeSteps(std::map<double, double>*){;}
82 virtual void AddTimeStep(double /*startingTime*/, double /*timeStep*/){;}
83 virtual void SetDefaultTimeStep(double){;}
84 virtual double GetLimitingTimeStep() const {return -1;}
85 virtual G4int GetNbSteps() const {return -1;}
86 virtual void SetMaxNbSteps(G4int) {;}
87 virtual G4int GetMaxNbSteps() const {return 0;}
88 virtual G4double GetStartTime() const {return -1;}
89 virtual G4double GetEndTime() const {return -1;}
90 virtual G4double GetTimeStep() const {return -1;}
91 virtual G4double GetPreviousTimeStep() const {return -1;}
92 virtual G4double GetGlobalTime() const {return -1;}
93
95 virtual G4UserTimeStepAction* GetUserTimeStepAction() const {return 0;}
96
99};
100
101#endif /* G4ITTIMESTEPPER_HH_ */
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
virtual G4double GetTimeStep() const
Definition: G4VScheduler.hh:90
static G4VScheduler * Instance()
Definition: G4VScheduler.cc:48
virtual void SetDefaultTimeStep(double)
Definition: G4VScheduler.hh:83
virtual void Process()
Definition: G4VScheduler.cc:56
virtual void SetTimeSteps(std::map< double, double > *)
Definition: G4VScheduler.hh:81
virtual void SetVerbose(int)
Definition: G4VScheduler.hh:59
virtual G4int GetMaxNbSteps() const
Definition: G4VScheduler.hh:87
virtual double GetTimeTolerance() const
Definition: G4VScheduler.hh:76
virtual void SetUserAction(G4UserTimeStepAction *)
Definition: G4VScheduler.hh:94
virtual G4ITTrackingInteractivity * GetInteractivity()
Definition: G4VScheduler.hh:98
virtual void SetEndTime(const double)
Definition: G4VScheduler.hh:71
virtual G4double GetEndTime() const
Definition: G4VScheduler.hh:89
virtual void RegisterModel(G4VITStepModel *, double)
Definition: G4VScheduler.hh:69
virtual double GetLimitingTimeStep() const
Definition: G4VScheduler.hh:84
virtual G4UserTimeStepAction * GetUserTimeStepAction() const
Definition: G4VScheduler.hh:95
virtual G4int GetNbSteps() const
Definition: G4VScheduler.hh:85
virtual G4double GetPreviousTimeStep() const
Definition: G4VScheduler.hh:91
virtual void AddTimeStep(double, double)
Definition: G4VScheduler.hh:82
virtual void SetInteractivity(G4ITTrackingInteractivity *)
Definition: G4VScheduler.hh:97
virtual void SetMaxNbSteps(G4int)
Definition: G4VScheduler.hh:86
virtual void SetTimeTolerance(double)
Definition: G4VScheduler.hh:73
virtual G4bool IsRunning()
Definition: G4VScheduler.hh:65
virtual G4ITModelHandler * GetModelHandler()
Definition: G4VScheduler.hh:67
virtual G4double GetStartTime() const
Definition: G4VScheduler.hh:88
virtual void Reset()
Definition: G4VScheduler.hh:57
virtual int GetMaxZeroTimeAllowed() const
Definition: G4VScheduler.hh:79
virtual void Initialize()
Definition: G4VScheduler.hh:56
virtual void SetMaxZeroTimeAllowed(int)
Definition: G4VScheduler.hh:78
virtual ~G4VScheduler()
Definition: G4VScheduler.cc:43
virtual G4double GetGlobalTime() const
Definition: G4VScheduler.hh:92
virtual void SetGun(G4ITGun *)
Definition: G4VScheduler.hh:61
#define G4ThreadLocal
Definition: tls.hh:77