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
0013 #include <CLHEP/Geometry/Transform3D.h>
0014
0015 class DDTBH4Algo : public DDAlgorithm {
0016 public:
0017
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;
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