Belle II Software
release-08-01-10
|
This class is used to transfer SVD information to the track fit. More...
#include <AlignableSVDRecoHit.h>
Public Member Functions | |
virtual | ~AlignableSVDRecoHit () |
Destructor. | |
genfit::AbsMeasurement * | clone () const override |
Creating a deep copy of this hit. | |
virtual std::pair< std::vector< int >, TMatrixD > | globalDerivatives (const genfit::StateOnPlane *sop) override |
Labels and derivatives of residuals (local measurement coordinates) w.r.t. More... | |
SVDRecoHit () | |
Inherit constructors. | |
SVDRecoHit (const SVDTrueHit *hit, bool uDirection, float sigma=-1) | |
Inherit constructors. | |
SVDRecoHit (const SVDCluster *hit, const genfit::TrackCandHit *trackCandHit=nullptr) | |
Inherit constructors. | |
VxdID | getSensorID () const |
Get the compact ID. | |
const SVDTrueHit * | getTrueHit () const |
Get pointer to the TrueHit used when creating this RecoHit, can be nullptr if created from something else. | |
const SVDCluster * | getCluster () const |
Get pointer to the Cluster used when creating this RecoHit, can be nullptr if created from something else. | |
bool | isU () const |
Is the coordinate u or v? | |
float | getPosition () const |
Get coordinate. | |
float | getPositionVariance () const |
Get coordinate variance. | |
float | getEnergyDep () const |
Get deposited energy. | |
float | getRotation () const |
Get rotation angle. | |
virtual std::vector< genfit::MeasurementOnPlane * > | constructMeasurementsOnPlane (const genfit::StateOnPlane &state) const override |
Methods that actually interface to Genfit. More... | |
virtual const genfit::AbsHMatrix * | constructHMatrix (const genfit::AbsTrackRep *) const override |
Methods that actually interface to Genfit. More... | |
int | getPlaneId () const |
virtual SharedPlanePtr | constructPlane (const StateOnPlane &state) const override |
Construct (virtual) detector plane (use state's AbsTrackRep). More... | |
virtual void | setPlane (const SharedPlanePtr &physicalPlane, int planeId=-1) |
void | setStripV (bool v=true) |
Use if the coordinate for 1D hits measured in V direction. More... | |
TrackPoint * | getTrackPoint () const |
void | setTrackPoint (TrackPoint *tp) |
const TVectorD & | getRawHitCoords () const |
TVectorD & | getRawHitCoords () |
const TMatrixDSym & | getRawHitCov () const |
TMatrixDSym & | getRawHitCov () |
int | getDetId () const |
int | getHitId () const |
virtual bool | isLeftRightMeasurement () const |
If the AbsMeasurement is a wire hit, the left/right resolution will be used. | |
virtual int | getLeftRightResolution () const |
unsigned int | getDim () const |
void | setRawHitCoords (const TVectorD &coords) |
void | setRawHitCov (const TMatrixDSym &cov) |
void | setDetId (int detId) |
void | setHitId (int hitId) |
virtual void | Print (const Option_t *="") const |
virtual std::vector< int > | labels () |
Vector of integer labels for calibration/alignment parameters available (must match #columns of derivatives(...)) More... | |
virtual TMatrixD | derivatives (const genfit::StateOnPlane *) |
Derivatives of residuals (local measurement coordinates) w.r.t. More... | |
virtual TMatrixD | localDerivatives (const genfit::StateOnPlane *) |
Derivatives for additional local parameters to be fitted in global calibration algorithms together with with global parameters. More... | |
virtual std::vector< int > | localLabels () |
Vector of integer labels for local calibration parameters available (must match #columns of localDerivatives(...)) More... | |
Static Public Attributes | |
static bool | s_enableLorentzGlobalDerivatives = false |
Static enabling(true) or disabling(false) addition of global derivatives for Lorentz shift. | |
Protected Attributes | |
SharedPlanePtr | physicalPlane_ |
int | planeId_ |
This is persistent, but '!' makes ROOT shut up. | |
bool | stripV_ |
TVectorD | rawHitCoords_ |
TMatrixDSym | rawHitCov_ |
int | detId_ |
int | hitId_ |
TrackPoint * | trackPoint_ |
Pointer to TrackPoint where the measurement belongs to. | |
Private Types | |
enum | { HIT_DIMENSIONS = 1 } |
Private Member Functions | |
ClassDefOverride (AlignableSVDRecoHit, 2) | |
ROOT Macro. | |
void | setDetectorPlane () |
Set up Detector plane information. | |
TVectorD | applyPlanarDeformation (TVectorD rawHit, std::vector< double > planarParameters, const genfit::StateOnPlane &state) const |
Apply planar deformation of sensors. | |
Private Attributes | |
unsigned short | m_sensorID |
Unique sensor identifier. | |
const SVDTrueHit * | m_trueHit |
Pointer to the Truehit used to generate this hit. | |
const SVDCluster * | m_cluster |
transient member (not written out during streaming) More... | |
bool | m_isU |
transient member (not written out during streaming) More... | |
float | m_energyDep |
deposited energy. | |
float | m_rotationPhi |
angle of the plane rotation, for u in wedge sensors. | |
Friends | |
class | SVDRecoHit |
This class is used to transfer SVD information to the track fit.
Definition at line 28 of file AlignableSVDRecoHit.h.
|
privateinherited |
Enumerator | |
---|---|
HIT_DIMENSIONS | sensitive Dimensions of the Hit |
Definition at line 115 of file SVDRecoHit.h.
|
inlineoverridevirtualinherited |
Methods that actually interface to Genfit.
Reimplemented from PlanarMeasurement.
Definition at line 111 of file SVDRecoHit.h.
|
overridevirtualinherited |
Methods that actually interface to Genfit.
Reimplemented from PlanarMeasurement.
Definition at line 180 of file SVDRecoHit.cc.
|
overridevirtualinherited |
Construct (virtual) detector plane (use state's AbsTrackRep).
It's possible to make corrections to the plane here. The state should be defined somewhere near the measurement. For virtual planes, the state will be extrapolated to the POCA to point (SpacepointMeasurement) or line (WireMeasurement), and from this info the plane will be constructed.
Implements AbsMeasurement.
Definition at line 46 of file PlanarMeasurement.cc.
|
inlinevirtualinherited |
Derivatives of residuals (local measurement coordinates) w.r.t.
alignment/calibration parameters Matrix "G" of derivatives valid for given prediction of track state:
G(i, j) = d_residual_i/d_parameter_j
For 2D measurement (u,v):
G = ( du/da du/db du/dc ... ) ( dv/da dv/db dv/dc ... )
for calibration parameters a, b, c.
For 1D measurement both forms are allowed:
G = ( 0 0 0 ... ) ( dv/da dv/db dv/dc ... ) for V-strip,
G = ( du/da du/db du/dc ... ) ( 0 0 0 ... ) for U-strip,
or :
G = ( d_sensitive/da d_sensitive/db d_sensitive/dc ... ) as matrix with one row.
A possible algorithm using these derivatives should be able to resolve this based on the measurement HMatrix. Measurements with more dimesions (slopes, curvature) should provide full 4-5Dx(n params) matrix (state as (q/p, u', v', u, v) or (u', v', u, v))
sop | Predicted state of the track as linearization point around which derivatives of alignment/calibration parameters shall be computed |
Definition at line 129 of file ICalibrationParametersDerivatives.h.
|
overridevirtual |
Labels and derivatives of residuals (local measurement coordinates) w.r.t.
alignment/calibration parameters Matrix "G" of derivatives valid for given prediction of track state:
G(i, j) = d_residual_i/d_parameter_j
For 2D measurement (u,v):
G = ( du/da du/db du/dc ... ) ( dv/da dv/db dv/dc ... )
for calibration parameters a, b, c.
For 1D measurement:
G = ( 0 0 0 ... ) ( dv/da dv/db dv/dc ... ) for V-strip,
G = ( du/da du/db du/dc ... ) ( 0 0 0 ... ) for U-strip,
Measurements with more dimesions (slopes, curvature) should provide full 4-5Dx(n params) matrix (state as (q/p, u', v', u, v) or (u', v', u, v))
sop | Predicted state of the track as linearization point around which derivatives of alignment/calibration parameters shall be computed |
Reimplemented from ICalibrationParametersDerivatives.
Definition at line 25 of file AlignableSVDRecoHit.cc.
|
inlinevirtualinherited |
Vector of integer labels for calibration/alignment parameters available (must match #columns of derivatives(...))
unique across all sub-detectors in calibration
Definition at line 90 of file ICalibrationParametersDerivatives.h.
|
inlinevirtualinherited |
Derivatives for additional local parameters to be fitted in global calibration algorithms together with with global parameters.
Local parameters are not neccesarily identified by label because their number is proportional to number of measurements included in calibration (possibly very huge number!)
Reimplemented in AlignableCDCRecoHit.
Definition at line 141 of file ICalibrationParametersDerivatives.h.
|
inlinevirtualinherited |
Vector of integer labels for local calibration parameters available (must match #columns of localDerivatives(...))
This will be usually ignored (e.g. does not have to match localDerivatives), but it is a good practice to return vector of zeros of correct size
Definition at line 151 of file ICalibrationParametersDerivatives.h.
|
inlineinherited |
Use if the coordinate for 1D hits measured in V direction.
Per default for 1D planar hits, the coordinate is measured in U direction. With this function you can set it to be measured in V direction. This affects the outcoe of constructHMatrix().
Definition at line 70 of file PlanarMeasurement.h.
|
privateinherited |
transient member (not written out during streaming)
Pointer to the Cluster used to generate this hit
Definition at line 121 of file SVDRecoHit.h.
|
privateinherited |
transient member (not written out during streaming)
True if the hit has u-coordinate, false if v.
Definition at line 122 of file SVDRecoHit.h.