Belle II Software  release-08-01-10
svd modules
Collaboration diagram for svd modules:

Classes

class  SVDChannelMappingModule
 The Channel Mapping Check Module. More...
 
class  SVDClusterCalibrationsMonitorModule
 Module to produce a list of histogram showing the uploaded calibration constants. More...
 
class  SVDHotStripFinderModule
 A module template. More...
 
class  SVDLatencyCalibrationModule
 this module perfoms an analysis to find the APV25 latency More...
 
class  SVDLocalCalibrationsCheckModule
 Module to produce a list of histogram showing the uploaded local calibration constants. More...
 
class  SVDLocalCalibrationsMonitorModule
 Module to produce a list of histogram showing the uploaded local calibration constants. More...
 
class  SVDPositionErrorScaleFactorImporterModule
 Module that produces a localdb with position error scale factors for different position algoritms. More...
 
class  SVDTimeCalibrationsMonitorModule
 Module to produce a list of histogram showing the uploaded calibration constants. More...
 
class  SVDChargeSharingAnalysisModule
 Module for monitoring DSSD cluster charge deposition in regard of capacitive charge sharing between adjacent strips in a cluster for data and the simulation. More...
 
class  SVDClusterQualityEstimatorCalibrationModule
 Generate PDFs for assigning probability that cluster generated from signal particle. More...
 
class  SVDClusterQualityEstimatorModule
 Calculates the probability of a cluster originating from signal hit. More...
 
class  SVDCrossTalkCalibrationsCollectorModule
 Collector module used to create the histograms needed for the cross talk calibration. More...
 
class  SVDCrossTalkFinderModule
 Flags potential cross talk strips on Origami sensors. More...
 
class  SVDDQMClustersOnTrackModule
 SVD DQM Module for Clusters related to Tracks. More...
 
class  SVDDQMEfficiencyModule
 Creates the basic histograms for SVD Efficiency DQM. More...
 
class  SVDDQMExpressRecoModule
 SVD DQM Module for Express Reco. More...
 
class  SVDDQMHitTimeModule
 This module to design collect the svd hit time for different detectors trigger timing and physics processes. More...
 
class  SVDUnpackerDQMModule
 SVD DQM Module for the Unpacker. More...
 
class  svdDumpModule
 Class definition of svdClsHistoManager module. More...
 
class  SVDTrackingEventLevelMdstInfoFillerModule
 This module adds additional global event level information about SVD track finding to the MDST object 'EventLevelTrackingInfo'. More...
 
class  SVDOccupancyCalibrationsCollectorModule
 This This module collects hits from shaper digits to compute per sensor SVD occupancy using mu+mu- events for calibration of the SVDOccupancyCalibration payload using CAF. More...
 
class  SVDB4CommissioningPlotsModule
 The SVD B4CommissioningPlots Module. More...
 
class  SVDClusterEvaluationModule
 The SVD ClusterEvaluation Module. More...
 
class  SVDClusterEvaluationTrueInfoModule
 Clustering Performance, using true informations. More...
 
class  SVDClusterFilterModule
 generates a new StoreArray from the input StoreArray which has all specified Clusters removed More...
 
class  SVDEventT0PerformanceTTreeModule
 The module is used to create a TTree to study SVD EventT0. More...
 
class  SVDMaxStripTTreeModule
 The module is used to create a TTree to study the number of strips fired per event per APV chip. More...
 
class  SVDOccupancyAnalysisModule
 The SVD OccupancyAnalysis Module. More...
 
class  SVDPerformanceModule
 The (TB) SVD Performance Module. More...
 
class  SVDPerformanceTTreeModule
 The module is used to create a TTree to study SVD clusters, genfit unbiased residuals and many other properties related to the track they belong to. More...
 
class  SVDShaperDigitsFromTracksModule
 generates two new StoreArray from the input StoreArray. More...
 
class  SVDCoGTimeEstimatorModule
 This module builds the SVDRecoDigits (calibrated and fitted strips) from the SVDShaperDigits. More...
 
class  SVDDataFormatCheckModule
 This module checks the format of the data that we are going to reconstruct checking the SVDModeByte and the SVDDAQDiagnostic. More...
 
class  SVDStripMaskingModule
 This module removes the strips to be masked read form the SVDHotStripsCalibration. More...
 
class  SVD3SamplesEmulatorModule
 This module takes the SVDShaperDigit as input and select three consecutive samples starting from the one choosen by the user. More...
 
class  SVDEventInfoSetterModule
 Module to set the SVDEventInfo in the simulation. More...
 
class  SVDTriggerQualityGeneratorModule
 This module generates a StoreObjPtr that contains random trigger quality chosen between FINE and CORSE. More...
 
class  SVDZeroSuppressionEmulatorModule
 This module filters out strips that do not pass a ZS cut from the SVDShaperDigit StoreArray. More...
 
class  SVD6SampleEventSkimModule
 SVD 6-sample event skim module. More...
 
struct  ClustersOnSensor
 small struct for storing all clusters of the same sensor in one container. More...
 
class  SVDSpacePointCreatorModule
 Imports Clusters of the SVD detector and converts them to spacePoints. More...
 
class  SVDSpacePointQICalibrationModule
 Imports Clusters of the SVD detector and converts them to spacePoints. More...
 
class  SVDClusterTimeShifterCollectorModule
 This module creates and fills histograms based on cluster-sizes so that the mean of SVD-cluster time distribution could be calculated. More...
 
class  SVDTimeCalibrationCollectorModule
 Collector module used to create the histograms needed for the SVD CoG-Time calibration. More...
 
class  SVDTimeGroupingModule
 Imports Clusters of the SVD detector and converts them to spacePoints. More...
 
class  SVDTimeValidationCollectorModule
 Collector module used to create the histograms needed for the SVD CoG-Time calibration. More...
 

Typedefs

typedef std::tuple< double, double, double > GroupInfo
 typedef to be used to store Gauss parameters (integral, center, sigma)
 

Functions

void clusterPDFName (const VxdID &sensor, int size, int side, int maxClusterSize, std::string &PDFName, std::string &errorPDFName, bool useLegacyNaming)
 Function to set name of PDF for cluster quality estimation. More...
 
void occupancyPDFName (const VxdID &sensor, int side, std::string &PDFName)
 Function to maintain common naming convention between calibration occupancy file generation and occupancy value extraction in main crossTalkFinder module.
 
template<class SpacePointType >
void provideSVDClusterSingles (const StoreArray< SVDCluster > &svdClusters, StoreArray< SpacePointType > &spacePoints)
 simply store one spacePoint for each existing SVDCluster. More...
 
void storeInputVectorFromSingleCluster (const SVDCluster *cls, std::vector< float > &inputVector, const SVDNoiseCalibrations &noiseCal)
 Store the input values for SVDSpacePoint selection from the given SVDCluster

 
void findPossibleCombinations (const Belle2::ClustersOnSensor &aSensor, std::vector< std::vector< const SVDCluster * > > &foundCombinations, const SVDHitTimeSelection &hitTimeCut, const bool &useSVDGroupInfo, const int &numberOfSignalGroups, const bool &formSingleSignalGroup, const SVDNoiseCalibrations &noiseCal, const DBObjPtr< SVDSpacePointSNRFractionSelector > &svdSpacePointSelectionFunction, bool useSVDSpacePointSNRFractionSelector)
 stores all possible 2-Cluster-combinations. More...
 
void spPDFName (const VxdID &sensor, int uSize, int vSize, int maxClusterSize, std::string &PDFName, std::string &errorPDFName, bool useLegacyNaming)
 Function to set name of PDF for spacePoint quality estimation. More...
 
void calculatePairingProb (TFile *pdfFile, std::vector< const SVDCluster * > &clusters, double &prob, double &error, bool useLegacyNaming)
 Function to extract probability of correct (pair from signal hit) cluster pairing from preconfigured pdfs Probability defined as Pcharge * Ptime * Pucluster * Pvcluster.
 
template<class SpacePointType >
void provideSVDClusterCombinations (const StoreArray< SVDCluster > &svdClusters, StoreArray< SpacePointType > &spacePoints, SVDHitTimeSelection &hitTimeCut, bool useQualityEstimator, TFile *pdfFile, bool useLegacyNaming, unsigned int numMaxSpacePoints, std::string m_eventLevelTrackingInfoName, const bool &useSVDGroupInfo, const int &numberOfSignalGroups, const bool &formSingleSignalGroup, const SVDNoiseCalibrations &noiseCal, const DBObjPtr< SVDSpacePointSNRFractionSelector > &svdSpacePointSelectionFunction, bool useSVDSpacePointSNRFractionSelector)
 finds all possible combinations of U and V Clusters for SVDClusters. More...
 
double myGaus (const double *x, const double *par)
 Gaus function to be used in the fit.
 
void addGausToHistogram (TH1D &hist, const double &integral, const double &center, const double &sigma, const double &sigmaN, const bool &isAddition=true)
 Add (or Subtract) a Gaussian to (or from) a histogram. More...
 
void subtractGausFromHistogram (TH1D &hist, const double &integral, const double &center, const double &sigma, const double &sigmaN)
 Subtract a Gaussian from a histogram. More...
 
int getSensorType (const VxdID &sensorID)
 Get Sensor Type of SVD sensors.
 

Detailed Description

Function Documentation

◆ addGausToHistogram()

void Belle2::addGausToHistogram ( TH1D &  hist,
const double &  integral,
const double &  center,
const double &  sigma,
const double &  sigmaN,
const bool &  isAddition = true 
)
inline

Add (or Subtract) a Gaussian to (or from) a histogram.

The gauss is calculated upto the sigmaN passed to the function.

Definition at line 177 of file SVDTimeGroupingModule.h.

180  {
181  int startBin = hist.FindBin(center - sigmaN * sigma);
182  int endBin = hist.FindBin(center + sigmaN * sigma);
183  if (startBin < 1) startBin = 1;
184  if (endBin > (hist.GetNbinsX())) endBin = hist.GetNbinsX();
185 
186  for (int ijx = startBin; ijx <= endBin; ijx++) {
187  double tbinc = hist.GetBinCenter(ijx);
188  double tbincontent = hist.GetBinContent(ijx);
189 
190  if (isAddition) tbincontent += integral * TMath::Gaus(tbinc, center, sigma, true);
191  else tbincontent -= integral * TMath::Gaus(tbinc, center, sigma, true);
192 
193  hist.SetBinContent(ijx, tbincontent);
194  }
195  }

◆ clusterPDFName()

void Belle2::clusterPDFName ( const VxdID sensor,
int  size,
int  side,
int  maxClusterSize,
std::string &  PDFName,
std::string &  errorPDFName,
bool  useLegacyNaming 
)
inline

Function to set name of PDF for cluster quality estimation.

Legacy naming convention for PDFs distributed by sensor type rather than sensor ID, not used after 2018 MC calibrated PDFs.

Definition at line 24 of file ClusterQualityHelperFunctions.h.

26  {
27  if (useLegacyNaming == true) {
28  std::string sensorSide;
29  if (side == 1) sensorSide = "u";
30  if (side == 0) sensorSide = "v";
31 
32  if (size > maxClusterSize) size = maxClusterSize;
33  std::string sensorName;
34  if (sensor.getLayerNumber() == 3) sensorName = "l3";
35  if (sensor.getLayerNumber() > 3 && sensor.getSensorNumber() == 1) sensorName = "trap";
36  if (sensor.getLayerNumber() > 3 && sensor.getSensorNumber() > 1) sensorName = "large";
37 
38  PDFName = sensorSide + sensorName + std::to_string(size);
39  errorPDFName = PDFName + "Error";
40  } else {
41 
42  std::string sensorSide;
43  if (side == 1) sensorSide = "u";
44  if (side == 0) sensorSide = "v";
45  int layer = sensor.getLayerNumber();
46  int ladder = sensor.getLadderNumber();
47  int sens = sensor.getSensorNumber();
48 
49  if (size > maxClusterSize) size = maxClusterSize;
50 
51  PDFName = std::to_string(layer) + "." + std::to_string(ladder) + "." + std::to_string(sens) + "." + sensorSide + "." +
52  std::to_string(size);
53  errorPDFName = PDFName + "_Error";
54 
55  }
56  }

◆ findPossibleCombinations()

void Belle2::findPossibleCombinations ( const Belle2::ClustersOnSensor aSensor,
std::vector< std::vector< const SVDCluster * > > &  foundCombinations,
const SVDHitTimeSelection hitTimeCut,
const bool &  useSVDGroupInfo,
const int &  numberOfSignalGroups,
const bool &  formSingleSignalGroup,
const SVDNoiseCalibrations noiseCal,
const DBObjPtr< SVDSpacePointSNRFractionSelector > &  svdSpacePointSelectionFunction,
bool  useSVDSpacePointSNRFractionSelector 
)
inline

stores all possible 2-Cluster-combinations.

first parameter is a struct containing all clusters on current sensor. second parameter is the container which collects all combinations found.

for each u cluster, a v cluster is combined to a possible combination. Condition which has to be fulfilled: the first entry is always an u cluster, the second always a v-cluster

Definition at line 128 of file SpacePointHelperFunctions.h.

133  {
134 
135  for (const SVDCluster* uCluster : aSensor.clustersU) {
136  if (! hitTimeCut.isClusterInTime(uCluster->getSensorID(), 1, uCluster->getClsTime())) {
137  B2DEBUG(29, "Cluster rejected due to timing cut. Cluster time: " << uCluster->getClsTime());
138  continue;
139  }
140  for (const SVDCluster* vCluster : aSensor.clustersV) {
141  if (! hitTimeCut.isClusterInTime(vCluster->getSensorID(), 0, vCluster->getClsTime())) {
142  B2DEBUG(29, "Cluster rejected due to timing cut. Cluster time: " << vCluster->getClsTime());
143  continue;
144  }
145 
146  if (! hitTimeCut.areClusterTimesCompatible(vCluster->getSensorID(), uCluster->getClsTime(), vCluster->getClsTime())) {
147  B2DEBUG(29, "Cluster combination rejected due to timing cut. Cluster time U (" << uCluster->getClsTime() <<
148  ") is incompatible with Cluster time V (" << vCluster->getClsTime() << ")");
149  continue;
150  }
151 
152  if (useSVDGroupInfo) {
153  const std::vector<int>& uTimeGroupId = uCluster->getTimeGroupId();
154  const std::vector<int>& vTimeGroupId = vCluster->getTimeGroupId();
155 
156  if (int(uTimeGroupId.size()) && int(vTimeGroupId.size())) { // indirect check if the clusterizer module is disabled
157  bool isContinue = true;
158  for (auto& uitem : uTimeGroupId) {
159  if (uitem < 0 || uitem >= numberOfSignalGroups) continue;
160  for (auto& vitem : vTimeGroupId) {
161  if (vitem < 0 || vitem >= numberOfSignalGroups) continue;
162  if ((uitem == vitem) || formSingleSignalGroup) { isContinue = false; break; }
163  }
164  if (!isContinue) break;
165  }
166 
167  if (isContinue) {
168  B2DEBUG(29, "Cluster combination rejected due to different time-group Id.");
169  continue;
170  }
171  }
172  }
173 
174  if (useSVDSpacePointSNRFractionSelector) {
175  std::vector<float> inputU;
176  std::vector<float> inputV;
177 
178  storeInputVectorFromSingleCluster(uCluster, inputU, noiseCal);
179  storeInputVectorFromSingleCluster(vCluster, inputV, noiseCal);
180 
181  bool pass = svdSpacePointSelectionFunction->passSNRFractionSelection(inputU, inputV);
182  if (!pass) {
183  B2DEBUG(29, "Cluster combination rejected due to SVDSpacePointSNRFractionSelector");
184  continue;
185  }
186  }
187 
188  foundCombinations.push_back({uCluster, vCluster});
189 
190 
191  }
192  }
193 
194 
195 
196 
197  }
void storeInputVectorFromSingleCluster(const SVDCluster *cls, std::vector< float > &inputVector, const SVDNoiseCalibrations &noiseCal)
Store the input values for SVDSpacePoint selection from the given SVDCluster
std::vector< const SVDCluster * > clustersU
stores all SVDclusters of U type.
std::vector< const SVDCluster * > clustersV
stores all SVDclusters of V type.

◆ provideSVDClusterCombinations()

void Belle2::provideSVDClusterCombinations ( const StoreArray< SVDCluster > &  svdClusters,
StoreArray< SpacePointType > &  spacePoints,
SVDHitTimeSelection hitTimeCut,
bool  useQualityEstimator,
TFile *  pdfFile,
bool  useLegacyNaming,
unsigned int  numMaxSpacePoints,
std::string  m_eventLevelTrackingInfoName,
const bool &  useSVDGroupInfo,
const int &  numberOfSignalGroups,
const bool &  formSingleSignalGroup,
const SVDNoiseCalibrations noiseCal,
const DBObjPtr< SVDSpacePointSNRFractionSelector > &  svdSpacePointSelectionFunction,
bool  useSVDSpacePointSNRFractionSelector 
)

finds all possible combinations of U and V Clusters for SVDClusters.

first parameter is a storeArray containing SVDClusters. second parameter is a storeArra containing SpacePoints (will be filled in the function). third parameter tels the spacePoint where to get the name of the storeArray containing the related clusters relationweights code the type of the cluster. +1 for u and -1 for v

Definition at line 319 of file SpacePointHelperFunctions.h.

◆ provideSVDClusterSingles()

void Belle2::provideSVDClusterSingles ( const StoreArray< SVDCluster > &  svdClusters,
StoreArray< SpacePointType > &  spacePoints 
)

simply store one spacePoint for each existing SVDCluster.

first parameter is a storeArray containing SVDClusters. second parameter is a storeArra containing SpacePoints (will be filled in the function).

Definition at line 77 of file SpacePointHelperFunctions.h.

◆ spPDFName()

void Belle2::spPDFName ( const VxdID sensor,
int  uSize,
int  vSize,
int  maxClusterSize,
std::string &  PDFName,
std::string &  errorPDFName,
bool  useLegacyNaming 
)
inline

Function to set name of PDF for spacePoint quality estimation.

Legacy naming convention for PDFs distributed by sensor type rather than sensor ID, not used after 2018 MC calibrated PDFs.

Definition at line 204 of file SpacePointHelperFunctions.h.

◆ subtractGausFromHistogram()

void Belle2::subtractGausFromHistogram ( TH1D &  hist,
const double &  integral,
const double &  center,
const double &  sigma,
const double &  sigmaN 
)
inline

Subtract a Gaussian from a histogram.

The gauss is calculated upto the sigmaN passed to the function.

Definition at line 202 of file SVDTimeGroupingModule.h.