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

In This Package:

IDetectorElement.h

Go to the documentation of this file.
00001 // $Id: IDetectorElement.h,v 1.22 2008/10/28 12:04:36 cattanem Exp $
00002 // $ID:  $
00003 #ifndef  DETDESC_IDETECTORELEMENT_H
00004 #define  DETDESC_IDETECTORELEMENT_H 1
00005 
00006 // Include files
00007 #include <iostream>
00008 #include <string>
00009 
00010 // Framework include files
00011 #include "GaudiKernel/IInterface.h"
00012 #include "GaudiKernel/SmartRef.h"
00013 #include "GaudiKernel/Point3DTypes.h"
00014 
00015 // Forward declarations
00016 class IGeometryInfo;
00017 class IAlignment;
00018 class ICalibration;
00019 class IReadOut;
00020 class ISlowControl;
00021 class IFastControl;
00022 
00023 class Condition;
00024 class ParamValidDataObject;
00025 
00029 static const InterfaceID IID_IDetectorElement( 156 , 2 , 2 );
00030 
00042 class IDetectorElement : virtual public IInterface
00043 {
00045  public:
00047   typedef std::vector<IDetectorElement*>   IDEContainer;
00049  public:
00050 
00054   static const InterfaceID& interfaceID() { return IID_IDetectorElement; }
00055 
00057   virtual          const std::string&   name       ()   const = 0;
00058 
00060   virtual bool hasCondition(const std::string &name) const = 0;
00061 
00063   virtual SmartRef<Condition> condition(const std::string &name) const = 0;
00064 
00069   virtual                IGeometryInfo* geometry   ()         = 0;
00071   virtual          const IGeometryInfo* geometry   ()   const = 0;
00073   virtual                IAlignment*    alignment  ()         = 0;
00075   virtual          const IAlignment*    alignment  ()   const = 0;
00077   virtual                ICalibration*  calibration()         = 0;
00079   virtual          const ICalibration*  calibration()   const = 0;
00081   virtual                IReadOut*      readOut    ()         = 0;
00083   virtual          const IReadOut*      readOut    ()   const = 0;
00085   virtual                ISlowControl*  slowControl()         = 0;
00087   virtual          const ISlowControl*  slowControl()   const = 0;
00089   virtual                IFastControl*  fastControl()         = 0;
00090   // "accessor":  delegates the IFastControl Interface (const)
00091   virtual          const IFastControl*  fastControl()   const = 0;
00094   virtual operator       IGeometryInfo*()                     = 0;
00096   virtual operator const IGeometryInfo*()               const = 0;
00098   virtual operator       IAlignment*   ()                     = 0;
00100   virtual operator const IAlignment*   ()               const = 0;
00102   virtual operator       ICalibration* ()                     = 0;
00104   virtual operator const ICalibration* ()               const = 0;
00106   virtual operator       IReadOut*     ()                     = 0;
00108   virtual operator const IReadOut*     ()               const = 0;
00110   virtual operator       ISlowControl* ()                     = 0;
00112   virtual operator const ISlowControl* ()               const = 0;
00114   virtual operator       IFastControl* ()                     = 0;
00116   virtual operator const IFastControl* ()               const = 0;
00117 
00119 
00121   virtual operator       IGeometryInfo&()                     = 0;
00123   virtual operator const IGeometryInfo&()               const = 0;
00125   virtual operator       IAlignment&   ()                     = 0;
00127   virtual operator const IAlignment&   ()               const = 0;
00129   virtual operator       ICalibration& ()                     = 0;
00131   virtual operator const ICalibration& ()               const = 0;
00133   virtual operator       IReadOut&     ()                     = 0;
00135   virtual operator const IReadOut&     ()               const = 0;
00137   virtual operator       ISlowControl& ()                     = 0;
00139   virtual operator const ISlowControl& ()               const = 0;
00141   virtual operator       IFastControl& ()                     = 0;
00143   virtual operator const IFastControl& ()               const = 0;
00144 
00148   virtual IDetectorElement*  parentIDetectorElement() const  = 0 ;
00150   virtual IDetectorElement::IDEContainer&
00151   childIDetectorElements() const = 0;
00154   virtual IDetectorElement::IDEContainer::iterator childBegin() = 0;
00155   virtual IDetectorElement::IDEContainer::const_iterator childBegin() const = 0;
00157   virtual IDetectorElement::IDEContainer::iterator childEnd() = 0 ;
00158   virtual IDetectorElement::IDEContainer::const_iterator childEnd() const = 0 ;
00160   virtual std::ostream&  printOut      ( std::ostream& ) const = 0;
00162   virtual       IDetectorElement* reset()       = 0 ;
00163 
00168   virtual const ParamValidDataObject *params() const = 0;
00169 
00175   virtual int sensitiveVolumeID(const Gaudi::XYZPoint& globalPos ) const=0;
00176 
00182   virtual StatusCode initialize() = 0;
00183 
00185   virtual ~IDetectorElement() ;
00186 
00187 };
00189 inline std::ostream& operator<<( std::ostream&           os ,
00190                                  const IDetectorElement& de )
00191 {
00192   return de.printOut(os);
00193 };
00195 inline std::ostream& operator<<( std::ostream&           os ,
00196                                  const IDetectorElement* de )
00197 {
00198   return
00199     ( (0 == de) ? (os << "IDetectorElement* points to NULL") : (os << *de) ) ;
00200 };
00201 
00203 #endif  
00204 
00205 
00206 
00207 
00208 
00209 
00210 
00211 
00212 
00213 
| 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