26 pair<vector<DetLayer*>, vector<DetLayer*> >
29 vector<DetLayer*>
result[2];
30 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuonME0DetLayerGeometryBuilder";
31 LogTrace(metname) <<
"Starting endcaplayers ";
33 int iendcap = (
endcap==1) ? 0 : 1;
36 std::vector<int> rings;
39 rolls.push_back(roll);
42 chambers.push_back(chamber);
46 <<
"Chambers = " << chambers.size()
47 <<
"Rolls = " << rolls.size();
50 if (ringLayer) result[iendcap].push_back(ringLayer);
52 pair<vector<DetLayer*>, vector<DetLayer*> > res_pair(result[0], result[1]);
64 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuonME0DetLayerGeometryBuilder";
66 vector<const ForwardDetRing*> frontRings, backRings;
68 LogTrace(metname) <<
"Starting to Build Layer ";
70 for (vector<int>::iterator roll = rolls.begin(); roll!=rolls.end(); roll++) {
73 vector<const GeomDet*> frontDets, backDets;
75 for(std::vector<int>::iterator chamber=chambers.begin(); chamber<chambers.end(); chamber++) {
76 ME0DetId me0Id(endcap,1,(*chamber), 0);
80 bool isInFront = isFront(me0Id);
83 frontDets.push_back(geomDet);
87 backDets.push_back(geomDet);
92 if (frontDets.size()!=0) {
94 frontRings.push_back(
new MuDetRing(frontDets));
95 LogTrace(metname) <<
"New front ring with " << frontDets.size()
96 <<
" chambers at z="<< frontRings.back()->position().z();
98 if (backDets.size()!=0) {
100 backRings.push_back(
new MuDetRing(backDets));
101 LogTrace(metname) <<
"New back ring with " << backDets.size()
102 <<
" chambers at z="<< backRings.back()->position().z();
106 LogTrace(metname) <<
"About to make a MuRingForwardLayer";
109 LogTrace(metname) <<
"New MuRingForwardLayer with " << frontRings.size()
110 <<
" and " << backRings.size()
111 <<
" rings, at Z " << result->position().z()
112 <<
" R1: " << result->specificSurface().innerRadius()
113 <<
" R2: " << result->specificSurface().outerRadius();
131 const std::string metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuonME0DetLayerGeometryBuilder";
136 LogTrace(metname) <<
"New MuDetRing with " << geomDets.size()
137 <<
" chambers at z="<< result->position().z()
138 <<
" R1: " << result->specificSurface().innerRadius()
139 <<
" R2: " << result->specificSurface().outerRadius();
static const int minChamberId
static MuRingForwardLayer * buildLayer(int endcap, std::vector< int > &chambers, std::vector< int > &rolls, const ME0Geometry &geo)
static const int maxChamberId
ExtractPhi< GeomDet, float > DetPhi
static const int maxRollId
const std::string metname
virtual const GeomDet * idToDet(DetId) const
static MuDetRing * makeDetRing(std::vector< const GeomDet * > &geomDets)
static std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > buildEndcapLayers(const ME0Geometry &geo)
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
static bool isFront(const ME0DetId &me0Id)
static char chambers[264][20]
virtual ~MuonME0DetLayerGeometryBuilder()
Destructor.
static const int minRollId