Belle II Software  release-05-02-19
SVD3SampleCoGTimeCalibrations.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Giulia Casarosa *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <vxd/dataobjects/VxdID.h>
14 #include <svd/dbobjects/SVDCalibrationsBase.h>
15 #include <svd/dbobjects/SVDCalibrationsScalar.h>
16 #include <svd/dbobjects/SVDCoGCalibrationFunction.h>
17 #include <framework/database/DBObjPtr.h>
18 #include <framework/logging/Logger.h>
19 #include <string>
20 
21 namespace Belle2 {
33  class SVD3SampleCoGTimeCalibrations {
34  public:
35  static std::string name;
36  typedef SVDCalibrationsBase< SVDCalibrationsScalar< SVDCoGCalibrationFunction > >
37  t_payload;
41  {
42  m_aDBObjPtr.addCallback([ this ](const std::string&) -> void {
43  B2INFO("SVD3SampleCoGTimeCalibrations: from now on we are using " <<
44  this->m_aDBObjPtr -> get_uniqueID()); });
45  }
46 
60  inline double getCorrectedTime(
61  const Belle2::VxdID& sensorID,
62  const bool& isU, const unsigned short& strip,
63  const double& raw_time,
64  const int& bin
65  ) const
66  {
67  return m_aDBObjPtr->getReference(sensorID.getLayerNumber(),
68  sensorID.getLadderNumber(),
69  sensorID.getSensorNumber(),
70  m_aDBObjPtr->sideIndex(isU),
71  strip).calibratedValue(raw_time, bin);
72 
73  }
74 
76  TString getUniqueID() { return m_aDBObjPtr->get_uniqueID(); }
77 
79  bool isValid() { return m_aDBObjPtr.isValid(); }
80 
81 
82  private:
83 
85  };
87 }
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::SVD3SampleCoGTimeCalibrations::isValid
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
Definition: SVD3SampleCoGTimeCalibrations.h:87
Belle2::VxdID::getLadderNumber
baseType getLadderNumber() const
Get the ladder id.
Definition: VxdID.h:108
Belle2::SVD3SampleCoGTimeCalibrations::getUniqueID
TString getUniqueID()
returns the unique ID of the payload
Definition: SVD3SampleCoGTimeCalibrations.h:84
Belle2::SVD3SampleCoGTimeCalibrations::SVD3SampleCoGTimeCalibrations
SVD3SampleCoGTimeCalibrations()
Constructor, no input argument is required.
Definition: SVD3SampleCoGTimeCalibrations.h:48
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::SVD3SampleCoGTimeCalibrations::getCorrectedTime
double getCorrectedTime(const Belle2::VxdID &sensorID, const bool &isU, const unsigned short &strip, const double &raw_time, const int &bin) const
Return the charge (number of electrons/holes) collected on a specific strip, given the number of ADC ...
Definition: SVD3SampleCoGTimeCalibrations.h:68
Belle2::SVD3SampleCoGTimeCalibrations::m_aDBObjPtr
DBObjPtr< t_payload > m_aDBObjPtr
SVDCoGCalibrationFunction payload.
Definition: SVD3SampleCoGTimeCalibrations.h:92
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SVD3SampleCoGTimeCalibrations::name
static std::string name
name of the SVD3SampleCoGTimeCalibration wrapper
Definition: SVD3SampleCoGTimeCalibrations.h:43
Belle2::VxdID::getSensorNumber
baseType getSensorNumber() const
Get the sensor id.
Definition: VxdID.h:110
Belle2::SVD3SampleCoGTimeCalibrations::t_payload
SVDCalibrationsBase< SVDCalibrationsScalar< SVDCoGCalibrationFunction > > t_payload
typedef for the SVDCoGCalibrationFunction payload of all SVD sensors
Definition: SVD3SampleCoGTimeCalibrations.h:45
Belle2::VxdID::getLayerNumber
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:106