Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:36

0001 #ifndef EcalTestBeam_DDTBH4Algo_h
0002 #define EcalTestBeam_DDTBH4Algo_h
0003 
0004 #include <map>
0005 #include <string>
0006 #include <vector>
0007 #include "DetectorDescription/Core/interface/DDTypes.h"
0008 #include "DetectorDescription/Core/interface/DDAlgorithm.h"
0009 #include "DetectorDescription/Core/interface/DDMaterial.h"
0010 #include "DetectorDescription/Core/interface/DDTransform.h"
0011 
0012 //CLHEP
0013 #include <CLHEP/Geometry/Transform3D.h>
0014 
0015 class DDTBH4Algo : public DDAlgorithm {
0016 public:
0017   //Constructor and Destructor
0018   DDTBH4Algo();
0019   ~DDTBH4Algo() override;
0020 
0021   void initialize(const DDNumericArguments& nArgs,
0022                   const DDVectorArguments& vArgs,
0023                   const DDMapArguments& mArgs,
0024                   const DDStringArguments& sArgs,
0025                   const DDStringVectorArguments& vsArgs) override;
0026 
0027   void execute(DDCompactView& cpv) override;
0028 
0029   DDMaterial ddmat(const std::string& s) const;
0030   DDName ddname(const std::string& s) const;
0031   DDRotation myrot(const std::string& s, const CLHEP::HepRotation& r) const;
0032 
0033   const std::string& idNameSpace() const { return m_idNameSpace; }
0034 
0035   double blZBeg() const { return m_BLZBeg; }
0036   double blZEnd() const { return m_BLZEnd; }
0037   double blZPiv() const { return m_BLZPiv; }
0038   double blRadius() const { return m_BLRadius; }
0039   std::string vacName() const { return m_VacName; }
0040   DDMaterial vacMat() const { return ddmat(m_VacMat); }
0041   const std::vector<double>& vecVacZBeg() const { return m_vecVacZBeg; }
0042   const std::vector<double>& vecVacZEnd() const { return m_vecVacZEnd; }
0043   std::string winName() const { return m_WinName; }
0044   const std::vector<std::string>& vecWinMat() const { return m_vecWinMat; }
0045   const std::vector<double>& vecWinZBeg() const { return m_vecWinZBeg; }
0046   const std::vector<double>& vecWinThick() const { return m_vecWinThick; }
0047 
0048   DDMaterial trgMat() const { return ddmat(m_TrgMat); }
0049   DDMaterial holeMat() const { return ddmat(m_HoleMat); }
0050   double trgVetoHoleRadius() const { return m_TrgVetoHoleRadius; }
0051   const std::vector<std::string>& vecTrgName() const { return m_vecTrgName; }
0052   const std::vector<double>& vecTrgSide() const { return m_vecTrgSide; }
0053   const std::vector<double>& vecTrgThick() const { return m_vecTrgThick; }
0054   const std::vector<double>& vecTrgPhi() const { return m_vecTrgPhi; }
0055   const std::vector<double>& vecTrgXOff() const { return m_vecTrgXOff; }
0056   const std::vector<double>& vecTrgYOff() const { return m_vecTrgYOff; }
0057   const std::vector<double>& vecTrgZPiv() const { return m_vecTrgZPiv; }
0058 
0059   DDName fibFibName() const { return ddname(m_FibFibName); }
0060   DDName fibCladName() const { return ddname(m_FibCladName); }
0061   DDMaterial fibFibMat() const { return ddmat(m_FibFibMat); }
0062   DDMaterial fibCladMat() const { return ddmat(m_FibCladMat); }
0063   double fibSide() const { return m_FibSide; }
0064   double fibCladThick() const { return m_FibCladThick; }
0065   double fibLength() const { return m_FibLength; }
0066   const std::vector<double>& vecFibPhi() const { return m_vecFibPhi; }
0067   const std::vector<double>& vecFibXOff() const { return m_vecFibXOff; }
0068   const std::vector<double>& vecFibYOff() const { return m_vecFibYOff; }
0069   const std::vector<double>& vecFibZPiv() const { return m_vecFibZPiv; }
0070 
0071 private:
0072   std::string m_idNameSpace;  //Namespace of this and ALL sub-parts
0073 
0074   double m_BLZBeg;                       //
0075   double m_BLZEnd;                       //
0076   double m_BLZPiv;                       //
0077   double m_BLRadius;                     //
0078   std::string m_VacName;                 //
0079   std::string m_VacMat;                  //
0080   std::vector<double> m_vecVacZBeg;      //
0081   std::vector<double> m_vecVacZEnd;      //
0082   std::string m_WinName;                 //
0083   std::vector<std::string> m_vecWinMat;  //
0084   std::vector<double> m_vecWinZBeg;      //
0085   std::vector<double> m_vecWinThick;     //
0086 
0087   std::string m_TrgMat;                   //
0088   std::string m_HoleMat;                  //
0089   double m_TrgVetoHoleRadius;             //
0090   std::vector<std::string> m_vecTrgName;  //
0091   std::vector<double> m_vecTrgSide;       //
0092   std::vector<double> m_vecTrgThick;      //
0093   std::vector<double> m_vecTrgPhi;        //
0094   std::vector<double> m_vecTrgXOff;       //
0095   std::vector<double> m_vecTrgYOff;       //
0096   std::vector<double> m_vecTrgZPiv;       //
0097 
0098   std::string m_FibFibName;          //
0099   std::string m_FibCladName;         //
0100   std::string m_FibFibMat;           //
0101   std::string m_FibCladMat;          //
0102   double m_FibSide;                  //
0103   double m_FibCladThick;             //
0104   double m_FibLength;                //
0105   std::vector<double> m_vecFibPhi;   //
0106   std::vector<double> m_vecFibXOff;  //
0107   std::vector<double> m_vecFibYOff;  //
0108   std::vector<double> m_vecFibZPiv;  //
0109 };
0110 
0111 #endif