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
G4MaterialScanner.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
32#ifndef G4MaterialScanner_H
33#define G4MaterialScanner_H 1
34
35// class description:
36//
37// G4MaterialScanner
38//
39
40#include "globals.hh"
41#include "G4ThreeVector.hh"
42
43class G4Event;
44class G4EventManager;
51class G4RayShooter;
52class G4Region;
53
55{
56 public: // with description
58
59 public:
61
62 public: // with description
63 void Scan();
64 // The main entry point which triggers ray tracing.
65 // This method is available only if Geant4 is at Idle state.
66
67 private:
68 void DoScan();
69 // Event loop
70 void StoreUserActions();
71 void RestoreUserActions();
72 // Store and restore user action classes if defined
73
74 private:
75 G4RayShooter * theRayShooter;
76 G4MatScanMessenger * theMessenger;
77
78 G4EventManager * theEventManager;
79
80 G4UserEventAction * theUserEventAction;
81 G4UserStackingAction * theUserStackingAction;
82 G4UserTrackingAction * theUserTrackingAction;
83 G4UserSteppingAction * theUserSteppingAction;
84
85 G4UserEventAction * theMatScannerEventAction;
86 G4UserStackingAction * theMatScannerStackingAction;
87 G4UserTrackingAction * theMatScannerTrackingAction;
88 G4MSSteppingAction * theMatScannerSteppingAction;
89
90 G4ThreeVector eyePosition;
91 G4int nTheta;
92 G4double thetaMin;
93 G4double thetaSpan;
94 G4int nPhi;
95 G4double phiMin;
96 G4double phiSpan;
97
98 G4ThreeVector eyeDirection;
99
100 G4bool regionSensitive;
101 G4String regionName;
102 G4Region* theRegion;
103
104 public:
105 inline void SetEyePosition(const G4ThreeVector& val) { eyePosition = val; }
106 inline G4ThreeVector GetEyePosition() const { return eyePosition; }
107 inline void SetNTheta(G4int val) { nTheta = val; }
108 inline G4int GetNTheta() const { return nTheta; }
109 inline void SetThetaMin(G4double val) { thetaMin = val; }
110 inline G4double GetThetaMin() const { return thetaMin; }
111 inline void SetThetaSpan(G4double val) { thetaSpan = val; }
112 inline G4double GetThetaSpan() const { return thetaSpan; }
113 inline void SetNPhi(G4int val) { nPhi = val; }
114 inline G4int GetNPhi() const { return nPhi; }
115 inline void SetPhiMin(G4double val) { phiMin = val; }
116 inline G4double GetPhiMin() const { return phiMin; }
117 inline void SetPhiSpan(G4double val) { phiSpan = val; }
118 inline G4double GetPhiSpan() const { return phiSpan; }
119 inline void SetRegionSensitive(G4bool val=true) { regionSensitive = val; }
120 inline G4bool GetRegionSensitive() const { return regionSensitive; }
121 G4bool SetRegionName(const G4String& val);
122 inline G4String GetRegionName() const { return regionName; }
123
124};
125
126#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4String GetRegionName() const
void SetNPhi(G4int val)
G4bool GetRegionSensitive() const
void SetThetaSpan(G4double val)
G4bool SetRegionName(const G4String &val)
G4double GetThetaMin() const
void SetRegionSensitive(G4bool val=true)
void SetThetaMin(G4double val)
G4double GetThetaSpan() const
void SetPhiMin(G4double val)
void SetEyePosition(const G4ThreeVector &val)
void SetPhiSpan(G4double val)
G4ThreeVector GetEyePosition() const
G4double GetPhiMin() const
G4int GetNTheta() const
G4double GetPhiSpan() const
void SetNTheta(G4int val)