25 vector<DetLayer*> detlayers;
26 vector<MTDTrayBarrelLayer*>
result;
28 vector<const DetRod*> btlDetTrays;
35 vector<const GeomDet*> geomDets;
39 if (geomDet !=
nullptr) {
40 geomDets.push_back(geomDet);
48 if (!geomDets.empty()) {
50 btlDetTrays.push_back(
new MTDDetTray(geomDets));
51 LogTrace(
"MTDDetLayers") <<
" New BTLDetTray with " << geomDets.size()
52 <<
" modules at R=" << btlDetTrays.back()->position().perp()
53 <<
", phi=" << btlDetTrays.back()->position().phi();
59 LogTrace(
"MTDDetLayers") <<
"BTLDetLayerGeometryBuilder: new MTDTrayBarrelLayer with " << btlDetTrays.size()
60 <<
" rods, at R " <<
result.back()->specificSurface().radius();
62 vector<const GeomDet*> geomDets;
66 const uint32_t modulesPerDetTray =
68 geomDets.reserve(modulesPerDetTray);
71 for (
const auto& det : geo.
detsBTL()) {
73 geomDets.emplace_back(det);
74 if (
index == modulesPerDetTray) {
75 btlDetTrays.emplace_back(
new MTDDetTray(geomDets));
76 LogTrace(
"MTDDetLayers") <<
" New BTLDetTray with " << geomDets.size()
77 <<
" modules at R=" << btlDetTrays.back()->position().perp()
78 <<
", phi=" << btlDetTrays.back()->position().phi();
85 LogTrace(
"MTDDetLayers") <<
"BTLDetLayerGeometryBuilder: new MTDTrayBarrelLayer with " << btlDetTrays.size()
86 <<
" rods, at R " <<
result.back()->specificSurface().radius();
89 for (vector<MTDTrayBarrelLayer*>::const_iterator
it =
result.begin();
it !=
result.end();
it++)
static std::vector< DetLayer * > buildLayers(const MTDGeometry &geo, const MTDTopology &topo)
Operations.
int getMTDTopologyMode() const
const DetContainer & detsBTL() const
static constexpr uint32_t kCrystalTypes
Geom::Phi< T > phi() const
ALPAKA_FN_ACC int side(int ieta, int iphi)
ExtractZ< GeomDet, float > DetZ
static constexpr uint32_t HALF_ROD
range constants, need two sets for the time being (one for tiles and one for bars) ...
static constexpr uint32_t kModulesPerRODBarPhiFlat
static constexpr uint32_t kModulesPerTrkV2
const MTDGeomDet * idToDet(DetId) const override
BTLDetLayerGeometryBuilder()
Constructor.
static constexpr uint32_t kModulesPerRUV2
virtual ~BTLDetLayerGeometryBuilder()
Destructor.
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
constexpr uint32_t rawId() const
get the raw id
const Surface::PositionType & position() const
The position (origin of the R.F.)
static constexpr uint32_t kRUPerTypeV2
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
BTLDetId::CrysLayout crysLayoutFromTopoMode(const int &topoMode)