ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_BarrelDescriptor.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TRT_BarrelDescriptor.h
8
9#ifndef TRT_BarrelDescriptor_h
10#define TRT_BarrelDescriptor_h 1
13#include "GeoModelKernel/GeoXF.h"
14#include <vector>
15
16namespace Trk{
17 class CylinderBounds;
18 class SurfaceBounds;
19}
20
21namespace InDetDD {
22
38
40 {
41
42 public:
43
48
51
53 void addStraw(double xPos, double yPos);
54
56 void setStrawTransformField(const GeoXF::Function *xf, size_t offsetInto);
57
59 inline double & strawXPos (unsigned int i);
60 inline const double & strawXPos (unsigned int i) const;
61
63 inline double & strawYPos (unsigned int i);
64 inline const double & strawYPos (unsigned int i) const;
65
67 inline unsigned int nStraws() const;
68
70 inline const double & strawLength() const;
71 inline double & strawLength();
72 inline void strawLength(double newLength);
73
75 inline double innerTubeRadius() const;
76
78 inline const double & strawZDead() const;
79 inline double & strawZDead();
80 inline void strawZDead(double zDead);
81
83 inline const double & strawZPos() const;
84 inline double & strawZPos();
85 inline void strawZPos(double Pos);
86
90 inline const GeoXF::Function *getStrawTransform() const;
91
93 inline size_t getStrawTransformOffset() const;
94
96 const Trk::SurfaceBounds & strawBounds() const;
97
98 private:
99
102
103 std::vector<double> m_x;
104 std::vector<double> m_y;
105 double m_length;
106 double m_zDead;
107 double m_zPos;
109 const GeoXF::Function *m_f;
110 size_t m_o;
111
113 };
114}
116#endif
117
118
Cached unique_ptr with atomic update.
const double & strawYPos(unsigned int i) const
void setStrawTransformField(const GeoXF::Function *xf, size_t offsetInto)
Sets the transform field for straws and offset.
const double & strawLength() const
Get the length of the straws:
const GeoXF::Function * getStrawTransform() const
Get the tranformation field, which we do not own: Does not include the z shift which is different for...
double & strawYPos(unsigned int i)
Get Y Position:
TRT_BarrelDescriptor & operator=(const TRT_BarrelDescriptor &right)=delete
void strawZDead(double zDead)
TRT_BarrelDescriptor(TRT_BarrelDescriptor &&right)=default
const double & strawZDead() const
Dead part.
TRT_BarrelDescriptor(const TRT_BarrelDescriptor &right)=delete
void addStraw(double xPos, double yPos)
Add a new straw at position x, y:
CxxUtils::CachedUniquePtr< Trk::CylinderBounds > m_bounds
void strawLength(double newLength)
double & strawXPos(unsigned int i)
Get X Position:
~TRT_BarrelDescriptor()=default
Destructor:
double innerTubeRadius() const
Get inner tube radius of the straw.
size_t getStrawTransformOffset() const
Get the offset into the transformation field:
const double & strawZPos() const
Position of center of active region.
unsigned int nStraws() const
Get the number of straws:
TRT_BarrelDescriptor & operator=(TRT_BarrelDescriptor &&right)=default
const Trk::SurfaceBounds & strawBounds() const
Get Bounds.
const double & strawXPos(unsigned int i) const
Bounds for a cylindrical Surface.
Abstract base class for surface bounds to be specified.
CachedUniquePtrT< const T > CachedUniquePtr
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.