| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SolidTrd.h

Go to the documentation of this file.
00001 // $Id: SolidTrd.h,v 1.11 2007/03/16 15:57:09 cattanem Exp $ 
00002 // ===========================================================================
00003 #ifndef     DETDESC_SOLIDTRD_H
00004 #define     DETDESC_SOLIDTRD_H 1 
00006 #include <cmath>
00007 #include <iostream> 
00009 #include "DetDesc/SolidBase.h" 
00010 #include "DetDesc/SolidPolyHedronHelper.h" 
00012 template <class TYPE> 
00013 class SolidFactory;
00014 
00015 
00024 class SolidTrd: public    virtual SolidBase             ,
00025                 protected virtual SolidPolyHedronHelper 
00026 {
00028   friend class SolidFactory<SolidTrd>;
00029   
00030  public:
00031   
00041   SolidTrd( const std::string& name         ,
00042             const double       zHalfLength  , 
00043             const double       XHalfLength1 , 
00044             const double       YHalfLength1 , 
00045             const double       XHalfLength2 , 
00046             const double       YHalfLength2 );
00047   
00049   virtual ~SolidTrd();
00050 
00056   inline std::string typeName () const { return "SolidTrd"; };
00057   
00065   const ISolid* cover () const;
00066   
00075   virtual std::ostream& printOut ( std::ostream& os = std::cout ) const;
00076   
00085   virtual MsgStream&    printOut   ( MsgStream&  os             ) const;
00086   
00090   inline       double                xHalfLength1() const 
00091   { return m_trd_xHalfLength1; };
00092 
00096   inline       double                xHalfLength2() const 
00097   { return m_trd_xHalfLength2; };
00098 
00102   inline       double                yHalfLength1() const 
00103   { return m_trd_yHalfLength1; };
00104   
00108   inline       double                yHalfLength2() const 
00109   { return m_trd_yHalfLength2; };
00110   
00114   inline       double                zHalfLength () const 
00115   { return m_trd_zHalfLength; };
00116 
00120   inline       double                xLength1    () const 
00121   { return m_trd_xHalfLength1 * 2 ; };
00122   
00126   inline       double                xLength2    () const 
00127   { return m_trd_xHalfLength2 * 2 ; };
00128   
00132   inline       double                yLength1    () const 
00133   { return m_trd_yHalfLength1 * 2 ; };
00134 
00138   inline       double                yLength2    () const 
00139   { return m_trd_yHalfLength2 * 2 ; };
00140 
00144   inline       double                zLength     () const 
00145   { return m_trd_zHalfLength  * 2 ; };
00146   
00147   //
00148 protected:
00149   
00153   SolidTrd( const std::string& name = "Anonymous TRD");
00155 private:
00156   
00160   void makeAll() ; 
00161   
00162 private:
00163   
00164 
00165   SolidTrd( const SolidTrd & );  // no copy-constructor 
00166   SolidTrd& operator=( const SolidTrd & );  // no assignment 
00167 
00168 private:
00169   
00171 
00172   double                 m_trd_zHalfLength  ;
00173   double                 m_trd_xHalfLength1 ;
00174   double                 m_trd_xHalfLength2 ;
00175   double                 m_trd_yHalfLength1 ;
00176   double                 m_trd_yHalfLength2 ;
00178 };
00179 
00181 #endif 
00182 
00183 
00184 
00185 
00186 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:13 2011 for DetDesc by doxygen 1.4.7