Geant4-11
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