CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/Geometry/EcalCommonData/interface/DDEcalAPDAlgo.h

Go to the documentation of this file.
00001 #ifndef DD_EcalAPDAlgo_h
00002 #define DD_EcalAPDAlgo_h
00003 
00004 #include <string>
00005 #include <vector>
00006 
00007 #include "DetectorDescription/Base/interface/DDTypes.h"
00008 #include "DetectorDescription/Core/interface/DDName.h"
00009 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
00010 #include "DetectorDescription/Core/interface/DDMaterial.h"
00011 #include "DetectorDescription/Core/interface/DDSplit.h"
00012 #include "DetectorDescription/Core/interface/DDTransform.h"
00013 
00014 class DDEcalAPDAlgo : public DDAlgorithm {
00015 
00016 public:
00017 
00018   //Constructor and Destructor
00019   DDEcalAPDAlgo();
00020   virtual ~DDEcalAPDAlgo();
00021 
00022   void initialize(const DDNumericArguments      & nArgs,
00023                   const DDVectorArguments       & vArgs,
00024                   const DDMapArguments          & mArgs,
00025                   const DDStringArguments       & sArgs,
00026                   const DDStringVectorArguments & vsArgs);
00027   void execute(DDCompactView& cpv);
00028 
00029 protected:
00030 
00031 private:
00032 
00033   DDName     ddname( const std::string& s ) const ;
00034 
00035   const std::vector<double>& vecCerPos()  const { return m_vecCerPos  ; }
00036   int        apdHere () const { return m_APDHere ; }
00037   
00038   DDName     capName () const { return ddname(m_capName) ; }
00039   DDMaterial capMat  () const { return DDMaterial( ddname(m_capMat) ) ; }
00040   double     capXSize() const { return m_capXSize; }
00041   double     capYSize() const { return m_capYSize; }
00042   double     capThick() const { return m_capThick; }
00043 
00044   DDName     cerName () const { return ddname(m_CERName) ; }
00045   DDMaterial cerMat  () const { return DDMaterial( ddname(m_CERMat) ) ; }
00046   double     cerXSize() const { return m_CERXSize; }
00047   double     cerYSize() const { return m_CERYSize; }
00048   double     cerThick() const { return m_CERThick; }
00049 
00050   DDName     bsiName () const { return ddname(m_BSiName) ; }
00051   DDMaterial bsiMat  () const { return DDMaterial( ddname(m_BSiMat) ) ; }
00052   double     bsiXSize() const { return m_BSiXSize; }
00053   double     bsiYSize() const { return m_BSiYSize; }
00054   double     bsiThick() const { return m_BSiThick; }
00055 
00056   DDName     sglName () const { return ddname(m_SGLName) ; }
00057   DDMaterial sglMat  () const { return DDMaterial( ddname(m_SGLMat) ) ; }
00058   double     sglThick() const { return m_SGLThick; }
00059 
00060   DDName     atjName () const { return ddname(m_ATJName) ; }
00061   DDMaterial atjMat  () const { return DDMaterial( ddname(m_ATJMat) ) ; }
00062   double     atjThick() const { return m_ATJThick; }
00063   
00064   DDName     aglName () const { return ddname(m_AGLName) ; }
00065   DDMaterial aglMat  () const { return DDMaterial( ddname(m_AGLMat) ) ; }
00066   double     aglThick() const { return m_AGLThick; }
00067 
00068   DDName     andName () const { return ddname(m_ANDName) ; }
00069   DDMaterial andMat  () const { return DDMaterial( ddname(m_ANDMat) ) ; }
00070   double     andThick() const { return m_ANDThick; }
00071 
00072   DDName     apdName () const { return ddname(m_APDName) ; }
00073   DDMaterial apdMat  () const { return DDMaterial( ddname(m_APDMat) ) ; }
00074   double     apdSide () const { return m_APDSide ; }
00075   double     apdThick() const { return m_APDThick; }
00076   double     apdZ    () const { return m_APDZ    ; }
00077   double     apdX1   () const { return m_APDX1   ; }
00078   double     apdX2   () const { return m_APDX2   ; }
00079 
00080 private:
00081 
00082   std::string              m_idNameSpace; //Namespace of this and ALL sub-parts
00083 
00084   std::vector<double>      m_vecCerPos    ; // Translation
00085   int                      m_APDHere      ;
00086 
00087   std::string              m_capName      ; // Capsule
00088   std::string              m_capMat       ; // 
00089   double                   m_capXSize     ; // 
00090   double                   m_capYSize     ; // 
00091   double                   m_capThick     ; // 
00092 
00093   std::string              m_CERName      ; // Ceramic
00094   std::string              m_CERMat       ; // 
00095   double                   m_CERXSize     ; // 
00096   double                   m_CERYSize     ; // 
00097   double                   m_CERThick     ; // 
00098 
00099   std::string              m_BSiName      ; // Bulk Silicon
00100   std::string              m_BSiMat       ; // 
00101   double                   m_BSiXSize     ; // 
00102   double                   m_BSiYSize     ; // 
00103   double                   m_BSiThick     ; // 
00104 
00105   std::string              m_APDName      ; // APD
00106   std::string              m_APDMat       ; // 
00107   double                   m_APDSide      ; // 
00108   double                   m_APDThick     ; // 
00109   double                   m_APDZ         ; // 
00110   double                   m_APDX1        ; // 
00111   double                   m_APDX2        ; // 
00112 
00113   std::string              m_ATJName      ; // After-The-Junction
00114   std::string              m_ATJMat       ; // 
00115   double                   m_ATJThick     ; // 
00116 
00117   std::string              m_SGLName      ; // APD-Silicone glue
00118   std::string              m_SGLMat       ; // 
00119   double                   m_SGLThick     ; // 
00120 
00121   std::string              m_AGLName      ; // APD-Glue
00122   std::string              m_AGLMat       ; // 
00123   double                   m_AGLThick     ; // 
00124 
00125   std::string              m_ANDName      ; // APD-Non-Depleted
00126   std::string              m_ANDMat       ; // 
00127   double                   m_ANDThick     ; // 
00128 
00129 }; 
00130 
00131 #endif