Belle II Software  release-08-01-10
SVDStateVarSet.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 <tracking/trackFindingCDC/varsets/VarSet.h>
11 #include <tracking/trackFindingCDC/varsets/VarNames.h>
12 #include <tracking/trackFindingCDC/varsets/FixedSizeNamedFloatTuple.h>
13 
14 #include <tracking/ckf/svd/filters/states/BaseSVDStateFilter.h>
15 
16 #include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorCircleFit.h>
17 #include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorRiemannHelixFit.h>
18 #include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorTripletFit.h>
19 
20 namespace Belle2 {
26  constexpr
27  static char const* const svdStateVarNames[] = {
28  "seed_cdc_hits",
29  "seed_svd_hits",
30  "seed_lowest_svd_layer",
31  "seed_lowest_cdc_layer",
32 
33  "quality_index_triplet",
34  "quality_index_circle",
35  "quality_index_helix",
36 
37  "cluster_1_charge",
38  "cluster_2_charge",
39  "mean_rest_cluster_charge",
40  "min_rest_cluster_charge",
41  "std_rest_cluster_charge",
42 
43  "cluster_1_seed_charge",
44  "cluster_2_seed_charge",
45  "mean_rest_cluster_seed_charge",
46  "min_rest_cluster_seed_charge",
47  "std_rest_cluster_seed_charge",
48 
49  "cluster_1_size",
50  "cluster_2_size",
51  "mean_rest_cluster_size",
52  "min_rest_cluster_size",
53  "std_rest_cluster_size",
54 
55  "cluster_1_snr",
56  "cluster_2_snr",
57  "mean_rest_cluster_snr",
58  "min_rest_cluster_snr",
59  "std_rest_cluster_snr",
60 
61  "cluster_1_charge_over_size",
62  "cluster_2_charge_over_size",
63  "mean_rest_cluster_charge_over_size",
64  "min_rest_cluster_charge_over_size",
65  "std_rest_cluster_charge_over_size",
66  };
67 
69  class SVDStateVarNames : public TrackFindingCDC::VarNames<BaseSVDStateFilter::Object> {
70 
71  public:
73  static const size_t nVars = TrackFindingCDC::size(svdStateVarNames);
74 
76  constexpr
77  static char const* getName(int iName)
78  {
79  return svdStateVarNames[iName];
80  }
81  };
82 
86  class SVDStateVarSet : public TrackFindingCDC::VarSet<SVDStateVarNames> {
87 
88  public:
90  virtual bool extract(const BaseSVDStateFilter::Object* object) override;
91 
92  private:
99  };
101 }
Class containing the algorithm to perform the simple circle fit.
does a tripletFit of the given hits The filter is based on the paper 'A New Three-Dimensional Track F...
Vehicle class to transport the variable names.
static const size_t nVars
Number of variables to be generated.
constexpr static char const * getName(int iName)
Get the name of the column.
Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match.
QualityEstimatorRiemannHelixFit m_qualityHelix
Instance of the Riemann helix-fit class.
QualityEstimatorTripletFit m_qualityTriplet
Instance of the triplet-fit class.
QualityEstimatorCircleFit m_qualityCircle
Instance of the circle-fit class.
virtual bool extract(const BaseSVDStateFilter::Object *object) override
Generate and assign the variables from the VXD-CDC object.
AObject Object
Type of the object to be analysed.
Definition: Filter.dcl.h:33
Class that specifies the names of the variables.
Definition: VarNames.h:21
Generic class that generates some named float values from a given object.
Definition: VarSet.h:36
constexpr static char const *const svdStateVarNames[]
Names of the variables to be generated.
Abstract base class for different kinds of events.