Belle II Software  release-06-02-00
RecoTrackStorer.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/datastore/StoreArray.h>
11 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
12 #include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
13 #include <tracking/trackFindingVXD/trackQualityEstimators/QualityEstimatorBase.h>
14 
15 #include <string>
16 #include <vector>
17 
18 namespace Belle2 {
23  class ModuleParamList;
24  class SpacePointTrackCand;
25  class SpacePoint;
26  class RecoTrack;
27  class SVDCluster;
28 
29  namespace vxdHoughTracking {
30 
32  class RecoTrackStorer : public TrackFindingCDC::Findlet<const SpacePointTrackCand, const SpacePoint* const> {
35 
36  public:
39 
42 
44  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
45 
47  void initialize() override;
48 
50  void beginRun() override;
51 
53  void beginEvent() override;
54 
56  void apply(const std::vector<SpacePointTrackCand>& finishedResults,
57  const std::vector<const SpacePoint*>& spacePoints) override;
58 
59  private:
61  std::string m_param_RecoTracksStoreArrayName = "VXDHoughTrackingRecoTracks";
63  std::string m_param_SVDClustersStoreArrayName = "SVDClusters";
64 
67 
69  std::set<const SVDCluster*> m_usedClusters;
71  std::set<const SpacePoint*> m_usedSpacePoints;
72 
74  std::unique_ptr<QualityEstimatorBase> m_estimator;
76  std::string m_param_MCRecoTracksStoreArrayName = "MCRecoTracks";
81  std::string m_param_EstimationMethod = "helixFit";
82  };
83 
84  }
86 }
The Module parameter list class.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Interface for an algorithm part that needs to receive the module processing signals.
Store RecoTracks into StoreArray.
std::string m_param_EstimationMethod
Identifier which estimation method to use.
void initialize() override
Create the store arrays.
bool m_param_MCStrictQualityEstimator
Only required for MCInfo method.
std::set< const SVDCluster * > m_usedClusters
Store the used clusters in the results.
std::string m_param_RecoTracksStoreArrayName
StoreArray name of the output Track StoreArray.
std::string m_param_MCRecoTracksStoreArrayName
sets the name of the expected StoreArray containing MCRecoTracks. Only required for MCInfo method
void beginEvent() override
Reset internal vectors.
std::unique_ptr< QualityEstimatorBase > m_estimator
pointer to the selected QualityEstimator
void apply(const std::vector< SpacePointTrackCand > &finishedResults, const std::vector< const SpacePoint * > &spacePoints) override
Store the finishey SpacePointTrackCands into RecoTracks and tag the SpacePoints.
StoreArray< RecoTrack > m_storeRecoTracks
Output RecoTracks Store Array.
std::set< const SpacePoint * > m_usedSpacePoints
Store the used space points in the results.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
std::string m_param_SVDClustersStoreArrayName
StoreArray name of the SVDCluster StoreArray.
Abstract base class for different kinds of events.