10 vector<const GeometricDet*> allGeometricDets = thePhase2OTBarrelRod->
components();
12 vector<const GeomDet*> innerGeomDets;
13 vector<const GeomDet*> outerGeomDets;
14 vector<const GeomDet*> innerGeomDetBrothers;
15 vector<const GeomDet*> outerGeomDetBrothers;
18 LogDebug(
"Phase2OTBarrelRodRadii") <<
"mean computed with "
19 << allGeometricDets[0]->positionBounds().perp()
20 <<
" and " << allGeometricDets[2]->positionBounds().perp()
21 <<
" and " << allGeometricDets[1]->positionBounds().perp()
22 <<
" and " << allGeometricDets[3]->positionBounds().perp() ;
23 double meanR = (allGeometricDets[0]->positionBounds().perp()+allGeometricDets[2]->positionBounds().perp())/2;
24 double meanRBrothers = (allGeometricDets[1]->positionBounds().perp()+allGeometricDets[3]->positionBounds().perp())/2;
27 for(vector<const GeometricDet*>::iterator it=allGeometricDets.begin();
28 it!=allGeometricDets.end(); it++,counter++){
29 const GeomDet* theGeomDet = theGeomDetGeometry->
idToDet( (*it)->geographicalID() );
32 if( (*it)->positionBounds().perp() < meanR)
33 innerGeomDets.push_back(theGeomDet);
35 if( (*it)->positionBounds().perp() > meanR)
36 outerGeomDets.push_back(theGeomDet);
39 if( (*it)->positionBounds().perp() < meanRBrothers)
40 innerGeomDetBrothers.push_back(theGeomDet);
42 if( (*it)->positionBounds().perp() > meanRBrothers)
43 outerGeomDetBrothers.push_back(theGeomDet);
49 return new Phase2OTBarrelRod(innerGeomDets,outerGeomDets,innerGeomDetBrothers,outerGeomDetBrothers);
Phase2OTBarrelRod * build(const GeometricDet *thePhase2OTBarrelRod, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
ConstGeometricDetContainer & components()
static std::atomic< unsigned int > counter
virtual const TrackerGeomDet * idToDet(DetId) const