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

In This Package:

LAssembly.h

Go to the documentation of this file.
00001 // $Id: LAssembly.h,v 1.13 2006/12/14 13:03:38 ranjard Exp $
00002 // ============================================================================
00003 // CVS tag $Name: v18r12 $ 
00004 // ============================================================================
00005 #ifndef DETDESC_LASSEMBLY_H 
00006 #define DETDESC_LASSEMBLY_H 1
00007 // Include files
00008 // from DetDesc 
00009 #include "DetDesc/LogVolBase.h"
00010 #include "DetDesc/CLIDLAssembly.h"
00011 #include "DetDesc/DetDesc.h"
00012 
00013 template <class TYPE>
00014 class DataObjectFactory;
00015 
00016 static const std::string EmptyString("");
00017 
00028 class LAssembly : 
00029   public LogVolBase
00030 {
00032   friend class DataObjectFactory<LAssembly>;
00033   
00034 public:
00035   
00042   LAssembly
00043   ( const std::string& name             , 
00044     const std::string& sensitivity = "" ,
00045     const std::string& magnetic    = "" );
00046   
00048   virtual ~LAssembly();
00049   
00050 public:  
00051   
00060   inline virtual bool            
00061   isAssembly () const { return true    ; } 
00062   
00067   inline virtual const ISolid*   
00068   solid      () const { return 0       ; }
00069   
00076   inline virtual const Material* 
00077   material   () const { return 0       ; };
00078   
00083   inline virtual const std::string&  
00084   materialName () const { return EmptyString; }
00085 
00092   inline virtual bool isInside 
00093   ( const Gaudi::XYZPoint& LocalPoint ) const
00094   { return isInsideDaughter( LocalPoint ) ; };
00095 
00105   virtual StatusCode belongsTo
00106   ( const Gaudi::XYZPoint&        LocalPoint  ,
00107     const int                Level       , 
00108     ILVolume::PVolumePath&   pVolumePath ) const ;
00109   
00119   virtual StatusCode belongsTo
00120   ( const Gaudi::XYZPoint&        LocalPoint  ,
00121     const int                Level       , 
00122     ILVolume::ReplicaPath&   replicaPath ) const  ;
00123   
00144   virtual unsigned int intersectLine
00145   ( const Gaudi::XYZPoint        & Point         , 
00146     const Gaudi::XYZVector       & Vector        , 
00147     ILVolume::Intersections & intersections , 
00148     const double              threshold     ) const ;
00149   
00172   virtual unsigned int intersectLine
00173   ( const Gaudi::XYZPoint         & Point         , 
00174     const Gaudi::XYZVector        & Vector        , 
00175     ILVolume::Intersections  & intersections , 
00176     const ISolid::Tick         tickMin       , 
00177     const ISolid::Tick         tickMax       , 
00178     const double               Threshold     ) const ;
00179 
00180   
00184   static  const CLID& classID ()           ;
00185   
00189   virtual const CLID& clID    ()     const ;
00190   
00196   virtual std::ostream& printOut 
00197   ( std::ostream & os = std::cout ) const ;
00198   
00204   virtual MsgStream&    printOut
00205   ( MsgStream    & os             ) const;
00206 
00207   double xMin() const   { return m_xMin;  }
00208   double xMax() const   { return m_xMax;  }
00209   double yMin() const   { return m_yMin;  }
00210   double yMax() const   { return m_yMax;  }
00211   double zMin() const   { return m_zMin;  }
00212   double zMax() const   { return m_zMax;  }
00213   
00214   void   computeCover ();
00215   //protected:
00216   
00219   LAssembly();
00220 
00221 private:
00222   double m_xMin;
00223   double m_xMax;
00224   double m_yMin;
00225   double m_yMax;
00226   double m_zMin;
00227   double m_zMax;
00228   bool   m_coverComputed;
00229   
00230 };
00231 
00232 // ============================================================================
00233 // The End 
00234 // ============================================================================
00235 #endif // DETDESC_LASSEMBLY_H
00236 // ============================================================================
| 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