 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/topology/CDCWireLayer.h>
13 #include <tracking/trackFindingCDC/topology/WireNeighborPair.h>
14 #include <tracking/trackFindingCDC/topology/ISuperLayer.h>
15 #include <tracking/trackFindingCDC/topology/ILayer.h>
16 #include <tracking/trackFindingCDC/topology/IWire.h>
17 #include <tracking/trackFindingCDC/topology/WireNeighborKind.h>
18 #include <tracking/trackFindingCDC/topology/EStereoKind.h>
19 #include <tracking/trackFindingCDC/utilities/VectorRange.h>
20 #include <tracking/trackFindingCDC/utilities/MayBePtr.h>
27 namespace TrackFindingCDC {
45 class CDCWireSuperLayer
46 :
public ConstVectorRange<CDCWireLayer> {
50 using Super = ConstVectorRange<CDCWireLayer>;
75 {
return front().getISuperLayer(); }
85 {
return 0 <= iLayer and iLayer < int(
size()); }
105 const CDCWire&
getWire(ILayer iLayer, IWire iWire)
const
127 {
return front().getStereoKind(); }
131 {
return front().getInnerCylindricalR(); }
135 {
return back().getOuterCylindricalR(); }
171 IWire iOtherWire)
const;
181 oClockDirection = modulo(oClockDirection, 12);
182 switch (oClockDirection) {
247 oClockDirection = modulo(oClockDirection, 12);
248 switch (oClockDirection) {
WireNeighborPair getNeighborsOutwards(ILayer iLayer, IWire iWire) const
Getter for the two closest neighbors in the layer outwards of the given on.
Reference back() const
Returns the derefenced iterator before end()
const CDCWire & getNeighborCCW(IWire iWire) const
Getter for the first counterclockwise neighbor by wire id in the layer.
std::size_t size() const
Returns the total number of objects in this range.
double m_innerRefZ
Memory for the (fitted) z of the reference wire reference points at the inner cylindricalR of this su...
bool isValidIWire(IWire iWire) const
Checks if the given wire id belongs to a valid wire in this layer.
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 ...
MayBePtr< const CDCWire > getSecondNeighborFourOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the four o'clock position.
const CDCWire & getNeighborCW(IWire iWire) const
Getter for the first clockwise neighbor by wire id in the layer.
double m_refTanLambda
Memory for (fitted) proporitionality factor between the increasing cylindrical radius and the refernc...
MayBePtr< const CDCWire > getSecondNeighborEightOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the eight o'clock position.
double getOuterRefZ() const
Getter for the (fitted) z of the reference wire reference points at the outer cylindricalR of this su...
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.
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.
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 ...
ISuperLayer getISuperLayer() const
Getter for the super layer id.
WireNeighborKind getNeighborKind(ILayer iLayer, IWire iWire, ILayer iOtherLayer, IWire iOtherWire) const
Checks if two wires are closest neighbors.
MayBePtr< const CDCWire > getSecondNeighborElevenOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the elven o'clock position.
ConstVectorRange< CDCWireLayer > Super
Type of the base class.
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 ...
MayBePtr< const CDCWire > getSecondNeighborThreeOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the three o'clock position.
MayBePtr< const CDCWire > getSecondNeighborNineOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the nine o'clock position.
MayBePtr< const CDCWire > getSecondNeighborOneOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the one o'clock position.
bool isValidIWire(ILayer iLayer, IWire iWire) const
Checks if the given wire id belongs to a valid wire in this superlayer.
CDCWireSuperLayer(const ConstVectorRange< CDCWireLayer > &wireLayers)
Constructor taking the range of layers the superlayer shall contain. Use rather getInstance() to avoi...
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 ...
MayBePtr< const CDCWire > getPrimaryNeighbor(short oClockDirection, ILayer iLayer, IWire iWire) const
Getter for the two closest neighbors in the given o'clock direction.
MayBePtr< const CDCWire > getSecondNeighborSixOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the six o'clock position.
void operator=(const CDCWireSuperLayer &wireSuperLayer)=delete
Disallow copy assignment of wire super layers.
double getMiddleCylindricalR() const
Getter for the radius in the middle of the layer.
Abstract base class for different kinds of events.
const CDCWire & getWireWrappedAround(IWire iWire) const
Returns the wire by its id in the layer.
const CDCWire & getWire(IWire iWire) const
Gives the wire by its id in the layer.
double getRefTanLambda() const
Getter for (fitted) proporitionality factor between the increasing cylindrical radius and the refernc...
MayBePtr< const CDCWire > getSecondNeighborTwelveOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the twelve o'clock position.
MayBePtr< const CDCWire > getSecondNeighborFiveOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the five o'clock position.
MayBePtr< const CDCWire > getSecondNeighborSevenOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the seven o'clock position.
double m_outerRefZ
Memory for the (fitted) z of the reference wire reference points at the outer cylindricalR of this su...
A pair of iterators usable with the range base for loop.
MayBePtr< const CDCWire > getSecondNeighborTenOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the ten o'clock position.
MayBePtr< const CDCWire > getSecondaryNeighbor(short oClockDirection, ILayer iLayer, IWire iWire) const
@getSecondaryNeighbor Secondary neighborhood The secondary neighbors are numbered like positions on t...
Class representating a sense wire superlayer in the central drift chamber.
WireNeighborPair getNeighborsInwards(ILayer iLayer, IWire iWire) const
Getter for the two closest neighbors in the layer inwards of the given on.
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.
Reference at(std::size_t i) const
Returns the object at index i.
Type for the neighbor relationship from one wire to another.
bool isAxial() const
Indicates if the wire is axial or stereo.
double getInnerCylindricalR() const
Getter for the inner radius of the layer as retrived from the CDCGeometryPar by the inner most layer.
void initialize()
Intializes the superlayer variables of according the layer range. Set the numbering shift of containe...
EStereoKind getStereoKind() const
Getter for the stereo type of the wire layer Gives the stereo type of the wire.
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.
double getInnerRefZ() const
Getter for the (fitted) z of the reference wire reference points at the inner cylindricalR of this su...
double getOuterCylindricalR() const
Getter for the outer radius of the layer as retrived from the CDCGeometryPar by the outer most layer.
MayBePtr< const CDCWire > getSecondNeighborTwoOClock(ILayer iLayer, IWire iWire) const
Getter for secondary neighbor at the two o'clock position.
Reference front() const
Returns the derefenced iterator at begin()