CMS 3D CMS Logo

DDCompareTools.h
Go to the documentation of this file.
1 #include <functional>
2 #include <vector>
3 
11 
12 class DDCompactView;
13 class DDExpandedView;
14 
16 
23 struct DDCompOptions {
25  contOnError_(false), distTol_(0.0004),
26  rotTol_(0.0004), specTol_(0.0004)
27  { }
28 
30  bool attResync_;
32  double distTol_;
33  double rotTol_;
34  double specTol_;
35 };
36 
37 struct DDCompareEPV : public std::binary_function<DDExpandedView, DDExpandedView, bool> {
38  DDCompareEPV();
39  DDCompareEPV(const DDCompOptions& ddco);
40  bool operator()(DDExpandedView& lhs, DDExpandedView& rhs) const ;
42 };
43 
44 struct DDCompareCPV : public std::binary_function<DDCompactView, DDCompactView, bool> {
45  DDCompareCPV();
46  DDCompareCPV(const DDCompOptions& ddco);
47  bool operator()(const DDCompactView& lhs, const DDCompactView& rhs) const ;
49 };
50 
52 
55 struct DDCompareLP : public std::binary_function<DDLogicalPart, DDLogicalPart, bool> {
56  DDCompareLP();
57  DDCompareLP(const DDCompOptions& ddco);
58  bool operator()(const DDLogicalPart& lhs, const DDLogicalPart& rhs) const ;
60 };
61 
63 struct DDCompareSolid : public std::binary_function<DDSolid, DDSolid, bool> {
65  DDCompareSolid(const DDCompOptions& ddco);
66  bool operator()(const DDSolid& lhs, const DDSolid& rhs) const ;
68 };
69 
70 struct DDCompareDBLVEC : public std::binary_function<std::vector<double>, std::vector<double>, bool> {
72  DDCompareDBLVEC(double tol);
73  bool operator()(const std::vector<double>& lhs, const std::vector<double>& rhs) const ;
74  double tol_;
75 };
76 
78 struct DDCompareBoolSol : public std::binary_function<DDBooleanSolid, DDBooleanSolid, bool> {
80  DDCompareBoolSol(const DDCompOptions& ddco);
81  bool operator()(const DDBooleanSolid& lhs, const DDBooleanSolid& rhs) const ;
83 };
84 
85 struct DDCompareDDTrans : public std::binary_function<DDTranslation, DDTranslation, bool> {
87  DDCompareDDTrans(double tol);
88  bool operator()(const DDTranslation& lhs, const DDTranslation& rhs) const;
89  double tol_;
90 };
91 
93 struct DDCompareDDRot : public std::binary_function<DDRotation, DDRotation, bool> {
95  DDCompareDDRot(const DDCompOptions& ddco);
96  bool operator()(const DDRotation& lhs, const DDRotation& rhs) const;
98 };
99 
100 struct DDCompareDDRotMat : public std::binary_function<DDRotationMatrix, DDRotationMatrix, bool> {
102  DDCompareDDRotMat(double tol);
103  bool operator()(const DDRotationMatrix& lhs, const DDRotationMatrix& rhs) const;
104  double tol_;
105 };
106 
107 
108 
109 
DDCompOptions ddco_
Needs to know about rotmat because of BooleanSolid.
DDCompOptions ddco_
type of data representation of DDCompactView
Definition: DDCompactView.h:90
DDCompOptions ddco_
Needs to know because of Rotation Matrix of Boolean Relationship.
A DDSolid represents the shape of a part.
Definition: DDSolid.h:38
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:64
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:92
DDCompOptions ddco_
DDCompOptions ddco_
DDComparators need to know if names of DDRotation matter.
Allows to compare name or not. If not, compares only values of the rotation matrix.
DDCompOptions ddco_
LogicalParts have solids which could be BooleanSolids.
Provides an exploded view of the detector (tree-view)
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.