Belle II Software
release-08-01-10
|
Class representating 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 convinience 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. More... | |
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 representating 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 singletone 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.
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.