25 if (atts.find(
"phi") != atts.end())
26 phi =
ev.eval(nmspace, atts.find(
"phi")->second);
28 if (atts.find(
"theta") != atts.end())
29 theta =
ev.eval(nmspace, atts.find(
"theta")->second);
31 if (atts.find(
"dy2") != atts.end())
32 dy2 =
ev.eval(nmspace, atts.find(
"dy2")->second);
33 else if (atts.find(
"dy1") != atts.end())
34 dy2 =
ev.eval(nmspace, atts.find(
"dy1")->second);
36 if (
name ==
"Trapezoid") {
38 ev.eval(nmspace, atts.find(
"dz")->second),
41 ev.eval(nmspace, atts.find(
"h1")->second),
42 ev.eval(nmspace, atts.find(
"bl1")->second),
43 ev.eval(nmspace, atts.find(
"tl1")->second),
44 ev.eval(nmspace, atts.find(
"alp1")->second),
45 ev.eval(nmspace, atts.find(
"h2")->second),
46 ev.eval(nmspace, atts.find(
"bl2")->second),
47 ev.eval(nmspace, atts.find(
"tl2")->second),
48 ev.eval(nmspace, atts.find(
"alp2")->second));
49 }
else if (
name ==
"Trd1") {
51 ev.eval(nmspace, atts.find(
"dz")->second),
54 ev.eval(nmspace, atts.find(
"dy1")->second),
55 ev.eval(nmspace, atts.find(
"dx1")->second),
56 ev.eval(nmspace, atts.find(
"dx1")->second),
59 ev.eval(nmspace, atts.find(
"dx2")->second),
60 ev.eval(nmspace, atts.find(
"dx2")->second),
63 std::string msg =
"\nDDLTrapezoid::processElement failed to process element of name: " +
name +
64 ". It can only process Trapezoid and Trd1.";
DDLTrapezoid(DDLElementRegistry *myreg)
DDLElementRegistry * myRegistry_
void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Processing the element.
Compact representation of the geometrical detector hierarchy.
std::map< std::string, std::string > DDXMLAttribute
A DDSolid represents the shape of a part.
ClhepEvaluator & evaluator()
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
DDLSolid processes Box elements.
The main class for processing parsed elements.
void throwError(const std::string &keyMessage) const
format std::string for throw an error.
virtual const DDName getDDName(const std::string &defaultNS, const std::string &attname=std::string("name"), size_t aIndex=0)
Geom::Theta< T > theta() const
void setReference(const std::string &nmspace, DDCompactView &cpv)