 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/topology/CDCWire.h>
13 #include <tracking/trackFindingCDC/topology/ISuperLayer.h>
14 #include <tracking/trackFindingCDC/topology/ILayer.h>
15 #include <tracking/trackFindingCDC/topology/IWire.h>
16 #include <tracking/trackFindingCDC/topology/EStereoKind.h>
18 #include <tracking/trackFindingCDC/numerics/ERotation.h>
19 #include <tracking/trackFindingCDC/utilities/VectorRange.h>
26 namespace TrackFindingCDC {
44 :
public ConstVectorRange<CDCWire> {
48 using Super = ConstVectorRange<CDCWire>;
68 explicit CDCWireLayer(
const ConstVectorRange<CDCWire>& wireRange);
91 {
return front().getICLayer(); }
95 {
return front().getILayer(); }
99 {
return front().getISuperLayer(); }
127 {
return static_cast<ERotation
>(
getShift() - baseLayer.getShift()); }
137 {
return 0 <= iWire and iWire < IWire(
size()); }
140 const CDCWire&
getWire(IWire iWire)
const
191 {
return front().isAxial(); }
201 {
return front().getStereoKind(); }
277 ERotation
m_shift = ERotation::c_Invalid;
double m_refCylindricalR
Storage for common (averaged) cylindrical radius of all wire reference positions.
double m_refZ
Storage for common (averaged) z coordinate of all wire reference positions.
const CDCWire & getNeighborCCW(IWire iWire) const
Getter for the first counterclockwise neighbor by wire id in the layer.
ConstVectorRange< CDCWire > Super
Type of the base class.
const CDCWire & getSecondNeighborCW(IWire iWire) const
Getter for the first clockwise neighbor by wire id in the layer.
std::size_t size() const
Returns the total number of objects in this range.
double m_backwardZ
Storage for z position of backward wire ends.
bool isValidIWire(IWire iWire) const
Checks if the given wire id belongs to a valid wire in this layer.
ERotation m_shift
Indicates if this layer is shifted clockwise or counterclockwise.
double m_forwardZ
Storage for z position of forward wire ends.
const CDCWire & getNeighborCW(IWire iWire) const
Getter for the first clockwise neighbor by wire id in the layer.
static IWire wrappedAround(IWire iWire, IWire nWires)
Wraps the given in layer wire index by the total number of wires in this layer.
EStereoKind getStereoKind() const
Getter for the stereo type of the wire layer Gives the stereo type of the wire.
void initialize()
Intializes the wire layer variables to the average of according variables in the wire range.
double m_forwardCylindricalR
Storage for average distance from beamline of forward wire ends.
ILayer getICLayer() const
Getter for the continuous layer id unique over all layers.
double getOuterCylindricalR() const
Getter for outer radius of the layer as taken from the CDCGeometryPar.
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 getBackwardZ() const
Getter for the average z coordinate at the backward joint points of all wires in this layer.
double getForwardCylindricalR() const
Getter for the average distance to the beamline ( z-axes ) at the forward joint points of all wires i...
double getRadialCellWidth() const
Getter for the width of the wire layer in the radial direction.
CDCWireLayer(const ConstVectorRange< CDCWire > &wireRange)
Constructor taking the range of wires the layer shall contain.
double getTanStereoAngle() const
Getter for the averaged tan stereo angle of all wires in this layer.
Abstract base class for different kinds of events.
double m_minCylindricalR
Storage for minimal distance from beamline.
double getBackwardCylindricalR() const
Getter for the average distance to the beamline ( z-axes ) at the backward joint points of all wires ...
const CDCWire & getWireWrappedAround(IWire iWire) const
Returns the wire by its id in the layer.
const CDCWire & getSecondNeighborCCW(IWire iWire) const
Getter for the first counterclockwise neighbor by wire id in the layer.
A three dimensional vector.
double getRefZ() const
Getter for the common (averaged) z component of the wire reference point.
ISuperLayer getISuperLayer() const
Getter for the super layer id.
bool isAxial() const
Indicates if the wire is axial or stereo.
const CDCWire & getWire(IWire iWire) const
Gives the wire by its id in the layer.
double m_outerCylindricalR
Storage of the outer radius of the wire layer as taken from the CDCGeometryPar instance.
double m_backwardCylindricalR
Storage for average distance from beamline of backward wire ends.
void operator=(const CDCWireLayer &wireLayer)=delete
Disallow copy assignment of wire layers.
ERotation
Enumeration to represent the distinct possibilities of the right left passage information.
double getForwardZ() const
Getter for the average z coordinate at the forward joint points of all wires in this layer.
static const CDCWireLayer * getInstance(ILayer iCLayer)
Getter from the the continuous layer id. Does not construct a new object.
double getLateralCellWidth() const
Getter for the width of the wire layer in the lateral direction.
Class representing a sense wire in the central drift chamber.
double getStereoAngle() const
Getter for the average stereo angle of all wires in this layer.
Reference at(std::size_t i) const
Returns the object at index i.
double m_tanStereoAngle
Storage for average tan stereo angle.
ERotation getShift() const
Getter for the numbering shift.
ILayer getILayer() const
Getter for the layer id unique within the superlayer.
double getInnerCylindricalR() const
Getter for inner radius of the layer as taken from the CDCGeometryPar.
ERotation getShiftDelta(const CDCWireLayer &baseLayer) const
Getter for the relative difference in wire numbering shift.
const CDCWire & getClosestWire(const Vector3D &pos3D) const
Gets the wire in this layer that is closest to the given position.
double m_innerCylindricalR
Storage of the inner radius of the wire layer as taken from the CDCGeometryPar instance.
Reference front() const
Returns the derefenced iterator at begin()