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
G4VITSteppingVerbose.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 * G4VITSteppingVerbose.hh
28 *
29 * Created on: Jun 22, 2015
30 * Author: mkaramit
31 */
32
33#ifndef SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_
34#define SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_
35
36#include "globals.hh" // Include from 'global'
37#include <vector>
38
39class G4Navigator;
42#include "G4VProcess.hh"
43class G4ProcessVector;
44class G4Track;
45
46//#include "G4TrackVector.hh" // Include from 'tracking'
47#include "G4StepStatus.hh" // Include from 'track'
49class G4StepPoint;
50#include "G4TouchableHandle.hh"
51
52#include "G4ForceCondition.hh" //enum 'track'
53#include "G4GPILSelection.hh" //enum 'track'
54#include "G4ITStepProcessor.hh"
55#include "G4VITProcess.hh"
56
59//class ProcessGeneralInfo;
60//class G4VPhysicalVolume;
61//class G4ProcessVector;
62
63#include <G4UImessenger.hh>
64
66
68{
69public:
71 virtual ~G4VITSteppingVerbose();
72
73public:
74
75 virtual void TrackingStarted(G4Track* track);
76 virtual void TrackingEnded(G4Track* track);
77
78 virtual void DoItStarted() = 0;
79 virtual void PreStepVerbose(G4Track*) = 0;
80 virtual void PostStepVerbose(G4Track*) = 0;
81
82 // these methods are invoked in the SteppingManager
83 virtual void NewStep() = 0;
84 void CopyState();
85
86 virtual void StepInfoForLeadingTrack() = 0;
87
88 virtual void AtRestDoItInvoked() = 0;
89 virtual void AtRestDoItOneByOne() = 0;
90
91 virtual void PostStepDoItAllDone() = 0;
92 virtual void PostStepDoItOneByOne() = 0;
93
94 virtual void AlongStepDoItAllDone() = 0;
95 virtual void AlongStepDoItOneByOne() = 0;
96
97 virtual void StepInfo() = 0;
98 virtual void DPSLStarted() = 0;
99 virtual void DPSLUserLimit() = 0;
100 virtual void DPSLPostStep() = 0;
101 virtual void DPSLAlongStep() = 0;
102 virtual void VerboseTrack() = 0;
103 virtual void VerboseParticleChange() = 0;
104
105 //____________________________________________________________________________
106
107 inline void SetVerbose(int flag)
108 {
109 fVerboseLevel = flag;
110 }
111
113 {
114 return fVerboseLevel;
115 }
116
117 //____________________________________________________________________________
118
119 virtual void SetNewValue(G4UIcommand * command,
120 G4String newValue);
121
122 virtual G4String GetCurrentValue(G4UIcommand * command);
123
124
125 //____________________________________________________________________________
126
127 void SetStepProcessor(const G4ITStepProcessor* stepProcessor)
128 {
129 this->fpStepProcessor = stepProcessor;
130 }
131
132 void TrackBanner(G4Track* track, const G4String& message);
133
134protected:
136
140
143
147 const G4Step* fStep;
150
152// G4VSensitiveDetector* fSensitive;
154 // The pointer to the process of which DoIt or
155 // GetPhysicalInteractionLength has been just executed.
156
160
164
168
171
175 // These are the numbers of secondaries generated by the process
176 // just executed.
177
178// G4Navigator *fNavigator;
179
181
182 typedef std::vector<G4int> G4SelectedAtRestDoItVector;
183 typedef std::vector<G4int> G4SelectedAlongStepDoItVector;
184 typedef std::vector<G4int> G4SelectedPostStepDoItVector;
187
189
191
192// G4SteppingControl StepControlFlag;
193
197 // Above three variables are for the method
198 // DefinePhysicalStepLength(). To pass these information to
199 // the method Verbose, they are kept at here. Need a more
200 // elegant mechanism.
201};
202
203#endif /* SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_ */
G4ForceCondition
G4GPILSelection
G4StepStatus
Definition: G4StepStatus.hh:40
std::vector< G4Track * > G4TrackVector
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
Definition: G4Step.hh:62
G4ITStepProcessorState * fpState
virtual void AtRestDoItOneByOne()=0
const G4ITStepProcessor * fpStepProcessor
G4ProcessVector * fAtRestGetPhysIntVector
virtual void VerboseTrack()=0
G4ProcessVector * fPostStepDoItVector
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
std::vector< G4int > G4SelectedPostStepDoItVector
virtual void VerboseParticleChange()=0
G4UIcmdWithAnInteger * fpVerboseUI
virtual void StepInfoForLeadingTrack()=0
virtual void PostStepDoItAllDone()=0
std::vector< G4int > G4SelectedAtRestDoItVector
G4ProcessVector * fPostStepGetPhysIntVector
virtual void DoItStarted()=0
G4ProcessVector * fAtRestDoItVector
virtual void SetNewValue(G4UIcommand *command, G4String newValue)
G4TouchableHandle fTouchableHandle
virtual void AlongStepDoItOneByOne()=0
virtual void TrackingEnded(G4Track *track)
const G4VPhysicalVolume * fCurrentVolume
const ProcessGeneralInfo * fpProcessGeneralInfo
G4ProcessVector * fAlongStepGetPhysIntVector
virtual void DPSLAlongStep()=0
virtual void StepInfo()=0
const G4VITProcess * fCurrentProcess
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
virtual void PreStepVerbose(G4Track *)=0
const G4VParticleChange * fParticleChange
virtual G4String GetCurrentValue(G4UIcommand *command)
virtual void PostStepDoItOneByOne()=0
virtual void DPSLStarted()=0
virtual void PostStepVerbose(G4Track *)=0
void SetStepProcessor(const G4ITStepProcessor *stepProcessor)
const G4TrackVector * fSecondary
G4GPILSelection fGPILSelection
virtual void DPSLUserLimit()=0
virtual void DPSLPostStep()=0
virtual void AtRestDoItInvoked()=0
virtual void NewStep()=0
virtual void TrackingStarted(G4Track *track)
G4ProcessVector * fAlongStepDoItVector
void TrackBanner(G4Track *track, const G4String &message)
virtual void AlongStepDoItAllDone()=0
std::vector< G4int > G4SelectedAlongStepDoItVector