Belle II Software  release-05-02-19
PXDGainCalibrator.h
1 /**************************************************************************
2 * BASF2 (Belle Analysis Framework 2) *
3 * Copyright(C) 2010 - Belle II Collaboration *
4 * *
5 * Author: The Belle II Collaboration *
6 * Contributors: Benjamin Schwenker *
7 * *
8 * This software is provided "as is" without any warranty. *
9 **************************************************************************/
10 
11 #pragma once
12 
13 #include <pxd/dbobjects/PXDGainMapPar.h>
14 #include <framework/database/DBObjPtr.h>
15 #include <vxd/dataobjects/VxdID.h>
16 #include <memory>
17 
18 namespace Belle2 {
24  namespace PXD {
28  class PXDGainCalibrator {
29 
30  public:
31 
33  void initialize();
34 
36  void setGains();
37 
40 
47  float getGainCorrection(VxdID id, unsigned int uid, unsigned int vid) const;
48 
55  float getADUToEnergy(VxdID id, unsigned int uid, unsigned int vid) const;
56 
63  unsigned short getBinU(VxdID id, unsigned int uid, unsigned int vid) const;
64 
70  unsigned short getBinV(VxdID id, unsigned int vid) const;
71 
79  unsigned short getBinU(VxdID id, unsigned int uid, unsigned int vid, unsigned short nBinsU) const;
80 
87  unsigned short getBinV(VxdID id, unsigned int vid, unsigned short nBinsV) const;
88 
95  unsigned short getGlobalID(VxdID id, unsigned int uid, unsigned int vid) const;
96 
98  const PXDGainMapPar& getGainMapParameters() const {return m_gains;}
99 
100  private:
101 
103  PXDGainCalibrator() {};
105  PXDGainCalibrator(const PXDGainCalibrator&) = delete;
108 
110  std::unique_ptr<DBObjPtr<PXDGainMapPar>> m_gainsFromDB;
111 
114  };
115  }
117 } //Belle2 namespace
Belle2::PXD::PXDGainCalibrator
Singleton class for managing gain corrections for the PXD.
Definition: PXDGainCalibrator.h:36
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::PXD::PXDGainCalibrator::getBinV
unsigned short getBinV(VxdID id, unsigned int vid) const
Get gain correction bin along sensor v side.
Definition: PXDGainCalibrator.cc:73
Belle2::PXD::PXDGainCalibrator::initialize
void initialize()
Initialize the PXDGainCalibrator.
Definition: PXDGainCalibrator.cc:18
Belle2::PXDGainMapPar
The payload class for PXD gain corrections.
Definition: PXDGainMapPar.h:53
Belle2::PXD::PXDGainCalibrator::m_gainsFromDB
std::unique_ptr< DBObjPtr< PXDGainMapPar > > m_gainsFromDB
Masked pixels retrieved from DB.
Definition: PXDGainCalibrator.h:118
Belle2::PXD::PXDGainCalibrator::getGainCorrection
float getGainCorrection(VxdID id, unsigned int uid, unsigned int vid) const
Get gain correction.
Definition: PXDGainCalibrator.cc:36
Belle2::PXD::PXDGainCalibrator::getGlobalID
unsigned short getGlobalID(VxdID id, unsigned int uid, unsigned int vid) const
Get global ID for gain correction on a sensor.
Definition: PXDGainCalibrator.cc:78
Belle2::PXD::PXDGainCalibrator::getGainMapParameters
const PXDGainMapPar & getGainMapParameters() const
Return current gain correction payload.
Definition: PXDGainCalibrator.h:106
Belle2::PXD::PXDGainCalibrator::setGains
void setGains()
Set gains from DB.
Definition: PXDGainCalibrator.cc:86
Belle2::PXD::PXDGainCalibrator::getADUToEnergy
float getADUToEnergy(VxdID id, unsigned int uid, unsigned int vid) const
Get conversion factor from ADU to energy.
Definition: PXDGainCalibrator.cc:45
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXD::PXDGainCalibrator::PXDGainCalibrator
PXDGainCalibrator()
Singleton class, hidden constructor.
Definition: PXDGainCalibrator.h:111
Belle2::PXD::PXDGainCalibrator::m_gains
PXDGainMapPar m_gains
Map of gain corrections.
Definition: PXDGainCalibrator.h:121
Belle2::PXD::PXDGainCalibrator::getBinU
unsigned short getBinU(VxdID id, unsigned int uid, unsigned int vid) const
Get gain correction bin along sensor u side.
Definition: PXDGainCalibrator.cc:62
Belle2::PXD::PXDGainCalibrator::operator=
PXDGainCalibrator & operator=(const PXDGainCalibrator &)=delete
Singleton class, forbidden assignment operator.
Belle2::PXD::PXDGainCalibrator::getInstance
static PXDGainCalibrator & getInstance()
Main (and only) way to access the PXDGainCalibrator.
Definition: PXDGainCalibrator.cc:29