Belle II Software development
MonopoleStereoHitFinderQuadratic.cc
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#include <tracking/trackFindingCDC/findlets/combined/MonopoleStereoHitFinderQuadratic.h>
9
10#include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
11#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
12
13#include <tracking/trackFindingCDC/filters/base/ChooseableFilter.icc.h>
14
15using namespace Belle2;
16using namespace TrackFindingCDC;
17
19
21{
28// addProcessingSignalListener(&m_szFitter);
29}
30
32{
33 return "Tries to add monopole CDC stereo hits to the found CDC tracks by applying a histogramming method with a quad tree.\n"
34 "WARNING This findlet is kept here just in case hyperbolic one misbehaves and eats up too much RAM\n"
35 "If it doesn't, this one should be removed around release-05 or earlier";
36}
37
39{
41
42 m_rlTaggedWireHits.clear();
43 m_relations.clear();
44}
45
46void MonopoleStereoHitFinderQuadratic::exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix)
47{
48 Super::exposeParameters(moduleParamList, prefix);
49
50 m_rlWireHitCreator.exposeParameters(moduleParamList, prefix);
51 m_matcher.exposeParameters(moduleParamList, prefix);
52 m_filterSelector.exposeParameters(moduleParamList, prefix);
53 m_singleMatchSelector.exposeParameters(moduleParamList, prefix);
54 m_adder.exposeParameters(moduleParamList, prefix);
55 m_inspector.exposeParameters(moduleParamList, prefix);
56// m_szFitter.exposeParameters(moduleParamList, prefix);
57}
58
59void MonopoleStereoHitFinderQuadratic::apply(std::vector<CDCWireHit>& inputWireHits, std::vector<CDCTrack>& tracks)
60{
61 m_rlTaggedWireHits.reserve(2 * inputWireHits.size());
62 m_relations.reserve(2 * inputWireHits.size() * tracks.size());
63
66// m_filterSelector.apply(m_relations);
69 m_inspector.apply(tracks);
70
71 for (auto track : tracks)
72 track.sortByArcLength2D();
73// m_szFitter.apply(tracks);
74}
The Module parameter list class.
void apply(std::vector< WeightedRelationItem > &weightedRelations) override
Main function to do the adding. Override the add function below in your derived class.
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void beginEvent() override
Receive and dispatch signal for the start of a new event.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
Definition: Findlet.h:69
std::vector< WeightedRelation< CDCTrack, const CDCRLWireHit > > m_relations
Vector of relations between tracks and hits.
std::vector< CDCRLWireHit > m_rlTaggedWireHits
Vector holding all possible wire hits with all possible RL combinations.
TrackInspector m_inspector
Print found tracks if requested in module options.
std::string getDescription() final
Short description of the findlet.
MonopoleStereoHitFinderQuadratic()
Constructor registering the subordinary findlets to the processing signal distribution machinery.
void apply(std::vector< CDCWireHit > &inputWireHits, std::vector< CDCTrack > &tracks) final
Generates the segment from wire hits.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
StereoHitTrackQuadTreeMatcher< HitQuadraticLegendre > m_matcher
Find matching hits to a track.
FilterSelector< CDCTrack, CDCRLWireHit, ChooseableFilter< StereoHitFilterFactory > > m_filterSelector
Filter for the Stereo Hits added to the track.
RLTaggedWireHitCreator m_rlWireHitCreator
Create RL wire hits out of the wire hits.
SingleMatchSelector< CDCTrack, CDCRLWireHit, HitComperator > m_singleMatchSelector
Select only those where the relation is unique (or the best one in those groups)
void apply(std::vector< CDCWireHit > &inputWireHits, std::vector< CDCRLWireHit > &outputRLWireHits) final
Generates the segment from wire hits.
void apply(std::vector< CDCTrack > &tracks) final
Print the tracks.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Access parameters.
Abstract base class for different kinds of events.