Belle II Software  release-05-01-25
AxialStraightTrackFinder.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Dmitrii Neverov *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/trackFindingCDC/findlets/combined/AxialStraightTrackFinder.h>
11 
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
13 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
14 #include <mdst/dataobjects/ECLCluster.h>
15 
16 using namespace Belle2;
17 using namespace TrackFindingCDC;
18 
20 {
22 }
23 
25 {
26  m_storeArrayClusters.isRequired();
27 
29 }
30 
32 {
33  return "Performs a search for straight tracks coming from IP and ending in an ECL cluster";
34 }
35 
37  const std::string& prefix)
38 {
39  m_axialStraightTrackCreator.exposeParameters(moduleParamList, prefix);
40 }
41 
42 void AxialStraightTrackFinder::apply(const std::vector<CDCWireHit>& wireHits,
43  std::vector<CDCTrack>& tracks)
44 {
45  B2DEBUG(100, "********** CDCTrackingModule ************");
46 
47 // Acquire ecl clusters
48  std::vector<const ECLCluster*> clusters;
49  clusters.reserve(m_storeArrayClusters.getEntries());
50  for (const ECLCluster& cluster : m_storeArrayClusters) {
51  if (cluster.hasHypothesis(ECLCluster::EHypothesisBit::c_nPhotons)) { //FIXME reasonable to pick other hypothesis?
52  clusters.emplace_back(&cluster);
53  }
54  }
55  // Acquire the axial hits
56  std::vector<const CDCWireHit*> axialWireHits;
57  axialWireHits.reserve(wireHits.size());
58  for (const CDCWireHit& wireHit : wireHits) {
59  if (not wireHit.isAxial()) continue;
60  axialWireHits.emplace_back(&wireHit);
61  }
62 
63  m_axialStraightTrackCreator.apply(clusters, axialWireHits, tracks);
64 
65 // AxialTrackUtil::deleteShortTracks(tracks);
66 }
67 
Belle2::ECLCluster
ECL cluster data.
Definition: ECLCluster.h:39
Belle2::TrackFindingCDC::AxialStraightTrackFinder::m_storeArrayClusters
StoreArray< ECLCluster > m_storeArrayClusters
Accessor to the ECLClusters StoreArray.
Definition: AxialStraightTrackFinder.h:67
Belle2::TrackFindingCDC::AxialStraightTrackFinder::m_axialStraightTrackCreator
AxialStraightTrackCreator m_axialStraightTrackCreator
Findlet for straight legendre pass.
Definition: AxialStraightTrackFinder.h:70
Belle2::ECLCluster::EHypothesisBit::c_nPhotons
@ c_nPhotons
CR is split into n photons (N1)
Belle2::TrackFindingCDC::AxialStraightTrackFinder::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: AxialStraightTrackFinder.cc:36
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::addProcessingSignalListener
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Definition: CompositeProcessingSignalListener.cc:57
Belle2::TrackFindingCDC::AxialStraightTrackCreator::apply
void apply(const std::vector< const ECLCluster * > &eclClusters, const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Execute one pass over given clusters and wirehits and create tracks.
Definition: AxialStraightTrackCreator.cc:58
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::initialize
void initialize() override
Receive and dispatch signal before the start of the event processing.
Definition: CompositeProcessingSignalListener.cc:17
Belle2::TrackFindingCDC::AxialStraightTrackFinder::apply
void apply(const std::vector< CDCWireHit > &wireHits, std::vector< CDCTrack > &tracks)
Main method to apply the track finding.
Definition: AxialStraightTrackFinder.cc:42
Belle2::TrackFindingCDC::AxialStraightTrackFinder::initialize
void initialize() final
Receive signal before the start of the event processing.
Definition: AxialStraightTrackFinder.cc:24
Belle2::TrackFindingCDC::AxialStraightTrackFinder::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: AxialStraightTrackFinder.cc:31
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::AxialStraightTrackCreator::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: AxialStraightTrackCreator.cc:36
Belle2::TrackFindingCDC::CDCWireHit
Class representing a hit wire in the central drift chamber.
Definition: CDCWireHit.h:65
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::AxialStraightTrackFinder::AxialStraightTrackFinder
AxialStraightTrackFinder()
Constructor.
Definition: AxialStraightTrackFinder.cc:19