Belle II Software development
Belle2::SVD Namespace Reference

Namespace to encapsulate code needed for simulation and reconstrucion of the SVD. More...

Classes

class  DefaultWave
 A functor to provide a simple model of APV25 strip response. More...
 
class  GeoSVDCreator
 The creator for the SVD geometry of the Belle II detector. More...
 
class  NoiseMap
 Base Class to represent strip-dependent noise map. More...
 
class  RawCluster
 Class representing a raw cluster candidate during clustering of the SVD. More...
 
class  SensorInfo
 Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific information. More...
 
class  SimpleClusterCandidate
 Class representing a cluster candidate during simple clustering of the SVD. More...
 
struct  stripInCluster
 structure containing the relevant information of eachstrip of the cluster More...
 
struct  StripInRawCluster
 structure containing the relevant information of each strip of the raw cluster More...
 
class  SVDBackgroundModule
 SVD Background module. More...
 
class  SVDBeamBackHitFilterModule
 The SVDBeamBackHitFilter module. More...
 
class  SVDClusterCharge
 Abstract Class representing the SVD cluster charge. More...
 
class  SVDClusterizerModule
 The SVD Clusterizer. More...
 
class  SVDClusterPosition
 Abstract Class representing the SVD cluster position. More...
 
class  SVDClusterTime
 Abstract Class representing the SVD cluster time. More...
 
class  SVDCoG3Time
 Derived Class representing the SVD cluster time computed with the CoG3 algorithm. More...
 
class  SVDCoG6Time
 Derived Class representing the SVD cluster time computed with the CoG6 algorithm. More...
 
class  SVDCoGOnlyPosition
 Derived Class representing the SVD cluster position computed with the CoGOnly algorithm. More...
 
class  SVDDatabaseTestModule
 Return the calibration results for the noises and the constants measured during the svd local runs (charge, ADC pulse, peaking time, pulse width). More...
 
class  SVDDigitizerModule
 The SVD Digitizer module. More...
 
class  SVDDQMDoseModule
 The SVD dose-monitoring DQM module. More...
 
class  SVDDQMInjectionModule
 The SVD Occupancy after Injection DQM module. More...
 
class  SVDELS3Charge
 Derived Class representing the SVD cluster charge computed with the ELS3 algorithm. More...
 
class  SVDELS3Time
 Derived Class representing the SVD cluster time computed with the ELS3 algorithm. More...
 
class  SVDMaxSampleCharge
 Derived Class representing the SVD cluster charge computed summing the max sample of each strip. More...
 
class  SVDMaxSumAlgorithm
 Class implementing the MaxSum algorithm. More...
 
class  SVDMissingAPVsClusterCreatorModule
 SVDMissingAPVsClusterCreatorModule: The SVD MissingAPVsClusterCreator. More...
 
class  SVDOldDefaultPosition
 Derived Class representing the SVD cluster position computed with the old algorithm (up to release-05). More...
 
class  SVDPackerModule
 SVDPackerModule: The SVD Raw Hits Creator. More...
 
class  SVDRecoChargeFactory
 Cluster Charge Factory Class. More...
 
class  SVDRecoDigitCreatorModule
 The SVD RecoDigit Creator. More...
 
class  SVDReconstructionBase
 Class to check whether the reconstruction algorithms are available or not. More...
 
class  SVDRecoPositionFactory
 Cluster Position Factory Class. More...
 
class  SVDRecoTimeFactory
 Cluster Time Factory Class. More...
 
class  SVDShaperDigitSorterModule
 The SVDShaperDigitSorter module. More...
 
class  SVDSimpleClusterizerModule
 SVDSimpleClusterizerModule: The SVD SimpleClusterizer. More...
 
class  SVDSumSamplesCharge
 Derived Class representing the SVD cluster charge computed summing the samples of each strip. More...
 
class  SVDUnpackerModule
 SVDUnpackerModule: The SVD Raw Hits Decoder. More...
 
class  SVDVariablesToStorageModule
 A module for validating SVD data. More...
 
class  SVDWaveform
 The SVD waveform class. More...
 
class  TauEncoder
 Encoder/decoder for neural network tau values. More...
 
class  WaveFitter
 Waveform fitter class. More...
 
class  WaveGenerator
 Waveform generator This is a functor to calculate APV samples from waveform. More...
 

Typedefs

typedef std::map< short int, SVDWaveformStripWaveforms
 Map of all channels' waveforms in one sensor side.
 
typedef std::pair< StripWaveforms, StripWaveformsSensorWaveforms
 Waveforms of u- and v- channels in one sensor.
 
typedef std::map< VxdID, SensorWaveformsWaveforms
 Map of all waveforms in all sensors.
 
typedef VXD::SensitiveDetector< SVDSimHit, SVDTrueHitSensitiveDetector
 The SVD Sensitive Detector class.
 
typedef double apvSampleBaseType
 Vector of input samples in float form.
 
typedef std::array< apvSampleBaseType, nAPVSamplesapvSamples
 vector od apvSample BaseType objects
 
typedef std::function< double(double)> WaveformShape
 WaveformShape type.
 

Functions

 REG_MODULE (SVDVariablesToStorage)
 Register the module.
 
double w_expo (double t)
 Gamma waveform shape, x.exp(-x) This is only historically useful.
 
double w_poly3 (double t)
 Polynomial waveform shape, x.
 
double w_betaprime (double t)
 Beta-prime waveform shape, x^alpha/(1+x)^beta.
 
double w_adjacentU (double t)
 Adjacent-channel waveform U-side.
 
double w_adjacentV (double t)
 Adjacent-channel waveform V-side.
 
template<typename T>
void zeroSuppress (T &a, double thr)
 pass zero suppression
 
template<typename T>
bool pass3Samples (const T &a, double thr)
 pass 3-samples
 
double tau_raw2real (double raw_tau)
 Convert Hao's raw tau (integral, in latency units) to correct betaprime scale.
 

Variables

geometry::CreatorFactory< GeoSVDCreatorGeoSVDFactory ("SVDCreator")
 Register the creator.
 
const std::size_t nAPVSamples = 6
 Number of APV samples.
 
const double dt_APV = 31.44 * Unit::ns
 APV sampling time.
 
const apvSamples apvTimeBase
 APV time base - times for the 6 signals.
 

Detailed Description

Namespace to encapsulate code needed for simulation and reconstrucion of the SVD.

Typedef Documentation

◆ apvSampleBaseType

typedef double apvSampleBaseType

Vector of input samples in float form.

Definition at line 38 of file SVDSimulationTools.h.

◆ apvSamples

vector od apvSample BaseType objects

Definition at line 39 of file SVDSimulationTools.h.

◆ SensitiveDetector

The SVD Sensitive Detector class.

Definition at line 24 of file SensitiveDetector.h.

◆ SensorWaveforms

Waveforms of u- and v- channels in one sensor.

Definition at line 44 of file SVDDigitizerModule.h.

◆ StripWaveforms

typedef std::map<short int, SVDWaveform> StripWaveforms

Map of all channels' waveforms in one sensor side.

Definition at line 41 of file SVDDigitizerModule.h.

◆ Waveforms

typedef std::map<VxdID, SensorWaveforms> Waveforms

Map of all waveforms in all sensors.

Definition at line 47 of file SVDDigitizerModule.h.

◆ WaveformShape

typedef std::function<double(double)> WaveformShape

WaveformShape type.

This is the type for a naked waveform function, giving a single value for a properly scaled argument. The functions are scaled to 1.0 at mode, location (shift) 0.0, and scale 1.0.

Definition at line 54 of file SVDSimulationTools.h.

Function Documentation

◆ pass3Samples()

template<typename T>
bool pass3Samples ( const T & a,
double thr )
inline

pass 3-samples

Definition at line 193 of file SVDSimulationTools.h.

194 {
195 return (search_n(a.begin(), a.end(), 3, thr, std::greater<double>()) != a.end());
196 }

◆ tau_raw2real()

double tau_raw2real ( double raw_tau)
inline

Convert Hao's raw tau (integral, in latency units) to correct betaprime scale.

Includes scaling and fit adjustmenta

Definition at line 205 of file SVDSimulationTools.h.

205{ return 7.32313 * raw_tau; }

◆ w_adjacentU()

double w_adjacentU ( double t)
inline

Adjacent-channel waveform U-side.

The exact parametrisation is to be determined.

Parameters
tProperly scaled time, (t - t0)/tau.
Returns
Waveform value (TBD).

Definition at line 99 of file SVDSimulationTools.h.

100 {
101
102 double p[8];
103
104 // waveform parameters
105 p[0] = -7.379;
106 p[1] = -0.3594;
107 p[2] = 0.07564;
108 p[3] = 7.391;
109 p[4] = -0.08004;
110 p[5] = -2.139e-5;
111 p[6] = -1.781e-7;
112 p[7] = 0.01827;
113
114 if (t < 0.0)
115 return 0.0;
116 else
117 return (p[0] + p[1] * t) * exp(-p[2] * t) + (p[3] + p[4] * t + p[5] * pow(t, 2) + p[6] * pow(t, 3)) * exp(-p[7] * t);
118 }

◆ w_adjacentV()

double w_adjacentV ( double t)
inline

Adjacent-channel waveform V-side.

The exact parametrisation is to be determined.

Parameters
tProperly scaled time, (t - t0)/tau.
Returns
Waveform value (TBD).

Definition at line 125 of file SVDSimulationTools.h.

126 {
127
128 double p[8];
129
130 // waveform parameters
131 p[0] = 0.2043;
132 p[1] = -0.0197;
133 p[2] = 0.01448;
134 p[3] = -0.2076;
135 p[4] = 0.0387;
136 p[5] = 0.01055;
137 p[6] = -4.03e-6;
138 p[7] = 0.07193;
139
140 if (t < 0.0)
141 return 0.0;
142 else
143 return (p[0] + p[1] * t) * exp(-p[2] * t) + (p[3] + p[4] * t + p[5] * pow(t, 2) + p[6] * pow(t, 3)) * exp(-p[7] * t);
144 }

◆ w_betaprime()

double w_betaprime ( double t)
inline

Beta-prime waveform shape, x^alpha/(1+x)^beta.

This is the function for general use.

Parameters
tProperly scaled time, (t - t0)/tau.
Returns
Waveform value 149.012 * t^2 / (1+t)^10 for t > 0, else 0

Definition at line 86 of file SVDSimulationTools.h.

87 {
88 if (t < 0.0)
89 return 0.0;
90 else
91 return 149.012 * pow(t, 2) * pow(1.0 + t, -10);
92 }

◆ w_expo()

double w_expo ( double t)
inline

Gamma waveform shape, x.exp(-x) This is only historically useful.

Use beta-prime instead.

Parameters
tproperly scaled time, (t-t0)/tau
Returns
Waveform value t * exp(1 - t) for t > 0, else 0

Definition at line 61 of file SVDSimulationTools.h.

62 {
63 if (t < 0.0) return 0.0;
64 else return t * exp(1.0 - t);
65 }

◆ w_poly3()

double w_poly3 ( double t)
inline

Polynomial waveform shape, x.

(1-x)^2 This is used in signal calibration in SVD hardware tests. Do not use for signal simulation.

Parameters
tproperly scaled time, (t-t0)/tau
Returns
Waveform value 27/4 * t * (1 - t)^2 for t in <0,1>, else 0

Definition at line 73 of file SVDSimulationTools.h.

74 {
75 if (t < 0.0 || t > 1.0)
76 return 0.0;
77 else
78 return 6.75 * t * (1.0 - t) * (1.0 - t);
79 }

◆ zeroSuppress()

template<typename T>
void zeroSuppress ( T & a,
double thr )
inline

pass zero suppression

Definition at line 182 of file SVDSimulationTools.h.

183 {
184 std::replace_if(a.begin(), a.end(), std::bind(std::less<double>(), std::placeholders::_1, thr), 0.0);
185 }

Variable Documentation

◆ apvTimeBase

const apvSamples apvTimeBase
Initial value:
=
{{ -dt_APV, 0.0, dt_APV, 2 * dt_APV, 3 * dt_APV, 4 * dt_APV}}
const double dt_APV
APV sampling time.

APV time base - times for the 6 signals.

Definition at line 42 of file SVDSimulationTools.h.

43 {{ -dt_APV, 0.0, dt_APV, 2 * dt_APV, 3 * dt_APV, 4 * dt_APV}};

◆ dt_APV

const double dt_APV = 31.44 * Unit::ns

APV sampling time.

Definition at line 35 of file SVDSimulationTools.h.

◆ nAPVSamples

const std::size_t nAPVSamples = 6

Number of APV samples.

Definition at line 32 of file SVDSimulationTools.h.