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 VXDParameters & getVXDParameters() const
00079 throw (UnknownParameterException, std::exception ) ;
00080
00085 virtual const GearPointProperties & getPointProperties() const
00086 throw (NotImplementedException, std::exception ) ;
00087
00088
00093 virtual const GearDistanceProperties & getDistanceProperties() const
00094 throw (NotImplementedException, std::exception ) ;
00095
00096
00099 virtual const std::vector<std::string> & getGearParameterKeys() const ;
00100
00101
00105 virtual void setGearParameters( const std::string & key, GearParameters* parameters ) ;
00106
00109 virtual void setTPCParameters( TPCParameters* tpcParameters ) ;
00110
00111
00114 virtual void setEcalBarrelParameters( CalorimeterParameters* ecalBarrelParameters ) ;
00115
00118 virtual void setEcalEndcapParameters( CalorimeterParameters* ecalEndcapParameters ) ;
00119
00122 virtual void setHcalBarrelParameters( CalorimeterParameters* hcalBarrelParameters ) ;
00123
00126 virtual void setHcalEndcapParameters( CalorimeterParameters* hcalEndcapParameters ) ;
00127
00130 virtual void setVXDParameters( VXDParameters * vxdParameters ) ;
00131
00134 virtual void setPointProperties( GearPointProperties* pointProperties) ;
00135
00138 virtual void setDistanceProperties( GearDistanceProperties* distanceProperties) ;
00139
00140
00141
00142
00143 protected:
00144
00145 ParameterMap _map ;
00146 TPCParameters* _tpcParameters ;
00147 CalorimeterParameters* _ecalBarrelParameters ;
00148 CalorimeterParameters* _ecalEndcapParameters ;
00149 CalorimeterParameters* _hcalBarrelParameters ;
00150 CalorimeterParameters* _hcalEndcapParameters ;
00151 VXDParameters* _vxdParameters ;
00152 GearPointProperties* _pointProperties ;
00153 GearDistanceProperties* _distanceProperties ;
00154
00155 mutable StringVec _keys ;
00156
00157 };
00158 }
00159 #endif