00001 // $ID: $ 00002 00003 #ifndef SIMSVC_ISIMULATIONSVC_H 00004 #define SIMSVC_ISIMULATIONSVC_H 00005 00006 // Include files 00007 #include "GaudiKernel/IInterface.h" 00008 00009 #include "SimSvc/SimAttribute.h" 00010 #include "SimSvc/RegionCuts.h" 00011 #include <map> 00012 00013 // Forward and external declarations 00014 class ILVolume; 00015 00017 static const InterfaceID IID_ISimulationSvc(948, 1 , 0); 00018 00019 00030 class ISimulationSvc : virtual public IInterface { 00031 00032 public: 00033 00034 // typedefs used 00035 typedef std::map<int, const SimAttribute*> PartAttr; 00036 typedef std::vector<RegionCuts> VectOfRegCuts; 00037 00039 static const InterfaceID& interfaceID() { return IID_ISimulationSvc; } 00040 00048 virtual const PartAttr* simAttribute (const ILVolume* vol) const = 0; 00049 00057 virtual const PartAttr* simAttribute (const std::string volname) const = 0; 00058 00064 virtual const bool hasSimAttribute (const ILVolume* vol) const = 0; 00065 00071 virtual const bool hasSimAttribute (const std::string volname) const = 0; 00072 00078 virtual const std::vector<RegionCuts>* regionsDefs () const = 0; 00079 00083 virtual void reload () = 0; 00084 00085 }; 00086 00087 #endif // SIMSVC_ISIMULATIONSVC_H