CMS 3D CMS Logo

DDAngular.h
Go to the documentation of this file.
1 #ifndef ALGORITHM_DD_ANGULAR_H
2 # define ALGORITHM_DD_ANGULAR_H
3 
4 #include <string>
5 #include <utility>
6 #include <vector>
7 
12 
13 class DDCompactView;
14 
15 class DDAngular : public DDAlgorithm
16 {
17 public:
18  DDAngular( void );
19  ~DDAngular( void ) override;
20 
21  void initialize( const DDNumericArguments & nArgs,
22  const DDVectorArguments & vArgs,
23  const DDMapArguments & mArgs,
24  const DDStringArguments & sArgs,
25  const DDStringVectorArguments & vsArgs ) override;
26 
27  void execute( DDCompactView& cpv ) override;
28 
29 private:
30 
31  DD3Vector fUnitVector( double theta, double phi );
32  int m_n; //Number of copies
33  int m_startCopyNo; //Start Copy number
34  int m_incrCopyNo; //Increment in Copy number
35  double m_startAngle; //Start angle
36  double m_rangeAngle; //Range in angle
37  double m_radius; //Radius
38  double m_delta; //Increment in phi
39  std::vector<double> m_center; //Phi values
40  std::vector<double> m_rotateSolid; //Rotation of the solid values
41 
42  std::string m_idNameSpace; //Namespace of this and ALL sub-parts
43  std::pair<std::string, std::string> m_childNmNs; //Child name
44  //Namespace of the child
45 
46  DDRotationMatrix m_solidRot; //Rotation of the solid
47 };
48 
49 #endif // ALGORITHM_DD_ANGULAR_H
double m_radius
Definition: DDAngular.h:37
Geom::Theta< T > theta() const
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
Definition: DDAngular.cc:35
DD3Vector fUnitVector(double theta, double phi)
Definition: DDAngular.cc:151
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:83
DDRotationMatrix m_solidRot
Definition: DDAngular.h:46
double m_delta
Definition: DDAngular.h:38
void execute(DDCompactView &cpv) override
Definition: DDAngular.cc:109
int m_n
Definition: DDAngular.h:32
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
Definition: DDTranslation.h:6
int m_incrCopyNo
Definition: DDAngular.h:34
std::vector< double > m_rotateSolid
Definition: DDAngular.h:40
std::vector< double > m_center
Definition: DDAngular.h:39
~DDAngular(void) override
Definition: DDAngular.cc:31
std::string m_idNameSpace
Definition: DDAngular.h:42
DDAngular(void)
Definition: DDAngular.cc:19
double m_rangeAngle
Definition: DDAngular.h:36
std::pair< std::string, std::string > m_childNmNs
Definition: DDAngular.h:43
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
int m_startCopyNo
Definition: DDAngular.h:33
double m_startAngle
Definition: DDAngular.h:35