59 std::vector<DDXMLElement*> toDelete;
62 std::vector<DDXMLElement*>::const_iterator deleteIt =
std::find( toDelete.begin(), toDelete.end(), it->second );
63 if( deleteIt == toDelete.end())
65 toDelete.push_back( it->second );
77 DCOUT_V(
'P',
"myRegistry_->getElementRegistry(" << name <<
")");
80 RegistryMap::iterator it =
registry_.find(name);
96 else if (name ==
"Cone")
100 else if (name ==
"Polyhedra" || name ==
"Polycone")
104 else if (name ==
"Trapezoid" || name ==
"Trd1")
108 else if (name ==
"PseudoTrap")
112 else if (name ==
"Tubs" || name ==
"Tube" || name ==
"TruncTubs")
116 else if (name ==
"Torus")
120 else if (name ==
"ReflectionSolid")
124 else if (name ==
"UnionSolid" || name ==
"SubtractionSolid"
125 || name ==
"IntersectionSolid")
129 else if (name ==
"ShapelessSolid")
133 else if (name ==
"Sphere")
137 else if (name ==
"Orb")
141 else if (name ==
"EllipticalTube")
145 else if (name ==
"Ellipsoid")
149 else if (name ==
"Sphere")
156 else if (name ==
"PosPart")
160 else if (name ==
"AlgoPosPart")
164 else if (name ==
"CompositeMaterial")
168 else if (name ==
"ElementaryMaterial")
172 else if (name ==
"LogicalPart")
176 else if (name ==
"ReflectionRotation" || name ==
"Rotation" )
180 else if (name ==
"SpecPar")
184 else if (name ==
"RotationSequence")
188 else if (name ==
"RotationByAxis")
193 else if (name ==
"SpecParSection") {
196 else if (name ==
"Vector") {
199 else if (name ==
"Map") {
202 else if (name ==
"String") {
205 else if (name ==
"Numeric") {
208 else if (name ==
"Algorithm") {
211 else if (name ==
"Division") {
218 else if (name ==
"MaterialFraction" || name ==
"ParE" || name ==
"ParS"
219 || name ==
"RZPoint" || name ==
"PartSelector"
220 || name ==
"Parameter" || name ==
"ZSection"
221 || name ==
"Translation"
222 || name ==
"rSolid" || name ==
"rMaterial"
223 || name ==
"rParent" || name ==
"rChild"
224 || name ==
"rRotation" || name ==
"rReflectionRotation"
225 || name ==
"DDDefinition" )
260 if( it->second == theElement )
DDLPosPart handles PosPart elements.
This class takes care of processing all BooleanSolid type elements.
DDLElementRegistry()
Constructor.
DDLSphere processes all Sphere elements.
DDLDivision processes Division elements.
DDLOrb processes all Orb elements.
~DDLElementRegistry()
Destructor.
DDLString handles String Elements.
DDLVector handles Rotation and ReflectionRotation elements.
DDLReflectionSolid processes ReflectionSolid elements.
DDLAlgoPosPart handles AlgoPosPart elements.
DDLSpecPar processes SpecPar elements.
DDLRotationAndReflection handles RotationCMSIM and ReflectionRotation elements.
DDLEllipticalTube processes all EllipticalTube elements.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
DDLAlgorithm processes Algorithm elements.
DDLParallelepiped processes all Parallelepiped elements.
DDXMLElement * getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.
DDLBox processes Box elements.
DDLElementaryMaterial processes ElementaryMaterial elements.
DDLCone processes all Cone elements.
DDLEllipsoid processes all Ellipsoid elements.
DDLTubs processes Tubs elements.
DDLPolyGenerator processes DDL XML Polycone and DDL XML Polyhedra elements.
#define DCOUT_V(M_v_Y, M_v_S)
DDLMap handles Map container.
DDLLogicalPart processes LogicalPart elements.
This is a base class for processing XML elements in the DDD.
DDLRotationByAxis handles RotationByAxis elements.
const std::string & getElementName(DDXMLElement *theElement) const
Get the name given a pointer. This may not be needed...
DDLCompositeMaterial processes all CompositeMaterial elements.
DDLNumeric handles Numeric Elements.
DDLRotationSequence handles a set of Rotations.
DDLShapelessSolid processes ShapelessSolid elements.