CMS 3D CMS Logo

DDLMaterial.cc
Go to the documentation of this file.
4 
5 #include <map>
6 #include <utility>
7 #include <vector>
8 
9 class DDCompactView;
10 
12  : DDXMLElement( myreg )
13 {}
14 
15 void
17 {
18  // in case it there were any rMaterials
19  myRegistry_->getElement("rMaterial")->clear();
20 
21  // Attempt to make sure Material elements can be in LogicalPart elements.
22  if (myRegistry_->getElement("LogicalPart")->size() > 0)
23  {
24  auto refmat = myRegistry_->getElement("rMaterial");
25  std::vector<std::string> names;
26  std::vector<std::string> values;
27  names.emplace_back("name");
29  values.emplace_back(atts.find("name")->second);
30  refmat->loadAttributes("rMaterial", names, values, nmspace, cpv);
31  }
32  // clear THIS material's values.
33  clear();
34 }
DDLElementRegistry * myRegistry_
Definition: DDXMLElement.h:172
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
Definition: DDXMLElement.cc:72
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:83
const std::string names[nVars_]
std::map< std::string, std::string > DDXMLAttribute
Definition: DDXMLElement.h:45
std::shared_ptr< DDXMLElement > getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.
virtual void setReference(const std::string &nmspace, DDCompactView &cpv)
Definition: DDLMaterial.cc:16
This is a base class for processing XML elements in the DDD.
Definition: DDXMLElement.h:48
DDLMaterial(DDLElementRegistry *myreg)
Definition: DDLMaterial.cc:11
The main class for processing parsed elements.
virtual void clear(void)
clear this element&#39;s contents.
Definition: DDXMLElement.cc:54