File indexing completed on 2024-04-06 12:05:33
0001 #include "DetectorDescription/Parser/src/DDLPseudoTrap.h"
0002 #include "DetectorDescription/Core/interface/DDSolid.h"
0003 #include "DetectorDescription/Core/interface/ClhepEvaluator.h"
0004 #include "DetectorDescription/Parser/interface/DDLElementRegistry.h"
0005 #include "DetectorDescription/Parser/src/DDLSolid.h"
0006 #include "DetectorDescription/Parser/src/DDXMLElement.h"
0007
0008 #include <map>
0009 #include <utility>
0010
0011 class DDCompactView;
0012
0013 DDLPseudoTrap::DDLPseudoTrap(DDLElementRegistry* myreg) : DDLSolid(myreg) {}
0014
0015
0016 void DDLPseudoTrap::processElement(const std::string& name, const std::string& nmspace, DDCompactView& cpv) {
0017 ClhepEvaluator& ev = myRegistry_->evaluator();
0018 DDXMLAttribute atts = getAttributeSet();
0019
0020 DDSolid myTrap = DDSolidFactory::pseudoTrap(getDDName(nmspace),
0021 ev.eval(nmspace, atts.find("dx1")->second),
0022 ev.eval(nmspace, atts.find("dx2")->second),
0023 ev.eval(nmspace, atts.find("dy1")->second),
0024 ev.eval(nmspace, atts.find("dy2")->second),
0025 ev.eval(nmspace, atts.find("dz")->second),
0026 ev.eval(nmspace, atts.find("radius")->second),
0027 (atts.find("atMinusZ")->second == "true") ? true : false);
0028
0029 DDLSolid::setReference(nmspace, cpv);
0030 }