Belle II Software  release-08-01-10
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 
21 namespace Belle2 {
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 
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 
117  int m_Layer;
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
HMatrix for projecting from AbsTrackRep parameters to measured parameters in a DetPlane.
Definition: AbsHMatrix.h:37
Contains the measurement and covariance in raw detector coordinates.
Abstract base class for a track representation.
Definition: AbsTrackRep.h:66
AbsHMatrix implementation for two-dimensional MeasurementOnPlane and RKTrackRep parameterization.
Definition: HMatrixUV.h:39
Abstract base class to establish an interface between physical representation of the detector for ali...
Measurement class implementing a planar hit geometry (1 or 2D).
A state with arbitrary dimension defined in a DetPlane.
Definition: StateOnPlane.h:47
Hit object for use in TrackCand.
Definition: TrackCandHit.h:34
Abstract base class for different kinds of events.