19 if (not theComponents) {
20 auto temp = std::make_unique<std::vector<const GeometricSearchDet*>>();
22 for (
auto c : theComps)
24 std::vector<const GeometricSearchDet*>* expected =
nullptr;
25 if (theComponents.compare_exchange_strong(expected,
temp.get())) {
30 return *theComponents;
43 theRingSize = rings.size();
44 LogDebug(
"TkDetLayers") <<
"Number of rings in Phase2 OT EC layer is " << theRingSize << std::endl;
47 for (
unsigned int i = 0;
i != rings.size(); ++
i) {
48 theComps.push_back(rings[
i]);
51 theBasicComps.end(), (*rings[
i]).basicComponents().begin(), (*rings[
i]).basicComponents().end());
54 LogDebug(
"TkDetLayers") <<
"==== DEBUG Phase2EndcapLayer =====";
55 LogDebug(
"TkDetLayers") <<
"r,zed pos , thickness, innerR, outerR: " << this->
position().perp() <<
" , " 56 << this->
position().z() <<
" , " << this->specificSurface().bounds().thickness() <<
" , " 57 << this->specificSurface().innerRadius() <<
" , " << this->specificSurface().outerRadius();
74 std::vector<DetGroup>&
result)
const {
87 std::vector<tkDetUtil::RingPar> ringParams)
const {
bool isOuterTracker(GeomDetEnumerators::SubDetector m)
std::vector< const Phase2EndcapRing * > theComps
bool overlapInR(const TrajectoryStateOnSurface &tsos, int index, double ymax, const std::vector< RingPar > &ringParams)
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result, const int ringSize, const std::vector< const T *> &diskComponents, const std::vector< RingPar > &ringParams)
void fillRingPars(int i) __attribute__((cold))
Phase2EndcapLayer(std::vector< const Phase2EndcapRing *> &rings, const bool isOT) __attribute__((cold))
bool overlapInR(const TrajectoryStateOnSurface &tsos, int i, double ymax, std::vector< tkDetUtil::RingPar > ringParams) const __attribute__((hot))
void groupedCompatibleDetsV(const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const override __attribute__((hot))
float computeWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const __attribute__((hot))
std::atomic< std::vector< const GeometricSearchDet * > * > theComponents
~Phase2EndcapLayer() override __attribute__((cold))
float computeYdirWindowSize(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est)
RingPar fillRingParametersFromDisk(const BoundDisk &ringDisk)
GeometricSearchDet::DetWithState DetWithState
BoundDisk * computeDisk(const std::vector< const T *> &structures)
BoundDisk * computeDisk(const std::vector< const Phase2EndcapRing *> &rings) const __attribute__((cold))
static int position[264][3]
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
const std::vector< const GeometricSearchDet * > & components() const override __attribute__((cold))
std::vector< tkDetUtil::RingPar > ringPars