Belle II Software development
AlignableBKLMRecoHit.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <klm/dataobjects/KLMHit2d.h>
12#include <klm/bklm/geometry/Module.h>
13
14#include <genfit/PlanarMeasurement.h>
15#include <genfit/HMatrixUV.h>
16#include <genfit/TrackCandHit.h>
17#include <genfit/ICalibrationParametersDerivatives.h>
18
19#include <TMatrixD.h>
20
21namespace Belle2 {
30 class AlignableBKLMRecoHit: public genfit::PlanarMeasurement,
31 public genfit::ICalibrationParametersDerivatives {
32
33 public:
34
39 {
40 }
41
45 explicit AlignableBKLMRecoHit(const KLMHit2d* hit,
46 const genfit::TrackCandHit* trackCandHit);
47
52 {
53 }
54
58 genfit::AbsMeasurement* clone() const override;
59
63 virtual std::vector<genfit::MeasurementOnPlane*>
65 const genfit::StateOnPlane& state) const override;
66
70 virtual const genfit::AbsHMatrix* constructHMatrix(
71 const genfit::AbsTrackRep*) const override
72 {
73 return new genfit::HMatrixUV();
74 };
75
107 virtual std::pair<std::vector<int>, TMatrixD> globalDerivatives(const genfit::StateOnPlane* sop) override;
108
109 private:
110
111 enum { HIT_DIMENSIONS = 2 };
112
114 uint16_t m_KLMModule;
115
118
121
123 CLHEP::Hep3Vector global;
124
126 const double halfheight_sci = 0.5;
127
130
131 };
132
134}
@ HIT_DIMENSIONS
sensitive Dimensions of the Hit
virtual std::vector< genfit::MeasurementOnPlane * > constructMeasurementsOnPlane(const genfit::StateOnPlane &state) const override
Measurement construction.
CLHEP::Hep3Vector global
not streamed
const bklm::Module * m_Module
Module used to get geometry information.
const double halfheight_sci
not streamed
ClassDefOverride(AlignableBKLMRecoHit, 1)
Class version.
virtual std::pair< std::vector< int >, TMatrixD > globalDerivatives(const genfit::StateOnPlane *sop) override
Labels and derivatives of residuals (local measurement coordinates) w.r.t.
virtual ~AlignableBKLMRecoHit()
Destructor.
genfit::AbsMeasurement * clone() const override
Creating a deep copy of this hit.
virtual const genfit::AbsHMatrix * constructHMatrix(const genfit::AbsTrackRep *) const override
Get the genfit projection H matrix (to U,V).
uint16_t m_KLMModule
KLM module number.
KLM 2d hit.
Definition: KLMHit2d.h:33
Define the geometry of a BKLM module Each sector [octant] contains Modules.
Definition: Module.h:76
Abstract base class for different kinds of events.