62 if (myrRotation->size() > 0){
63 rotn = myrRotation->getDDName(nmspace);
65 else if (myDDLRotation->size() > 0) {
70 rotn = myDDLRotation->getDDName(nmspace);
72 else if (myDDLRefl->size() > 0) {
76 rotn = myDDLRefl->getDDName(nmspace);
78 else if (myrRefl->size() > 0) {
79 rotn = myrRefl->getDDName(nmspace);
84 double x = 0.0,
y = 0.0,
z = 0.0;
85 if (myTranslation->size() > 0)
88 x = ev.
eval(nmspace, atts.find(
"x")->second);
89 y = ev.
eval(nmspace, atts.find(
"y")->second);
90 z = ev.
eval(nmspace, atts.find(
"z")->second);
95 if ( rotn.
name() !=
"" && rotn.
ns() !=
"" ) {
101 myDDRotation = &
temp;
103 if ( !myDDRotation->
isValid() ) {
106 myDDRotation = &
temp;
115 if (atts.find(
"copyNumber") != atts.end())
116 copyno = atts.find(
"copyNumber")->second;
127 myTranslation->clear();
128 myDDLRotation->clear();
129 myrRotation->clear();
void preProcessElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Called by loadAttributes AFTER attributes are loaded.
DDLElementRegistry * myRegistry_
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
void position(const DDLogicalPart &self, const DDLogicalPart &parent, std::string copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=NULL)
const std::string & ns() const
Returns the namespace.
DDName is used to identify DDD entities uniquely.
type of data representation of DDCompactView
std::map< std::string, std::string > DDXMLAttribute
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
bool isValid() const
true, if the wrapped pointer is valid
ClhepEvaluator & evaluator()
void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Processing the element.
DDLPosPart(DDLElementRegistry *myreg)
std::shared_ptr< DDXMLElement > getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
This is a base class for processing XML elements in the DDD.
double eval(const std::string &ns, const std::string &expr)
The main class for processing parsed elements.
virtual void clear(void)
clear this element's contents.
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
const std::string & name() const
Returns the name.