27 for (
auto const it : etllayers.first) {
28 etlLayers_fw.push_back(it);
29 allForward.push_back(it);
31 detLayersMap[makeDetLayerId(it)] = it;
34 for (
auto const it : etllayers.second) {
35 etlLayers_bk.push_back(it);
36 allBackward.push_back(it);
38 detLayersMap[makeDetLayerId(it)] = it;
43 for (
auto const it : dtlayers) {
44 btlLayers.push_back(it);
45 allBarrel.push_back(it);
47 detLayersMap[makeDetLayerId(it)] = it;
54 return ETLDetId(
id.mtdSide(), 0, 0, 0);
57 return BTLDetId(
id.mtdSide(), 0, 0, 0, 0);
84 idout =
ETLDetId(etlId.mtdSide(), 0, 0, 0);
87 idout =
BTLDetId(btlId.mtdSide(), 0, 0, 0, 0);
91 std::map<DetId, const DetLayer*>::const_iterator layer = detLayersMap.find(idout);
92 if (layer == detLayersMap.end())
128 etlLayers_all.reserve(etlLayers_bk.size() + etlLayers_fw.size());
129 std::copy(etlLayers_bk.begin(), etlLayers_bk.end(), back_inserter(etlLayers_all));
130 std::reverse(etlLayers_all.begin(), etlLayers_all.end());
131 std::copy(etlLayers_fw.begin(), etlLayers_fw.end(), back_inserter(etlLayers_all));
134 allEndcap.reserve(allBackward.size() + allForward.size());
135 std::copy(allBackward.begin(), allBackward.end(), back_inserter(allEndcap));
137 std::copy(allForward.begin(), allForward.end(), back_inserter(allEndcap));
140 allDetLayers.reserve(allBackward.size() + allBarrel.size() + allForward.size());
141 std::copy(allBackward.begin(), allBackward.end(), back_inserter(allDetLayers));
143 std::copy(allBarrel.begin(), allBarrel.end(), back_inserter(allDetLayers));
144 std::copy(allForward.begin(), allForward.end(), back_inserter(allDetLayers));
148 for (
auto l : allDetLayers)
149 (*
const_cast<DetLayer*
>(
l)).setSeqNum(sq++);
const std::vector< const DetLayer * > & allLayers() const
return all DetLayers (barrel + endcap), -Z to +Z
MTDDetLayerGeometry()
Constructor.
DetId makeDetLayerId(const DetLayer *detLayer) const
const std::vector< const DetLayer * > & allEndcapLayers() const
return all endcap layers
void addBTLLayers(const std::vector< DetLayer * > &btllayers)
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
virtual const std::vector< const GeomDet * > & basicComponents() const =0
~MTDDetLayerGeometry() override
Destructor.
constexpr uint32_t rawId() const
get the raw id
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
const std::vector< const DetLayer * > & allBTLLayers() const
return the BTL DetLayers (barrel), inside-out
Detector identifier base class for the MIP Timing Layer.
const std::vector< const DetLayer * > & allBackwardLayers() const
return all endcap layers
void addETLLayers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &etllayers)
const std::vector< const DetLayer * > & allETLLayers() const
return the ETL DetLayers (endcap), -Z to +Z
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
const DetLayer * idToLayer(const DetId &detId) const override
return the DetLayer which correspond to a certain DetId
const std::vector< const DetLayer * > & allForwardLayers() const
return all endcap layers
Detector identifier class for the Endcap Timing Layer.
const std::vector< const DetLayer * > & allBarrelLayers() const
return all barrel layers
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
int mtdSubDetector() const