ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4MaterialScanner.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4MaterialScanner.hh
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 //
28 //
29 
30 
31 #ifndef G4MaterialScanner_H
32 #define G4MaterialScanner_H 1
33 
34 // class description:
35 //
36 // G4MaterialScanner
37 //
38 
39 #include "globals.hh"
40 #include "G4ThreeVector.hh"
41 
42 class G4Event;
43 class G4EventManager;
44 class G4UserEventAction;
48 class G4MSSteppingAction;
49 class G4MatScanMessenger;
50 class G4RayShooter;
51 class G4Region;
52 
54 {
55  public: // with description
57 
58  public:
60 
61  public: // with description
62  void Scan();
63  // The main entry point which triggers ray tracing.
64  // This method is available only if Geant4 is at Idle state.
65 
66  private:
67  void DoScan();
68  // Event loop
69  void StoreUserActions();
70  void RestoreUserActions();
71  // Store and restore user action classes if defined
72 
73  private:
76 
78 
83 
88 
96 
98 
102 
103  public:
104  inline void SetEyePosition(const G4ThreeVector& val) { eyePosition = val; }
105  inline G4ThreeVector GetEyePosition() const { return eyePosition; }
106  inline void SetNTheta(G4int val) { nTheta = val; }
107  inline G4int GetNTheta() const { return nTheta; }
108  inline void SetThetaMin(G4double val) { thetaMin = val; }
109  inline G4double GetThetaMin() const { return thetaMin; }
110  inline void SetThetaSpan(G4double val) { thetaSpan = val; }
111  inline G4double GetThetaSpan() const { return thetaSpan; }
112  inline void SetNPhi(G4int val) { nPhi = val; }
113  inline G4int GetNPhi() const { return nPhi; }
114  inline void SetPhiMin(G4double val) { phiMin = val; }
115  inline G4double GetPhiMin() const { return phiMin; }
116  inline void SetPhiSpan(G4double val) { phiSpan = val; }
117  inline G4double GetPhiSpan() const { return phiSpan; }
118  inline void SetRegionSensitive(G4bool val=true) { regionSensitive = val; }
119  inline G4bool GetRegionSensitive() const { return regionSensitive; }
120  G4bool SetRegionName(const G4String& val);
121  inline G4String GetRegionName() const { return regionName; }
122 
123 };
124 
125 #endif