Belle II Software development
CDCWireHit Class Reference

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

#include <CDCWireHit.h>

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.
 
 CDCWireHit (const CDCHit *ptrHit, CDC::TDCCountTranslatorBase *ptrTDCCountTranslator=nullptr, CDC::ADCCountTranslatorBase *ptrADCCountTranslator=nullptr)
 Constructor for augmenting the CDCHit with the geometry information of the CDCWire.
 
 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.
 
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.
 
Vector3D reconstruct3D (const CDCTrajectory2D &trajectory2D, ERightLeft rlInfo, double z=0) const
 Attempts to reconstruct a three dimensional position (especially of stereo hits).
 
Circle2D conformalTransformed (const Vector2D &relativeTo) const
 Applys the conformal transformation to the drift circle this hit represents.
 
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/3]

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())
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/3]

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.

70 : m_wireID(ptrHit->getID())
71 , m_wire(ptrHit ? CDCWire::getInstance(*ptrHit) : nullptr)
73 , m_hit(ptrHit)
74{
75 if (not ptrHit) {
76 B2ERROR("CDCWireHit constructor invoked with nullptr CDCHit");
77 return;
78 }
79 const CDCHit& hit = *ptrHit;
80
81 TDCCountTranslatorBase& tdcCountTranslator =
82 ptrTDCCountTranslator ? *ptrTDCCountTranslator : getTDCCountTranslator();
83 ADCCountTranslatorBase& adcCountTranslator =
84 ptrADCCountTranslator ? *ptrADCCountTranslator : getADCCountTranslator();
85
86 float initialTOFEstimate = 0;
87
88 float refDriftLengthRight = tdcCountTranslator.getDriftLength(hit.getTDCCount(),
89 getWireID(),
90 initialTOFEstimate,
91 false, // bool leftRight
92 getWire().getRefZ());
93
94 float refDriftLengthLeft = tdcCountTranslator.getDriftLength(hit.getTDCCount(),
95 getWireID(),
96 initialTOFEstimate,
97 true, // bool leftRight
98 getWire().getRefZ());
99
100 m_refDriftTime = tdcCountTranslator.getDriftTime(hit.getTDCCount(),
101 getWireID(),
102 initialTOFEstimate,
103 getWire().getRefZ(),
104 hit.getADCCount());
105
106 m_refDriftLength = (refDriftLengthLeft + refDriftLengthRight) / 2.0;
107
109 getWireID(),
110 false, // bool leftRight ?
111 getWire().getRefZ());
112
113 m_refChargeDeposit = adcCountTranslator.getCharge(hit.getADCCount(),
114 getWireID(),
115 false, // bool leftRight
116 getWire().getRefZ(),
117 0); // theta
118}
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
Definition: CDCHit.h:40
Abstract Base class for the ADC count translator.
virtual float getCharge(unsigned short adcCount=0, const WireID &wireID=WireID(), bool ambiguityDiscriminator=false, float z=0, float theta=static_cast< float >(TMath::Pi()/2.))=0
Function, for which this actually was meant.
Base class for translation of Drift Time into Drift Length.
virtual double getDriftLength(unsigned short tdcCount=0, const WireID &wireID=WireID(), double timeOfFlightEstimator=0., bool ambiguityDiscriminator=false, double z=0, double alpha=0, double theta=static_cast< double >(TMath::Pi()/2.), unsigned short adcCount=0)=0
Function for getting a drift length estimation.
virtual double getDriftLengthResolution(double driftLength=0., const WireID &wireID=WireID(), bool ambiguityDiscriminator=false, double z=0, double alpha=0, double theta=static_cast< double >(TMath::Pi()/2.))=0
Uncertainty corresponding to drift length from getDriftLength of this class.
virtual double getDriftTime(unsigned short tdcCount, const WireID &wireID, double timeOfFlightEstimator, double z, unsigned short adcCount)=0
Get Drift time.
static CDC::TDCCountTranslatorBase & getTDCCountTranslator()
Return an instance of the used TDC count translator.
Definition: CDCWireHit.cc:39
const WireID & getWireID() const
Getter for the WireID of the wire the hit is located on.
Definition: CDCWireHit.h:185
const CDCWire & getWire() const
Getter for the CDCWire the hit is located on.
Definition: CDCWireHit.h:168
static CDC::ADCCountTranslatorBase & getADCCountTranslator()
Return an instance of the used ADC count translator.
Definition: CDCWireHit.cc:45
double getRefZ() const
Getter for the wire reference z coordinate Gives the wire's reference z coordinate.
Definition: CDCWire.h:236

◆ CDCWireHit() [3/3]

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!

Definition at line 120 of file CDCWireHit.cc.

124 : m_wireID(wireID)
126 , m_automatonCell(1)
127 , m_refDriftLength(driftLength)
128 , m_refDriftLengthVariance(driftLengthVariance)
129 , m_refChargeDeposit(chargeDeposit)
130 , m_hit(nullptr)
131{
132}

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.

160{
162 assert(m_wire);
163 return *m_wire;
164}

◆ 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.

201{
202 Circle2D driftCircle(getRefPos2D() - relativeTo, getRefDriftLength());
203 driftCircle.conformalTransform();
204 return driftCircle;
205}
double getRefDriftLength() const
Getter for the drift length at the reference position of the wire.
Definition: CDCWireHit.h:224
const Vector2D & getRefPos2D() const
The two dimensional reference position (z=0) of the underlying wire.
Definition: CDCWireHit.cc:212
A two dimensional circle in its natural representation using center and radius as parameters.
Definition: Circle2D.h:26

◆ getADCCountTranslator()

ADCCountTranslatorBase & getADCCountTranslator ( )
static

Return an instance of the used ADC count translator.

Definition at line 45 of file CDCWireHit.cc.

46{
47 static CDC::LinearGlobalADCCountTranslator s_adcCountTranslator;
48 return s_adcCountTranslator;
49}
This class simply assumes a linear translation through (0,0)

◆ getAutomatonCell()

AutomatonCell & getAutomatonCell ( ) const
inline

Mutable getter for the automaton cell.

Definition at line 286 of file CDCWireHit.h.

287 {
288 return m_automatonCell;
289 }

◆ getDriftTime()

double getDriftTime ( ) const
inline

Return the drift time measured by the CDC for this hit.

Definition at line 310 of file CDCWireHit.h.

311 {
312 return m_refDriftTime;
313 }

◆ getHit()

const CDCHit * getHit ( ) const
inline

Getter for the CDCHit pointer into the StoreArray.

Definition at line 159 of file CDCWireHit.h.

160 {
161 return m_hit;
162 }

◆ getILayer()

ILayer getILayer ( ) const
inline

Getter for the layer id.

Definition at line 209 of file CDCWireHit.h.

210 {
211 return getWireID().getILayer();
212 }
unsigned short getILayer() const
Getter for layer within the Super-Layer.
Definition: WireID.h:136

◆ getISuperCluster()

int getISuperCluster ( ) const
inline

Getter for the super cluster id.

Definition at line 298 of file CDCWireHit.h.

299 {
300 return m_iSuperCluster;
301 }
int m_iSuperCluster
Memory for the super cluster id.
Definition: CDCWireHit.h:335

◆ getISuperLayer()

ISuperLayer getISuperLayer ( ) const
inline

Getter for the super layer id.

Definition at line 203 of file CDCWireHit.h.

204 {
205 return getWireID().getISuperLayer();
206 }
unsigned short getISuperLayer() const
Getter for Super-Layer.
Definition: WireID.h:130

◆ getRefChargeDeposit()

double getRefChargeDeposit ( ) const
inline

Getter for the charge due to energy deposit in the drift cell.

Definition at line 236 of file CDCWireHit.h.

237 {
238 return m_refChargeDeposit;
239 }

◆ getRefCylindricalR()

double getRefCylindricalR ( ) const

The distance from the beam line at reference position of the underlying wire.

Definition at line 222 of file CDCWireHit.cc.

223{
224 return getWire().getRefCylindricalR();
225}
double getRefCylindricalR() const
Getter for the cylindrical radius at the wire reference position.
Definition: CDCWire.h:260

◆ getRefDriftLength()

double getRefDriftLength ( ) const
inline

Getter for the drift length at the reference position of the wire.

Definition at line 224 of file CDCWireHit.h.

225 {
226 return m_refDriftLength;
227 }

◆ getRefDriftLengthVariance()

double getRefDriftLengthVariance ( ) const
inline

Getter for the variance of the drift length at the reference position of the wire.

Definition at line 230 of file CDCWireHit.h.

231 {
233 }

◆ getRefPos2D()

const Vector2D & getRefPos2D ( ) const

The two dimensional reference position (z=0) of the underlying wire.

Definition at line 212 of file CDCWireHit.cc.

213{
214 return getWire().getRefPos2D();
215}
const Vector2D & getRefPos2D() const
Getter for the wire reference position for 2D tracking Gives the wire's reference position projected ...
Definition: CDCWire.h:229

◆ getRefPos3D()

const Vector3D & getRefPos3D ( ) const

The three dimensional reference position of the underlying wire.

Definition at line 217 of file CDCWireHit.cc.

218{
219 return getWire().getRefPos3D();
220}
const Vector3D & getRefPos3D() const
Getter for the wire reference position.
Definition: CDCWire.h:222

◆ getStereoKind()

EStereoKind getStereoKind ( ) const
inline

Getter for the stereo type of the underlying wire.

Definition at line 191 of file CDCWireHit.h.

192 {
194 }
ISuperLayer getISuperLayer() const
Getter for the super layer id.
Definition: CDCWireHit.h:203
static EStereoKind getStereoKind(ISuperLayer iSuperLayer)
Returns the stereo kind of the super layer.
Definition: ISuperLayer.cc:26

◆ getStoreIHit()

Index getStoreIHit ( ) const

Getter for the index of the hit in the StoreArray holding this hit.

Definition at line 207 of file CDCWireHit.cc.

208{
209 return getHit() ? getHit()->getArrayIndex() : c_InvalidIndex;
210}
int getArrayIndex() const
Returns this object's array index (in StoreArray), or -1 if not found.
const CDCHit * getHit() const
Getter for the CDCHit pointer into the StoreArray.
Definition: CDCWireHit.h:159

◆ getTDCCountTranslator()

TDCCountTranslatorBase & getTDCCountTranslator ( )
static

Return an instance of the used TDC count translator.

Definition at line 39 of file CDCWireHit.cc.

40{
41 static CDC::RealisticTDCCountTranslator s_tdcCountTranslator;
42 return s_tdcCountTranslator;
43}
Translator mirroring the realistic Digitization.

◆ getWire()

const CDCWire & getWire ( ) const
inline

Getter for the CDCWire the hit is located on.

Definition at line 168 of file CDCWireHit.h.

169 {
170 // if (not m_wire) return attachWire();
171 if (not m_wire) return attachWire();
172 return *m_wire;
173 }
const CDCWire & attachWire() const
Reestablishes the pointer of the hit to the wire and returns it Since the DataStore only transport th...
Definition: CDCWireHit.cc:159

◆ getWireID()

const WireID & getWireID ( ) const
inline

Getter for the WireID of the wire the hit is located on.

Definition at line 185 of file CDCWireHit.h.

186 {
187 return m_wireID;
188 }

◆ isAxial()

bool isAxial ( ) const
inline

Indicator if the underlying wire is axial.

Definition at line 197 of file CDCWireHit.h.

198 {
200 }
static bool isAxial(ISuperLayer iSuperLayer)
Returns if the super layer with the given id is axial.
Definition: ISuperLayer.cc:21

◆ isOnWire()

bool isOnWire ( const CDCWire wire) const
inline

Checks if the wire hit is based on the given wire.

Definition at line 242 of file CDCWireHit.h.

243 {
244 return &getWire() == &wire;
245 }

◆ operator->()

AutomatonCell * operator-> ( ) const
inline

Indirection to the automaton cell for easier access to the flags.

Definition at line 292 of file CDCWireHit.h.

293 {
294 return &m_automatonCell;
295 }

◆ operator<() [1/2]

bool operator< ( const CDCHit hit)

Defines CDCWireHits and raw CDCHit to be coaligned.

Definition at line 134 of file CDCWireHit.cc.

135{
136 return this->getWireID().getEWire() < hit.getID();
137}
unsigned short getEWire() const
Getter for encoded wire number.
Definition: WireID.h:154

◆ operator<() [2/2]

bool operator< ( const CDCWireHit rhs) const
inline

Total ordering relation based on the wire and the hit id.

Definition at line 113 of file CDCWireHit.h.

114 {
115 return
116 std::make_pair(getWireID().getEWire(), getRefDriftLength()) <
117 std::make_pair(rhs.getWireID().getEWire(), rhs.getRefDriftLength());
118 }

◆ operator==()

bool operator== ( const CDCWireHit rhs) const
inline

Equality comparison based on the wire and the hit id.

Definition at line 107 of file CDCWireHit.h.

108 {
109 return getWireID() == rhs.getWireID() and getRefDriftLength() == rhs.getRefDriftLength();
110 }

◆ 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.

167{
168 const Vector2D& refPos2D = getRefPos2D();
169 Vector2D recoPos2D = trajectory2D.getClosest(refPos2D);
170
171 const Vector2D& wirePos2D = getWire().getRefPos2D();
172 const double driftLength = getRefDriftLength();
173
174 Vector2D disp2D = recoPos2D - wirePos2D;
175
176 // Fix the displacement to lie on the drift circle.
177 disp2D.normalizeTo(driftLength);
178 return wirePos2D + disp2D;
179}
Vector2D getClosest(const Vector2D &point) const
Calculates the closest approach on the trajectory to the given point.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
Definition: Vector2D.h:32
double normalizeTo(const double toLength)
Normalizes the vector to the given length.
Definition: Vector2D.h:313

◆ 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.

184{
185 const EStereoKind stereoType = getStereoKind();
186
187 if (stereoType == EStereoKind::c_StereoV or stereoType == EStereoKind::c_StereoU) {
188 const WireLine& wireLine = getWire().getWireLine();
189 const double signedDriftLength = isValid(rlInfo) ? static_cast<double>(rlInfo) * getRefDriftLength() : 0.0;
190 return trajectory2D.reconstruct3D(wireLine, signedDriftLength, z);
191
192 } else { /*if (stereoType == EStereoKind::c_Axial)*/
193 const Vector2D recoPos2D = reconstruct2D(trajectory2D);
194 // for axial wire we can not determine the z coordinate by looking at the xy projection only
195 // we set it the basic assumption.
196 return Vector3D(recoPos2D, z);
197 }
198}
Vector3D reconstruct3D(const WireLine &wireLine, double distance=0.0, double z=0) const
Gives the one three dimensional postions within the CDC closest to the given z where the given drift ...
Vector2D reconstruct2D(const CDCTrajectory2D &trajectory2D) const
Reconstructs a position of primary ionisation on the drift circle.
Definition: CDCWireHit.cc:166
EStereoKind getStereoKind() const
Getter for the stereo type of the underlying wire.
Definition: CDCWireHit.h:191
const WireLine & getWireLine() const
Getter for the wire line represenation of the wire.
Definition: CDCWire.h:188
A three dimensional vector.
Definition: Vector3D.h:33
A three dimensional limited line represented by its closest approach to the z-axes (reference positio...
Definition: WireLine.h:31
bool isValid(EForwardBackward eForwardBackward)
Check whether the given enum instance is one of the valid values.

◆ setISuperCluster()

void setISuperCluster ( int  iSuperCluster)
inline

Setter for the super cluster id.

Definition at line 304 of file CDCWireHit.h.

305 {
306 m_iSuperCluster = iSuperCluster;
307 }

Friends And Related Function Documentation

◆ operator< [1/4]

bool operator< ( const CDCWire wire,
const CDCWireHit wireHit 
)
friend

Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.

Definition at line 128 of file CDCWireHit.h.

129 {
130 return &wire < &wireHit.getWire();
131 }

◆ operator< [2/4]

bool operator< ( const CDCWire wire,
const CDCWireHit wireHit 
)
friend

Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.

Definition at line 143 of file CDCWireHit.h.

144 {
145 assert(wireHit);
146 return wire < *wireHit;
147 }

◆ operator< [3/4]

bool operator< ( const CDCWireHit wireHit,
const CDCWire wire 
)
friend

Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.

Definition at line 121 of file CDCWireHit.h.

122 {
123 return &wireHit.getWire() < &wire;
124 }

◆ operator< [4/4]

bool operator< ( const CDCWireHit wireHit,
const CDCWire wire 
)
friend

Defines CDCWires and CDCWireHits to be coaligned on the wire on which they are based.

Definition at line 135 of file CDCWireHit.h.

136 {
137 assert(wireHit);
138 return *wireHit < wire;
139 }

Member Data Documentation

◆ c_simpleDriftLengthVariance

constexpr const double c_simpleDriftLengthVariance = 0.000169
staticconstexpr

A default value for the drift length variance if no variance from the drift length translation is available.

Definition at line 64 of file CDCWireHit.h.

◆ m_automatonCell

AutomatonCell m_automatonCell {1}
mutableprivate

Memory for the automaton cell.

Definition at line 323 of file CDCWireHit.h.

◆ m_hit

const CDCHit* m_hit = nullptr
private

Memory for the CDCHit pointer.

Definition at line 341 of file CDCWireHit.h.

◆ m_iSuperCluster

int m_iSuperCluster = -1
private

Memory for the super cluster id.

Definition at line 335 of file CDCWireHit.h.

◆ m_refChargeDeposit

double m_refChargeDeposit = 0.0
private

Memory for the charge induced by the energy deposit in the drift cell.

Definition at line 332 of file CDCWireHit.h.

◆ m_refDriftLength

double m_refDriftLength = 0
private

Memory for the drift length at the wire reference point.

Definition at line 326 of file CDCWireHit.h.

◆ m_refDriftLengthVariance

double m_refDriftLengthVariance = c_simpleDriftLengthVariance
private

Memory for the variance of the drift length at the wire reference point.

Definition at line 329 of file CDCWireHit.h.

◆ m_refDriftTime

double m_refDriftTime = 0.0f
private

Measured drift time of the CDC hit.

Definition at line 338 of file CDCWireHit.h.

◆ m_wire

CDCWire const* m_wire = nullptr
mutableprivate

Memory for the CDCWire pointer - Trailing comment indicates to not stream this member.

Definition at line 320 of file CDCWireHit.h.

◆ m_wireID

WireID m_wireID
private

Memory for the WireID.

Definition at line 317 of file CDCWireHit.h.


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