11 const bool useBrothers) {
15 LogTrace(
"TkDetLayers") <<
"Phase2OTBarrelLayerBuilder::build";
16 vector<const GeometricDet*> theGeometricDets = aPhase2OTBarrelLayer->
components();
17 LogDebug(
"TkDetLayers") <<
"Phase2OTBarrelLayerBuilder with #Components: " << theGeometricDets.size() << std::endl;
18 vector<const GeometricDet*> theGeometricDetRods;
19 vector<const GeometricDet*> theGeometricDetRings;
21 for (vector<const GeometricDet*>::const_iterator it = theGeometricDets.begin(); it != theGeometricDets.end(); it++) {
23 theGeometricDetRods.push_back(*it);
25 theGeometricDetRings.push_back(*it);
27 LogDebug(
"TkDetLayers") <<
"Phase2OTBarrelLayerBuilder with no Rods and no Rings! ";
31 LogDebug(
"TkDetLayers") <<
"Phase2OTBarrelLayerBuilder with #Rods: " << theGeometricDetRods.size() << std::endl;
35 vector<const Phase2OTBarrelRod*> theInnerRods;
36 vector<const Phase2OTBarrelRod*> theOuterRods;
41 for (
unsigned int index = 0;
index != theGeometricDetRods.size();
index++)
42 meanR += theGeometricDetRods[
index]->positionBounds().perp();
43 if (!theGeometricDetRods.empty())
45 meanR /= (
double)theGeometricDetRods.size();
47 for (
unsigned int index = 0;
index != theGeometricDetRods.size();
index++) {
48 if (theGeometricDetRods[
index]->positionBounds().perp() < meanR)
49 theInnerRods.push_back(
50 myPhase2OTBarrelRodBuilder.
build(theGeometricDetRods[
index], theGeomDetGeometry, useBrothers));
52 if (theGeometricDetRods[index]->positionBounds().perp() > meanR)
53 theOuterRods.push_back(
54 myPhase2OTBarrelRodBuilder.
build(theGeometricDetRods[index], theGeomDetGeometry, useBrothers));
57 if (theGeometricDetRings.empty())
60 LogDebug(
"TkDetLayers") <<
"Phase2OTBarrelLayerBuilder with #Rings: " << theGeometricDetRings.size() << std::endl;
64 vector<const Phase2EndcapRing*> theNegativeRings;
65 vector<const Phase2EndcapRing*> thePositiveRings;
68 double centralZ = 0.0;
70 for (vector<const GeometricDet*>::const_iterator it = theGeometricDetRings.begin(); it != theGeometricDetRings.end();
72 if ((*it)->positionBounds().z() < centralZ)
73 theNegativeRings.push_back(myPhase2EndcapRingBuilder.
build(*it, theGeomDetGeometry, useBrothers));
74 if ((*it)->positionBounds().z() > centralZ)
75 thePositiveRings.push_back(myPhase2EndcapRingBuilder.
build(*it, theGeomDetGeometry, useBrothers));
TBPLayer Phase2OTBarrelLayer
ConstGeometricDetContainer & components()
Phase2EndcapRing * build(const GeometricDet *aPhase2EndcapRing, const TrackerGeometry *theGeomDetGeometry, const bool useBrothers=true) __attribute__((cold))
Phase2OTBarrelRod * build(const GeometricDet *thePhase2OTBarrelRod, const TrackerGeometry *theGeomDetGeometry, const bool useBrothers=true) __attribute__((cold))
Phase2OTBarrelLayer * build(const GeometricDet *aPhase2OTBarrelLayer, const TrackerGeometry *theGeomDetGeometry, const bool useBrothers=true) __attribute__((cold))