Belle II Software development
CDCWireLayer Class Reference

Class representing a sense wire layer in the central drift chamber. More...

#include <CDCWireLayer.h>

Inheritance diagram for CDCWireLayer:
Range< AIterator >

Public Types

using Iterator = AIterator
 Iterator type of the range.
 
using iterator = Iterator
 Iterator definition for stl.
 
using Reference = typename std::iterator_traits< AIterator >::reference
 The type the iterator references.
 
using value_type = typename std::iterator_traits< AIterator >::value_type
 The type behind the iterator (make it possible to use the range as a "list")
 

Public Member Functions

 CDCWireLayer (const ConstVectorRange< CDCWire > &wireRange)
 Constructor taking the range of wires the layer shall contain.
 
 CDCWireLayer (const CDCWireLayer &wireLayer)=delete
 Disallow copy construction of wire layers.
 
 CDCWireLayer (CDCWireLayer &&wireLayer)=default
 Allow move construction of wire layers for use in std::vector.
 
void operator= (const CDCWireLayer &wireLayer)=delete
 Disallow copy assignment of wire layers.
 
void initialize ()
 Initializes the wire layer variables to the average of according variables in the wire range.
 
Iterator begin () const
 Begin of the range for range based for.
 
Iterator end () const
 End of the range for range based for.
 
bool empty () const
 Checks if the begin equals the end iterator, hence if the range is empty.
 
std::size_t size () const
 Returns the total number of objects in this range.
 
Reference front () const
 Returns the dereferenced iterator at begin()
 
Reference back () const
 Returns the dereferenced iterator before end()
 
Reference operator[] (std::size_t i) const
 Returns the object at index i.
 
Reference at (std::size_t i) const
 Returns the object at index i.
 
bool count (Reference t)
 Counts the number of equivalent items in the range.
 
Layer index
ILayer getICLayer () const
 Getter for the continuous layer id unique over all layers.
 
ILayer getILayer () const
 Getter for the layer id unique within the superlayer.
 
ISuperLayer getISuperLayer () const
 Getter for the super layer id.
 
Shift property
ERotation getShift () const
 Getter for the numbering shift.
 
ERotation getShiftDelta (const CDCWireLayer &baseLayer) const
 Getter for the relative difference in wire numbering shift.
 
Wire range
bool isValidIWire (IWire iWire) const
 Checks if the given wire id belongs to a valid wire in this layer.
 
const CDCWiregetWire (IWire iWire) const
 Gives the wire by its id in the layer.
 
const CDCWiregetClosestWire (const Vector3D &pos3D) const
 Gets the wire in this layer that is closest to the given position.
 
Neighborhood of wires in this layer
const CDCWiregetWireWrappedAround (IWire iWire) const
 Returns the wire by its id in the layer.
 
const CDCWiregetNeighborCCW (IWire iWire) const
 Getter for the first counterclockwise neighbor by wire id in the layer.
 
const CDCWiregetNeighborCW (IWire iWire) const
 Getter for the first clockwise neighbor by wire id in the layer.
 
const CDCWiregetSecondNeighborCCW (IWire iWire) const
 Getter for the first counterclockwise neighbor by wire id in the layer.
 
const CDCWiregetSecondNeighborCW (IWire iWire) const
 Getter for the first clockwise neighbor by wire id in the layer.
 
Averaged geometry properties

The following getters return variables calculated as average from the contained CDCWire.

bool isAxial () const
 Indicates if the wire is axial or stereo.
 
EStereoKind getStereoKind () const
 Getter for the stereo type of the wire layer Gives the stereo type of the wire.
 
double getTanStereoAngle () const
 Getter for the averaged tan stereo angle of all wires in this layer.
 
double getStereoAngle () const
 Getter for the average stereo angle of all wires in this layer.
 
double getMinCylindricalR () const
 Getter for the closest distance to the beamline ( z-axes ) of all wires in this layer.
 
double getRefCylindricalR () const
 Getter for the common (averaged) cylindrical radius at the wire reference point.
 
double getRefZ () const
 Getter for the common (averaged) z component of the wire reference point.
 
double getForwardCylindricalR () const
 Getter for the average distance to the beamline ( z-axes ) at the forward joint points of all wires in this layer.
 
double getBackwardCylindricalR () const
 Getter for the average distance to the beamline ( z-axes ) at the backward joint points of all wires in this layer.
 
double getForwardZ () const
 Getter for the average z coordinate at the forward joint points of all wires in this layer.
 
double getBackwardZ () const
 Getter for the average z coordinate at the backward joint points of all wires in this layer.
 
Geometry properties copied from the CDCGeometryPar
double getInnerCylindricalR () const
 Getter for inner radius of the layer as taken from the CDCGeometryPar.
 
double getOuterCylindricalR () const
 Getter for outer radius of the layer as taken from the CDCGeometryPar.
 
double getRadialCellWidth () const
 Getter for the width of the wire layer in the radial direction.
 
double getLateralCellWidth () const
 Getter for the width of the wire layer in the lateral direction.
 

Static Public Member Functions

Static instance getters

Getter for the already constructed instances from the CDCWireTopology::getInstance() object.

static const CDCWireLayergetInstance (ILayer iCLayer)
 Getter from the the continuous layer id. Does not construct a new object.
 
static const CDCWireLayergetInstance (ISuperLayer iSuperLayer, ILayer iLayer)
 Getter from the superlayer id, the layer id. Does not construct a new object.
 

Private Types

using Super = ConstVectorRange< CDCWire >
 Type of the base class.
 

Private Attributes

ERotation m_shift = ERotation::c_Invalid
 Indicates if this layer is shifted clockwise or counterclockwise.
 
Property averages from the contained CDCWires

The following variables are calculated from the contained CDCWire on initialization of the CDCWireLayer.

double m_tanStereoAngle = 0.0
 Storage for average tan stereo angle.
 
double m_minCylindricalR = 0.0
 Storage for minimal distance from beamline.
 
double m_refCylindricalR = 0.0
 Storage for common (averaged) cylindrical radius of all wire reference positions.
 
double m_refZ = 0.0
 Storage for common (averaged) z coordinate of all wire reference positions.
 
double m_forwardCylindricalR = 0.0
 Storage for average distance from beamline of forward wire ends.
 
double m_backwardCylindricalR = 0.0
 Storage for average distance from beamline of backward wire ends.
 
double m_forwardZ = 0.0
 Storage for z position of forward wire ends.
 
double m_backwardZ = 0.0
 Storage for z position of backward wire ends.
 
Property averages CDCGeometryPar

The following variables are taken directly from the CDCGeometryPar on initialization of the CDCWireLayer.

double m_innerCylindricalR = 0.0
 Storage of the inner radius of the wire layer as taken from the CDCGeometryPar instance.
 
double m_outerCylindricalR = 0.0
 Storage of the outer radius of the wire layer as taken from the CDCGeometryPar instance.
 

Detailed Description

Class representing a sense wire layer in the central drift chamber.

This class represents a CDC layer as a range of wires.
The range is sorted with increasing wire ids for maximal fast look up.
It offers methods for checking the validity of wire ids, a getter for the wires in this layer
additionally to be iterable as a range.
Furthermore it stores averaged geometrical quantities combined from the wires it contains.
The class does not provide the memory for the wires by itself.
It uses iterators into a vector of CDCWires.
The vector of CDCWires is normally provided by the CDCWireTopology object instance.
Note : All possible layer object are stored in the CDCWireTopology,
which you can get with the static getInstance() functions.
There is rarely a need for constructing a layer object and
it should be avoided.

Definition at line 41 of file CDCWireLayer.h.

Member Typedef Documentation

◆ Iterator

using Iterator = AIterator
inherited

Iterator type of the range.

Definition at line 33 of file Range.h.

◆ iterator

using iterator = Iterator
inherited

Iterator definition for stl.

Definition at line 36 of file Range.h.

◆ Reference

using Reference = typename std::iterator_traits<AIterator>::reference
inherited

The type the iterator references.

Definition at line 39 of file Range.h.

◆ Super

using Super = ConstVectorRange<CDCWire>
private

Type of the base class.

Definition at line 46 of file CDCWireLayer.h.

◆ value_type

using value_type = typename std::iterator_traits<AIterator>::value_type
inherited

The type behind the iterator (make it possible to use the range as a "list")

Definition at line 42 of file Range.h.

Constructor & Destructor Documentation

◆ CDCWireLayer()

CDCWireLayer ( const ConstVectorRange< CDCWire > &  wireRange)
explicit

Constructor taking the range of wires the layer shall contain.

Use rather getInstance() to avoid instance constructions.

Definition at line 16 of file CDCWireLayer.cc.

17 : Super(wireRange)
18{
19 initialize();
20}
void initialize()
Initializes the wire layer variables to the average of according variables in the wire range.
Definition: CDCWireLayer.cc:32
ConstVectorRange< CDCWire > Super
Type of the base class.
Definition: CDCWireLayer.h:46

Member Function Documentation

◆ at()

Reference at ( std::size_t  i) const
inlineinherited

Returns the object at index i.

Definition at line 92 of file Range.h.

93 {
94 if (not(i < size())) {
95 throw std::out_of_range("Range : Requested index " + std::to_string(i) + " is out of bounds.");
96 }
97 return operator[](i);
98 }
Reference operator[](std::size_t i) const
Returns the object at index i.
Definition: Range.h:88
std::size_t size() const
Returns the total number of objects in this range.
Definition: Range.h:76

◆ back()

Reference back ( ) const
inlineinherited

Returns the dereferenced iterator before end()

Definition at line 84 of file Range.h.

85 { return *(end() - 1); }
Iterator end() const
End of the range for range based for.
Definition: Range.h:68

◆ begin()

Iterator begin ( ) const
inlineinherited

Begin of the range for range based for.

Definition at line 64 of file Range.h.

65 { return this->first; }

◆ count()

bool count ( Reference  t)
inlineinherited

Counts the number of equivalent items in the range.

Definition at line 101 of file Range.h.

102 { return std::count(this->begin(), this->end(), t); }
Iterator begin() const
Begin of the range for range based for.
Definition: Range.h:64

◆ empty()

bool empty ( ) const
inlineinherited

Checks if the begin equals the end iterator, hence if the range is empty.

Definition at line 72 of file Range.h.

73 { return begin() == end(); }

◆ end()

Iterator end ( ) const
inlineinherited

End of the range for range based for.

Definition at line 68 of file Range.h.

69 { return this->second; }

◆ front()

Reference front ( ) const
inlineinherited

Returns the dereferenced iterator at begin()

Definition at line 80 of file Range.h.

81 { return *(begin()); }

◆ getBackwardCylindricalR()

double getBackwardCylindricalR ( ) const
inline

Getter for the average distance to the beamline ( z-axes ) at the backward joint points of all wires in this layer.

Definition at line 226 of file CDCWireLayer.h.

227 { return m_backwardCylindricalR; };
double m_backwardCylindricalR
Storage for average distance from beamline of backward wire ends.
Definition: CDCWireLayer.h:300

◆ getBackwardZ()

double getBackwardZ ( ) const
inline

Getter for the average z coordinate at the backward joint points of all wires in this layer.

Definition at line 234 of file CDCWireLayer.h.

235 { return m_backwardZ; }
double m_backwardZ
Storage for z position of backward wire ends.
Definition: CDCWireLayer.h:306

◆ getClosestWire()

const CDCWire & getClosestWire ( const Vector3D pos3D) const

Gets the wire in this layer that is closest to the given position.

Definition at line 89 of file CDCWireLayer.cc.

90{
91 IWire iWire = CDC::CDCGeometryPar::Instance().cellId(getICLayer(), pos3D);
92 // Safety measure against error in the cellId function
93 iWire %= size();
94 return getWire(iWire);
95}
unsigned cellId(unsigned layerId, const B2Vector3D &position) const
The method to get cell id based on given layer id and the position.
static CDCGeometryPar & Instance(const CDCGeometry *=nullptr)
Static method to get a reference to the CDCGeometryPar instance.
const CDCWire & getWire(IWire iWire) const
Gives the wire by its id in the layer.
Definition: CDCWireLayer.h:138
ILayer getICLayer() const
Getter for the continuous layer id unique over all layers.
Definition: CDCWireLayer.h:88

◆ getForwardCylindricalR()

double getForwardCylindricalR ( ) const
inline

Getter for the average distance to the beamline ( z-axes ) at the forward joint points of all wires in this layer.

Definition at line 222 of file CDCWireLayer.h.

223 { return m_forwardCylindricalR; };
double m_forwardCylindricalR
Storage for average distance from beamline of forward wire ends.
Definition: CDCWireLayer.h:297

◆ getForwardZ()

double getForwardZ ( ) const
inline

Getter for the average z coordinate at the forward joint points of all wires in this layer.

Definition at line 230 of file CDCWireLayer.h.

231 { return m_forwardZ; }
double m_forwardZ
Storage for z position of forward wire ends.
Definition: CDCWireLayer.h:303

◆ getICLayer()

ILayer getICLayer ( ) const
inline

Getter for the continuous layer id unique over all layers.

Definition at line 88 of file CDCWireLayer.h.

89 { return front().getICLayer(); }
Reference front() const
Returns the dereferenced iterator at begin()
Definition: Range.h:80

◆ getILayer()

ILayer getILayer ( ) const
inline

Getter for the layer id unique within the superlayer.

Definition at line 92 of file CDCWireLayer.h.

93 { return front().getILayer(); }

◆ getInnerCylindricalR()

double getInnerCylindricalR ( ) const
inline

Getter for inner radius of the layer as taken from the CDCGeometryPar.

Definition at line 245 of file CDCWireLayer.h.

246 { return m_innerCylindricalR; }
double m_innerCylindricalR
Storage of the inner radius of the wire layer as taken from the CDCGeometryPar instance.
Definition: CDCWireLayer.h:317

◆ getInstance() [1/2]

const CDCWireLayer * getInstance ( ILayer  iCLayer)
static

Getter from the the continuous layer id. Does not construct a new object.

Definition at line 22 of file CDCWireLayer.cc.

23{
24 return &(CDCWireTopology::getInstance().getWireLayer(iCLayer));
25}
const CDCWireLayer & getWireLayer(const WireID &wireId) const
Getter for wire layer getter by wireID object.
static CDCWireTopology & getInstance()
Getter for the singleton instance of the wire topology.

◆ getInstance() [2/2]

const CDCWireLayer * getInstance ( ISuperLayer  iSuperLayer,
ILayer  iLayer 
)
static

Getter from the superlayer id, the layer id. Does not construct a new object.

Definition at line 27 of file CDCWireLayer.cc.

28{
29 return &(CDCWireTopology::getInstance().getWireLayer(iSuperLayer, iLayer));
30}

◆ getISuperLayer()

ISuperLayer getISuperLayer ( ) const
inline

Getter for the super layer id.

Definition at line 96 of file CDCWireLayer.h.

97 { return front().getISuperLayer(); }

◆ getLateralCellWidth()

double getLateralCellWidth ( ) const
inline

Getter for the width of the wire layer in the lateral direction.

Lateral means the perpendicular to the radial outwards direction The measure is taken at the outer bound, where it is largest for the wire layer

Definition at line 262 of file CDCWireLayer.h.

263 { return getOuterCylindricalR() * 2 * M_PI / size(); }
double getOuterCylindricalR() const
Getter for outer radius of the layer as taken from the CDCGeometryPar.
Definition: CDCWireLayer.h:249

◆ getMinCylindricalR()

double getMinCylindricalR ( ) const
inline

Getter for the closest distance to the beamline ( z-axes ) of all wires in this layer.

Definition at line 210 of file CDCWireLayer.h.

211 { return m_minCylindricalR; }
double m_minCylindricalR
Storage for minimal distance from beamline.
Definition: CDCWireLayer.h:288

◆ getNeighborCCW()

const CDCWire & getNeighborCCW ( IWire  iWire) const
inline

Getter for the first counterclockwise neighbor by wire id in the layer.

Definition at line 165 of file CDCWireLayer.h.

166 { return getWireWrappedAround(iWire + 1); }
const CDCWire & getWireWrappedAround(IWire iWire) const
Returns the wire by its id in the layer.
Definition: CDCWireLayer.h:161

◆ getNeighborCW()

const CDCWire & getNeighborCW ( IWire  iWire) const
inline

Getter for the first clockwise neighbor by wire id in the layer.

Definition at line 169 of file CDCWireLayer.h.

170 { return getWireWrappedAround(iWire - 1); }

◆ getOuterCylindricalR()

double getOuterCylindricalR ( ) const
inline

Getter for outer radius of the layer as taken from the CDCGeometryPar.

Definition at line 249 of file CDCWireLayer.h.

250 { return m_outerCylindricalR; }
double m_outerCylindricalR
Storage of the outer radius of the wire layer as taken from the CDCGeometryPar instance.
Definition: CDCWireLayer.h:320

◆ getRadialCellWidth()

double getRadialCellWidth ( ) const
inline

Getter for the width of the wire layer in the radial direction.

Definition at line 253 of file CDCWireLayer.h.

double getInnerCylindricalR() const
Getter for inner radius of the layer as taken from the CDCGeometryPar.
Definition: CDCWireLayer.h:245

◆ getRefCylindricalR()

double getRefCylindricalR ( ) const
inline

Getter for the common (averaged) cylindrical radius at the wire reference point.

Definition at line 214 of file CDCWireLayer.h.

215 { return m_refCylindricalR; }
double m_refCylindricalR
Storage for common (averaged) cylindrical radius of all wire reference positions.
Definition: CDCWireLayer.h:291

◆ getRefZ()

double getRefZ ( ) const
inline

Getter for the common (averaged) z component of the wire reference point.

Definition at line 218 of file CDCWireLayer.h.

219 { return m_refZ; }
double m_refZ
Storage for common (averaged) z coordinate of all wire reference positions.
Definition: CDCWireLayer.h:294

◆ getSecondNeighborCCW()

const CDCWire & getSecondNeighborCCW ( IWire  iWire) const
inline

Getter for the first counterclockwise neighbor by wire id in the layer.

Definition at line 173 of file CDCWireLayer.h.

174 { return getWireWrappedAround(iWire + 2); }

◆ getSecondNeighborCW()

const CDCWire & getSecondNeighborCW ( IWire  iWire) const
inline

Getter for the first clockwise neighbor by wire id in the layer.

Definition at line 177 of file CDCWireLayer.h.

178 { return getWireWrappedAround(iWire - 2); }

◆ getShift()

ERotation getShift ( ) const
inline

Getter for the numbering shift.

See details. The shift indicates if the wire with index zero in this layer
is more clockwise or counterclockwise than
the zero wire in the zero layer within this superlayer.
This can be used to speed up the lookup inward and outward neighbors
of the wires in this layer. For even layers the shift should be ESign::c_Zero.

Definition at line 114 of file CDCWireLayer.h.

115 { return m_shift; }
ERotation m_shift
Indicates if this layer is shifted clockwise or counterclockwise.
Definition: CDCWireLayer.h:275

◆ getShiftDelta()

ERotation getShiftDelta ( const CDCWireLayer baseLayer) const
inline

Getter for the relative difference in wire numbering shift.

In the current numbering scheme the shift can be of magnitude 1 in clockwise or counter clockwise direction or zero

Parameters
baseLayerWire layer that should be used as reference to the numbering shift
Returns
Shift in numbering from the given layer to this layer.

Definition at line 124 of file CDCWireLayer.h.

125 { return static_cast<ERotation>(getShift() - baseLayer.getShift()); }
ERotation getShift() const
Getter for the numbering shift.
Definition: CDCWireLayer.h:114
ERotation
Enumeration to represent the distinct possibilities of the right left passage information.
Definition: ERotation.h:25

◆ getStereoAngle()

double getStereoAngle ( ) const
inline

Getter for the average stereo angle of all wires in this layer.

Definition at line 206 of file CDCWireLayer.h.

207 { return std::atan(getTanStereoAngle()); }
double getTanStereoAngle() const
Getter for the averaged tan stereo angle of all wires in this layer.
Definition: CDCWireLayer.h:202

◆ getStereoKind()

EStereoKind getStereoKind ( ) const
inline

Getter for the stereo type of the wire layer Gives the stereo type of the wire.


Result is one of EStereoKind::c_Axial, EStereoKind::c_StereoU and EStereoKind::c_StereoV.
The stereo type is shared by all wires in the same superlayer.
The superlayer pattern for Belle II is AUAVAUAVA according the TDR

Definition at line 198 of file CDCWireLayer.h.

199 { return front().getStereoKind(); }

◆ getTanStereoAngle()

double getTanStereoAngle ( ) const
inline

Getter for the averaged tan stereo angle of all wires in this layer.

Definition at line 202 of file CDCWireLayer.h.

203 { return m_tanStereoAngle; }
double m_tanStereoAngle
Storage for average tan stereo angle.
Definition: CDCWireLayer.h:285

◆ getWire()

const CDCWire & getWire ( IWire  iWire) const
inline

Gives the wire by its id in the layer.

Definition at line 138 of file CDCWireLayer.h.

139 {
140 // cppcheck-suppress returnTempReference
141 return at(iWire);
142 }
Reference at(std::size_t i) const
Returns the object at index i.
Definition: Range.h:92

◆ getWireWrappedAround()

const CDCWire & getWireWrappedAround ( IWire  iWire) const
inline

Returns the wire by its id in the layer.

Gives the wire by its id, but transforms it to valid range first,
so even if the id is out of range you will get a valid wire object.
This makes the retrieval of neighbors much easier if the neighborhood
is around the discontinuity near the zero wires.

Definition at line 161 of file CDCWireLayer.h.

162 { return getWire(IWireUtil::wrappedAround(iWire, size())); }
static IWire wrappedAround(IWire iWire, IWire nWires)
Wraps the given in layer wire index by the total number of wires in this layer.
Definition: IWire.h:37

◆ initialize()

void initialize ( )

Initializes the wire layer variables to the average of according variables in the wire range.

Set the numbering shift

Definition at line 32 of file CDCWireLayer.cc.

33{
34 size_t nWiresInLayer = size();
35 ILayer iCLayer = getICLayer();
36
37 // values from CDCGeometryPar
39
40 const double* innerRadiusWireLayer = cdcgp.innerRadiusWireLayer();
41 const double* outerRadiusWireLayer = cdcgp.outerRadiusWireLayer();
42
43 m_innerCylindricalR = innerRadiusWireLayer[iCLayer];
44 m_outerCylindricalR = outerRadiusWireLayer[iCLayer];
45
48
49 // average values from wires
50 m_tanStereoAngle = 0.0;
51 m_minCylindricalR = 1000000.0;
52 m_refZ = 0.0;
56 m_forwardZ = 0.0;
57 m_backwardZ = 0.0;
58
59 for (const CDCWire& wire : *this) {
61
62 double minROfWire = wire.getMinCylindricalR();
63 m_minCylindricalR = std::min(minROfWire, m_minCylindricalR);
64
65 m_refZ += wire.getRefZ();
67
68 // calculate the forward nad backward r in the xy projection. take the average
71
72 // calculate the forward and backward z position. take the average of all wires
73 m_forwardZ += wire.getForwardZ();
74 m_backwardZ += wire.getBackwardZ();
75 }
76
77 m_tanStereoAngle /= nWiresInLayer;
78
79 m_refZ /= nWiresInLayer;
80 m_refCylindricalR /= nWiresInLayer;
81
82 m_forwardCylindricalR /= nWiresInLayer;
83 m_backwardCylindricalR /= nWiresInLayer;
84
85 m_forwardZ /= nWiresInLayer;
86 m_backwardZ /= nWiresInLayer;
87}
The Class for CDC Geometry Parameters.
const double * innerRadiusWireLayer() const
Returns an array of inner radius of wire layers.
signed short getShiftInSuperLayer(unsigned short iSuperLayer, unsigned short iLayer) const
Returns shift in the super-layer.
const double * outerRadiusWireLayer() const
Returns an array of outer radius of wire layers.
ISuperLayer getISuperLayer() const
Getter for the super layer id.
Definition: CDCWireLayer.h:96
ILayer getILayer() const
Getter for the layer id unique within the superlayer.
Definition: CDCWireLayer.h:92
Class representing a sense wire in the central drift chamber.
Definition: CDCWire.h:58
double getRefCylindricalR() const
Getter for the cylindrical radius at the wire reference position.
Definition: CDCWire.h:260
double getBackwardCylindricalR() const
Getter for the distance to the beamline ( z-axes ) at the backward joint point.
Definition: CDCWire.h:272
double getForwardCylindricalR() const
Getter for the nominal distance to the beamline ( z-axes ) at the forward joint point.
Definition: CDCWire.h:268
double getForwardZ() const
Getter for the z coordinate at the forward joint points of the wires.
Definition: CDCWire.h:276
double getTanStereoAngle() const
Getter for the tangents of the stereo angle of the wire.
Definition: CDCWire.h:240
double getRefZ() const
Getter for the wire reference z coordinate Gives the wire's reference z coordinate.
Definition: CDCWire.h:236
double getMinCylindricalR() const
Getter for the closest distance to the beamline ( z-axes )
Definition: CDCWire.h:264
double getBackwardZ() const
Getter for the z coordinate at the backward joint points of the wires.
Definition: CDCWire.h:280

◆ isAxial()

bool isAxial ( ) const
inline

Indicates if the wire is axial or stereo.

Definition at line 188 of file CDCWireLayer.h.

189 { return front().isAxial(); }

◆ isValidIWire()

bool isValidIWire ( IWire  iWire) const
inline

Checks if the given wire id belongs to a valid wire in this layer.

Definition at line 134 of file CDCWireLayer.h.

135 { return 0 <= iWire and iWire < IWire(size()); }

◆ operator[]()

Reference operator[] ( std::size_t  i) const
inlineinherited

Returns the object at index i.

Definition at line 88 of file Range.h.

89 { return *(begin() + i); }

◆ size()

std::size_t size ( ) const
inlineinherited

Returns the total number of objects in this range.

Definition at line 76 of file Range.h.

77 { return std::distance(begin(), end()); }

Member Data Documentation

◆ m_backwardCylindricalR

double m_backwardCylindricalR = 0.0
private

Storage for average distance from beamline of backward wire ends.

Definition at line 300 of file CDCWireLayer.h.

◆ m_backwardZ

double m_backwardZ = 0.0
private

Storage for z position of backward wire ends.

Definition at line 306 of file CDCWireLayer.h.

◆ m_forwardCylindricalR

double m_forwardCylindricalR = 0.0
private

Storage for average distance from beamline of forward wire ends.

Definition at line 297 of file CDCWireLayer.h.

◆ m_forwardZ

double m_forwardZ = 0.0
private

Storage for z position of forward wire ends.

Definition at line 303 of file CDCWireLayer.h.

◆ m_innerCylindricalR

double m_innerCylindricalR = 0.0
private

Storage of the inner radius of the wire layer as taken from the CDCGeometryPar instance.

Definition at line 317 of file CDCWireLayer.h.

◆ m_minCylindricalR

double m_minCylindricalR = 0.0
private

Storage for minimal distance from beamline.

Definition at line 288 of file CDCWireLayer.h.

◆ m_outerCylindricalR

double m_outerCylindricalR = 0.0
private

Storage of the outer radius of the wire layer as taken from the CDCGeometryPar instance.

Definition at line 320 of file CDCWireLayer.h.

◆ m_refCylindricalR

double m_refCylindricalR = 0.0
private

Storage for common (averaged) cylindrical radius of all wire reference positions.

Definition at line 291 of file CDCWireLayer.h.

◆ m_refZ

double m_refZ = 0.0
private

Storage for common (averaged) z coordinate of all wire reference positions.

Definition at line 294 of file CDCWireLayer.h.

◆ m_shift

ERotation m_shift = ERotation::c_Invalid
private

Indicates if this layer is shifted clockwise or counterclockwise.


The shift indicates if the wire with index zero in this layer
is more clockwise or counterclockwise than
the zero wire in the zero layer within this superlayer.
This can be used to speed up the lookup inward and outward
neighbors of the wires in this layer. For even layers the shift should be 0.

Definition at line 275 of file CDCWireLayer.h.

◆ m_tanStereoAngle

double m_tanStereoAngle = 0.0
private

Storage for average tan stereo angle.

Definition at line 285 of file CDCWireLayer.h.


The documentation for this class was generated from the following files: