00001 #ifndef GEAR_CalorimeterParametersImpl_H
00002 #define GEAR_CalorimeterParametersImpl_H 1
00003
00004 #include <vector>
00005
00006 #include "gear/CalorimeterParameters.h"
00007 #include "gearimpl/GearParametersImpl.h"
00008 #include "gearimpl/LayerLayoutImpl.h"
00009
00010 namespace gear {
00011
00012 class LayerLayoutImpl ;
00013
00020 class CalorimeterParametersImpl : public GearParametersImpl, public CalorimeterParameters {
00021
00022 public:
00023
00026 CalorimeterParametersImpl(double rMin, double zMax, int symOrder=8, double phi0=0.0) ;
00027
00028
00031 CalorimeterParametersImpl(double rMin, double rMax, double zMin, int symOrder=2, double phi0=0.0) ;
00032
00033
00035 virtual ~CalorimeterParametersImpl() { ; }
00036
00037
00039 virtual const LayerLayout & getLayerLayout() const { return _layout ; }
00040
00044 virtual int getLayoutType() const { return _type ; }
00045
00048 virtual const std::vector<double>& getExtent() const ;
00049
00050
00057 virtual int getSymmetryOrder() const { return _sym ; }
00058
00061 virtual double getPhi0() const { return _phi ; }
00062
00063
00064 virtual LayerLayoutImpl& layerLayout() { return _layout ; }
00065
00066 protected:
00067
00068 int _type ;
00069 int _sym ;
00070 double _phi ;
00071 LayerLayoutImpl _layout ;
00072 mutable std::vector<double> _extent ;
00073
00074 };
00075 }
00076 #endif