Belle II Software  release-05-01-25
VXDTrackCandidatesQualityIndicatorCutterModule.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jonas Wagner *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include "tracking/modules/trackSetEvaluatorVXD/VXDTrackCandidatesQualityIndicatorCutterModule.h"
12 #include <vector>
13 
14 using namespace Belle2;
15 
16 
17 REG_MODULE(VXDTrackCandidatesQualityIndicatorCutter)
18 
20 {
21  setDescription("Module that selects a subset out of all SpacePointTrackCandidates. Based on qualityIndicator requirement.");
22 
23  addParam("NameSpacePointTrackCands", m_nameSpacePointTrackCands, "Name of expected StoreArray.", std::string(""));
24  addParam("minRequiredQuality", m_minRequiredQuality, "Minimum value of qualityIndicator to keep candidate active.", float(0));
25  addParam("SubsetCreation", m_subsetCreation,
26  "If True copy selected SpacePoints to new StoreArray, if False deactivate remaining SpacePoints.", bool(false));
27  addParam("NewNameSpacePointTrackCands", m_newNameSpacePointTrackCands,
28  "Only required if 'CreateNewStoreArray' is true. Name of StoreArray to store the subset. If the target name is equal to the source candidates not matching the selection criteria are deleted.",
29  std::string("BestSpacePointTrackCands"));
30 }
31 
33 {
35  if (m_subsetCreation) {
38  } else {
40  m_goodCandidates.inheritAllRelations();
41  }
42  }
43 }
44 
46 {
48  else deactivateCandidates();
49 }
50 
52 {
54  if (sptc.getQualityIndicator() < m_minRequiredQuality) {
55  sptc.removeRefereeStatus(SpacePointTrackCand::c_isActive);
56  // Note: assignment state of individual hits does not have to be changed here (assignment not set until SPTC2RTConverterModule)
57  }
58  }
59 }
60 
62 {
63  m_goodCandidates.select([this](const SpacePointTrackCand * sptc) {return sptc->getQualityIndicator() >= this->m_minRequiredQuality;});
64 }
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::event
void event() override final
Application of the cut.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.cc:45
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_spacePointTrackCands
StoreArray< SpacePointTrackCand > m_spacePointTrackCands
StoreArray for input SpacePointTrackCands.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:83
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_goodCandidates
SelectSubset< SpacePointTrackCand > m_goodCandidates
SubsetSelector operating on a custom selection criteria.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:89
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_newNameSpacePointTrackCands
std::string m_newNameSpacePointTrackCands
Name of optional output StoreArray containing SpacePointTrackCands.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:77
Belle2::SpacePointTrackCand::getQualityIndicator
double getQualityIndicator() const
returns the current status of the estimated quality of this track candidate.
Definition: SpacePointTrackCand.h:222
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::deactivateCandidates
void deactivateCandidates()
Don't copy/delete candidates but rather deactivate them by setting a SpacePointTrackCandidate flag.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.cc:51
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::selectSubset
void selectSubset()
Copy or delete candidates to achieve a subset creation.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.cc:61
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule
Module that selects a subset with a fixed minimum qualityIndicator out of all SpacePointTrackCandidat...
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:44
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_subsetCreation
bool m_subsetCreation
If True copy selected SpacePointTrackCands to new StoreArray, If False deactivate remaining SpacePoin...
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:74
Belle2::SpacePointTrackCand::c_isActive
@ c_isActive
bit 11: SPTC is active (i.e.
Definition: SpacePointTrackCand.h:94
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::initialize
void initialize() override final
Requires SpacePointTrackCands.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.cc:32
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_minRequiredQuality
float m_minRequiredQuality
selection criteria
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:66
Belle2::VXDTrackCandidatesQualityIndicatorCutterModule::m_nameSpacePointTrackCands
std::string m_nameSpacePointTrackCands
Name of input StoreArray containing SpacePointTrackCands.
Definition: VXDTrackCandidatesQualityIndicatorCutterModule.h:69
Belle2::SpacePointTrackCand
Storage for (VXD) SpacePoint-based track candidates.
Definition: SpacePointTrackCand.h:51