Belle II Software  release-05-02-19
CDCHitFilterModule.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * CDC hit filter module *
6  * Author: The Belle II Collaboration *
7  * Contributors: Thomas Hauth *
8  * *
9  * This software is provided "as is" without any warranty. *
10  **************************************************************************/
11 
12 #include <cdc/modules/cdcHitFilter/CDCHitFilterModule.h>
13 #include <cdc/dataobjects/CDCHit.h>
14 
15 #include <framework/datastore/StoreArray.h>
16 
17 using namespace Belle2;
18 using namespace CDC;
19 
20 //-----------------------------------------------------------------
21 // Register the Module
22 //-----------------------------------------------------------------
23 REG_MODULE(CDCHitFilter)
24 
25 //-----------------------------------------------------------------
26 // Implementation
27 //-----------------------------------------------------------------
28 
30  Module()
31 {
32 
33  //Set module properties
34  setDescription("Filter CDCHits");
35 
36  addParam("inputCDCHitListName", m_inputCDCHitListName,
37  "Name of the CDCHit List to filter", std::string(""));
38  addParam("outputCDCHitListName", m_outputCDCHitListName,
39  "Name of the CDCHit list, which will contain the hits passing all filter criteria",
40  std::string(""));
41 
42  // Limit hits to parts of the CDC, useful if not the whole CDC
43  // is defined in the packer/unpacker mapping file
44  addParam("filterSuperLayer", m_filterSuperLayer,
45  "Only perform digitization for a specific super layer or for all, if the value is -1",
46  -1);
47  addParam("filterWireMax", m_filterWireMax,
48  "Only perform digitization up to a specific number of wire or for all wires, if the value is -1",
49  -1);
50  addParam("filterLayerMax", m_filterLayerMax,
51  "Only perform digitization for a specific layer or for all, if the value is -1",
52  -1);
53 }
54 
56 {
57 }
58 
60 {
62  m_outputCDCHits.registerInDataStore(m_outputCDCHitListName);
63 }
64 
66 {
67 
68  for (auto const& hit : m_inputCDCHits) {
69  // check if filtering for super-layers, layers or wires is active
70  if ((m_filterSuperLayer >= 0)
71  && (m_filterSuperLayer != hit.getISuperLayer())) {
72  continue;
73  }
74  if ((m_filterLayerMax >= 0) && (m_filterLayerMax <= hit.getILayer())) {
75  continue;
76  }
77  if ((m_filterWireMax >= 0) && (m_filterWireMax <= hit.getIWire())) {
78  continue;
79  }
80 
81  m_outputCDCHits.appendNew(hit);
82  }
83 }
Belle2::CDC::CDCHitFilterModule::m_filterLayerMax
int m_filterLayerMax
Only perform digitization up to a specific layer or for all, if the value is -1.
Definition: CDCHitFilterModule.h:83
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::CDC::CDCHitFilterModule::m_filterSuperLayer
int m_filterSuperLayer
Only perform digitization for a specific super layer or for all, if the value is -1.
Definition: CDCHitFilterModule.h:82
Belle2::CDC::CDCHitFilterModule::m_filterWireMax
int m_filterWireMax
Only perform digitization for a specific wire or for all, if the value is -1.
Definition: CDCHitFilterModule.h:84
Belle2::CDC::CDCHitFilterModule::event
void event() override
Begin run action.
Definition: CDCHitFilterModule.cc:65
Belle2::CDC::CDCHitFilterModule::m_outputCDCHitListName
std::string m_outputCDCHitListName
Name of the CDCHit list, which will contain the hits passing all filter criteria.
Definition: CDCHitFilterModule.h:79
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::CDCHitFilterModule::~CDCHitFilterModule
virtual ~CDCHitFilterModule()
Destructor of the module.
Definition: CDCHitFilterModule.cc:55
Belle2::CDC::CDCHitFilterModule::initialize
void initialize() override
Initializes the Module.
Definition: CDCHitFilterModule.cc:59
Belle2::CDC::CDCHitFilterModule
CDCHitFilter: Filters CDC hits according to given configuration criteria.
Definition: CDCHitFilterModule.h:46
Belle2::CDC::CDCHitFilterModule::m_inputCDCHitListName
std::string m_inputCDCHitListName
Name of the CDCHit List to filter.
Definition: CDCHitFilterModule.h:74
Belle2::CDC::CDCHitFilterModule::m_outputCDCHits
StoreArray< CDCHit > m_outputCDCHits
Output (filtered) CDCHit array.
Definition: CDCHitFilterModule.h:87
Belle2::CDC::CDCHitFilterModule::m_inputCDCHits
StoreArray< CDCHit > m_inputCDCHits
Input CDCHit array.
Definition: CDCHitFilterModule.h:86