![]() |
Belle II Software development
|
Class representing a sense wire superlayer in the central drift chamber. More...
#include <CDCWireSuperLayer.h>
Public Types | |
| using | Super = TrackingUtilities::ConstVectorRange<CDCWireLayer> |
| Type of the base class. | |
| 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 | |
| CDCWireSuperLayer () | |
| Empty constructor for creating an empty dummy CDCWireSuperLayer for studies with a CDC with missing super layers. | |
| CDCWireSuperLayer (const TrackingUtilities::ConstVectorRange< CDCWireLayer > &wireLayers) | |
| Constructor taking the range of layers the superlayer shall contain. Use rather getInstance() to avoid instance constructions. | |
| CDCWireSuperLayer (const CDCWireSuperLayer &wireSuperLayer)=delete | |
| Disallow copy construction of wire super layers. | |
| CDCWireSuperLayer (CDCWireSuperLayer &&wireSuperLayer)=default | |
| Allow move construction of wire super layers for use in std::vector. | |
| void | operator= (const CDCWireSuperLayer &wireSuperLayer)=delete |
| Disallow copy assignment of wire super layers. | |
| 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. | |
Superlayer index | |
| ISuperLayer | getISuperLayer () const |
| Getter for the super layer id. | |
Layer getters | |
| bool | isValidILayer (ILayer iLayer) const |
| Checks if the given layer id belongs to a valid layer in this superlayer. | |
| const CDCWireLayer & | getWireLayer (ILayer iLayer) const |
| Gives the layer by its layer id within the superlayer. | |
Wire getters | |
| bool | isValidIWire (ILayer iLayer, IWire iWire) const |
| Checks if the given wire id belongs to a valid wire in this superlayer. | |
| const CDCWire & | getWire (ILayer iLayer, IWire iWire) const |
| Gives the wire by its layer id within the superlayer and the wire id in the layer. | |
Geometry properties | |
| 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 | getInnerCylindricalR () const |
| Getter for the inner radius of the layer as retrieved from the CDCGeometryPar by the inner most layer. | |
| double | getOuterCylindricalR () const |
| Getter for the outer radius of the layer as retrieved from the CDCGeometryPar by the outer most layer. | |
| double | getMiddleCylindricalR () const |
| Getter for the radius in the middle of the layer. | |
| double | getInnerRefZ () const |
| Getter for the (fitted) z of the reference wire reference points at the inner cylindricalR of this super layer. | |
| double | getOuterRefZ () const |
| Getter for the (fitted) z of the reference wire reference points at the outer cylindricalR of this super layer. | |
| double | getRefTanLambda () const |
| Getter for (fitted) proportionality factor between the increasing cylindrical radius and the reference z coordinate in this superlayer. | |
Closest neighborhood | |
Note : Not all neighbors might be present at the boundaries of the superlayer. In case the neighbor asked for does not exist the function return nullptr instead. | |
| WireNeighborKind | getNeighborKind (ILayer iLayer, IWire iWire, ILayer iOtherLayer, IWire iOtherWire) const |
| Checks if two wires are closest neighbors. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getPrimaryNeighbor (short oClockDirection, ILayer iLayer, IWire iWire) const |
| Getter for the two closest neighbors in the given o'clock direction. | |
| WireNeighborPair | getNeighborsOutwards (ILayer iLayer, IWire iWire) const |
| Getter for the two closest neighbors in the layer outwards of the given on. | |
| WireNeighborPair | getNeighborsInwards (ILayer iLayer, IWire iWire) const |
| Getter for the two closest neighbors in the layer inwards of the given on. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCCWOutwards (ILayer iLayer, IWire iWire) const |
| Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCWOutwards (ILayer iLayer, IWire iWire) const |
| Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCW (ILayer iLayer, IWire iWire) const |
| Getter for the nearest clockwise neighbor by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCCW (ILayer iLayer, IWire iWire) const |
| Getter for the nearest counterclockwise neighbor by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCCWInwards (ILayer iLayer, IWire iWire) const |
| Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getNeighborCWInwards (ILayer iLayer, IWire iWire) const |
| Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondaryNeighbor (short oClockDirection, ILayer iLayer, IWire iWire) const |
| getSecondaryNeighbor Secondary neighborhood The secondary neighbors are numbered like positions on the normal twelve hour clock. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborOneOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the one o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborTwoOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the two o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborThreeOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the three o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborFourOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the four o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborFiveOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the five o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborSixOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the six o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborSevenOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the seven o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborEightOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the eight o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborNineOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the nine o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborTenOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the ten o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborElevenOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the elven o'clock position. | |
| TrackingUtilities::MayBePtr< const CDCWire > | getSecondNeighborTwelveOClock (ILayer iLayer, IWire iWire) const |
| Getter for secondary neighbor at the twelve o'clock position. | |
Static Public Member Functions | |
| static void | initialize () |
| Initializes the superlayer variables of according the layer range. Set the numbering shift of contained layers. | |
Public Attributes | |
| T1 | first_type |
| STL member. | |
| T2 | second_type |
| STL member. | |
Private Attributes | |
| double | m_innerRefZ |
| Memory for the (fitted) z of the reference wire reference points at the inner cylindricalR of this super layer. | |
| double | m_outerRefZ |
| Memory for the (fitted) z of the reference wire reference points at the outer cylindricalR of this super layer. | |
| double | m_refTanLambda |
| Memory for (fitted) proportionality factor between the increasing cylindrical radius and the reference z coordinate in this superlayer. | |
Class representing a sense wire superlayer in the central drift chamber.
This class represents a CDC superlayer as a range of wire layers.
The range is sorted with increasing layer ids for maximal fast look up.
It provides methods for checking the validity of layer and wire ids as well as
a getter for the layers and wires in this layer.
Additionally it is iterable as a range of CDCWireLayers.
The superlayer also defines the closest and the secondary neighborhood.
The class does not provide the memory for the wire layers by itself.
It uses iterators into a vector of CDCWireLayers.
The vector of CDCWireLayers is normally provided by the CDCWireTopology object instance.
Note : All possible superlayer object are stored in the CDCWireTopology
which you can get with the static getInstance() functions.
There is rarely a need for constructing a superlayer object and
it should be avoided.
Definition at line 43 of file CDCWireSuperLayer.h.
|
inherited |
|
inherited |
Type of the base class.
Definition at line 48 of file CDCWireSuperLayer.h.
|
inherited |
|
inline |
Empty constructor for creating an empty dummy CDCWireSuperLayer for studies with a CDC with missing super layers.
Definition at line 51 of file CDCWireSuperLayer.h.
|
explicit |
Constructor taking the range of layers the superlayer shall contain. Use rather getInstance() to avoid instance constructions.
Definition at line 16 of file CDCWireSuperLayer.cc.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
Getter for the inner radius of the layer as retrieved from the CDCGeometryPar by the inner most layer.
Definition at line 131 of file CDCWireSuperLayer.h.
|
inline |
Getter for the (fitted) z of the reference wire reference points at the inner cylindricalR of this super layer.
Definition at line 144 of file CDCWireSuperLayer.h.
|
inline |
Getter for the super layer id.
Definition at line 76 of file CDCWireSuperLayer.h.
|
inline |
Getter for the radius in the middle of the layer.
Definition at line 139 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest counterclockwise neighbor by wire id and layer id with in this superlayer.
Definition at line 220 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer.
Definition at line 224 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer.
Definition at line 208 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest clockwise neighbor by wire id and layer id with in this superlayer.
Definition at line 216 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer.
Definition at line 228 of file CDCWireSuperLayer.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards by wire id and layer id with in this superlayer.
Definition at line 212 of file CDCWireSuperLayer.h.
| WireNeighborKind getNeighborKind | ( | ILayer | iLayer, |
| IWire | iWire, | ||
| ILayer | iOtherLayer, | ||
| IWire | iOtherWire ) const |
Checks if two wires are closest neighbors.
see details. Returns the relation of the first wire to the second wire give by their layer id within the superlayer and the wire id.
Definition at line 29 of file CDCWireSuperLayer.cc.
| WireNeighborPair getNeighborsInwards | ( | ILayer | iLayer, |
| IWire | iWire ) const |
Getter for the two closest neighbors in the layer inwards of the given on.
Definition at line 77 of file CDCWireSuperLayer.cc.
| WireNeighborPair getNeighborsOutwards | ( | ILayer | iLayer, |
| IWire | iWire ) const |
Getter for the two closest neighbors in the layer outwards of the given on.
Definition at line 99 of file CDCWireSuperLayer.cc.
|
inline |
Getter for the outer radius of the layer as retrieved from the CDCGeometryPar by the outer most layer.
Definition at line 135 of file CDCWireSuperLayer.h.
|
inline |
Getter for the (fitted) z of the reference wire reference points at the outer cylindricalR of this super layer.
Definition at line 148 of file CDCWireSuperLayer.h.
|
inline |
Getter for the two closest neighbors in the given o'clock direction.
Valid values for the o clock direction are 1, 3, 5, 7, 9, 11.
Definition at line 178 of file CDCWireSuperLayer.h.
|
inline |
Getter for (fitted) proportionality factor between the increasing cylindrical radius and the reference z coordinate in this superlayer.
Definition at line 152 of file CDCWireSuperLayer.h.
|
inline |
getSecondaryNeighbor Secondary neighborhood The secondary neighbors are numbered like positions on the normal twelve hour clock.
Due to the hexogonal arrangement of the wires, the secondary neighbors are positioned just like the numbers on the clock if you took the center of the clock to the wire position and the twelve o'clock points in the outwards direction.
Note : Not all neighbors might be present at the boundaries of the superlayer. In case the neighbor asked for does not exist, the functions return nullptr instead.
Definition at line 244 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the eight o'clock position.
Definition at line 311 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the elven o'clock position.
Definition at line 324 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the five o'clock position.
Definition at line 298 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the four o'clock position.
Definition at line 293 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the nine o'clock position.
Definition at line 315 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the one o'clock position.
Definition at line 280 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the seven o'clock position.
Definition at line 306 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the six o'clock position.
Definition at line 302 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the ten o'clock position.
Definition at line 319 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the three o'clock position.
Definition at line 289 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the twelve o'clock position.
Definition at line 328 of file CDCWireSuperLayer.h.
|
inline |
Getter for secondary neighbor at the two o'clock position.
Definition at line 285 of file CDCWireSuperLayer.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 127 of file CDCWireSuperLayer.h.
Gives the wire by its layer id within the superlayer and the wire id in the layer.
Definition at line 106 of file CDCWireSuperLayer.h.
|
inline |
Gives the layer by its layer id within the superlayer.
Definition at line 90 of file CDCWireSuperLayer.h.
|
static |
Initializes the superlayer variables of according the layer range. Set the numbering shift of contained layers.
Definition at line 25 of file CDCWireSuperLayer.cc.
|
inline |
Indicates if the wire is axial or stereo.
Definition at line 117 of file CDCWireSuperLayer.h.
|
inline |
Checks if the given layer id belongs to a valid layer in this superlayer.
Definition at line 86 of file CDCWireSuperLayer.h.
Checks if the given wire id belongs to a valid wire in this superlayer.
Definition at line 102 of file CDCWireSuperLayer.h.
|
inlineinherited |
|
inlineinherited |
|
private |
Memory for the (fitted) z of the reference wire reference points at the inner cylindricalR of this super layer.
Definition at line 334 of file CDCWireSuperLayer.h.
|
private |
Memory for the (fitted) z of the reference wire reference points at the outer cylindricalR of this super layer.
Definition at line 337 of file CDCWireSuperLayer.h.
|
private |
Memory for (fitted) proportionality factor between the increasing cylindrical radius and the reference z coordinate in this superlayer.
Definition at line 340 of file CDCWireSuperLayer.h.