Belle II Software  release-05-02-19
GFTC2SPTCConverterModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Thomas Madlener *
7  * *
8  **************************************************************************/
9 
10 # pragma once
11 
12 #include <framework/core/Module.h>
13 #include <framework/datastore/StoreArray.h>
14 #include <tracking/spacePointCreation/SpacePoint.h>
15 
16 #include <tracking/spacePointCreation/SpacePointTrackCand.h>
17 
18 #include <genfit/TrackCand.h>
19 #include <genfit/TrackCandHit.h>
20 
21 #include <string>
22 #include <utility>
23 #include <boost/tuple/tuple.hpp>
24 
25 namespace Belle2 {
66  class GFTC2SPTCConverterModule : public Module {
67 
68  public:
69 
72  void initialize()
73  override;
75  void event() override;
77  void terminate() override;
79  protected:
80 
85  enum conversionStatus {
86  c_singleClusterSP = 1,
87  c_noFail = 0,
88  c_foundNoSpacePoint = -1,
89  c_foundNoTrueHit = -2,
90  c_unsuitableGFTC = -3,
91  c_unusedHits = -4,
93  c_noValidSP = -6,
94  c_lowNDF = -7,
95  };
96 
98  conversionStatus getFailEnum(int intToConvert)
99  {
100  switch (intToConvert) {
101  case 1: return c_singleClusterSP;
102  case 0: return c_noFail;
103  case -1: return c_foundNoSpacePoint;
104  case -2: return c_foundNoTrueHit;
105  case -3: return c_unsuitableGFTC;
106  case -4: return c_unusedHits;
107  case -5: return c_nonSingleSP;
108  case -6: return c_noValidSP;
109  case -7: return c_lowNDF;
110  default: return c_foundNoSpacePoint;
111  }
112  }
113 
114  // ========================================================== PARAMETERS ============================================================================
115  std::string m_PXDClusterName;
117  std::string m_SVDClusterName;
119  std::string m_SingleClusterSVDSPName;
121  std::string m_NoSingleClusterSVDSPName;
123  std::string m_PXDClusterSPName;
125  std::string m_genfitTCName;
127  std::string m_SPTCName;
129  bool m_PARAMcheckTrueHits;
135  bool m_PARAMskipCluster;
137  int m_PARAMminNDF;
139  // ============================================================= COUNTER VARIABLES ====================================================================
140  unsigned int
143  unsigned int m_genfitTCCtr;
145  unsigned int m_abortedTrueHitCtr;
147  unsigned int m_abortedUnsuitableTCCtr;
149  unsigned int m_abortedNoSPCtr;
151  unsigned int
154  unsigned int
157  unsigned int m_skippedPXDnoSPCtr;
159  unsigned int m_skippedPXDnoTHCtr;
161  unsigned int m_skippedSVDnoSPCtr;
163  unsigned int m_skippedSVDnoTHCtr;
165  unsigned int m_singleClusterSPCtr;
167  unsigned int
170  unsigned int m_skippedCluster;
172  unsigned int
177  unsigned int
182  unsigned int m_nonSingleSPCtr;
184  unsigned int
188  void initializeCounters()
189  {
190  m_SpacePointTCCtr = 0;
191  m_genfitTCCtr = 0;
194  m_abortedNoSPCtr = 0;
196  m_abortedLowNDFCtr = 0;
198 
200  m_nonSingleSPCtr = 0;
201 
207 
208  m_skippedCluster = 0;
211 
214 
215  m_NDF = 0; // (cppcheck complaining about not being initialized in constructor)
216  }
217 
220  {
221  switch (status) {
222  case c_foundNoSpacePoint: m_abortedNoSPCtr++; break;
223  case c_foundNoTrueHit: m_abortedTrueHitCtr++; break;
225  case c_lowNDF: m_abortedLowNDFCtr++; break;
227  default: m_abortedMiscCtr++; break;
228  }
229  return;
230  }
231 
236  template<typename ClusterType>
237  void increaseSkippedCounter(conversionStatus status, ClusterType* cluster)
238  {
239  short unsigned int layerNumber = cluster->getSensorID().getLayerNumber();
240  if (layerNumber > 6) throw SpacePointTrackCand::UnsupportedDetType();
241  switch (status) {
242  case c_noFail:
243  break;
245  break;
246  case c_foundNoSpacePoint:
247  if (layerNumber < 3) m_skippedPXDnoSPCtr++;
248  else m_skippedSVDnoSPCtr++;
249  break;
250  case c_foundNoTrueHit:
251  if (layerNumber < 3) m_skippedPXDnoTHCtr++;
252  else m_skippedSVDnoTHCtr++;
253  break;
254  case c_unsuitableGFTC:
255  if (layerNumber < 3) m_skippedPXDunsuitableCtr++;
257  break;
258  case c_noValidSP:
259  if (layerNumber < 3) m_skippedPXDnoValidSPCtr++;
261  break;
262  default:
263  m_skippedCluster++; break;
264  }
265  return;
266  }
267  // ================================================================ INTERNALLY USED VARIABLES ===========================================================
268  std::string svdMainArrayName;
270  int m_NDF;
272  // ================================================= TYPEDEFS ============================================================================================================
273 
274 // #ifndef __CINT__ // was once needed, when it was defined in SpacePointTrackCand.h
275  template<typename HitType> using HitInfo =
276  std::pair<double, const HitType*>;
277 // #endif
278 
279  template<typename T> using flaggedPair =
280  boost::tuple<bool, T, T>;
282  // ============================================================================ MODULE METHODS ==============================================================================
283 
284 
285  void markHitAsUsed(std::vector<flaggedPair<int> >& flaggedHitIDs,
286  int hitToMark);
292  std::pair<const Belle2::SpacePointTrackCand, conversionStatus>
293  createSpacePointTC(const genfit::TrackCand* genfitTC, const StoreArray<PXDCluster>& pxdClusters,
294  const StoreArray<SVDCluster>& svdClusters);
295 
299  std::pair<Belle2::SpacePoint*, conversionStatus>
300  processTrackCandHit(genfit::TrackCandHit* hit, const StoreArray<PXDCluster>& pxdClusters, const StoreArray<SVDCluster>& svdClusters,
301  std::vector<flaggedPair<int> >& flaggedHitIDs, int iHit);
302 
310  template<typename ClusterType, typename TrueHitType>
311  std::pair<Belle2::SpacePoint*, conversionStatus>
312  getSpacePoint(const ClusterType* cluster, std::vector<flaggedPair<int> >& flaggedHitIDs, int iHit, bool singleCluster,
313  std::string arrayName = "");
322  template<typename ClusterType>
323  std::pair<Belle2::SpacePoint*, conversionStatus>
325  std::vector<flaggedPair<int> >& flaggedHitIDs);
326 
334  std::pair<int, int> checkExistAndValid(int clusterInd, int detID, std::vector<flaggedPair<int> >& flaggedHitIDs);
335 
340  int getAppropriateSpacePointIndex(const std::vector<std::pair<bool, bool> >& existAndValidSPs,
341  const std::vector<std::pair<int, int> >& clusterPositions);
342 
347  template<typename ClusterType>
348  std::vector<int> getClusterIndices(const Belle2::SpacePoint* spacePoint, std::string storeArrayName);
349 
353  int getNDF(Belle2::SpacePoint* spacePoint);
354 
358  bool checkUsedAllHits(std::vector<flaggedPair<int> >& flaggedHitIDs);
359 
361  template <typename TrueHitType>
362  bool foundRelatedTrueHit(const Belle2::SpacePoint* spacePoint, unsigned int allowedRelations = 1);
363 
367  BELLE2_DEFINE_EXCEPTION(UnusedHits,
368  "Not all hits of the genfit::TrackCand have been marked as used. This indicates that not all hits have been used to create a SpacePointTrackCand.");
369  };
371 }
Belle2::GFTC2SPTCConverterModule::m_PARAMcheckNoSingleSVDSP
bool m_PARAMcheckNoSingleSVDSP
Switch for checking the StoreArray of non-single cluster SVD SpacePoints in initialize.
Definition: GFTC2SPTCConverterModule.h:140
Belle2::GFTC2SPTCConverterModule::m_SingleClusterSVDSPName
std::string m_SingleClusterSVDSPName
Single Cluster SVD SpacePoints collection name.
Definition: GFTC2SPTCConverterModule.h:126
Belle2::GFTC2SPTCConverterModule::HitInfo
std::pair< double, const HitType * > HitInfo
container used for storing information, that is then put into the SpacePointTrackCand
Definition: GFTC2SPTCConverterModule.h:283
Belle2::GFTC2SPTCConverterModule::c_foundNoTrueHit
@ c_foundNoTrueHit
conversion failed because there was no related SpacePoint to a TrueHit
Definition: GFTC2SPTCConverterModule.h:96
Belle2::GFTC2SPTCConverterModule::checkUsedAllHits
bool checkUsedAllHits(std::vector< flaggedPair< int > > &flaggedHitIDs)
check if all hits have been used (i.e.
Definition: GFTC2SPTCConverterModule.cc:551
genfit::TrackCand
Track candidate – seed values and indices.
Definition: TrackCand.h:69
Belle2::GFTC2SPTCConverterModule::m_PXDClusterSPName
std::string m_PXDClusterSPName
PXDCluster SpacePoints collection name.
Definition: GFTC2SPTCConverterModule.h:130
Belle2::GFTC2SPTCConverterModule::m_abortedTrueHitCtr
unsigned int m_abortedTrueHitCtr
Counting discarded conversions due to check for TrueHits not good.
Definition: GFTC2SPTCConverterModule.h:152
Belle2::GFTC2SPTCConverterModule::m_SVDClusterName
std::string m_SVDClusterName
SVDCluster collection name.
Definition: GFTC2SPTCConverterModule.h:124
Belle2::GFTC2SPTCConverterModule::c_unsuitableGFTC
@ c_unsuitableGFTC
conversion failed because the GFTC is considered not suitable for conversion
Definition: GFTC2SPTCConverterModule.h:97
Belle2::GFTC2SPTCConverterModule::m_genfitTCCtr
unsigned int m_genfitTCCtr
Counter for genfit::TrackCands which were presented to the module.
Definition: GFTC2SPTCConverterModule.h:150
Belle2::GFTC2SPTCConverterModule::m_skippedSVDnoValidSPCtr
unsigned int m_skippedSVDnoValidSPCtr
Counter for skipped SVD Clusters due to no found valid SpacePoint.
Definition: GFTC2SPTCConverterModule.h:187
Belle2::GFTC2SPTCConverterModule::m_NoSingleClusterSVDSPName
std::string m_NoSingleClusterSVDSPName
Non SingleCluster SVD SpacePoints collection name.
Definition: GFTC2SPTCConverterModule.h:128
Belle2::GFTC2SPTCConverterModule::m_skippedCluster
unsigned int m_skippedCluster
Counter for skipped Cluster.
Definition: GFTC2SPTCConverterModule.h:177
Belle2::GFTC2SPTCConverterModule::m_abortedNoValidSPCtr
unsigned int m_abortedNoValidSPCtr
Counter for aborted conversions due to no found valid SpacePoint to any Cluster of the GFTC.
Definition: GFTC2SPTCConverterModule.h:192
Belle2::GFTC2SPTCConverterModule::initialize
void initialize() override
initialize module (e.g.
Definition: GFTC2SPTCConverterModule.cc:69
genfit::TrackCandHit
Hit object for use in TrackCand.
Definition: TrackCandHit.h:34
Belle2::GFTC2SPTCConverterModule::c_noValidSP
@ c_noValidSP
conversion failed because there was no valid SpacePoint (only possible for double Cluster SpacePoints...
Definition: GFTC2SPTCConverterModule.h:100
Belle2::GFTC2SPTCConverterModule::findAppropriateSpacePoint
std::pair< Belle2::SpacePoint *, conversionStatus > findAppropriateSpacePoint(const Belle2::RelationVector< Belle2::SpacePoint > &spacePoints, std::vector< flaggedPair< int > > &flaggedHitIDs)
given a RelationVector with SpacePoints in it, it tries to get the appropriate one (see main document...
Definition: GFTC2SPTCConverterModule.cc:370
Belle2::GFTC2SPTCConverterModule::initializeCounters
void initializeCounters()
reset counters to 0 to avoid indeterministic behaviour
Definition: GFTC2SPTCConverterModule.h:195
Belle2::GFTC2SPTCConverterModule::flaggedPair
boost::tuple< bool, T, T > flaggedPair
typdef, for avoiding having a vector<bool> and a vector<pair<T,T>>
Definition: GFTC2SPTCConverterModule.h:287
Belle2::GFTC2SPTCConverterModule::increaseSkippedCounter
void increaseSkippedCounter(conversionStatus status, ClusterType *cluster)
increase the appropriate counter variable if a Cluster is skipped (i.e.
Definition: GFTC2SPTCConverterModule.h:244
Belle2::GFTC2SPTCConverterModule::foundRelatedTrueHit
bool foundRelatedTrueHit(const Belle2::SpacePoint *spacePoint, unsigned int allowedRelations=1)
check if there is a related TrueHit for a given SpacePoint.
Definition: GFTC2SPTCConverterModule.cc:569
Belle2::SpacePoint
SpacePoint typically is build from 1 PXDCluster or 1-2 SVDClusters.
Definition: SpacePoint.h:52
Belle2::GFTC2SPTCConverterModule::checkExistAndValid
std::pair< int, int > checkExistAndValid(int clusterInd, int detID, std::vector< flaggedPair< int > > &flaggedHitIDs)
check if the Cluster (of a SpacePoint) is valid and/or exists in a genfit::TrackCand
Definition: GFTC2SPTCConverterModule.cc:455
Belle2::GFTC2SPTCConverterModule::m_skippedSVDnoTHCtr
unsigned int m_skippedSVDnoTHCtr
Counter for skipped SVD Clusters, due to no related TrueHit to a SpacePoint.
Definition: GFTC2SPTCConverterModule.h:170
Belle2::GFTC2SPTCConverterModule::event
void event() override
event: convert genfit::TrackCands to SpacePointTrackCands
Definition: GFTC2SPTCConverterModule.cc:113
Belle2::GFTC2SPTCConverterModule::createSpacePointTC
std::pair< const Belle2::SpacePointTrackCand, conversionStatus > createSpacePointTC(const genfit::TrackCand *genfitTC, const StoreArray< PXDCluster > &pxdClusters, const StoreArray< SVDCluster > &svdClusters)
create a SpacePointTrackCand from the genfit::TrackCand
Definition: GFTC2SPTCConverterModule.cc:201
Belle2::GFTC2SPTCConverterModule::terminate
void terminate() override
terminate: print some summary information on the processed events
Definition: GFTC2SPTCConverterModule.cc:160
Belle2::GFTC2SPTCConverterModule::m_skippedPXDnoSPCtr
unsigned int m_skippedPXDnoSPCtr
Counter for skipped PXD Clusters, due to no found SpacePoint.
Definition: GFTC2SPTCConverterModule.h:164
Belle2::GFTC2SPTCConverterModule::m_skippedSVDnoSPCtr
unsigned int m_skippedSVDnoSPCtr
Counter for skipped SVD Clusters, due to no found SpacePoint.
Definition: GFTC2SPTCConverterModule.h:168
Belle2::RelationVector
Class for type safe access to objects that are referred to in relations.
Definition: DataStore.h:38
Belle2::GFTC2SPTCConverterModule::m_skippedPXDnoValidSPCtr
unsigned int m_skippedPXDnoValidSPCtr
Counter for skipped PXD Clusters due to no found valid SpacePoint.
Definition: GFTC2SPTCConverterModule.h:185
Belle2::GFTC2SPTCConverterModule::m_SPTCName
std::string m_SPTCName
Name of collection under which SpacePointTrackCands will be stored in the StoreArray.
Definition: GFTC2SPTCConverterModule.h:134
Belle2::GFTC2SPTCConverterModule::markHitAsUsed
void markHitAsUsed(std::vector< flaggedPair< int > > &flaggedHitIDs, int hitToMark)
mark a hit as used, i.e.
Definition: GFTC2SPTCConverterModule.cc:583
Belle2::GFTC2SPTCConverterModule::m_genfitTCName
std::string m_genfitTCName
Name of collection of genfit::TrackCand StoreArray.
Definition: GFTC2SPTCConverterModule.h:132
Belle2::GFTC2SPTCConverterModule::c_nonSingleSP
@ c_nonSingleSP
conversion failed because there were more than one single Cluster SpacePoints related to a Cluster
Definition: GFTC2SPTCConverterModule.h:99
Belle2::GFTC2SPTCConverterModule::c_unusedHits
@ c_unusedHits
conversion failed because there were unused Hits
Definition: GFTC2SPTCConverterModule.h:98
Belle2::GFTC2SPTCConverterModule::m_singleClusterSPCtr
unsigned int m_singleClusterSPCtr
Counter for single cluster SVD SpacePoints.
Definition: GFTC2SPTCConverterModule.h:172
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::GFTC2SPTCConverterModule::m_nonSingleSPCtr
unsigned int m_nonSingleSPCtr
Counter for cases where there is more than one single Cluster SpacePoint related to a Cluster.
Definition: GFTC2SPTCConverterModule.h:189
Belle2::GFTC2SPTCConverterModule::getNDF
int getNDF(Belle2::SpacePoint *spacePoint)
get the NDF of a SpacePoint
Definition: GFTC2SPTCConverterModule.cc:482
Belle2::GFTC2SPTCConverterModule::m_abortedLowNDFCtr
unsigned int m_abortedLowNDFCtr
Counter for SpacePointTrackCands that were not stored due to a too small number of degrees of freedom...
Definition: GFTC2SPTCConverterModule.h:162
Belle2::GFTC2SPTCConverterModule::c_singleClusterSP
@ c_singleClusterSP
had to use a singleCluster SpacePoint (also returned if PXD is passed!
Definition: GFTC2SPTCConverterModule.h:93
Belle2::GFTC2SPTCConverterModule::c_foundNoSpacePoint
@ c_foundNoSpacePoint
conversion failed because no related SpacePoint was found to a Cluster/Hit of the GFTC
Definition: GFTC2SPTCConverterModule.h:95
Belle2::GFTC2SPTCConverterModule::svdMainArrayName
std::string svdMainArrayName
Name of the Array of SVD SpacePoints that shall be searched first.
Definition: GFTC2SPTCConverterModule.h:275
Belle2::GFTC2SPTCConverterModule::m_noTwoClusterSPCtr
unsigned int m_noTwoClusterSPCtr
Counter for cases where no related two Cluster could be found for a Cluster.
Definition: GFTC2SPTCConverterModule.h:159
Belle2::GFTC2SPTCConverterModule::c_lowNDF
@ c_lowNDF
conversion failed because the created SpacePointTrackCand had not enough degrees of freedom
Definition: GFTC2SPTCConverterModule.h:101
Belle2::GFTC2SPTCConverterModule::GFTC2SPTCConverterModule
GFTC2SPTCConverterModule()
Constructor.
Definition: GFTC2SPTCConverterModule.cc:29
Belle2::GFTC2SPTCConverterModule::conversionStatus
conversionStatus
enum for differentiating different reasons why a conversion failed negative values mean fail!
Definition: GFTC2SPTCConverterModule.h:92
Belle2::GFTC2SPTCConverterModule::getFailEnum
conversionStatus getFailEnum(int intToConvert)
get the enum representation of an integer
Definition: GFTC2SPTCConverterModule.h:105
Belle2::GFTC2SPTCConverterModule::m_abortedNoSPCtr
unsigned int m_abortedNoSPCtr
Counter for aborted conversions because no SpacePoint has been found.
Definition: GFTC2SPTCConverterModule.h:156
Belle2::GFTC2SPTCConverterModule::m_skippedPXDnoTHCtr
unsigned int m_skippedPXDnoTHCtr
Counter for skipped PXD Clusters, due to no related TrueHit to a SpacePoint.
Definition: GFTC2SPTCConverterModule.h:166
Belle2::GFTC2SPTCConverterModule::m_SpacePointTCCtr
unsigned int m_SpacePointTCCtr
Counter for SpacePointTrackCands which were converted (if a curling track is split up,...
Definition: GFTC2SPTCConverterModule.h:148
Belle2::GFTC2SPTCConverterModule::m_skippedPXDunsuitableCtr
unsigned int m_skippedPXDunsuitableCtr
Counter for skipped PXD Clusters due to unsuitable GFTC.
Definition: GFTC2SPTCConverterModule.h:180
Belle2::GFTC2SPTCConverterModule::processTrackCandHit
std::pair< Belle2::SpacePoint *, conversionStatus > processTrackCandHit(genfit::TrackCandHit *hit, const StoreArray< PXDCluster > &pxdClusters, const StoreArray< SVDCluster > &svdClusters, std::vector< flaggedPair< int > > &flaggedHitIDs, int iHit)
process a TrackCandHit (i.e.
Definition: GFTC2SPTCConverterModule.cc:289
Belle2::GFTC2SPTCConverterModule::increaseFailCounter
void increaseFailCounter(conversionStatus status)
increase the counter that 'belongs' to the conversionStatus
Definition: GFTC2SPTCConverterModule.h:226
Belle2::StoreArray< PXDCluster >
Belle2::GFTC2SPTCConverterModule::m_abortedUnsuitableTCCtr
unsigned int m_abortedUnsuitableTCCtr
Counter for aborted conversions due to unsuitable genfit::TrackCand.
Definition: GFTC2SPTCConverterModule.h:154
Belle2::GFTC2SPTCConverterModule::c_noFail
@ c_noFail
conversion without any problems
Definition: GFTC2SPTCConverterModule.h:94
Belle2::GFTC2SPTCConverterModule::m_abortedMiscCtr
unsigned int m_abortedMiscCtr
temporary counter used for counting all failed conversions for which the reason cannot be deduced at ...
Definition: GFTC2SPTCConverterModule.h:175
Belle2::GFTC2SPTCConverterModule::m_PARAMskipCluster
bool m_PARAMskipCluster
Switch for controlling the behavior of the converter, when for one or more Clusters no appropriate Sp...
Definition: GFTC2SPTCConverterModule.h:142
Belle2::GFTC2SPTCConverterModule::m_PARAMcheckTrueHits
bool m_PARAMcheckTrueHits
Parameter Indicating if the TrueHits related from the Clusters forming a SpacePoint should be checked...
Definition: GFTC2SPTCConverterModule.h:136
Belle2::GFTC2SPTCConverterModule::m_PARAMuseSingleClusterSP
bool m_PARAMuseSingleClusterSP
Parameter Indicating if SingleCluster SVD SpacePoints should be used if no double Cluster SVD SpacePo...
Definition: GFTC2SPTCConverterModule.h:138
Belle2::GFTC2SPTCConverterModule::m_skippedSVDunsuitableCtr
unsigned int m_skippedSVDunsuitableCtr
Counter for skipped SVD Clusters due to unsuitable GFTC.
Definition: GFTC2SPTCConverterModule.h:182
Belle2::GFTC2SPTCConverterModule::m_PXDClusterName
std::string m_PXDClusterName
PXDCluster collection name.
Definition: GFTC2SPTCConverterModule.h:122
Belle2::GFTC2SPTCConverterModule::BELLE2_DEFINE_EXCEPTION
BELLE2_DEFINE_EXCEPTION(UnusedHits, "Not all hits of the genfit::TrackCand have been marked as used. This indicates that not all hits have been used to create a SpacePointTrackCand.")
Exception thrown, when not all hits of a genfit::TrackCand have been used for conversion.
Belle2::GFTC2SPTCConverterModule::getAppropriateSpacePointIndex
int getAppropriateSpacePointIndex(const std::vector< std::pair< bool, bool > > &existAndValidSPs, const std::vector< std::pair< int, int > > &clusterPositions)
get the position of the appropriate SpacePoint inside the RelationVector NOTE: returns negative index...
Definition: GFTC2SPTCConverterModule.cc:497
Belle2::GFTC2SPTCConverterModule::m_NDF
int m_NDF
number of degrees of freedom.
Definition: GFTC2SPTCConverterModule.h:277
Belle2::GFTC2SPTCConverterModule::m_PARAMminNDF
int m_PARAMminNDF
parameter for specifying a minimal number of degrees of freedom a SpacePointTrackCand has to have in ...
Definition: GFTC2SPTCConverterModule.h:144
Belle2::GFTC2SPTCConverterModule::getClusterIndices
std::vector< int > getClusterIndices(const Belle2::SpacePoint *spacePoint, std::string storeArrayName)
get the indices of the Clusters related to the SpacePoint.
Definition: GFTC2SPTCConverterModule.cc:436
Belle2::GFTC2SPTCConverterModule::getSpacePoint
std::pair< Belle2::SpacePoint *, conversionStatus > getSpacePoint(const ClusterType *cluster, std::vector< flaggedPair< int > > &flaggedHitIDs, int iHit, bool singleCluster, std::string arrayName="")
templated version to get a SpacePoint from a Cluster
Definition: GFTC2SPTCConverterModule.cc:318