17 pair<vector<DetLayer*>, vector<DetLayer*> >
20 vector<DetLayer*>
result[2];
24 for(
unsigned layer = 0; layer <= 0; ++layer) {
25 vector<unsigned> rings;
27 rings.push_back(
ring);
30 if (thelayer) result[
endcap].push_back(thelayer);
33 pair<vector<DetLayer*>, vector<DetLayer*> > res_pair(result[0], result[1]);
39 vector<unsigned>& rings,
41 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|ETLDetLayerGeometryBuilder";
44 vector<const ForwardDetRing*> frontRings, backRings;
46 for(
unsigned ring : rings ) {
47 vector<const GeomDet*> frontGeomDets, backGeomDets;
53 if(geomDet !=
nullptr)
57 frontGeomDets.push_back(geomDet);
61 backGeomDets.push_back(geomDet);
69 <<
" isFront? " << isInFront << std::endl;
73 if(!backGeomDets.empty())
75 backRings.push_back(makeDetRing(backGeomDets));
78 if(!frontGeomDets.empty())
80 frontRings.push_back(makeDetRing(frontGeomDets));
81 assert(!backGeomDets.empty());
82 float frontz = frontRings[0]->position().z();
83 float backz = backRings[0]->position().z();
84 assert(fabs(frontz) < fabs(backz));
92 <<
"New MTDRingForwardLayer with " << frontRings.size()
93 <<
" and " << backRings.size()
94 <<
" rings, at Z " << result->position().z()
95 <<
" R1: " << result->specificSurface().innerRadius()
96 <<
" R2: " << result->specificSurface().outerRadius() << std::endl;
110 const std::string metname =
"MTD|RecoMTD|RecoMTDDetLayers|ETLDetLayerGeometryBuilder";
116 <<
"New MTDDetRing with " << geomDets.size()
117 <<
" chambers at z="<< result->position().z()
118 <<
" R1: " << result->specificSurface().innerRadius()
119 <<
" R2: " << result->specificSurface().outerRadius() << std::endl;;
static MTDDetRing * makeDetRing(std::vector< const GeomDet * > &geomDets)
ExtractPhi< GeomDet, float > DetPhi
const std::string metname
Geom::Phi< T > phi() const
constexpr uint32_t rawId() const
get the raw id
static bool isFront(int layer, int ring, int module)
const MTDGeomDet * idToDet(DetId) const override
const Surface::PositionType & position() const
The position (origin of the R.F.)
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
static const uint32_t kETLmoduleMask
Detector identifier class for the Endcap Timing Layer.
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildLayers(const MTDGeometry &geo)
static MTDRingForwardDoubleLayer * buildLayer(int endcap, int layer, std::vector< unsigned > &rings, const MTDGeometry &geo)