Belle II Software development
|
Class representing the sense wire arrangement in the whole of the central drift chamber. More...
#include <CDCWireTopology.h>
Public Member Functions | |
CDCWireTopology () | |
Default constructor for ROOT compatibility. Use rather getInstance to get the shared singleton instance. | |
CDCWireTopology (const CDCWireTopology &wireTopology)=delete | |
Disallow copy construction of the wire topology. | |
void | operator= (const CDCWireTopology &wireTopology)=delete |
Disallow copy assignment of the wire topology. | |
void | reinitialize (EWirePosition wirePosition, bool ignoreWireSag) |
Reload all geometry parameters form the CDCGeometryPar to adjust to changes in geometry. | |
double | getOuterCylindricalR () const |
Getter for the outer radius of the outer most wire layer. | |
double | getInnerCylindricalR () const |
Getter for the inner radius of the inner most wire layer. | |
Wire getters | |
Gets the wires from a WireID. | |
bool | isValidWireID (const WireID &wireID) const |
Checks the validity of a wireID convenience object. | |
bool | isValidIWire (ILayer iCLayer, IWire iWire) const |
Checks the validity of the continuous layer id, wire id combination. | |
bool | isValidIWire (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Checks the validity of the superlayer id, layer id, wire id combination. | |
const CDCWire & | getWire (const WireID &wireId) const |
Getter for wire getter by wireID object. | |
const CDCWire & | getWire (ILayer iCLayer, IWire iWire) const |
Getter for wire getter by continuous layer id and wire id. | |
const CDCWire & | getWire (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for wire getter by superlayer id, layer id and wire id. | |
const std::vector< Belle2::TrackFindingCDC::CDCWire > & | getWires () const |
Getter for the underlying storing wire vector. | |
Wire layer getters | |
Getters for the wire layer | |
ILayer | getNLayers () const |
Getter for the total number of wire layers. | |
bool | isValidICLayer (ILayer iCLayer) const |
Checks the validity of the continuous layer id. | |
bool | isValidILayer (ISuperLayer iSuperLayer, ILayer iLayer) const |
Checks the validity of the superlayer id, layer id combination. | |
const CDCWireLayer & | getWireLayer (const WireID &wireId) const |
Getter for wire layer getter by wireID object. | |
const CDCWireLayer & | getWireLayer (ILayer iCLayer) const |
Getter for wire layer getter by continuous layer id. | |
const CDCWireLayer & | getWireLayer (ISuperLayer iSuperLayer, ILayer iLayer) const |
Getter for wire layer getter by superlayer id and layer id. | |
const std::vector< Belle2::TrackFindingCDC::CDCWireLayer > & | getWireLayers () const |
Getter for the underlying storing layer vector. | |
Wire superlayer getters | |
Getters for the wire superlayers | |
ISuperLayer | getNSuperLayers () const |
Getter for the total number of superlayers. | |
bool | isValidISuperLayer (ISuperLayer iSuperLayer) const |
Checks the validity of the superlayer id. | |
ISuperLayer | getISuperLayerAtCylindricalR (double cylindricalR) |
Returns the logical superlayer number at the given radius. | |
const CDCWireSuperLayer & | getWireSuperLayer (const WireID &wireID) const |
Getter for wire superlayer getter by wireID object. | |
const CDCWireSuperLayer & | getWireSuperLayer (ISuperLayer iSuperLayer) const |
Getter for wire superlayer getter by superlayer id. | |
const std::vector< Belle2::TrackFindingCDC::CDCWireSuperLayer > & | getWireSuperLayers () const |
Getter for the underlying storing superlayer vector. | |
Getters for the closest neighbors of a wire by wireID | |
They do not cross superlayer boundaries.
| |
WireNeighborKind | getNeighborKind (const WireID &wireID, const WireID &otherWireID) const |
Checks if two wires are closest neighbors. | |
bool | arePrimaryNeighbors (const WireID &wireID, const WireID &otherWireID) const |
Checks if two wires are primary neighbors. | |
bool | areSeconaryNeighbors (const WireID &wireID, const WireID &otherWireID) const |
Checks if two wires are secondary neighbors. | |
MayBePtr< const CDCWire > | getPrimaryNeighbor (short oClockDirection, const WireID &wireID) const |
Getter for the primary neighbor of the given wire id. | |
WireNeighborPair | getNeighborsOutwards (const WireID &wireID) const |
Getter for the two closest neighbors in the layer outwards. | |
WireNeighborPair | getNeighborsInwards (const WireID &wireID) const |
Getter for the two closest neighbors in the layer inwards. | |
MayBePtr< const CDCWire > | getNeighborCCWOutwards (const WireID &wireID) const |
Getter for the nearest counterclockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCWOutwards (const WireID &wireID) const |
Getter for the nearest clockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCCW (const WireID &wireID) const |
Getter for the nearest counterclockwise neighbor. | |
MayBePtr< const CDCWire > | getNeighborCW (const WireID &wireID) const |
Getter for the nearest clockwise neighbor. | |
MayBePtr< const CDCWire > | getNeighborCCWInwards (const WireID &wireID) const |
Getter for the nearest counterclockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCWInwards (const WireID &wireID) const |
Getter for the nearest clockwise neighbor in the next layer outwards. | |
Getters for the closest neighbors of a wire by superlayer id, layer id and wire id | |
They do not cross superlayer boundaries.
| |
MayBePtr< const CDCWire > | getPrimaryNeighbor (short oClockDirection, ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the primary neighbor of the given wire id following the direction on the clock. | |
WireNeighborPair | getNeighborsOutwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the two closest neighbors in the layer outwards. | |
WireNeighborPair | getNeighborsInwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the two closest neighbors in the layer inwards. | |
MayBePtr< const CDCWire > | getNeighborCCWOutwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest counterclockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCWOutwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest clockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCCW (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest counterclockwise neighbor. | |
MayBePtr< const CDCWire > | getNeighborCW (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest clockwise neighbor. | |
MayBePtr< const CDCWire > | getNeighborCCWInwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest counterclockwise neighbor in the next layer outwards. | |
MayBePtr< const CDCWire > | getNeighborCWInwards (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the nearest clockwise neighbor in the next layer outwards. | |
Secondary neighbor getters by wireID object | |
The secondary neighbors are numbered like positions on the normal twelve hour clock. The rational of this is that the secondary neighbors are positioned | |
MayBePtr< const CDCWire > | getSecondaryNeighbor (short oClockDirection, const WireID &wireID) const |
Getter for the secondary neighbor of the given wire id. | |
MayBePtr< const CDCWire > | getSecondNeighborOneOClock (const WireID &wireID) const |
Getter for secondary neighbor at the one o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborTwoOClock (const WireID &wireID) const |
Getter for secondary neighbor at the two o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborThreeOClock (const WireID &wireID) const |
Getter for secondary neighbor at the three o'clock position - always exists. | |
MayBePtr< const CDCWire > | getSecondNeighborFourOClock (const WireID &wireID) const |
Getter for secondary neighbor at the four o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborFiveOClock (const WireID &wireID) const |
Getter for secondary neighbor at the five o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborSixOClock (const WireID &wireID) const |
Getter for secondary neighbor at the six o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborSevenOClock (const WireID &wireID) const |
Getter for secondary neighbor at the seven o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborEightOClock (const WireID &wireID) const |
Getter for secondary neighbor at the eight o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborNineOClock (const WireID &wireID) const |
Getter for secondary neighbor at the nine o'clock position - always exists. | |
MayBePtr< const CDCWire > | getSecondNeighborTenOClock (const WireID &wireID) const |
Getter for secondary neighbor at the ten o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborElevenOClock (const WireID &wireID) const |
Getter for secondary neighbor at the eleven o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborTwelveOClock (const WireID &wireID) const |
Getter for secondary neighbor at the twelve o'clock position. | |
Secondary neighbor getters by superlayer id , layer id and wire id. | |
The secondary neighbors are numbered like positions on the normal twelve hour clock. The rational of this is that the secondary neighbors are positioned Note : Not all neighbors might be present at the boundaries of the superlayer. | |
MayBePtr< const CDCWire > | getSecondaryNeighbor (short oClockDirection, ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for the secondary neighbor of the given wire id following the direction on the clock. | |
MayBePtr< const CDCWire > | getSecondNeighborOneOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the one o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborTwoOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the two o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborThreeOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the three o'clock position - always exists. | |
MayBePtr< const CDCWire > | getSecondNeighborFourOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the four o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborFiveOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the five o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborSixOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the six o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborSevenOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the seven o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborEightOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the eight o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborNineOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the nine o'clock position - always exists. | |
MayBePtr< const CDCWire > | getSecondNeighborTenOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the ten o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborElevenOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the eleven o'clock position. | |
MayBePtr< const CDCWire > | getSecondNeighborTwelveOClock (ISuperLayer iSuperLayer, ILayer iLayer, IWire iWire) const |
Getter for secondary neighbor at the twelve o'clock position. | |
Static Public Member Functions | |
static CDCWireTopology & | getInstance () |
Getter for the singleton instance of the wire topology. | |
Static Public Attributes | |
static const IWire | c_NWires = 14336 |
Total number of wires. | |
static const ILayer | c_NLayers = 56 |
Total number of layers. | |
static const ISuperLayer | c_NSuperLayers = 9 |
Total number of superlayers. | |
Private Member Functions | |
void | initialize () |
Create all wires, wire layers and wire superlayers and their interdependences with base geometry from the CDCGeometryPar. | |
Private Attributes | |
std::vector< Belle2::TrackFindingCDC::CDCWire > | m_wires |
Storage for all wires in the CDC. | |
std::vector< Belle2::TrackFindingCDC::CDCWireLayer > | m_wireLayers |
Storage for all wire layers in the CDC. | |
std::vector< Belle2::TrackFindingCDC::CDCWireSuperLayer > | m_wireSuperLayers |
Storage for all wire superlayers in the CDC. | |
ILayer | m_FirstLayerOffset = 0 |
Offset of first layer. | |
Class representing the sense wire arrangement in the whole of the central drift chamber.
This class represents the the whole CDC layer geometry and the neighborhood relations in it.
Since their is only one CDC at a time it is implemented as a singleton object, with getInstance().
Their should rarely be the need to construct additional instances.
It provides getters for all wires, layers and superlayers and can check the validity of wire id combinations.
Also there are methods for getting to the closest and secondary of each wire.
The class does provide the memory for all instances of wires, layers and superlayers.
Definition at line 44 of file CDCWireTopology.h.
|
inline |
Default constructor for ROOT compatibility. Use rather getInstance to get the shared singleton instance.
Definition at line 52 of file CDCWireTopology.h.
Checks if two wires are primary neighbors.
Definition at line 201 of file CDCWireTopology.h.
|
inline |
Getter for the inner radius of the inner most wire layer.
Definition at line 475 of file CDCWireTopology.h.
|
static |
Getter for the singleton instance of the wire topology.
Definition at line 20 of file CDCWireTopology.cc.
ISuperLayer getISuperLayerAtCylindricalR | ( | double | cylindricalR | ) |
Returns the logical superlayer number at the given radius.
Definition at line 85 of file CDCWireTopology.cc.
Getter for the nearest counterclockwise neighbor.
Definition at line 229 of file CDCWireTopology.h.
|
inline |
Getter for the nearest counterclockwise neighbor.
Definition at line 287 of file CDCWireTopology.h.
Getter for the nearest counterclockwise neighbor in the next layer outwards.
Definition at line 237 of file CDCWireTopology.h.
|
inline |
Getter for the nearest counterclockwise neighbor in the next layer outwards.
Definition at line 299 of file CDCWireTopology.h.
Getter for the nearest counterclockwise neighbor in the next layer outwards.
Definition at line 221 of file CDCWireTopology.h.
|
inline |
Getter for the nearest counterclockwise neighbor in the next layer outwards.
Definition at line 275 of file CDCWireTopology.h.
Getter for the nearest clockwise neighbor.
Definition at line 233 of file CDCWireTopology.h.
|
inline |
Getter for the nearest clockwise neighbor.
Definition at line 293 of file CDCWireTopology.h.
Getter for the nearest clockwise neighbor in the next layer outwards.
Definition at line 241 of file CDCWireTopology.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards.
Definition at line 305 of file CDCWireTopology.h.
Getter for the nearest clockwise neighbor in the next layer outwards.
Definition at line 225 of file CDCWireTopology.h.
|
inline |
Getter for the nearest clockwise neighbor in the next layer outwards.
Definition at line 281 of file CDCWireTopology.h.
WireNeighborKind getNeighborKind | ( | const WireID & | wireID, |
const WireID & | otherWireID | ||
) | 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 107 of file CDCWireTopology.cc.
|
inline |
Getter for the two closest neighbors in the layer inwards.
Definition at line 217 of file CDCWireTopology.h.
|
inline |
Getter for the two closest neighbors in the layer inwards.
Definition at line 269 of file CDCWireTopology.h.
|
inline |
Getter for the two closest neighbors in the layer outwards.
Definition at line 213 of file CDCWireTopology.h.
|
inline |
Getter for the two closest neighbors in the layer outwards.
Definition at line 263 of file CDCWireTopology.h.
|
inline |
Getter for the total number of wire layers.
Definition at line 125 of file CDCWireTopology.h.
|
inline |
|
inline |
Getter for the outer radius of the outer most wire layer.
Definition at line 471 of file CDCWireTopology.h.
|
inline |
Getter for the primary neighbor of the given wire id.
Definition at line 209 of file CDCWireTopology.h.
|
inline |
Getter for the primary neighbor of the given wire id following the direction on the clock.
Definition at line 255 of file CDCWireTopology.h.
|
inline |
Getter for the secondary neighbor of the given wire id.
Definition at line 325 of file CDCWireTopology.h.
|
inline |
Getter for the secondary neighbor of the given wire id following the direction on the clock.
Definition at line 390 of file CDCWireTopology.h.
Getter for secondary neighbor at the eight o'clock position.
Definition at line 357 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the eight o'clock position.
Definition at line 439 of file CDCWireTopology.h.
Getter for secondary neighbor at the eleven o'clock position.
Definition at line 369 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the eleven o'clock position.
Definition at line 457 of file CDCWireTopology.h.
Getter for secondary neighbor at the five o'clock position.
Definition at line 345 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the five o'clock position.
Definition at line 421 of file CDCWireTopology.h.
Getter for secondary neighbor at the four o'clock position.
Definition at line 341 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the four o'clock position.
Definition at line 415 of file CDCWireTopology.h.
Getter for secondary neighbor at the nine o'clock position - always exists.
Definition at line 361 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the nine o'clock position - always exists.
Definition at line 445 of file CDCWireTopology.h.
Getter for secondary neighbor at the one o'clock position.
Definition at line 329 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the one o'clock position.
Definition at line 397 of file CDCWireTopology.h.
Getter for secondary neighbor at the seven o'clock position.
Definition at line 353 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the seven o'clock position.
Definition at line 433 of file CDCWireTopology.h.
Getter for secondary neighbor at the six o'clock position.
Definition at line 349 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the six o'clock position.
Definition at line 427 of file CDCWireTopology.h.
Getter for secondary neighbor at the ten o'clock position.
Definition at line 365 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the ten o'clock position.
Definition at line 451 of file CDCWireTopology.h.
Getter for secondary neighbor at the three o'clock position - always exists.
Definition at line 337 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the three o'clock position - always exists.
Definition at line 409 of file CDCWireTopology.h.
Getter for secondary neighbor at the twelve o'clock position.
Definition at line 373 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the twelve o'clock position.
Definition at line 463 of file CDCWireTopology.h.
Getter for secondary neighbor at the two o'clock position.
Definition at line 333 of file CDCWireTopology.h.
|
inline |
Getter for secondary neighbor at the two o'clock position.
Definition at line 403 of file CDCWireTopology.h.
Getter for wire getter by wireID object.
Definition at line 102 of file CDCWireTopology.h.
|
inline |
Getter for wire getter by continuous layer id and wire id.
Definition at line 106 of file CDCWireTopology.h.
|
inline |
Getter for wire getter by superlayer id, layer id and wire id.
Definition at line 110 of file CDCWireTopology.h.
|
inline |
|
inline |
Getter for wire layer getter by continuous layer id.
Definition at line 141 of file CDCWireTopology.h.
|
inline |
Getter for wire layer getter by superlayer id and layer id.
Definition at line 145 of file CDCWireTopology.h.
|
inline |
|
inline |
Getter for the underlying storing wire vector.
Definition at line 114 of file CDCWireTopology.h.
|
inline |
Getter for wire superlayer getter by wireID object.
Definition at line 171 of file CDCWireTopology.h.
|
inline |
Getter for wire superlayer getter by superlayer id.
Definition at line 175 of file CDCWireTopology.h.
|
inline |
Getter for the underlying storing superlayer vector.
Definition at line 181 of file CDCWireTopology.h.
|
private |
Create all wires, wire layers and wire superlayers and their interdependences with base geometry from the CDCGeometryPar.
Definition at line 27 of file CDCWireTopology.cc.
|
inline |
|
inline |
Checks the validity of the superlayer id, layer id combination.
Definition at line 133 of file CDCWireTopology.h.
|
inline |
|
inline |
Checks the validity of the continuous layer id, wire id combination.
Definition at line 94 of file CDCWireTopology.h.
|
inline |
Checks the validity of the superlayer id, layer id, wire id combination.
Definition at line 98 of file CDCWireTopology.h.
|
inline |
Checks the validity of a wireID convenience object.
Definition at line 90 of file CDCWireTopology.h.
void reinitialize | ( | EWirePosition | wirePosition, |
bool | ignoreWireSag | ||
) |
Reload all geometry parameters form the CDCGeometryPar to adjust to changes in geometry.
Definition at line 70 of file CDCWireTopology.cc.
|
static |
Total number of layers.
Definition at line 66 of file CDCWireTopology.h.
|
static |
Total number of superlayers.
Definition at line 69 of file CDCWireTopology.h.
|
static |
Total number of wires.
Definition at line 63 of file CDCWireTopology.h.
|
private |
Offset of first layer.
Definition at line 489 of file CDCWireTopology.h.
|
private |
Storage for all wire layers in the CDC.
Definition at line 483 of file CDCWireTopology.h.
|
private |
Storage for all wires in the CDC.
Definition at line 480 of file CDCWireTopology.h.
|
private |
Storage for all wire superlayers in the CDC.
Definition at line 486 of file CDCWireTopology.h.