Belle II Software development
DriftLengthEstimator.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#pragma once
9
10#include <cdc/translators/RealisticTDCCountTranslator.h>
11
12#include <tracking/trackingUtilities/geometry/UncertainParameterLine2D.h>
13
14#include <memory>
15#include <string>
16#include <cmath>
17
18namespace Belle2 {
23 class ModuleParamList;
25}
26
27namespace Belle2 {
32 namespace TrackingUtilities {
33 class CDCTrack;
34 class CDCRecoHit3D;
35 class CDCRecoHit2D;
36 class CDCFacet;
37 class CDCSegment2D;
38 class CDCSegment3D;
39 }
40 namespace TrackFindingCDC {
41
44
46 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix);
47
50
52 double updateDriftLength(TrackingUtilities::CDCRecoHit3D& recoHit3D, double tanLambda);
53
60
70 bool valid = false;
71
74
76 double alpha = 0;
77
79 double middleFlightTime = 0;
80
82 double startDriftLength = 0;
83
85 double endDriftLength = 0;
86 };
87
98
101
103 void updateDriftLength(TrackingUtilities::CDCSegment3D& segment, double tanLambda);
104
106 void updateDriftLength(TrackingUtilities::CDCTrack& track, double tanLambda);
107
110
113
114 private:
122 {
123 if (not m_tdcCountTranslator) {
124 m_tdcCountTranslator = std::make_shared<CDC::RealisticTDCCountTranslator>();
125 }
126 return *m_tdcCountTranslator;
127 }
128
130 std::shared_ptr<CDC::RealisticTDCCountTranslator> m_tdcCountTranslator;
131 };
132 }
134}
Translator mirroring the realistic Digitization.
The Module parameter list class.
Class representing a triple of neighboring oriented wire with additional trajectory information.
Definition CDCFacet.h:33
Class representing a two dimensional reconstructed hit in the central drift chamber.
Class representing a three dimensional reconstructed hit.
A reconstructed sequence of two dimensional hits in one super layer.
A segment consisting of three dimensional reconstructed hits.
Class representing a sequence of three dimensional reconstructed hits.
Definition CDCTrack.h:37
A parameter line including including an line covariance matrix which is interpreted as located in the...
Abstract base class for different kinds of events.
Memory for the results of a facet drift length update that do not depend on the right left passage hy...
double middleFlightTime
The flight time estimate of the middle hit.
double alpha
The angle between the position and the flight direction used in the update.
TrackingUtilities::UncertainParameterLine2D fitLine
The fit line of the facet at the time of the update.
double startDriftLength
The updated drift length of the start hit.
Helper construct implementing the (re)estimation of the drift length for various hit objects.
double m_param_tofMassScale
Parameter : Mass to estimate the velocity in the flight time to the hit.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Add the parameters of the estimator to the module.
double updateDriftLength(TrackingUtilities::CDCRecoHit2D &recoHit2D)
Update the drift length of the reconstructed hit in place.
bool m_param_useAlphaInDriftLength
Parameter : Switch to serve the alpha angle to the drift length translator.
std::shared_ptr< CDC::RealisticTDCCountTranslator > m_tdcCountTranslator
Drift time translator constructed lazily on first use.
CDC::RealisticTDCCountTranslator & getTDCCountTranslator()
Getter for the drift time translator constructing it on first use.