Belle II Software development
|
Class representing a sense wire layer in the central drift chamber. More...
#include <CDCWireLayer.h>
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 CDCWire & | getWire (IWire iWire) const |
Gives the wire by its id in the layer. | |
const CDCWire & | getClosestWire (const Vector3D &pos3D) const |
Gets the wire in this layer that is closest to the given position. | |
Neighborhood of wires in this layer | |
const CDCWire & | getWireWrappedAround (IWire iWire) const |
Returns the wire by its id in the layer. | |
const CDCWire & | getNeighborCCW (IWire iWire) const |
Getter for the first counterclockwise neighbor by wire id in the layer. | |
const CDCWire & | getNeighborCW (IWire iWire) const |
Getter for the first clockwise neighbor by wire id in the layer. | |
const CDCWire & | getSecondNeighborCCW (IWire iWire) const |
Getter for the first counterclockwise neighbor by wire id in the layer. | |
const CDCWire & | getSecondNeighborCW (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 CDCWireLayer * | getInstance (ILayer iCLayer) |
Getter from the the continuous layer id. Does not construct a new object. | |
static const CDCWireLayer * | getInstance (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. | |
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.
|
inherited |
|
inherited |
|
private |
Type of the base class.
Definition at line 46 of file CDCWireLayer.h.
|
inherited |
|
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.
|
inlineinherited |
Returns the object at index i.
Definition at line 92 of file Range.h.
|
inlineinherited |
Returns the dereferenced iterator before end()
Definition at line 84 of file Range.h.
|
inlineinherited |
|
inlineinherited |
Counts the number of equivalent items in the range.
Definition at line 101 of file Range.h.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
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.
|
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.
Gets the wire in this layer that is closest to the given position.
Definition at line 89 of file CDCWireLayer.cc.
|
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.
|
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.
|
inline |
Getter for the continuous layer id unique over all layers.
Definition at line 88 of file CDCWireLayer.h.
|
inline |
|
inline |
Getter for inner radius of the layer as taken from the CDCGeometryPar.
Definition at line 245 of file CDCWireLayer.h.
|
static |
Getter from the the continuous layer id. Does not construct a new object.
Definition at line 22 of file CDCWireLayer.cc.
|
static |
Getter from the superlayer id, the layer id. Does not construct a new object.
Definition at line 27 of file CDCWireLayer.cc.
|
inline |
|
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.
|
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.
|
inline |
Getter for the first counterclockwise neighbor by wire id in the layer.
Definition at line 165 of file CDCWireLayer.h.
|
inline |
Getter for the first clockwise neighbor by wire id in the layer.
Definition at line 169 of file CDCWireLayer.h.
|
inline |
Getter for outer radius of the layer as taken from the CDCGeometryPar.
Definition at line 249 of file CDCWireLayer.h.
|
inline |
Getter for the width of the wire layer in the radial direction.
Definition at line 253 of file CDCWireLayer.h.
|
inline |
Getter for the common (averaged) cylindrical radius at the wire reference point.
Definition at line 214 of file CDCWireLayer.h.
|
inline |
Getter for the common (averaged) z component of the wire reference point.
Definition at line 218 of file CDCWireLayer.h.
|
inline |
Getter for the first counterclockwise neighbor by wire id in the layer.
Definition at line 173 of file CDCWireLayer.h.
|
inline |
Getter for the first clockwise neighbor by wire id in the layer.
Definition at line 177 of file CDCWireLayer.h.
|
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.
|
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
baseLayer | Wire layer that should be used as reference to the numbering shift |
Definition at line 124 of file CDCWireLayer.h.
|
inline |
Getter for the average stereo angle of all wires in this layer.
Definition at line 206 of file CDCWireLayer.h.
|
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.
|
inline |
Getter for the averaged tan stereo angle of all wires in this layer.
Definition at line 202 of file CDCWireLayer.h.
|
inline |
Gives the wire by its id in the layer.
Definition at line 138 of file CDCWireLayer.h.
|
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.
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.
|
inline |
|
inline |
Checks if the given wire id belongs to a valid wire in this layer.
Definition at line 134 of file CDCWireLayer.h.
|
inlineinherited |
|
inlineinherited |
|
private |
Storage for average distance from beamline of backward wire ends.
Definition at line 300 of file CDCWireLayer.h.
|
private |
Storage for z position of backward wire ends.
Definition at line 306 of file CDCWireLayer.h.
|
private |
Storage for average distance from beamline of forward wire ends.
Definition at line 297 of file CDCWireLayer.h.
|
private |
Storage for z position of forward wire ends.
Definition at line 303 of file CDCWireLayer.h.
|
private |
Storage of the inner radius of the wire layer as taken from the CDCGeometryPar instance.
Definition at line 317 of file CDCWireLayer.h.
|
private |
Storage for minimal distance from beamline.
Definition at line 288 of file CDCWireLayer.h.
|
private |
Storage of the outer radius of the wire layer as taken from the CDCGeometryPar instance.
Definition at line 320 of file CDCWireLayer.h.
|
private |
Storage for common (averaged) cylindrical radius of all wire reference positions.
Definition at line 291 of file CDCWireLayer.h.
|
private |
Storage for common (averaged) z coordinate of all wire reference positions.
Definition at line 294 of file CDCWireLayer.h.
|
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.
|
private |
Storage for average tan stereo angle.
Definition at line 285 of file CDCWireLayer.h.