Belle II Software development
BridgingWireHitRelationFilter.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/trackingUtilities/filters/base/RelationFilter.dcl.h>
11
12#include <string>
13#include <map>
14#include <array>
15#include <vector>
16#include <cstddef>
17
18namespace Belle2 {
23 class ModuleParamList;
24
25 namespace CDC {
26 class CDCWire;
27 }
28 namespace TrackingUtilities {
29 class CDCWireHit;
30 }
31 namespace TrackFindingCDC {
32
46 class BridgingWireHitRelationFilter : public TrackingUtilities::RelationFilter<TrackingUtilities::CDCWireHit> {
47
48 private:
51
52 public:
55
58
60 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) override;
61
63 void initialize() override;
64
69 std::vector<TrackingUtilities::CDCWireHit*> getPossibleTos(TrackingUtilities::CDCWireHit* from,
70 const std::vector<TrackingUtilities::CDCWireHit*>& wireHits) const final;
71
79 void prepare(const std::vector<TrackingUtilities::CDCWireHit*>& wireHits);
80
81 private:
84 {{0, 2}, {2, 2}, {4, 2}, {6, 2}, {8, 2}, {10, 2}};
85
87 std::array<short, 12> m_missingPrimaryNeighborThresholds {};
88
91
93 std::vector<const CDC::CDCWire*> m_preparedWires;
94
97
99 std::size_t m_preparedWireHitsSize = 0;
100 };
101 }
103}
Class representing a sense wire in the central drift chamber.
Definition CDCWire.h:50
The Module parameter list class.
std::map< int, int > m_param_missingPrimaryNeighborThresholdMap
Parameter: A map from o'clock direction to the number of missing primary drift cells.
void prepare(const std::vector< TrackingUtilities::CDCWireHit * > &wireHits)
Precompute the wires of the given wire hits to speed up the searches in the following getPossibleTos ...
~BridgingWireHitRelationFilter() override
Default destructor.
TrackingUtilities::CDCWireHit *const * m_preparedWireHitsData
Data pointer of the prepared wire hit vector used to recognize it in getPossibleTos.
void initialize() override
Receive signal at the begin of the event processing and prepare some parameters.
std::vector< TrackingUtilities::CDCWireHit * > getPossibleTos(TrackingUtilities::CDCWireHit *from, const std::vector< TrackingUtilities::CDCWireHit * > &wireHits) const final
Returns a vector containing the neighboring wire hits of the given wire hit out of the sorted range g...
std::array< short, 12 > m_missingPrimaryNeighborThresholds
Array for the number of primary drift cells to be included for the o'clock position at each index.
std::vector< const CDC::CDCWire * > m_preparedWires
Memory for the wires of the prepared wire hit vector.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the set of parameters of the filter to the module parameter list.
std::size_t m_preparedWireHitsSize
Size of the prepared wire hit vector used to recognize it in getPossibleTos.
TrackingUtilities::RelationFilter< TrackingUtilities::CDCWireHit > Super
Type of the base class.
std::vector< short > m_consideredSecondaryNeighbors
Indices of the considered o'clock positions of the secondary neighborhood.
Class representing a hit wire in the central drift chamber.
Definition CDCWireHit.h:56
Base class for filtering the neighborhood of objects.
Abstract base class for different kinds of events.