Belle II Software development
SVDClusterTime.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 <framework/database/DBObjPtr.h>
15#include <svd/calibration/SVDPulseShapeCalibrations.h>
16#include <svd/calibration/SVDCoGTimeCalibrations.h>
17#include <svd/calibration/SVD3SampleCoGTimeCalibrations.h>
18#include <svd/calibration/SVD3SampleELSTimeCalibrations.h>
19#include <vector>
20
21namespace Belle2::SVD {
22
27
28 public:
29
35
36
41 {m_returnRawClusterTime = true;};
42
46 void setTriggerBin(const int triggerBin)
47 { m_triggerBin = triggerBin; };
48
52 virtual void computeClusterTime(Belle2::SVD::RawCluster& rawCluster, double& time, double& timeError, int& firstFrame) = 0;
53
57 virtual ~SVDClusterTime() {};
58
60 void applyCoG6Time(const Belle2::SVD::RawCluster& rawCluster, double& time, double& timeError, int& firstFrame);
61
63 void applyCoG3Time(const Belle2::SVD::RawCluster& rawCluster, double& time, double& timeError, int& firstFrame);
64
66 void applyELS3Time(const Belle2::SVD::RawCluster& rawCluster, double& time, double& timeError, int& firstFrame);
67
68 protected:
69
72
74 int m_triggerBin = std::numeric_limits<int>::quiet_NaN();
75
78
80 double m_apvClockPeriod = 1. / m_hwClock->getClockFrequency(Const::EDetector::SVD, "sampling");
81
84
91 };
92
93}
94
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
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 time.
void applyELS3Time(const Belle2::SVD::RawCluster &rawCluster, double &time, double &timeError, int &firstFrame)
ELS3 Time Algorithm.
void setTriggerBin(const int triggerBin)
set the trigger bin
SVDClusterTime()
Constructor to create an empty Cluster Time Object by default returns the calibrated time.
void applyCoG6Time(const Belle2::SVD::RawCluster &rawCluster, double &time, double &timeError, int &firstFrame)
CoG6 Time Algorithm.
virtual ~SVDClusterTime()
virtual destructor
SVD3SampleCoGTimeCalibrations m_CoG3TimeCal
CoG3 time calibration wrapper.
SVDCoGTimeCalibrations m_CoG6TimeCal
CoG6 time calibration wrapper.
SVDPulseShapeCalibrations m_PulseShapeCal
SVDPulseShaper calibration wrapper.
void setReturnRawClusterTime()
set to return the raw cluster time instead of the calibrated one
void applyCoG3Time(const Belle2::SVD::RawCluster &rawCluster, double &time, double &timeError, int &firstFrame)
CoG3 Time Algorithm.
SVD3SampleELSTimeCalibrations m_ELS3TimeCal
ELS3 time calibration wrapper.
DBObjPtr< HardwareClockSettings > m_hwClock
Hardware Clocks.
virtual void computeClusterTime(Belle2::SVD::RawCluster &rawCluster, double &time, double &timeError, int &firstFrame)=0
computes the cluster time, timeError and FirstFrame
double m_apvClockPeriod
APV clock period.
bool m_returnRawClusterTime
to be used for time calibration
Namespace to encapsulate code needed for simulation and reconstrucion of the SVD.
Definition: GeoSVDCreator.h:23