Belle II Software  release-08-01-10
BaseTrackTimeEstimatorModule.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 <framework/gearbox/Const.h>
11 #include <tracking/dataobjects/RecoTrack.h>
12 
13 #include <framework/core/Module.h>
14 #include <string>
15 
16 namespace genfit {
17  class MeasuredStateOnPlane;
18 }
19 
20 namespace Belle2 {
25  class RecoTrack;
26 
30 
31  public:
34 
36  void initialize() override;
37 
39  void event() override;
40 
41  private:
43  std::string m_param_recoTracksStoreArrayName = "RecoTracks";
46 
52 
56  double m_param_timeOffset = 0;
57 
64 
71  std::vector<double> m_param_readoutPosition = {0, 0, 0};
72 
80 
86 
91  double estimateTimeSeedUsingFittedInformation(RecoTrack& recoTrack, const Const::ChargedStable& particleHypothesis) const;
92 
97  double estimateTimeSeedUsingSeedInformation(const RecoTrack& recoTrack, const Const::ChargedStable& particleHypothesis) const;
98 
100  virtual double estimateFlightLengthUsingFittedInformation(genfit::MeasuredStateOnPlane& measuredStateOnPlane) const = 0;
102  virtual double estimateFlightLengthUsingSeedInformation(const RecoTrack& recoTrack) const = 0;
103  };
105 }
106 
Base Module estimating the track time of RecoTracks - before or after the fit.
virtual double estimateFlightLengthUsingFittedInformation(genfit::MeasuredStateOnPlane &measuredStateOnPlane) const =0
Overload this function to implement a specific extrapolation mechanism for fitted tracks....
double estimateTimeSeedUsingFittedInformation(RecoTrack &recoTrack, const Const::ChargedStable &particleHypothesis) const
Private helper function which calls the estimateFlightLengthUsingFittedInformation with the correct m...
void initialize() override
Initialize the needed StoreArrays and ensure they are created properly.
double m_param_timeOffset
If you want to subtract or add a certain time, you can use this variable.
void event() override
Loop over all RecoTracks and set their time seed correctly.
virtual double estimateFlightLengthUsingSeedInformation(const RecoTrack &recoTrack) const =0
Overload this function to implement a specific extrapolation mechanism for track seeds.
BaseTrackTimeEstimatorModule()
Initialize the module parameters.
bool m_param_useFittedInformation
Whether to use the information in the measurements (after fit) or the tracking seeds for doing the ex...
std::vector< double > m_param_readoutPosition
In cases where the readout of the trigger is not located at the trigger directly and the signal has t...
std::string m_param_recoTracksStoreArrayName
StoreArray name of the input and output reco tracks.
double estimateTimeSeedUsingSeedInformation(const RecoTrack &recoTrack, const Const::ChargedStable &particleHypothesis) const
Private helper function which calls the estimateFlightLengthUsingSeedInformation and computes the fli...
StoreArray< RecoTrack > m_recoTracks
RecoTracks StoreArray.
unsigned int m_param_pdgCodeToUseForEstimation
Which PDG code to use for creating the time estimate.
bool m_param_useReadoutPosition
Enable the usage of the readout position.
double m_param_readoutPositionPropagationSpeed
Speed of the propagation from the hit on the trigger to the readoutPosition.
Provides a type-safe way to pass members of the chargedStableSet set.
Definition: Const.h:580
static const double speedOfLight
[cm/ns]
Definition: Const.h:686
Base class for Modules.
Definition: Module.h:72
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
#StateOnPlane with additional covariance matrix.
Abstract base class for different kinds of events.
Defines for I/O streams used for error and debug printing.