Belle II Software  release-05-01-25
PXDClustersFromTracksModule.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2020 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Qingyuan LIU *
7  * This software is provided "as is" without any warranty. *
8  **************************************************************************/
9 
10 #include <pxd/modules/pxdPerformance/PXDClustersFromTracksModule.h>
11 #include <vxd/geometry/GeoCache.h>
12 #include <vxd/geometry/SensorInfoBase.h>
13 
14 #include <framework/datastore/StoreArray.h>
15 
16 
17 using namespace Belle2;
18 
19 //-----------------------------------------------------------------
20 // Register the Module
21 //-----------------------------------------------------------------
22 REG_MODULE(PXDClustersFromTracks)
23 
24 //-----------------------------------------------------------------
25 // Implementation
26 //-----------------------------------------------------------------
27 
29 {
30  B2DEBUG(1, "Constructor");
31  // Set module properties
32  setDescription("PXDClustersFromTracks module for creating a new StoreArray of track matched PXDCluster.");
33  setPropertyFlags(c_ParallelProcessingCertified);
34 
35  // Parameter definitions
36  addParam("PXDClustersName", m_pxdClustersName, "StoreArray name of the input PXD clusters", std::string("PXDClusters"));
37  addParam("TracksName", m_tracksName, "StoreArray name of the input tracks", std::string("Tracks"));
38  addParam("RecoTracksName", m_recoTracksName, "StoreArray name of the input recoTracks", std::string("RecoTracks"));
39  addParam("outputArrayName", m_outputArrayName, "StoreArray name of the output PXD clusters",
40  std::string("PXDClustersFromTracks"));
41  addParam("InheritRelations", m_inheritance,
42  "Set true if you want to inherit PXDCluster relation with StoreArray RecoTracks, the default is true", bool(true));
43 }
44 
46 {
47  B2DEBUG(20, "Destructor");
48 }
49 
50 
52 {
53 
54  B2DEBUG(10, "PXDClustersName: " << m_pxdClustersName);
55  B2DEBUG(10, "TracksName: " << m_tracksName);
56  B2DEBUG(10, "RecoTracksName: " << m_recoTracksName);
57  B2DEBUG(10, "outputArrayName: " << m_outputArrayName);
58  B2DEBUG(10, "InheritRelations: " << m_inheritance);
59 
63  pxdClusters.isRequired();
64  recoTracks.isRequired();
65  tracks.isRequired();
66  m_selectedPXDClusters.registerSubset(pxdClusters, m_outputArrayName);
67  if (m_inheritance) {
68  m_selectedPXDClusters.inheritRelationsTo(recoTracks);
69  }
70 
71 }
72 
73 
75 {
76 }
77 
78 
80 {
82 
83  m_selectedPXDClusters.select([](const PXDCluster * thePXDCluster) {
84  return isRelatedToTrack(thePXDCluster);
85  });
86 
87 }
88 
90 {
91 }
92 
94 {
95 }
96 
98 {
99  RelationVector<RecoTrack> recoTrack_cluster = pxdCluster->getRelationsTo<RecoTrack>();
100  if (recoTrack_cluster.size() == 0) {
101  return false;
102  } else {
103  RelationVector<Track> track_recoTrack = recoTrack_cluster[0]->getRelationsFrom<Track>();
104  if (!track_recoTrack.size()) {
105  return false;
106  } else {
107  return true;
108  }
109  }
110 }
Belle2::PXDClustersFromTracksModule::~PXDClustersFromTracksModule
virtual ~PXDClustersFromTracksModule()
if required
Definition: PXDClustersFromTracksModule.cc:45
Belle2::RelationVector::size
size_t size() const
Get number of relations.
Definition: RelationVector.h:98
Belle2::PXDClustersFromTracksModule::m_pxdClustersName
std::string m_pxdClustersName
SVDCLuster store array.
Definition: PXDClustersFromTracksModule.h:75
Belle2::PXDClustersFromTracksModule::endRun
virtual void endRun() override
end the run
Definition: PXDClustersFromTracksModule.cc:89
Belle2::PXDClustersFromTracksModule::event
virtual void event() override
processes the event
Definition: PXDClustersFromTracksModule.cc:79
REG_MODULE
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition: Module.h:652
Belle2::PXDClustersFromTracksModule::terminate
virtual void terminate() override
terminates the module
Definition: PXDClustersFromTracksModule.cc:93
Belle2::PXDClustersFromTracksModule::m_tracksName
std::string m_tracksName
Track store array.
Definition: PXDClustersFromTracksModule.h:77
Belle2::RelationsInterface::getRelationsTo
RelationVector< TO > getRelationsTo(const std::string &name="", const std::string &namedRelation="") const
Get the relations that point from this object to another store array.
Definition: RelationsObject.h:199
Belle2::PXDClustersFromTracksModule::initialize
virtual void initialize() override
init the module
Definition: PXDClustersFromTracksModule.cc:51
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2::RecoTrack
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:78
Belle2::RelationVector
Class for type safe access to objects that are referred to in relations.
Definition: DataStore.h:38
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXDClustersFromTracksModule::isRelatedToTrack
static bool isRelatedToTrack(const PXDCluster *pxdCluster)
select the PXD clusters related to tracks
Definition: PXDClustersFromTracksModule.cc:97
Belle2::PXDClustersFromTracksModule::m_outputArrayName
std::string m_outputArrayName
StoreArray with the selected PXD clusters.
Definition: PXDClustersFromTracksModule.h:81
Belle2::PXDCluster
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
Definition: PXDCluster.h:41
Belle2::PXDClustersFromTracksModule
The PXDClustersFromTracks module.
Definition: PXDClustersFromTracksModule.h:46
Belle2::PXDClustersFromTracksModule::beginRun
virtual void beginRun() override
initializes the module
Definition: PXDClustersFromTracksModule.cc:74
Belle2::Track
Class that bundles various TrackFitResults.
Definition: Track.h:35
Belle2::StoreArray< PXDCluster >
Belle2::PXDClustersFromTracksModule::m_recoTracksName
std::string m_recoTracksName
reco track store array
Definition: PXDClustersFromTracksModule.h:76
Belle2::PXDClustersFromTracksModule::m_selectedPXDClusters
SelectSubset< PXDCluster > m_selectedPXDClusters
all PXD clusters
Definition: PXDClustersFromTracksModule.h:83
Belle2::PXDClustersFromTracksModule::m_inheritance
bool m_inheritance
if true all relations are inherited
Definition: PXDClustersFromTracksModule.h:79