Main Page | Class Hierarchy | Class List | File List | Class Members

LayerLayoutImpl.h

00001 // -*- C++ -*-
00002 // AID-GENERATED
00003 // =========================================================================
00004 // This class was generated by AID - Abstract Interface Definition          
00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
00006 // =========================================================================
00007 #ifndef GEAR_LayerLayoutImpl_H
00008 #define GEAR_LayerLayoutImpl_H 1
00009 
00010 
00011 #include "gear/LayerLayout.h"
00012 #include <vector>
00013 
00014 
00015 namespace gear {
00016   
00024   class LayerLayoutImpl : public LayerLayout {
00025     
00026   public: 
00027     
00029     struct Layer {
00030       double Distance;
00031       double Thickness ;
00032       double AbsorberThickness ;
00033       double CellSize0 ;
00034       double CellSize1 ;
00035     } ;
00036     
00037     typedef std::vector<Layer> LayerVec ;
00038     
00040     virtual ~LayerLayoutImpl() { /* nop */; }
00041     
00044     virtual int getNLayers() const { return _vec.size()  ; }
00045     
00049     virtual double getDistance(int layerIndex) const { return _vec.at( layerIndex ).Distance  ; }
00050     
00054     virtual double getThickness(int layerIndex) const { return _vec.at( layerIndex ).Thickness  ; }
00055     
00059     virtual double getAbsorberThickness(int layerIndex) const { 
00060       return _vec.at( layerIndex ).AbsorberThickness  ; 
00061     }
00062     
00066     virtual double getCellSize0(int layerIndex) const {
00067       return _vec.at( layerIndex ).CellSize0  ; 
00068     }
00069 
00072     virtual double getCellSize1(int layerIndex) const {
00073       return _vec.at( layerIndex ).CellSize1  ; 
00074     }
00075 
00079     virtual void positionLayer(double distance, double thickness, double cellSize0, double cellSize1, double absorberThickness = 0. ) ; 
00080 
00083     virtual void addLayer(double thickness, double cellSize0, double cellSize1, double absorberThickness = 0. ) ; 
00084 
00085   protected:
00086     LayerVec _vec ;
00087     
00088   }; // class
00089 
00090 } // namespace gear
00091 
00092 #endif /* ifndef GEAR_LayerLayoutImpl_H */

Generated on Tue Sep 5 11:36:29 2006 for Gear by doxygen 1.3.5