Belle II Software  release-05-01-25
SegmentRejecter.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/SegmentRejecter.h>
11 
12 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
13 
14 #include <tracking/trackFindingCDC/filters/base/ChooseableFilter.icc.h>
15 
16 #include <tracking/trackFindingCDC/utilities/Algorithms.h>
17 
18 #include <framework/core/ModuleParamList.templateDetails.h>
19 
20 using namespace Belle2;
21 using namespace TrackFindingCDC;
22 
25 
26 SegmentRejecter::SegmentRejecter(const std::string& defaultFilterName)
27  : m_segmentFilter(defaultFilterName)
28 {
30 }
31 
33 {
34  return "Deletes fake segments that have been rejected by a filter";
35 }
36 
37 void SegmentRejecter::exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix)
38 {
39  m_segmentFilter.exposeParameters(moduleParamList, prefix);
40  moduleParamList->addParameter(prefixed(prefix, "deleteRejected"),
42  "Delete the rejected segments instead of marking this as background.",
44 }
45 
46 void SegmentRejecter::apply(std::vector<CDCSegment2D>& segment2Ds)
47 {
48  auto reject = [this](CDCSegment2D & segment2D) {
49  double filterWeight = m_segmentFilter(segment2D);
50  segment2D->setCellWeight(filterWeight);
51  if (std::isnan(filterWeight)) {
52  segment2D->setBackgroundFlag();
53  segment2D->setTakenFlag();
54  return true;
55  } else {
56  return false;
57  }
58  };
59 
61  erase_remove_if(segment2Ds, reject);
62  } else {
63  std::for_each(segment2Ds.begin(), segment2Ds.end(), reject);
64  }
65 }
Belle2::TrackFindingCDC::SegmentRejecter::getDescription
std::string getDescription() final
Short description of the findlet.
Definition: SegmentRejecter.cc:32
Belle2::TrackFindingCDC::ChooseableFilter
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Definition: ChooseableFilter.dcl.h:107
Belle2::TrackFindingCDC::SegmentRejecter::SegmentRejecter
SegmentRejecter(const std::string &defaultFilterName="all")
Constructor adding the filter as a subordinary processing signal listener.
Definition: SegmentRejecter.cc:26
Belle2::TrackFindingCDC::SegmentRejecter::apply
void apply(std::vector< CDCSegment2D > &segment2Ds) final
Main algorithm.
Definition: SegmentRejecter.cc:46
Belle2::TrackFindingCDC::CompositeProcessingSignalListener::addProcessingSignalListener
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Definition: CompositeProcessingSignalListener.cc:57
Belle2::TrackFindingCDC::SegmentRejecter::m_param_deleteRejected
bool m_param_deleteRejected
Parameter : Switch to delete the segments instead of marking them as background.
Definition: SegmentRejecter.h:65
Belle2::TrackFindingCDC::SegmentRejecter::m_segmentFilter
ChooseableFilter< SegmentFilterFactory > m_segmentFilter
Reference to the filter to be used to filter.
Definition: SegmentRejecter.h:68
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::TrackFindingCDC::SegmentRejecter::exposeParameters
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: SegmentRejecter.cc:37
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
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