Belle II Software  release-08-01-10
DATCONSVDClusterizer Class Referenceabstract

Findlet for clustering DATCONSVDDigits and creating SVDClusters that are used for tracking in DATCON. More...

#include <DATCONSVDClusterizer.h>

Inheritance diagram for DATCONSVDClusterizer:
Collaboration diagram for DATCONSVDClusterizer:

Public Types

using IOTypes = std::tuple< AIOTypes... >
 Types that should be served to apply on invokation.
 
using IOVectors = std::tuple< std::vector< AIOTypes >... >
 Vector types that should be served to apply on invokation.
 

Public Member Functions

 DATCONSVDClusterizer ()
 Cluster SVD strips.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the sub findlets.
 
void initialize () override
 Create the store arrays.
 
void beginRun () override
 Begin Run.
 
void apply (const std::vector< DATCONSVDDigit > &digits, std::vector< SVDCluster > &clusters) override
 Load in the DATCONSVDDigits and create SVDClusters from them.
 
virtual std::string getDescription ()
 Brief description of the purpose of the concret findlet.
 
virtual void apply (ToVector< AIOTypes > &... ioVectors)=0
 Main function executing the algorithm.
 
void beginEvent () override
 Receive and dispatch signal for the start of a new event.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Types

using ToVector = typename ToVectorImpl< T >::Type
 Short hand for ToRangeImpl.
 

Protected Member Functions

void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Private Types

using Super = TrackFindingCDC::Findlet< const DATCONSVDDigit, SVDCluster >
 Parent class.
 
typedef std::map< int, float > SimpleSVDNoiseMap
 Simple representation of a SVD Noise Map.
 

Private Member Functions

void fillDATCONSVDNoiseMap ()
 fill the noise map to be used for SNR cuts
 
float calculateSNR (DATCONSVDDigit digit)
 calculate the SNR of a DATCONSVDDigit (= one strip) in a simplified way More...
 
void saveCluster (DATCONSVDClusterCandidate &clusterCand, std::vector< SVDCluster > &clusters)
 save the current cluster candidate as a SVDCluster More...
 

Private Attributes

SVDNoiseCalibrations m_NoiseCal
 SVD Noise payload.
 
SimpleSVDNoiseMap m_svdNoiseMap
 Simple noise map for u-strips*‍/.
 
std::string m_param_noiseMapfileName = "noiseMap.txt"
 File name for a file containing the noise of the strips for export to FPGA.
 
bool m_param_writeNoiseMapsToFile = false
 Write the noise map to file m_param_noiseMapfileName for export to FPGA?
 
bool m_param_isU = true
 Is this the finldlet for u-side or for v-side?
 
bool m_param_saveClusterToDataStore = false
 Save SVDCluster to DataStore for analysis?
 
std::string m_param_storeSVDClustersName = "DATCONSVDClusters"
 SVDClusters StoreArray name.
 
StoreArray< SVDClusterm_storeSVDClusters
 StoreArray to save the clusters to.
 
unsigned short m_param_maxiClusterSize = 20
 maximum cluster size
 
float m_param_noiseCut = 4
 Value above which u-strips are considered noisy, all other u-strips will get assigned a standard noise value of m_noiseCut.
 
float m_param_requiredSNRstrip = 5
 Require a SNR for a u-strip signal to be valid.
 
float m_param_requiredSNRcluster = 5
 Require a SNR for at least one strip in the u-cluster to make the cluster valid.
 
const VXD::GeoCachem_geoCache = VXD::GeoCache::getInstance()
 instance of GeoCache to avoid creating it again for every cluster
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happend before.
 
bool m_terminated = false
 Flag to keep track whether termination happend before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Findlet for clustering DATCONSVDDigits and creating SVDClusters that are used for tracking in DATCON.

This finldet only clusters strips on one side. The created SVDClusters can be stored in the DataStore by setting m_param_saveClusterToDataStore to true.

Definition at line 35 of file DATCONSVDClusterizer.h.

Member Function Documentation

◆ calculateSNR()

float calculateSNR ( DATCONSVDDigit  digit)
private

calculate the SNR of a DATCONSVDDigit (= one strip) in a simplified way

Parameters
digitDATCONSVDDigit for which the SNR is calculated
Returns
SNR of the digit

Definition at line 149 of file DATCONSVDClusterizer.cc.

150 {
151  unsigned short maxSampleIndex = digit.getMaxSampleIndex();
152  const DATCONSVDDigit::APVRawSamples& sample = digit.getRawSamples();
153  unsigned short stripID = digit.getCellID();
154  VxdID sensorID = digit.getSensorID();
155  int simpleVXDID = 131072 * (sensorID.getLayerNumber() - 3) + 8192 * (sensorID.getLadderNumber() - 1)
156  + 1024 * (sensorID.getSensorNumber() - 1) + stripID;
157 
158  // set noise value to default value and only use actual noise if it is too large (> m_param_noiseCut)
159  float stripNoise = m_param_noiseCut;
160  if (m_svdNoiseMap.find(simpleVXDID) != m_svdNoiseMap.end()) {
161  stripNoise = m_svdNoiseMap.at(simpleVXDID);
162  }
163 
164  float currentSNR = (float)sample[maxSampleIndex] / stripNoise;
165  return currentSNR;
166 }
float m_param_noiseCut
Value above which u-strips are considered noisy, all other u-strips will get assigned a standard nois...
SimpleSVDNoiseMap m_svdNoiseMap
Simple noise map for u-strips*‍/.
unsigned short getMaxSampleIndex()
Getter for the index of the biggest sample inside the cluster (0...6)
APVRawSamples getRawSamples() const
Get int-array of of 6 APV25 samples.
std::array< APVRawSampleType, c_nAPVSamples > APVRawSamples
Type for array of samples received from DAQ.
VxdID getSensorID() const
Getter for the sensor ID.
short int getCellID() const
Getter for the strip ID.
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:33
baseType getSensorNumber() const
Get the sensor id.
Definition: VxdID.h:100
baseType getLadderNumber() const
Get the ladder id.
Definition: VxdID.h:98
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:96

◆ saveCluster()

void saveCluster ( DATCONSVDClusterCandidate clusterCand,
std::vector< SVDCluster > &  clusters 
)
private

save the current cluster candidate as a SVDCluster

Parameters
clusterCandcluster candidate to be stored
clustersvector containing all the finalized clusters

Definition at line 127 of file DATCONSVDClusterizer.cc.


The documentation for this class was generated from the following files: