CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Geometry/EcalTestBeam/plugins/DDTBH4Algo.h

Go to the documentation of this file.
00001 #ifndef EcalTestBeam_DDTBH4Algo_h
00002 #define EcalTestBeam_DDTBH4Algo_h
00003 
00004 #include <map>
00005 #include <string>
00006 #include <vector>
00007 #include "DetectorDescription/Base/interface/DDTypes.h"
00008 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
00009 #include "DetectorDescription/Core/interface/DDMaterial.h"
00010 #include "DetectorDescription/Core/interface/DDTransform.h"
00011 
00012 //CLHEP 
00013 #include <CLHEP/Geometry/Transform3D.h>
00014 
00015 class DDTBH4Algo : public DDAlgorithm {
00016  public:
00017   //Constructor and Destructor
00018   DDTBH4Algo(); 
00019   virtual ~DDTBH4Algo();
00020   
00021   void initialize(const DDNumericArguments & nArgs,
00022                   const DDVectorArguments & vArgs,
00023                   const DDMapArguments & mArgs,
00024                   const DDStringArguments & sArgs,
00025                   const DDStringVectorArguments & vsArgs);
00026 
00027   void execute(DDCompactView& cpv);
00028 
00029       DDMaterial ddmat(  const std::string& s ) const ;
00030       DDName     ddname( const std::string& s ) const ;
00031       DDRotation myrot(  const std::string& s,
00032                          const CLHEP::HepRotation& r ) const ;
00033 
00034       const std::string&         idNameSpace() const { return m_idNameSpace   ; }
00035 
00036       double                   blZBeg      () const { return m_BLZBeg      ; }
00037       double                   blZEnd      () const { return m_BLZEnd      ; }
00038       double                   blZPiv      () const { return m_BLZPiv      ; }
00039       double                   blRadius    () const { return m_BLRadius    ; }
00040       std::string              vacName     () const { return m_VacName    ; }
00041       DDMaterial                      vacMat      () const { return ddmat(m_VacMat); }
00042       const std::vector<double>&      vecVacZBeg  () const { return m_vecVacZBeg  ; }
00043       const std::vector<double>&      vecVacZEnd  () const { return m_vecVacZEnd  ; }
00044       std::string                     winName     () const { return m_WinName    ; }
00045       const std::vector<std::string>& vecWinMat   () const { return m_vecWinMat     ; }
00046       const std::vector<double>&      vecWinZBeg  () const { return m_vecWinZBeg ; }
00047       const std::vector<double>&      vecWinThick () const { return m_vecWinThick; }
00048 
00049       DDMaterial                      trgMat      () const { return ddmat(m_TrgMat)  ; } 
00050       DDMaterial                      holeMat     () const { return ddmat(m_HoleMat)  ; } 
00051       double                          trgVetoHoleRadius() const { return m_TrgVetoHoleRadius; }
00052       const std::vector<std::string>& vecTrgName  () const { return m_vecTrgName  ; } 
00053       const std::vector<double>&      vecTrgSide () const { return m_vecTrgSide ; } 
00054       const std::vector<double>&      vecTrgThick() const { return m_vecTrgThick; } 
00055       const std::vector<double>&      vecTrgPhi  () const { return m_vecTrgPhi  ; } 
00056       const std::vector<double>&      vecTrgXOff () const { return m_vecTrgXOff ; } 
00057       const std::vector<double>&      vecTrgYOff () const { return m_vecTrgYOff ; } 
00058       const std::vector<double>&      vecTrgZPiv () const { return m_vecTrgZPiv ; } 
00059 
00060       DDName                         fibFibName  () const { return ddname(m_FibFibName)  ; } 
00061       DDName                         fibCladName () const { return ddname(m_FibCladName) ; } 
00062       DDMaterial                     fibFibMat   () const { return ddmat(m_FibFibMat)   ; } 
00063       DDMaterial                     fibCladMat  () const { return ddmat(m_FibCladMat)  ; } 
00064       double                         fibSide     () const { return m_FibSide  ; } 
00065       double                         fibCladThick() const { return m_FibCladThick; } 
00066       double                         fibLength   () const { return m_FibLength   ; } 
00067       const std::vector<double>&     vecFibPhi   () const { return m_vecFibPhi   ; } 
00068       const std::vector<double>&     vecFibXOff  () const { return m_vecFibXOff  ; } 
00069       const std::vector<double>&     vecFibYOff  () const { return m_vecFibYOff  ; } 
00070       const std::vector<double>&     vecFibZPiv  () const { return m_vecFibZPiv  ; }
00071 
00072 private:
00073       std::string         m_idNameSpace;            //Namespace of this and ALL sub-parts
00074 
00075       double                   m_BLZBeg      ; //
00076       double                   m_BLZEnd      ; //
00077       double                   m_BLZPiv      ; //
00078       double                   m_BLRadius    ; //
00079       std::string              m_VacName     ; // 
00080       std::string              m_VacMat      ; // 
00081       std::vector<double>      m_vecVacZBeg  ; // 
00082       std::vector<double>      m_vecVacZEnd  ; // 
00083       std::string              m_WinName     ; // 
00084       std::vector<std::string> m_vecWinMat   ; // 
00085       std::vector<double>      m_vecWinZBeg  ; // 
00086       std::vector<double>      m_vecWinThick ; // 
00087 
00088       std::string              m_TrgMat      ; // 
00089       std::string              m_HoleMat      ; // 
00090       double                   m_TrgVetoHoleRadius    ; //
00091       std::vector<std::string> m_vecTrgName  ; // 
00092       std::vector<double>      m_vecTrgSide ; // 
00093       std::vector<double>      m_vecTrgThick; // 
00094       std::vector<double>      m_vecTrgPhi  ; // 
00095       std::vector<double>      m_vecTrgXOff ; // 
00096       std::vector<double>      m_vecTrgYOff ; // 
00097       std::vector<double>      m_vecTrgZPiv ; // 
00098 
00099       std::string              m_FibFibName  ; // 
00100       std::string              m_FibCladName ; // 
00101       std::string              m_FibFibMat   ; // 
00102       std::string              m_FibCladMat  ; // 
00103       double                   m_FibSide     ; //
00104       double                   m_FibCladThick; //
00105       double                   m_FibLength   ; //
00106       std::vector<double>      m_vecFibPhi   ; // 
00107       std::vector<double>      m_vecFibXOff  ; // 
00108       std::vector<double>      m_vecFibYOff  ; // 
00109       std::vector<double>      m_vecFibZPiv  ; // 
00110 
00111 };
00112 
00113 #endif