Belle II Software  release-05-01-25
TrackRejecter.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun, Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/trackFindingCDC/findlets/minimal/TrackRejecter.h>
11 
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
13 
14 #include <tracking/trackFindingCDC/filters/base/ChooseableFilter.icc.h>
15 
16 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
17 #include <tracking/trackFindingCDC/utilities/Algorithms.h>
18 
19 #include <framework/core/ModuleParamList.templateDetails.h>
20 
21 using namespace Belle2;
22 using namespace TrackFindingCDC;
23 
26 
27 TrackRejecter::TrackRejecter(const std::string& defaultFilterName)
28  : m_trackFilter(defaultFilterName)
29 {
31 }
32 
34 {
35  return "Deletes fake tracks that have been rejected by a filter";
36 }
37 
38 void TrackRejecter::exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix)
39 {
40  m_trackFilter.exposeParameters(moduleParamList, prefix);
41  moduleParamList->addParameter(prefixed(prefix, "deleteRejected"),
43  "Delete the rejected tracks instead of marking them as background.",
45 }
46 
47 void TrackRejecter::apply(std::vector<CDCTrack>& tracks)
48 {
49  auto reject = [this](CDCTrack & track) {
50  double filterWeight = m_trackFilter(track);
51  track->setCellWeight(filterWeight);
52  if (std::isnan(filterWeight)) {
53  track->setBackgroundFlag();
54  track->setTakenFlag();
55  return true;
56  } else {
57  return false;
58  }
59  };
60 
62  erase_remove_if(tracks, reject);
63  } else {
64  std::for_each(tracks.begin(), tracks.end(), reject);
65  }
66 }
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::ChooseableFilter
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Definition: ChooseableFilter.dcl.h:107
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::addProcessingSignalListener
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Definition: CompositeProcessingSignalListener.cc:57
Belle2::TrackFindingCDC::TrackRejecter::m_param_deleteRejected
bool m_param_deleteRejected
Parameter : Switch to delete the tracks instead of marking them as background.
Definition: TrackRejecter.h:65
Belle2::ModuleParamList::addParameter
void addParameter(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Definition: ModuleParamList.templateDetails.h:38
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::TrackRejecter::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: TrackRejecter.cc:33
Belle2::TrackFindingCDC::TrackRejecter::m_trackFilter
ChooseableFilter< TrackFilterFactory > m_trackFilter
Reference to the filter to be used to filter.
Definition: TrackRejecter.h:68
Belle2::TrackFindingCDC::TrackRejecter::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackRejecter.cc:38
Belle2::TrackFindingCDC::TrackRejecter::TrackRejecter
TrackRejecter(const std::string &defaultFilterName="all")
Constructor adding the filter as a subordinary processing signal listener.
Definition: TrackRejecter.cc:27
Belle2::TrackFindingCDC::Chooseable
Filter can delegate to a filter chosen and set up at run time by parameters.
Definition: ChooseableFilter.dcl.h:39
Belle2::ModuleParamList
The Module parameter list class.
Definition: ModuleParamList.h:46
Belle2::TrackFindingCDC::TrackRejecter::apply
void apply(std::vector< CDCTrack > &tracks) final
Main algorithm.
Definition: TrackRejecter.cc:47