Belle II Software  release-08-01-10
SVDCoGTimeCalibrations.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/dbobjects/SVDCalibrationsBase.h>
13 #include <svd/dbobjects/SVDCalibrationsScalar.h>
14 #include <svd/dbobjects/SVDCoGCalibrationFunction.h>
15 #include <framework/database/DBObjPtr.h>
16 #include <framework/logging/Logger.h>
17 #include <string>
18 
19 namespace Belle2 {
31  public:
32  static std::string name;
38  {
39  m_aDBObjPtr.addCallback([ this ](const std::string&) -> void {
40  B2DEBUG(20, "SVDCoGTimeCalibrations: from now on we are using " <<
41  this->m_aDBObjPtr -> get_uniqueID()); });
42  }
43 
55  inline double getCorrectedTime(
56  const Belle2::VxdID& sensorID,
57  const bool& isU, const unsigned short& strip,
58  const double& raw_time,
59  const int& bin
60  ) const
61  {
62  return m_aDBObjPtr->getReference(sensorID.getLayerNumber(),
63  sensorID.getLadderNumber(),
64  sensorID.getSensorNumber(),
65  m_aDBObjPtr->sideIndex(isU),
66  strip).calibratedValue(raw_time, bin);
67 
68  }
69 
83  inline double getCorrectedTimeError(
84  const Belle2::VxdID& sensorID,
85  const bool& isU, const unsigned short& strip,
86  const double& raw_time,
87  const double& raw_timeErr,
88  const int& bin
89  ) const
90  {
91  return m_aDBObjPtr->get(sensorID.getLayerNumber(),
92  sensorID.getLadderNumber(),
93  sensorID.getSensorNumber(),
94  m_aDBObjPtr->sideIndex(isU),
95  strip).calibratedValueError(raw_time, raw_timeErr, bin);
96 
97  }
98 
100  TString getUniqueID() { return m_aDBObjPtr->get_uniqueID(); }
101 
103  bool isValid() { return m_aDBObjPtr.isValid(); }
104 
105 
106  private:
107 
109  };
111 }
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
base class for calibrations classes
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
double getCorrectedTimeError(const Belle2::VxdID &sensorID, const bool &isU, const unsigned short &strip, const double &raw_time, const double &raw_timeErr, const int &bin) const
Return the strip time error, given the raw strip time, and tje raw time error.
SVDCalibrationsBase< SVDCalibrationsScalar< SVDCoGCalibrationFunction > > t_payload
typedef for the SVDCoGCalibrationFunction payload of all SVD sensors
static std::string name
name of the SVDCoGCalibrationFunction payload
SVDCoGTimeCalibrations()
Constructor, no input argument is required.
TString getUniqueID()
returns the unique ID of the payload
DBObjPtr< t_payload > m_aDBObjPtr
SVDCoGCalibrationFunction payload.
double getCorrectedTime(const Belle2::VxdID &sensorID, const bool &isU, const unsigned short &strip, const double &raw_time, const int &bin) const
Return the strip time, given the raw strip time.
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
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
Abstract base class for different kinds of events.