18 vector<DetLayer*>
result[2];
20 for (
int i = 0;
i < 2;
i++) {
49 rings.push_back(
ring);
56 pair<vector<DetLayer*>, vector<DetLayer*> > res_pair(
result[0],
result[1]);
64 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuonCSCDetLayerGeometryBuilder";
67 vector<const ForwardDetRing*> frontRings, backRings;
69 for (vector<int>::iterator
ring = rings.begin();
ring != rings.end();
ring++) {
70 vector<const GeomDet*> frontGeomDets, backGeomDets;
76 if (geomDet !=
nullptr) {
78 frontGeomDets.push_back(geomDet);
80 backGeomDets.push_back(geomDet);
84 <<
", z= " << geomDet->
position().
z() <<
" isFront? " << isInFront;
88 if (!backGeomDets.empty()) {
89 backRings.push_back(makeDetRing(backGeomDets));
92 if (!frontGeomDets.empty()) {
93 frontRings.push_back(makeDetRing(frontGeomDets));
94 assert(!backGeomDets.empty());
95 float frontz = frontRings[0]->position().z();
96 float backz = backRings[0]->position().z();
97 assert(fabs(frontz) < fabs(backz));
104 LogTrace(
metname) <<
"New MuRingForwardLayer with " << frontRings.size() <<
" and " << backRings.size()
105 <<
" rings, at Z " <<
result->position().z() <<
" R1: " <<
result->specificSurface().innerRadius()
106 <<
" R2: " <<
result->specificSurface().outerRadius();
116 bool isEven = (
chamber % 2 == 0);
125 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuonCSCDetLayerGeometryBuilder";
129 LogTrace(
metname) <<
"New MuDetRing with " << geomDets.size() <<
" chambers at z=" <<
result->position().z()
130 <<
" R1: " <<
result->specificSurface().innerRadius()
131 <<
" R2: " <<
result->specificSurface().outerRadius();
ExtractPhi< GeomDet, float > DetPhi
const std::string metname
Geom::Phi< T > phi() const
static bool isFront(int station, int ring, int chamber)
static int maxStationId()
static int minChamberId()
constexpr std::array< uint8_t, layerIndexSize > layer
static MuDetRing * makeDetRing(std::vector< const GeomDet *> &geomDets)
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildLayers(const CSCGeometry &geo)
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
static int maxChamberId()
const Surface::PositionType & position() const
The position (origin of the R.F.)
static MuRingForwardDoubleLayer * buildLayer(int endcap, int station, std::vector< int > &rings, const CSCGeometry &geo)
const GeomDet * idToDet(DetId) const override