CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DDTIDModulePosAlgo.h
Go to the documentation of this file.
1 #ifndef DD_TIDModulePosAlgo_h
2 #define DD_TIDModulePosAlgo_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
9 
10 class DDTIDModulePosAlgo : public DDAlgorithm {
11  public:
12  //Constructor and Destructor
14  ~DDTIDModulePosAlgo() override;
15 
16  void initialize(const DDNumericArguments & nArgs,
17  const DDVectorArguments & vArgs,
18  const DDMapArguments & mArgs,
19  const DDStringArguments & sArgs,
20  const DDStringVectorArguments & vsArgs) override;
21  void execute(DDCompactView& cpv) override;
22 
23 private:
24 
25  int detectorN; //Number of detectors
26  double detTilt; //Tilt of stereo detector
27  double fullHeight; //Height
28  std::string boxFrameName; //Top frame Name
29  double boxFrameHeight; // height
30  double boxFrameWidth; // width
31  double dlTop; //Width at top of wafer
32  double dlBottom; //Width at bottom of wafer
33  double dlHybrid; //Width at the hybrid end
34  std::vector<double> boxFrameZ; // z-positions
35  double bottomFrameHeight; //Bottom of the frame
36  double bottomFrameOver; // overlap
37  double topFrameHeight; //Top of the frame
38  double topFrameOver; // overlap
39 
40  std::vector<std::string> sideFrameName; //Side Frame name
41  std::vector<double> sideFrameZ; // z-positions
42  std::vector<std::string> sideFrameRot; // rotation matrix (required for correct positiong of the hole in the StereoR)
43  double sideFrameWidth; // width
44  double sideFrameOver; // overlap (wrt wafer)
45 
46  std::vector<std::string> kaptonName; //Kapton Circuit name
47  std::vector<double> kaptonZ; // z-positions
48  std::vector<std::string> kaptonRot; // rotation matrix (required for correct positiong of the hole in the StereoR)
49  std::vector<std::string> waferName; //Wafer name
50  std::vector<double> waferZ; // z-positions
51  std::vector<std::string> waferRot; // rotation matrix
52  std::string hybridName; //Hybrid name
53  double hybridHeight; // height
54  std::vector<double> hybridZ; // z-positions
55  std::vector<std::string> pitchName; //Pitch adapter rotation matrix
56  double pitchHeight; // height
57  std::vector<double> pitchZ; // z-positions
58  std::vector<std::string> pitchRot; // rotation matrix
59  std::string coolName; //Cool Insert name
60  double coolHeight; // height
61  double coolZ; // z-position
62  double coolWidth; // width
63  std::vector<double> coolRadShift; //
64 
65 
66  bool doSpacers; //Spacers (alumina) to be made (Should be "Yes" for DS modules only)
67  std::string botSpacersName; // Spacers at the "bottom" of the module
68  double botSpacersHeight; //
69  double botSpacersZ; // z-position
70  std::string sidSpacersName; //Spacers at the "sides" of the module
72  double sidSpacersZ; // z-position
73  double sidSpacersWidth; // width
74  double sidSpacersRadShift; //
75 };
76 
77 #endif
void execute(DDCompactView &cpv) override
std::vector< double > pitchZ
std::vector< std::string > pitchName
std::string botSpacersName
std::string sidSpacersName
std::vector< std::string > sideFrameName
type of data representation of DDCompactView
Definition: DDCompactView.h:90
std::vector< double > coolRadShift
std::vector< std::string > waferRot
std::vector< double > hybridZ
std::vector< std::string > waferName
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
~DDTIDModulePosAlgo() override
std::vector< std::string > pitchRot
std::vector< std::string > sideFrameRot
std::vector< double > sideFrameZ
std::vector< std::string > kaptonRot
std::vector< double > waferZ
std::vector< double > kaptonZ
std::vector< std::string > kaptonName
std::vector< double > boxFrameZ