DDTBH4Algo

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
#ifndef EcalTestBeam_DDTBH4Algo_h
#define EcalTestBeam_DDTBH4Algo_h

#include <map>
#include <string>
#include <vector>
#include "DetectorDescription/Core/interface/DDTypes.h"
#include "DetectorDescription/Core/interface/DDAlgorithm.h"
#include "DetectorDescription/Core/interface/DDMaterial.h"
#include "DetectorDescription/Core/interface/DDTransform.h"

//CLHEP
#include <CLHEP/Geometry/Transform3D.h>

class DDTBH4Algo : public DDAlgorithm {
public:
  //Constructor and Destructor
  DDTBH4Algo();
  ~DDTBH4Algo() override;

  void initialize(const DDNumericArguments& nArgs,
                  const DDVectorArguments& vArgs,
                  const DDMapArguments& mArgs,
                  const DDStringArguments& sArgs,
                  const DDStringVectorArguments& vsArgs) override;

  void execute(DDCompactView& cpv) override;

  DDMaterial ddmat(const std::string& s) const;
  DDName ddname(const std::string& s) const;
  DDRotation myrot(const std::string& s, const CLHEP::HepRotation& r) const;

  const std::string& idNameSpace() const { return m_idNameSpace; }

  double blZBeg() const { return m_BLZBeg; }
  double blZEnd() const { return m_BLZEnd; }
  double blZPiv() const { return m_BLZPiv; }
  double blRadius() const { return m_BLRadius; }
  std::string vacName() const { return m_VacName; }
  DDMaterial vacMat() const { return ddmat(m_VacMat); }
  const std::vector<double>& vecVacZBeg() const { return m_vecVacZBeg; }
  const std::vector<double>& vecVacZEnd() const { return m_vecVacZEnd; }
  std::string winName() const { return m_WinName; }
  const std::vector<std::string>& vecWinMat() const { return m_vecWinMat; }
  const std::vector<double>& vecWinZBeg() const { return m_vecWinZBeg; }
  const std::vector<double>& vecWinThick() const { return m_vecWinThick; }

  DDMaterial trgMat() const { return ddmat(m_TrgMat); }
  DDMaterial holeMat() const { return ddmat(m_HoleMat); }
  double trgVetoHoleRadius() const { return m_TrgVetoHoleRadius; }
  const std::vector<std::string>& vecTrgName() const { return m_vecTrgName; }
  const std::vector<double>& vecTrgSide() const { return m_vecTrgSide; }
  const std::vector<double>& vecTrgThick() const { return m_vecTrgThick; }
  const std::vector<double>& vecTrgPhi() const { return m_vecTrgPhi; }
  const std::vector<double>& vecTrgXOff() const { return m_vecTrgXOff; }
  const std::vector<double>& vecTrgYOff() const { return m_vecTrgYOff; }
  const std::vector<double>& vecTrgZPiv() const { return m_vecTrgZPiv; }

  DDName fibFibName() const { return ddname(m_FibFibName); }
  DDName fibCladName() const { return ddname(m_FibCladName); }
  DDMaterial fibFibMat() const { return ddmat(m_FibFibMat); }
  DDMaterial fibCladMat() const { return ddmat(m_FibCladMat); }
  double fibSide() const { return m_FibSide; }
  double fibCladThick() const { return m_FibCladThick; }
  double fibLength() const { return m_FibLength; }
  const std::vector<double>& vecFibPhi() const { return m_vecFibPhi; }
  const std::vector<double>& vecFibXOff() const { return m_vecFibXOff; }
  const std::vector<double>& vecFibYOff() const { return m_vecFibYOff; }
  const std::vector<double>& vecFibZPiv() const { return m_vecFibZPiv; }

private:
  std::string m_idNameSpace;  //Namespace of this and ALL sub-parts

  double m_BLZBeg;                       //
  double m_BLZEnd;                       //
  double m_BLZPiv;                       //
  double m_BLRadius;                     //
  std::string m_VacName;                 //
  std::string m_VacMat;                  //
  std::vector<double> m_vecVacZBeg;      //
  std::vector<double> m_vecVacZEnd;      //
  std::string m_WinName;                 //
  std::vector<std::string> m_vecWinMat;  //
  std::vector<double> m_vecWinZBeg;      //
  std::vector<double> m_vecWinThick;     //

  std::string m_TrgMat;                   //
  std::string m_HoleMat;                  //
  double m_TrgVetoHoleRadius;             //
  std::vector<std::string> m_vecTrgName;  //
  std::vector<double> m_vecTrgSide;       //
  std::vector<double> m_vecTrgThick;      //
  std::vector<double> m_vecTrgPhi;        //
  std::vector<double> m_vecTrgXOff;       //
  std::vector<double> m_vecTrgYOff;       //
  std::vector<double> m_vecTrgZPiv;       //

  std::string m_FibFibName;          //
  std::string m_FibCladName;         //
  std::string m_FibFibMat;           //
  std::string m_FibCladMat;          //
  double m_FibSide;                  //
  double m_FibCladThick;             //
  double m_FibLength;                //
  std::vector<double> m_vecFibPhi;   //
  std::vector<double> m_vecFibXOff;  //
  std::vector<double> m_vecFibYOff;  //
  std::vector<double> m_vecFibZPiv;  //
};

#endif