Belle II Software  release-08-01-10
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<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(std::vector<SpacePointTrackCand>& finishedResults,
57  const std::vector<const SpacePoint*>& spacePoints) override;
58 
59  private:
61  std::string m_RecoTracksStoreArrayName = "SVDHoughRecoTracks";
63  std::string m_SVDClustersStoreArrayName = "SVDClusters";
65  std::string m_SVDSpacePointTrackCandsStoreArrayName = "SVDHoughSpacePointTrackCands";
66 
69 
72 
74  std::set<const SVDCluster*> m_usedClusters;
76  std::set<const SpacePoint*> m_usedSpacePoints;
77 
79  std::unique_ptr<QualityEstimatorBase> m_estimator;
81  std::string m_MCRecoTracksStoreArrayName = "MCRecoTracks";
86  std::string m_EstimationMethod = "helixFit";
87  };
88 
89  }
91 }
The Module parameter list class.
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.
void apply(std::vector< SpacePointTrackCand > &finishedResults, const std::vector< const SpacePoint * > &spacePoints) override
Store the finishey SpacePointTrackCands into RecoTracks and tag the SpacePoints.
bool m_MCStrictQualityEstimator
Only required for MCInfo method.
void initialize() override
Create the store arrays.
std::string m_SVDSpacePointTrackCandsStoreArrayName
StoreArray name of the SpacePointTrackCandidate StoreArray.
std::string m_EstimationMethod
Identifier which estimation method to use.
std::string m_SVDClustersStoreArrayName
StoreArray name of the SVDCluster StoreArray.
std::set< const SVDCluster * > m_usedClusters
Store the used clusters in the results.
StoreArray< SpacePointTrackCand > m_storeSpacePointTrackCands
Output SpacePointTrackCand Store Array.
std::string m_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
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_RecoTracksStoreArrayName
StoreArray name of the output Track StoreArray.
Abstract base class for different kinds of events.