G4VReadOutGeometry.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 #ifndef G4VReadOutGeometry_h
00032 #define G4VReadOutGeometry_h
00033 
00034 #include "G4SensitiveVolumeList.hh"
00035 #include "G4Step.hh"
00036 #include "G4TouchableHistory.hh"
00037 
00038 class G4Navigator;
00039 
00040 class G4VReadOutGeometry 
00041 {
00042   protected:
00043       virtual G4VPhysicalVolume* Build() = 0;  // must return the world of the ROGeometry;
00044 
00045   public:
00046       G4VReadOutGeometry();
00047       G4VReadOutGeometry(G4String);
00048       virtual ~G4VReadOutGeometry();
00049 
00050       G4int operator==(const G4VReadOutGeometry &right) const;
00051       G4int operator!=(const G4VReadOutGeometry &right) const;
00052 
00053       // buildROGeomety must be invoked to Build (ie Build() method)
00054       // the ROGeometry. It sets up in addition the needed
00055       // the G4Navigator used to navigate inside this ROGeometry.
00056       void BuildROGeometry();
00057       virtual G4bool CheckROVolume(G4Step*,G4TouchableHistory*&);
00058 
00059   protected:
00060       G4VReadOutGeometry(const G4VReadOutGeometry &right);
00061       const G4VReadOutGeometry & operator=(const G4VReadOutGeometry &right);
00062 
00063       virtual G4bool FindROTouchable(G4Step*);
00064 
00065   protected:
00066       G4VPhysicalVolume* ROworld;
00067       G4SensitiveVolumeList* fincludeList;
00068       G4SensitiveVolumeList* fexcludeList;
00069       G4String name;
00070 
00071       G4Navigator*        ROnavigator;
00072       G4TouchableHistory* touchableHistory;
00073 
00074   public:
00075       inline const G4SensitiveVolumeList* GetIncludeList() const
00076       { return fincludeList; }
00077       inline void SetIncludeList(G4SensitiveVolumeList* value)
00078       { fincludeList = value; }
00079       inline const G4SensitiveVolumeList* GetExcludeList() const
00080       { return fexcludeList; }
00081       inline void SetExcludeList(G4SensitiveVolumeList* value)
00082       { fexcludeList = value; }
00083       inline G4String GetName() const
00084       { return name; }
00085       inline void SetName(G4String value)
00086       { name = value; }
00087       // ADDED:
00088       inline G4VPhysicalVolume* GetROWorld() const
00089       { return ROworld;}
00090 };
00091 
00092 
00093 #endif
00094 

Generated on Mon May 27 17:50:20 2013 for Geant4 by  doxygen 1.4.7