CMS 3D CMS Logo

DDDividedGeometryObject.h
Go to the documentation of this file.
1 #ifndef DETECTOR_DESCRIPTION_PARSER_DD_DIVIDED_GEOMETRY_OBJECT_H
2 #define DETECTOR_DESCRIPTION_PARSER_DD_DIVIDED_GEOMETRY_OBJECT_H
3 
4 #include <string>
5 
11 
12 class DDCompactView;
13 
15 
16 class DDLogicalPart;
17 class DDRotation;
18 class DDSolid;
19 
21 public:
23 
24  virtual ~DDDividedGeometryObject(void) = default; // inline
25 
26  virtual DDTranslation makeDDTranslation(int copyNo) const;
27  virtual DDRotation makeDDRotation(int copyNo) const;
28  virtual DDLogicalPart makeDDLogicalPart(int copyNo) const;
29 
30  virtual const std::string& getType(void) const;
31 
32  virtual void setType(const std::string& type);
33 
34  int volumeFirstCopyNo(void) const;
35 
36  virtual void execute(void);
37 
38  static const double tolerance(void);
39 
40 protected:
41  std::unique_ptr<DDRotationMatrix> changeRotMatrix(double rotZ = 0.) const;
42  int calculateNDiv(double motherDim, double width, double offset) const;
43  double calculateWidth(double motherDim, int nDiv, double offset) const;
44 
45  virtual void checkParametersValidity(void);
46 
47  void checkOffset(double maxPar);
48  void checkNDivAndWidth(double maxPar);
49 
50  virtual double getMaxParameter(void) const;
51 
52 protected:
55  int compNDiv_;
56  double compWidth_;
60 };
61 
62 #endif
virtual DDRotation makeDDRotation(int copyNo) const
int volumeFirstCopyNo(void) const
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:81
virtual ~DDDividedGeometryObject(void)=default
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
virtual DDLogicalPart makeDDLogicalPart(int copyNo) const
virtual void checkParametersValidity(void)
DDDividedGeometryObject(const DDDivision &div, DDCompactView *cpv)
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:57
static const double tolerance(void)
virtual const std::string & getType(void) const
int calculateNDiv(double motherDim, double width, double offset) const
virtual double getMaxParameter(void) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
virtual void setType(const std::string &type)
std::unique_ptr< DDRotationMatrix > changeRotMatrix(double rotZ=0.) const
double calculateWidth(double motherDim, int nDiv, double offset) const
virtual DDTranslation makeDDTranslation(int copyNo) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
void checkNDivAndWidth(double maxPar)