Belle II Software development
AxialStraightTrackFinder.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/AxialStraightTrackFinder.h>
9
10#include <tracking/trackingUtilities/eventdata/tracks/CDCTrack.h>
11#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
12#include <mdst/dataobjects/ECLCluster.h>
13
14using namespace Belle2;
15using namespace TrackFindingCDC;
16using namespace TrackingUtilities;
17
22
29
31{
32 return "Performs a search for straight tracks coming from IP and ending in an ECL cluster";
33}
34
36 const std::string& prefix)
37{
38 m_axialStraightTrackCreator.exposeParameters(moduleParamList, prefix);
39}
40
41void AxialStraightTrackFinder::apply(const std::vector<CDCWireHit>& wireHits,
42 std::vector<CDCTrack>& tracks)
43{
44 B2DEBUG(25, "********** CDCTrackingModule ************");
45
46// Acquire ecl clusters
47 std::vector<const ECLCluster*> clusters;
48 clusters.reserve(m_storeArrayClusters.getEntries());
49 for (const ECLCluster& cluster : m_storeArrayClusters) {
50 if (cluster.hasHypothesis(ECLCluster::EHypothesisBit::c_nPhotons)) { //FIXME reasonable to pick other hypothesis?
51 clusters.emplace_back(&cluster);
52 }
53 }
54 // Acquire the axial hits
55 std::vector<const CDCWireHit*> axialWireHits;
56 axialWireHits.reserve(wireHits.size());
57 for (const CDCWireHit& wireHit : wireHits) {
58 if (not wireHit.isAxial()) continue;
59 axialWireHits.emplace_back(&wireHit);
60 }
61
62 m_axialStraightTrackCreator.apply(clusters, axialWireHits, tracks);
63
64// AxialTrackUtil::deleteShortTracks(tracks);
65}
66
ECL cluster data.
Definition ECLCluster.h:27
@ c_nPhotons
CR is split into n photons (N1)
Definition ECLCluster.h:41
The Module parameter list class.
void apply(const std::vector< TrackingUtilities::CDCWireHit > &wireHits, std::vector< TrackingUtilities::CDCTrack > &tracks)
Main method to apply the track finding.
void initialize() final
Receive signal before the start of the event processing.
std::string getDescription() final
Short description of the findlet.
AxialStraightTrackCreator m_axialStraightTrackCreator
Findlet for straight legendre pass.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
StoreArray< ECLCluster > m_storeArrayClusters
Accessor to the ECLClusters StoreArray.
Class representing a hit wire in the central drift chamber.
Definition CDCWireHit.h:58
Abstract base class for different kinds of events.