Belle II Software  release-08-01-10
RawTrackCandCleaner.dcl.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/findlets/base/Findlet.h>
11 #include <tracking/vxdHoughTracking/findlets/RelationCreator.h>
12 #include <tracking/vxdHoughTracking/findlets/SVDHoughTrackingTreeSearcher.dcl.h>
13 #include <tracking/vxdHoughTracking/findlets/TrackCandidateResultRefiner.h>
14 #include <tracking/vxdHoughTracking/filters/relations/ChooseableRelationFilter.h>
15 #include <tracking/vxdHoughTracking/filters/pathFilters/ChooseablePathFilter.h>
16 
17 #include <string>
18 #include <vector>
19 
20 namespace Belle2 {
25  class ModuleParamList;
26  class SpacePointTrackCand;
27  class VxdID;
28 
29  namespace vxdHoughTracking {
30 
32  template<class AHit>
33  class RawTrackCandCleaner : public TrackFindingCDC::Findlet<std::vector<AHit*>, SpacePointTrackCand> {
36 
38  using Result = std::vector<TrackFindingCDC::WithWeight<const AHit*>>;
39 
40  public:
43 
46 
48  void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
49 
51  void initialize() override;
52 
54  void apply(std::vector<std::vector<AHit*>>& rawTrackCandidates, std::vector<SpacePointTrackCand>& trackCandidates) override;
55 
56  private:
57 
60 
63 
66 
68  std::vector<TrackFindingCDC::WeightedRelation<AHit>> m_relations;
69 
71  std::vector<Result> m_results;
74  std::vector<SpacePointTrackCand> m_unfilteredResults;
77  std::vector<SpacePointTrackCand> m_filteredResults;
78 
80  uint m_maxRelations = 100;
81  };
82 
83  }
85 }
The Module parameter list class.
Storage for (VXD) SpacePoint-based track candidates.
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.
Findlet for rejecting wrong SpacePointTrackCands and for removing bad hits.
SVDHoughTrackingTreeSearcher< AHit, ChooseablePathFilter, Result > m_treeSearcher
perform a tree search using a cellular automaton for all the hits and relations of each raw track can...
uint m_maxRelations
maximum number of relations that can be created per track candidate
TrackCandidateResultRefiner m_resultRefiner
sort and refine the results for each raw track cand, performing a fit and a basic overlap check
void initialize() override
Create the store arrays.
std::vector< SpacePointTrackCand > m_unfilteredResults
vector containing unfiltered results, i.e.
RelationCreator< AHit, ChooseableRelationFilter > m_relationCreator
create relations between the hits in each raw track candidate
RawTrackCandCleaner()
Find intercepts in the 2D Hough space.
std::vector< TrackFindingCDC::WeightedRelation< AHit > > m_relations
vector containing the relations between the hits in the raw track candidate
std::vector< TrackFindingCDC::WithWeight< const AHit * > > Result
Shortcut definition for Result.
std::vector< Result > m_results
vector containing track candidates after tree search
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< std::vector< AHit * >> &rawTrackCandidates, std::vector< SpacePointTrackCand > &trackCandidates) override
Reject bad SpacePointTrackCands and bad hits inside the remaining.
std::vector< SpacePointTrackCand > m_filteredResults
vector containing the filtered and pruned results the filtered results of each raw track candidate wi...
Findlet for applying filters for creating hit-hit relations in each track candidate.
Findlet for constructing result paths out of a list of hits, which are connected with weighted relati...
Findlet for rejecting wrong SpacePointTrackCands and for removing bad hits.
Abstract base class for different kinds of events.