Belle II Software  release-08-01-10
CDCWireHit Class Reference

Class representing a hit wire in the central drift chamber. More...

#include <CDCWireHit.h>

Collaboration diagram for CDCWireHit:

Public Member Functions

 CDCWireHit ()=default
 Default constructor for ROOT compatibility.
 
 CDCWireHit (const CDCHit *ptrHit, double driftLength, double driftLengthVariance=c_simpleDriftLengthVariance, double chargeDeposit=0, double driftTime=0)
 Constructor associating the CDCHit with estimates of the drift length and charge deposit. More...
 
 CDCWireHit (const CDCHit *ptrHit, CDC::TDCCountTranslatorBase *ptrTDCCountTranslator=nullptr, CDC::ADCCountTranslatorBase *ptrADCCountTranslator=nullptr)
 Constructor for augmenting the CDCHit with the geometry information of the CDCWire. More...
 
 CDCWireHit (const WireID &wireID, double driftLength, double driftLengthVariance=c_simpleDriftLengthVariance, double chargeDeposit=0)
 Constructor that takes a wire ID and a driftlength at the reference. For testing only!
 
bool operator== (const CDCWireHit &rhs) const
 Equality comparison based on the wire and the hit id.
 
bool operator< (const CDCWireHit &rhs) const
 Total ordering relation based on the wire and the hit id.
 
bool operator< (const CDCHit &hit)
 Defines CDCWireHits and raw CDCHit to be coaligned.
 
const CDCHitgetHit () const
 Getter for the CDCHit pointer into the StoreArray.
 
Index getStoreIHit () const
 Getter for the index of the hit in the StoreArray holding this hit.
 
const CDCWiregetWire () const
 Getter for the CDCWire the hit is located on.
 
const CDCWireattachWire () const
 Reestablishes the pointer of the hit to the wire and returns it Since the DataStore only transport the event data and not "static" geometry information the wire is lost whenever the DataStore is stream across an interprocess boundary or to file. More...
 
const WireIDgetWireID () const
 Getter for the WireID of the wire the hit is located on.
 
EStereoKind getStereoKind () const
 Getter for the stereo type of the underlying wire.
 
bool isAxial () const
 Indicator if the underlying wire is axial.
 
ISuperLayer getISuperLayer () const
 Getter for the super layer id.
 
ILayer getILayer () const
 Getter for the layer id.
 
const Vector2DgetRefPos2D () const
 The two dimensional reference position (z=0) of the underlying wire.
 
const Vector3DgetRefPos3D () const
 The three dimensional reference position of the underlying wire.
 
double getRefCylindricalR () const
 The distance from the beam line at reference position of the underlying wire.
 
double getRefDriftLength () const
 Getter for the drift length at the reference position of the wire.
 
double getRefDriftLengthVariance () const
 Getter for the variance of the drift length at the reference position of the wire.
 
double getRefChargeDeposit () const
 Getter for the charge due to energy deposit in the drift cell.
 
bool isOnWire (const CDCWire &wire) const
 Checks if the wire hit is based on the given wire.
 
Vector2D reconstruct2D (const CDCTrajectory2D &trajectory2D) const
 Reconstructs a position of primary ionisation on the drift circle. More...
 
Vector3D reconstruct3D (const CDCTrajectory2D &trajectory2D, ERightLeft rlInfo, double z=0) const
 Attempts to reconstruct a three dimensional position (especially of stereo hits). More...
 
Circle2D conformalTransformed (const Vector2D &relativeTo) const
 Applys the conformal transformation to the drift circle this hit represents. More...
 
AutomatonCellgetAutomatonCell () const
 Mutable getter for the automaton cell.
 
AutomatonCelloperator-> () const
 Indirection to the automaton cell for easier access to the flags.
 
int getISuperCluster () const
 Getter for the super cluster id.
 
void setISuperCluster (int iSuperCluster)
 Setter for the super cluster id.
 
double getDriftTime () const
 Return the drift time measured by the CDC for this hit.
 

Static Public Member Functions

static CDC::TDCCountTranslatorBasegetTDCCountTranslator ()
 Return an instance of the used TDC count translator.
 
static CDC::ADCCountTranslatorBasegetADCCountTranslator ()
 Return an instance of the used ADC count translator.
 

Static Public Attributes

static constexpr const double c_simpleDriftLengthVariance = 0.000169
 A default value for the drift length variance if no variance from the drift length translation is available.
 

Private Attributes

WireID m_wireID
 Memory for the WireID.
 
CDCWire const * m_wire = nullptr
 Memory for the CDCWire pointer - Trailing comment indicates to not stream this member.
 
AutomatonCell m_automatonCell {1}
 Memory for the automaton cell.
 
double m_refDriftLength = 0
 Memory for the drift length at the wire reference point.
 
double m_refDriftLengthVariance = c_simpleDriftLengthVariance
 Memory for the variance of the drift length at the wire reference point.
 
double m_refChargeDeposit = 0.0
 Memory for the charge induced by the energy deposit in the drift cell.
 
int m_iSuperCluster = -1
 Memory for the super cluster id.
 
double m_refDriftTime = 0.0f
 Measured drift time of the CDC hit.
 
const CDCHitm_hit = nullptr
 Memory for the CDCHit pointer.
 

Friends

bool operator< (const CDCWireHit &wireHit, const CDCWire &wire)
 Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.
 
bool operator< (const CDCWire &wire, const CDCWireHit &wireHit)
 Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.
 
bool operator< (const CDCWireHit *wireHit, const CDCWire &wire)
 Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.
 
bool operator< (const CDCWire &wire, const CDCWireHit *wireHit)
 Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.
 
bool operator< (const CDCWireHit &wireHit, const CDCHit &hit)
 Defines CDCWireHits and raw CDCHit to be coaligned.
 
bool operator< (const CDCHit &hit, const CDCWireHit &wireHit)
 Defines wire hits and raw CDCHit to be coaligned.
 

Detailed Description

Class representing a hit wire in the central drift chamber.

This class combines the measurement information from a CDCHit with the geometry information. It forms the basis of all other higher level tracking objects. It contains an AutomatonCell which defines the flags of usage etc. Additionally it contains references to both the CDCWire instance from the CDCWireTopology and the CDCHit from the StoreArray of the event.

Definition at line 55 of file CDCWireHit.h.

Constructor & Destructor Documentation

◆ CDCWireHit() [1/2]

CDCWireHit ( const CDCHit ptrHit,
double  driftLength,
double  driftLengthVariance = c_simpleDriftLengthVariance,
double  chargeDeposit = 0,
double  driftTime = 0 
)

Constructor associating the CDCHit with estimates of the drift length and charge deposit.

Also stores the CDCHit necessary for later translation to Genfit.

Parameters
ptrHitReference to the CDCHit.
driftLengthInitial estimate of the drift length at the reference position.
driftLengthVarianceInitial estimate of the variance of the dirft length at the reference position.
chargeDepositInitial estimate of the deposited charge in the drift cell.
driftTimeMeasured drift time

Definition at line 51 of file CDCWireHit.cc.

56  : m_wireID(ptrHit->getID())
57  , m_wire(CDCWire::getInstance(*ptrHit))
58  , m_automatonCell(1)
59  , m_refDriftLength(driftLength)
60  , m_refDriftLengthVariance(driftLengthVariance)
61  , m_refChargeDeposit(chargeDeposit)
62  , m_refDriftTime(driftTime)
63  , m_hit(ptrHit)
64 {
65 }
unsigned short getID() const
Getter for encoded wire number.
Definition: CDCHit.h:193
const CDCHit * m_hit
Memory for the CDCHit pointer.
Definition: CDCWireHit.h:341
WireID m_wireID
Memory for the WireID.
Definition: CDCWireHit.h:317
double m_refDriftLength
Memory for the drift length at the wire reference point.
Definition: CDCWireHit.h:326
CDCWire const * m_wire
Memory for the CDCWire pointer - Trailing comment indicates to not stream this member.
Definition: CDCWireHit.h:320
double m_refDriftLengthVariance
Memory for the variance of the drift length at the wire reference point.
Definition: CDCWireHit.h:329
AutomatonCell m_automatonCell
Memory for the automaton cell.
Definition: CDCWireHit.h:323
double m_refChargeDeposit
Memory for the charge induced by the energy deposit in the drift cell.
Definition: CDCWireHit.h:332
double m_refDriftTime
Measured drift time of the CDC hit.
Definition: CDCWireHit.h:338
static const CDCWire * getInstance(const WireID &wireID)
Getter from the wireID convinience object. Does not construct a new object.
Definition: CDCWire.cc:24

◆ CDCWireHit() [2/2]

CDCWireHit ( const CDCHit ptrHit,
CDC::TDCCountTranslatorBase ptrTDCCountTranslator = nullptr,
CDC::ADCCountTranslatorBase ptrADCCountTranslator = nullptr 
)
explicit

Constructor for augmenting the CDCHit with the geometry information of the CDCWire.

Binds to the CDCHit and the corresponding wire together and translates the TDC count to a driftlength. Also stores the index of the StoreArray from which the hit has been taken. Necessary for later translation to genfit.

Parameters
ptrHitReference to the CDCHit.
ptrTDCCountTranslatorinstance of the used TDC count translator (optional)
ptrADCCountTranslatorinstance of the used ADC count translator (optional)

Definition at line 67 of file CDCWireHit.cc.

Member Function Documentation

◆ attachWire()

const CDCWire & attachWire ( ) const

Reestablishes the pointer of the hit to the wire and returns it Since the DataStore only transport the event data and not "static" geometry information the wire is lost whenever the DataStore is stream across an interprocess boundary or to file.

In this case this method can be called to lookup the wire again.

Definition at line 159 of file CDCWireHit.cc.

◆ conformalTransformed()

Circle2D conformalTransformed ( const Vector2D relativeTo) const

Applys the conformal transformation to the drift circle this hit represents.

Although not advisable to use we provide an interface to obtain the inversion at the unit circle as a transformation to the so called conformal space. We provide the self-inverse for of the transformation

  • $X = x / (x^2 + y^2 - r^2)$
  • $Y = y / (x^2 + y^2 - r^2)$
  • $R = r / (x^2 + y^2 - r^2)$

Definition at line 200 of file CDCWireHit.cc.

◆ reconstruct2D()

Vector2D reconstruct2D ( const CDCTrajectory2D trajectory2D) const

Reconstructs a position of primary ionisation on the drift circle.

The result is the position of closest approach on the drift circle to the trajectory.

All positions and the trajectory are interpreted to lie at z=0. Also the right left passage hypotheses does not play a role in the reconstruction in any way.

Definition at line 166 of file CDCWireHit.cc.

◆ reconstruct3D()

Vector3D reconstruct3D ( const CDCTrajectory2D trajectory2D,
ERightLeft  rlInfo,
double  z = 0 
) const

Attempts to reconstruct a three dimensional position (especially of stereo hits).

This method makes a distinct difference between axial and stereo hits:

  • Stereo hits are moved out of the reference plane such that the oriented drift circle meets the trajectory in one point. Therefore the left right passage hypothesis has to be taken into account
  • For axial hits the reconstructed position is undefined in the z coordinate. Also the drift circle cannot be moved such that it would meet the trajectory. Hence we default to the result of reconstruct2D, which yield the closest approach of the drift circle to the trajectory in the reference plane.

Definition at line 181 of file CDCWireHit.cc.


The documentation for this class was generated from the following files: