GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
GearPointProperties.h
1 // -*- C++ -*-
2 #ifndef GEAR_GEARPOINTPROPERTIES_H
3 #define GEAR_GEARPOINTPROPERTIES_H 1
4 
5 #include <string>
6 #include <vector>
7 
8 #include "GEAR.h"
9 
10 namespace gear {
11 
21 
22 public:
24  virtual ~GearPointProperties() { /* nop */; }
25 
26  //vec getPosition returns the current position (if ID is known)
29  virtual long64 getCellID(const Vector3D & pos) const = 0;
30 
31  // bool getMaterial (true if defined material, false if problem)
34  virtual const std::string & getMaterialName(const Vector3D & pos) const = 0;
35 
38  virtual double getDensity(const Vector3D & pos) const = 0;
39 
40 // /** Name of material at pos.
41 // */
42 // public double getState( const Vector3D& pos) const throws NotImplementedException ;
45  virtual double getTemperature(const Vector3D & pos) const = 0;
46 
49  virtual double getPressure(const Vector3D & pos) const = 0;
50 
53  virtual double getRadlen(const Vector3D & pos) const = 0;
54 
57  virtual double getIntlen(const Vector3D & pos) const = 0;
58 
61  virtual Vector3D getLocalPosition(const Vector3D & pos) const = 0;
62 
65  virtual Vector3D getB(const Vector3D & pos) const = 0;
66 
69  virtual Vector3D getE(const Vector3D & pos) const = 0;
70 
73  virtual std::vector<std::string> getListOfLogicalVolumes(const Vector3D & pos) const = 0;
74 
77  virtual std::vector<std::string> getListOfPhysicalVolumes(const Vector3D & pos) const = 0;
78 
81  virtual std::string getRegion(const Vector3D & pos) const = 0;
82 
85  virtual bool isTracker(const Vector3D & pos) const = 0;
86 
89  virtual bool isCalorimeter(const Vector3D & pos) const = 0;
90 }; // class
91 } // namespace gear
92 #endif /* ifndef GEAR_GEARPOINTPROPERTIES_H */
virtual Vector3D getE(const Vector3D &pos) const =0
The electric field vector at pos in [V/m].
virtual double getIntlen(const Vector3D &pos) const =0
Interaction length of material in mm at pos.
virtual long64 getCellID(const Vector3D &pos) const =0
The cellID of the the sensitive detector at pos.
virtual double getTemperature(const Vector3D &pos) const =0
Name of material at pos.
Simple three dimensional vector providing the components for cartesian, cylindrical and spherical coo...
Definition: Vector3D.h:18
virtual ~GearPointProperties()
Destructor.
virtual double getDensity(const Vector3D &pos) const =0
Density in kg/m^3 at pos.
long long long64
64 bit integer,e.g.to be used for cellids
Definition: GEAR.h:32
virtual Vector3D getLocalPosition(const Vector3D &pos) const =0
Position in local coordinate.
virtual std::vector< std::string > getListOfLogicalVolumes(const Vector3D &pos) const =0
Names of (geant4) logical volumes in heirarchy starting at given pos ending with the world volume...
virtual double getRadlen(const Vector3D &pos) const =0
Radiation length of material in mm at pos.
virtual bool isTracker(const Vector3D &pos) const =0
True if region that contains pos is defined as a tracker.
virtual std::string getRegion(const Vector3D &pos) const =0
Names of (geant4) region that contains the given pos.
virtual const std::string & getMaterialName(const Vector3D &pos) const =0
Name of material at pos.
virtual Vector3D getB(const Vector3D &pos) const =0
The magnetic field vector at pos in [Tesla].
virtual double getPressure(const Vector3D &pos) const =0
Pressure in P at pos.
Abstract interface for a class that returns the (material) properties of a given point in in world co...
virtual bool isCalorimeter(const Vector3D &pos) const =0
True if region that contains pos is defined as a calorimeter.
virtual std::vector< std::string > getListOfPhysicalVolumes(const Vector3D &pos) const =0
Names of (geant4) physical volumes in heirarchy starting at given pos ending with the world volume...