22 const std::vector<DetId>& detids(rgeo.
detIds());
23 std::unordered_map<uint32_t, GEMSuperChamber*> superChambers;
24 std::unordered_map<uint32_t, GEMChamber*>
chambers;
25 std::unordered_map<uint32_t, GEMEtaPartition*>
partitions;
27 for (
unsigned int id = 0;
id < detids.size(); ++
id) {
29 LogDebug(
"GEMGeometryBuilder") <<
"GEMGeometryBuilder adding " << gemid;
30 if (gemid.
roll() == 0) {
31 if (gemid.
layer() == 0) {
33 superChambers.emplace(gemid.
rawId(), gsc);
35 GEMChamber* gch = buildChamber(rgeo,
id, gemid);
47 if (superChambers.empty()) {
48 for (
unsigned int id = 0;
id < detids.size(); ++
id) {
50 if (gemid.
roll() == 1) {
53 if (gemid.
layer() == 1) {
63 for (
int re = -1; re <= 1; re = re + 2) {
72 for (
int ri = 1; ri <= 1; ++ri) {
75 for (
auto sch : superChambers) {
76 auto superChamber = sch.second;
77 const GEMDetId scId(superChamber->id());
78 if (scId.region() != re || scId.station() != st || scId.ring() != ri)
83 const GEMDetId chId(re, ri, st, ly, ch, 0);
87 auto chamber = chamberIt->second;
90 const GEMDetId rollId(re, ri, st, ly, ch, roll);
94 auto gep = gepIt->second;
104 LogDebug(
"GEMGeometryBuilder") <<
"Adding super chamber " << scId <<
" to ring:";
105 ring->add(superChamber);
106 theGeometry.
add(superChamber);
109 if (
ring->nSuperChambers()) {
110 LogDebug(
"GEMGeometryBuilder") <<
"Adding ring " << ri <<
" to station "
111 <<
"re " << re <<
" st " << st;
120 LogDebug(
"GEMGeometryBuilder") <<
"Adding station " << st <<
" to region " << re;
128 LogDebug(
"GEMGeometryBuilder") <<
"Adding region " << re <<
" to the geometry";
136 LogDebug(
"GEMGeometryBuilderFromCondDB") <<
"buildSuperChamber " << detId;
147 LogDebug(
"GEMGeometryBuilderFromCondDB") <<
"buildChamber " << detId;
158 std::vector<std::string>::const_iterator strStart = rgeo.
strStart(gid);
160 LogDebug(
"GEMGeometryBuilderFromCondDB") <<
"buildEtaPartition " <<
name <<
" " << detId;
162 std::vector<double>::const_iterator shapeStart = rgeo.
shapeStart(gid);
167 float nstrip = *(shapeStart + 4);
168 float npad = *(shapeStart + 5);
169 float dphi = (shapeStart + 6 < rgeo.
shapeEnd(gid)) ? *(shapeStart + 6) : 0.17715;
171 std::vector<float> pars;
172 pars.emplace_back(
be);
173 pars.emplace_back(te);
174 pars.emplace_back(ap);
175 pars.emplace_back(nstrip);
176 pars.emplace_back(
npad);
177 pars.emplace_back(dphi);
182 LogDebug(
"GEMGeometryBuilderFromCondDB") <<
"size " <<
be <<
" " << te <<
" " << ap <<
" " << ti;
190 std::vector<double>::const_iterator shapeStart = rgeo.
shapeStart(gid);
197 std::vector<double>::const_iterator tranStart = rgeo.
tranStart(gid);
201 std::vector<double>::const_iterator rotStart = rgeo.
rotStart(gid);