00001
00002
00003
00004
00005
00006
00007 #ifndef GEAR_GEARPOINTPROPERTIES_H
00008 #define GEAR_GEARPOINTPROPERTIES_H 1
00009
00010 #include <string>
00011 #include <vector>
00012
00013 #include "GEAR.h"
00014
00015 namespace gear {
00016
00017 class Point3D;
00018
00027 class GearPointProperties {
00028
00029 public:
00031 virtual ~GearPointProperties() { ; }
00032
00033
00036 virtual int getCellID(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00037
00038
00041 virtual const std::string & getMaterialName(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00042
00045 virtual double getDensity(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00046
00047
00048
00049
00052 virtual double getTemperature(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00053
00056 virtual double getPressure(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00057
00060 virtual double getRadlen(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00061
00064 virtual double getIntlen(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00065
00068 virtual Point3D getLocalPosition(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00069
00072 virtual double getB(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00073
00076 virtual double getE(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00077
00080 virtual std::vector<std::string> getListOfLogicalVolumes(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00081
00084 virtual std::vector<std::string> getListOfPhysicalVolumes(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00085
00088 virtual std::string getRegion(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00089
00092 virtual bool isTracker(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00093
00096 virtual bool isCalorimeter(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00097 };
00098 }
00099 #endif