File indexing completed on 2024-04-06 12:28:48
0001 #include "TECPetalBuilder.h"
0002 #include "TECWedgeBuilder.h"
0003 #include "CompositeTECPetal.h"
0004
0005 using namespace edm;
0006 using namespace std;
0007
0008 TECPetal* TECPetalBuilder::build(const GeometricDet* aTECPetal, const TrackerGeometry* theGeomDetGeometry) {
0009 vector<const GeometricDet*> theGeometricWedges = aTECPetal->components();
0010
0011
0012 vector<const TECWedge*> theInnerWedges;
0013 vector<const TECWedge*> theOuterWedges;
0014
0015 double meanZ = (theGeometricWedges[0]->positionBounds().z() + theGeometricWedges[1]->positionBounds().z()) / 2;
0016
0017 TECWedgeBuilder myWedgeBuilder;
0018
0019 for (vector<const GeometricDet*>::const_iterator it = theGeometricWedges.begin(); it != theGeometricWedges.end();
0020 it++) {
0021 if (std::abs((*it)->positionBounds().z()) < std::abs(meanZ))
0022 theInnerWedges.push_back(myWedgeBuilder.build(*it, theGeomDetGeometry));
0023
0024 if (std::abs((*it)->positionBounds().z()) > std::abs(meanZ))
0025 theOuterWedges.push_back(myWedgeBuilder.build(*it, theGeomDetGeometry));
0026 }
0027
0028
0029
0030
0031 return new CompositeTECPetal(theInnerWedges, theOuterWedges);
0032 }