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
G4VSteppingVerbose.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// $Id$
28//
29//---------------------------------------------------------------
30//
31// G4VSteppingVerbose.hh
32//
33// class description:
34// This class manages the vervose outputs in G4SteppingManager.
35// The instance should be singleton. Users can inherit this
36// class to make their own verbosing class.
37//
38// Contact:
39// Questions and comments to this code should be sent to
40// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
41// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
42//
43//---------------------------------------------------------------
44
45#ifndef G4VSteppingVerbose_h
46#define G4VSteppingVerbose_h
47
49
50#include "globals.hh" // Include from 'global'
51#include <vector>
52
53class G4Navigator;
56#include "G4VProcess.hh"
57class G4ProcessVector;
58class G4SteppingManager; // Include from 'tracking'
59class G4Track;
60#include "G4TrackVector.hh" // Include from 'tracking'
61#include "G4StepStatus.hh" // Include from 'track'
63class G4StepPoint;
64#include "G4TouchableHandle.hh"
66#include "G4ForceCondition.hh" //enum 'track'
67#include "G4GPILSelection.hh" //enum 'track'
68
69
71{
72// Constructor/Destructor
73protected: // to force 'singleton'
75public:
76 virtual ~G4VSteppingVerbose();
77 //
78protected:
79 static G4VSteppingVerbose* fInstance;// pointer to the instance
80 static G4int Silent; //flag for verbosity
81 static G4int SilentStepInfo; //another flag for verbosity
82public: // with description
83// static methods to set/get the object's pointer
84 static void SetInstance(G4VSteppingVerbose* Instance);
86 static G4int GetSilent();
87 static void SetSilent(G4int fSilent);
88 static G4int GetSilentStepInfo();
89 static void SetSilentStepInfo(G4int fSilent);
90// these method are invoked in the SteppingManager
91 virtual void NewStep() = 0;
92 void CopyState();
93 void SetManager(G4SteppingManager* const);
94 virtual void AtRestDoItInvoked() = 0;
95 virtual void AlongStepDoItAllDone() = 0;
96 virtual void PostStepDoItAllDone() = 0;
97 virtual void AlongStepDoItOneByOne() = 0;
98 virtual void PostStepDoItOneByOne() = 0;
99 virtual void StepInfo() = 0;
100 virtual void TrackingStarted() = 0;
101 virtual void DPSLStarted() = 0;
102 virtual void DPSLUserLimit() = 0;
103 virtual void DPSLPostStep() = 0;
104 virtual void DPSLAlongStep() = 0;
105 virtual void VerboseTrack() = 0;
106 virtual void VerboseParticleChange() = 0;
107 // Member data
108
109protected:
111
113
120
124
126
133
137 // The pointer to the process of which DoIt or
138 // GetPhysicalInteractionLength has been just executed.
139
140
144
148
152
155
159
163 // These are the numbers of secondaries generated by the process
164 // just executed.
165
167
169
170 typedef std::vector<G4int>
172 typedef std::vector<G4int>
174 typedef std::vector<G4int>
179
181
183
185
189 // Above three variables are for the method
190 // DefinePhysicalStepLength(). To pass these information to
191 // the method Verbose, they are kept at here. Need a more
192 // elegant mechanism.
193
194
195};
196#endif
G4ForceCondition
G4GPILSelection
G4StepStatus
Definition: G4StepStatus.hh:51
G4SteppingControl
std::vector< G4Track * > G4TrackVector
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
Definition: G4Step.hh:78
G4StepPoint * fPostStepPoint
static G4int GetSilentStepInfo()
static G4VSteppingVerbose * GetInstance()
static void SetSilentStepInfo(G4int fSilent)
virtual void AlongStepDoItAllDone()=0
G4ProcessVector * fPostStepGetPhysIntVector
G4UserSteppingAction * fUserSteppingAction
G4ForceCondition fCondition
virtual void VerboseTrack()=0
G4ProcessVector * fAlongStepGetPhysIntVector
G4TouchableHandle fTouchableHandle
G4GPILSelection fGPILSelection
static G4int SilentStepInfo
G4VParticleChange * fParticleChange
G4SteppingControl StepControlFlag
static void SetInstance(G4VSteppingVerbose *Instance)
virtual void AlongStepDoItOneByOne()=0
virtual void DPSLPostStep()=0
virtual void PostStepDoItAllDone()=0
static G4VSteppingVerbose * fInstance
virtual void AtRestDoItInvoked()=0
G4VPhysicalVolume * fCurrentVolume
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
std::vector< G4int > G4SelectedAtRestDoItVector
virtual void VerboseParticleChange()=0
virtual void DPSLAlongStep()=0
virtual void StepInfo()=0
static G4int GetSilent()
G4ProcessVector * fAtRestDoItVector
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
virtual void PostStepDoItOneByOne()=0
G4VProcess * fCurrentProcess
virtual void DPSLStarted()=0
G4ProcessVector * fAtRestGetPhysIntVector
G4SelectedAlongStepDoItVector * fSelectedAlongStepDoItVector
std::vector< G4int > G4SelectedAlongStepDoItVector
G4StepPoint * fPreStepPoint
static void SetSilent(G4int fSilent)
G4VSensitiveDetector * fSensitive
std::vector< G4int > G4SelectedPostStepDoItVector
G4ProcessVector * fPostStepDoItVector
G4ProcessVector * fAlongStepDoItVector
virtual void TrackingStarted()=0
G4SteppingManager * fManager
virtual void NewStep()=0
G4double numberOfInteractionLengthLeft
void SetManager(G4SteppingManager *const)
virtual void DPSLUserLimit()=0
G4TrackVector * fSecondary