00001 #ifndef GEAR_GearMgrImpl_H
00002 #define GEAR_GearMgrImpl_H 1
00003
00004 #include <string>
00005
00006 #include "gear/GearMgr.h"
00007 #include "gear/GearParameters.h"
00008 #include "gear/TPCParameters.h"
00009
00010
00011 namespace gear {
00012
00013
00021 class GearMgrImpl : public GearMgr {
00022
00023 typedef std::map< std::string , GearParameters* > ParameterMap ;
00024
00025 public:
00026
00027
00028 GearMgrImpl() ;
00029
00031 virtual ~GearMgrImpl() { ; }
00032
00038 virtual const GearParameters & getGearParameters(const std::string & key) const
00039 throw (UnknownParameterException, std::exception ) ;
00040
00043 virtual const TPCParameters & getTPCParameters() const
00044 throw (UnknownParameterException, std::exception ) ;
00045
00050 virtual const CalorimeterParameters & getEcalBarrelParameters() const
00051 throw (UnknownParameterException, std::exception ) ;
00052
00057 virtual const CalorimeterParameters & getEcalEndcapParameters() const
00058 throw (UnknownParameterException, std::exception ) ;
00059
00064 virtual const CalorimeterParameters & getHcalBarrelParameters() const
00065 throw (UnknownParameterException, std::exception ) ;
00066
00071 virtual const CalorimeterParameters & getHcalEndcapParameters() const
00072 throw (UnknownParameterException, std::exception ) ;
00073
00078 virtual const GearPointProperties & getPointProperties() const
00079 throw (NotImplementedException, std::exception ) ;
00080
00081
00086 virtual const GearDistanceProperties & getDistanceProperties() const
00087 throw (NotImplementedException, std::exception ) ;
00088
00089
00092 virtual const std::vector<std::string> & getGearParameterKeys() const ;
00093
00094
00098 virtual void setGearParameters( const std::string & key, GearParameters* parameters ) ;
00099
00102 virtual void setTPCParameters( TPCParameters* tpcParameters ) ;
00103
00104
00107 virtual void setEcalBarrelParameters( CalorimeterParameters* ecalBarrelParameters ) ;
00108
00111 virtual void setEcalEndcapParameters( CalorimeterParameters* ecalEndcapParameters ) ;
00112
00115 virtual void setHcalBarrelParameters( CalorimeterParameters* hcalBarrelParameters ) ;
00116
00119 virtual void setHcalEndcapParameters( CalorimeterParameters* hcalEndcapParameters ) ;
00120
00121
00124 virtual void setPointProperties( GearPointProperties* pointProperties) ;
00125
00128 virtual void setDistanceProperties( GearDistanceProperties* distanceProperties) ;
00129
00130
00131
00132
00133 protected:
00134
00135 ParameterMap _map ;
00136 TPCParameters* _tpcParameters ;
00137 CalorimeterParameters* _ecalBarrelParameters ;
00138 CalorimeterParameters* _ecalEndcapParameters ;
00139 CalorimeterParameters* _hcalBarrelParameters ;
00140 CalorimeterParameters* _hcalEndcapParameters ;
00141 GearPointProperties* _pointProperties ;
00142 GearDistanceProperties* _distanceProperties ;
00143
00144 mutable StringVec _keys ;
00145
00146 };
00147 }
00148 #endif