CMS 3D CMS Logo

DDTOBRodAlgo.h
Go to the documentation of this file.
1 #ifndef DD_TOBRodAlgo_h
2 #define DD_TOBRodAlgo_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
9 
10 class DDTOBRodAlgo : public DDAlgorithm {
11  public:
12  //Constructor and Destructor
13  DDTOBRodAlgo();
14  ~DDTOBRodAlgo() 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 
22  void execute(DDCompactView& cpv) override;
23 
24 private:
25 
26  std::string central; // Name of the central piece
27  std::string idNameSpace; // Namespace of this and ALL sub-parts
28 
29  double shift; // Shift in z
30  std::vector<std::string> sideRod; // Name of the Side Rod
31  std::vector<double> sideRodX; // x-positions
32  std::vector<double> sideRodY; // y-positions
33  std::vector<double> sideRodZ; // z-positions
34  std::string endRod1; // Name of the End Rod of type 1
35  std::vector<double> endRod1Y; // y-positions
36  std::vector<double> endRod1Z; // z-positions
37  std::string endRod2; // Name of the End Rod of type 2
38  double endRod2Y; // y-position
39  double endRod2Z; // z-position
40 
41  std::string cable; // Name of the Mother cable
42  double cableZ; // z-position
43 
44  std::string clamp; // Name of the clamp
45  std::vector<double> clampX; // x-positions
46  std::vector<double> clampZ; // z-positions
47  std::string sideCool; // Name of the Side Cooling Tube
48  std::vector<double> sideCoolX; // x-positions
49  std::vector<double> sideCoolY; // y-positions to avoid overlap with the module (be at the same level of EndCool)
50  std::vector<double> sideCoolZ; // z-positions
51  std::string endCool; // Name of the End Cooling Tube
52  std::string endCoolRot; // Rotation matrix name for end cool
53  double endCoolY; // y-position to avoid overlap with the module
54  double endCoolZ; // z-position
55 
56  std::string optFibre; // Name of the Optical Fibre
57  std::vector<double> optFibreX; // x-positions
58  std::vector<double> optFibreZ; // z-positions
59 
60  std::string sideClamp1; // Name of the side clamp of type 1
61  std::vector<double> sideClampX; // x-positions
62  std::vector<double> sideClamp1DZ; // Delta(z)-positions
63  std::string sideClamp2; // Name of the side clamp of type 2
64  std::vector<double> sideClamp2DZ; // Delta(z)-positions
65 
66  std::string module; // Name of the detector modules
67  std::vector<std::string> moduleRot; // Rotation matrix name for module
68  std::vector<double> moduleY; // y-positions
69  std::vector<double> moduleZ; // z-positions
70  std::vector<std::string> connect; // Name of the connectors
71  std::vector<double> connectY; // y-positions
72  std::vector<double> connectZ; // z-positions
73 
74  std::string aohName; // AOH name
75  std::vector<double> aohCopies; // AOH copies to be positioned on each ICC
76  std::vector<double> aohX; // AOH translation with respect small-ICC center (X)
77  std::vector<double> aohY; // AOH translation with respect small-ICC center (Y)
78  std::vector<double> aohZ; // AOH translation with respect small-ICC center (Z)
79 };
80 
81 #endif
std::string sideClamp2
Definition: DDTOBRodAlgo.h:63
std::vector< double > sideRodZ
Definition: DDTOBRodAlgo.h:33
void execute(DDCompactView &cpv) override
std::vector< double > sideCoolX
Definition: DDTOBRodAlgo.h:48
std::vector< std::string > sideRod
Definition: DDTOBRodAlgo.h:30
std::vector< double > sideClamp2DZ
Definition: DDTOBRodAlgo.h:64
double endRod2Y
Definition: DDTOBRodAlgo.h:38
std::vector< double > optFibreX
Definition: DDTOBRodAlgo.h:57
std::string aohName
Definition: DDTOBRodAlgo.h:74
std::vector< double > connectZ
Definition: DDTOBRodAlgo.h:72
std::vector< double > endRod1Y
Definition: DDTOBRodAlgo.h:35
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:83
std::vector< double > sideRodY
Definition: DDTOBRodAlgo.h:32
std::vector< double > aohX
Definition: DDTOBRodAlgo.h:76
std::vector< double > moduleY
Definition: DDTOBRodAlgo.h:68
std::vector< std::string > connect
Definition: DDTOBRodAlgo.h:70
std::string clamp
Definition: DDTOBRodAlgo.h:44
std::vector< double > clampZ
Definition: DDTOBRodAlgo.h:46
std::vector< double > optFibreZ
Definition: DDTOBRodAlgo.h:58
std::vector< double > sideClampX
Definition: DDTOBRodAlgo.h:61
double shift
Definition: DDTOBRodAlgo.h:29
std::string optFibre
Definition: DDTOBRodAlgo.h:56
std::vector< double > clampX
Definition: DDTOBRodAlgo.h:45
double endRod2Z
Definition: DDTOBRodAlgo.h:39
std::string endCoolRot
Definition: DDTOBRodAlgo.h:52
std::vector< double > sideClamp1DZ
Definition: DDTOBRodAlgo.h:62
std::string endRod1
Definition: DDTOBRodAlgo.h:34
std::vector< double > sideCoolZ
Definition: DDTOBRodAlgo.h:50
std::vector< double > aohCopies
Definition: DDTOBRodAlgo.h:75
~DDTOBRodAlgo() override
Definition: DDTOBRodAlgo.cc:28
double cableZ
Definition: DDTOBRodAlgo.h:42
std::vector< double > moduleZ
Definition: DDTOBRodAlgo.h:69
std::vector< double > connectY
Definition: DDTOBRodAlgo.h:71
std::vector< double > aohY
Definition: DDTOBRodAlgo.h:77
std::string sideClamp1
Definition: DDTOBRodAlgo.h:60
std::vector< double > aohZ
Definition: DDTOBRodAlgo.h:78
double endCoolZ
Definition: DDTOBRodAlgo.h:54
std::string central
Definition: DDTOBRodAlgo.h:26
std::string idNameSpace
Definition: DDTOBRodAlgo.h:27
std::string cable
Definition: DDTOBRodAlgo.h:41
std::string endCool
Definition: DDTOBRodAlgo.h:51
std::vector< std::string > moduleRot
Definition: DDTOBRodAlgo.h:67
std::vector< double > sideCoolY
Definition: DDTOBRodAlgo.h:49
double endCoolY
Definition: DDTOBRodAlgo.h:53
std::string module
Definition: DDTOBRodAlgo.h:66
std::vector< double > sideRodX
Definition: DDTOBRodAlgo.h:31
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
Definition: DDTOBRodAlgo.cc:30
std::string sideCool
Definition: DDTOBRodAlgo.h:47
std::string endRod2
Definition: DDTOBRodAlgo.h:37
std::vector< double > endRod1Z
Definition: DDTOBRodAlgo.h:36