G4MaterialScanner.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 //
00030 
00031 
00032 #ifndef G4MaterialScanner_H
00033 #define G4MaterialScanner_H 1
00034 
00035 // class description:
00036 //
00037 // G4MaterialScanner
00038 //
00039 
00040 #include "globals.hh"
00041 #include "G4ThreeVector.hh"
00042 
00043 class G4Event;
00044 class G4EventManager;
00045 class G4UserEventAction;
00046 class G4UserStackingAction;
00047 class G4UserTrackingAction;
00048 class G4UserSteppingAction;
00049 class G4MSSteppingAction;
00050 class G4MatScanMessenger;
00051 class G4RayShooter;
00052 class G4Region;
00053 
00054 class G4MaterialScanner
00055 {
00056   public: // with description
00057     G4MaterialScanner();
00058 
00059   public:
00060     ~G4MaterialScanner();
00061 
00062   public: // with description
00063     void Scan();
00064     // The main entry point which triggers ray tracing.
00065     // This method is available only if Geant4 is at Idle state.
00066 
00067   private:
00068     void DoScan();
00069     // Event loop
00070     void StoreUserActions();
00071     void RestoreUserActions();
00072     // Store and restore user action classes if defined
00073 
00074   private:
00075     G4RayShooter * theRayShooter;
00076     G4MatScanMessenger * theMessenger;
00077 
00078     G4EventManager * theEventManager;
00079 
00080     G4UserEventAction * theUserEventAction;
00081     G4UserStackingAction * theUserStackingAction;
00082     G4UserTrackingAction * theUserTrackingAction;
00083     G4UserSteppingAction * theUserSteppingAction;
00084 
00085     G4UserEventAction * theMatScannerEventAction;
00086     G4UserStackingAction * theMatScannerStackingAction;
00087     G4UserTrackingAction * theMatScannerTrackingAction;
00088     G4MSSteppingAction * theMatScannerSteppingAction;
00089 
00090     G4ThreeVector eyePosition;
00091     G4int nTheta;
00092     G4double thetaMin;
00093     G4double thetaSpan;
00094     G4int nPhi;
00095     G4double phiMin;
00096     G4double phiSpan;
00097 
00098     G4ThreeVector eyeDirection;
00099 
00100     G4bool regionSensitive;
00101     G4String regionName;
00102     G4Region* theRegion;
00103 
00104   public:
00105     inline void SetEyePosition(const G4ThreeVector& val) { eyePosition = val; }
00106     inline G4ThreeVector GetEyePosition() const { return eyePosition; }
00107     inline void SetNTheta(G4int val) { nTheta = val; }
00108     inline G4int GetNTheta() const { return nTheta; }
00109     inline void SetThetaMin(G4double val) { thetaMin = val; }
00110     inline G4double GetThetaMin() const { return thetaMin; }
00111     inline void SetThetaSpan(G4double val) { thetaSpan = val; }
00112     inline G4double GetThetaSpan() const { return thetaSpan; }
00113     inline void SetNPhi(G4int val) { nPhi = val; }
00114     inline G4int GetNPhi() const { return nPhi; }
00115     inline void SetPhiMin(G4double val) { phiMin = val; }
00116     inline G4double GetPhiMin() const { return phiMin; }
00117     inline void SetPhiSpan(G4double val) { phiSpan = val; }
00118     inline G4double GetPhiSpan() const { return phiSpan; }
00119     inline void SetRegionSensitive(G4bool val=true) { regionSensitive = val; }
00120     inline G4bool GetRegionSensitive() const { return regionSensitive; }
00121     G4bool SetRegionName(const G4String& val);
00122     inline G4String GetRegionName() const { return regionName; }
00123 
00124 };
00125 
00126 #endif

Generated on Mon May 27 17:48:51 2013 for Geant4 by  doxygen 1.4.7