Belle II Software development
SVDClusterCharge.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <vxd/dataobjects/VxdID.h>
12#include <svd/reconstruction/RawCluster.h>
13#include <framework/dbobjects/HardwareClockSettings.h>
14#include <svd/calibration/SVDPulseShapeCalibrations.h>
15#include <svd/calibration/SVDNoiseCalibrations.h>
16
17#include <vector>
18#include <TMath.h>
19
20namespace Belle2::SVD {
21
26
27 public:
28
33
37 virtual void computeClusterCharge(Belle2::SVD::RawCluster& rawCluster, double& charge, double& SNR, double& seedCharge) = 0;
38
42 virtual ~SVDClusterCharge() {};
43
45 void applyMaxSampleCharge(const Belle2::SVD::RawCluster& rawCluster, double& charge, double& SNR, double& seedCharge);
46
48 void applySumSamplesCharge(const Belle2::SVD::RawCluster& rawCluster, double& charge, double& SNR, double& seedCharge);
49
51 void applyELS3Charge(const Belle2::SVD::RawCluster& rawCluster, double& charge, double& SNR, double& seedCharge);
52
53 protected:
54
57
59 double m_apvClockPeriod = 1. / m_hwClock->getClockFrequency(Const::EDetector::SVD, "sampling");
60
63
66 };
67
68
69}
70
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
This class defines the dbobject and the method to access SVD calibrations from the noise local runs.
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
Class representing a raw cluster candidate during clustering of the SVD.
Definition: RawCluster.h:33
Abstract Class representing the SVD cluster charge.
void applySumSamplesCharge(const Belle2::SVD::RawCluster &rawCluster, double &charge, double &SNR, double &seedCharge)
SumSamples Charge Algorithm.
void applyMaxSampleCharge(const Belle2::SVD::RawCluster &rawCluster, double &charge, double &SNR, double &seedCharge)
MaxSample Charge Algorithm.
SVDNoiseCalibrations m_NoiseCal
SVDNoise calibration wrapper.
virtual ~SVDClusterCharge()
virtual destructor
SVDPulseShapeCalibrations m_PulseShapeCal
SVDPulseShaper calibration wrapper.
SVDClusterCharge()
Constructor to create an empty Cluster Charge Object.
virtual void computeClusterCharge(Belle2::SVD::RawCluster &rawCluster, double &charge, double &SNR, double &seedCharge)=0
computes the cluster charge, SNR and seedCharge
DBObjPtr< HardwareClockSettings > m_hwClock
Hardware Clocks.
void applyELS3Charge(const Belle2::SVD::RawCluster &rawCluster, double &charge, double &SNR, double &seedCharge)
ELS3 Charge Algorithm.
double m_apvClockPeriod
APV clock period.
Namespace to encapsulate code needed for simulation and reconstrucion of the SVD.
Definition: GeoSVDCreator.h:23