Belle II Software  release-05-02-19
PXDGainCalibrationAlgorithm.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 #include <calibration/CalibrationAlgorithm.h>
13 #include <vxd/dataobjects/VxdID.h>
14 #include <vector>
15 
16 
17 namespace Belle2 {
25  class PXDGainCalibrationAlgorithm : public CalibrationAlgorithm {
26  public:
27 
30 
32  int minClusters;
33 
35  float noiseSigma;
36 
38  float safetyFactor;
39 
41  bool forceContinue;
42 
44  int strategy;
45 
46  protected:
47 
49  virtual EResult calibrate() override;
50 
51  private:
52 
54  double EstimateGain(VxdID sensorID, unsigned short uBin, unsigned short vBin);
55 
57  double CalculateMedian(std::vector<double>& signals);
58 
60  double FitLandau(std::vector<double>& signals);
61 
63  double GetChargeMedianFromDB(VxdID sensorID, unsigned short uBin, unsigned short vBin);
64 
66  double GetCurrentGainFromDB(VxdID sensorID, unsigned short uBin, unsigned short vBin);
67  };
69 } // namespace Belle2
70 
71 
Belle2::PXDGainCalibrationAlgorithm::EstimateGain
double EstimateGain(VxdID sensorID, unsigned short uBin, unsigned short vBin)
Estimate gain as ratio of medians from MC and data for a part of PXD.
Definition: PXDGainCalibrationAlgorithm.cc:234
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::PXDGainCalibrationAlgorithm::minClusters
int minClusters
Minimum number of collected clusters for estimating gains.
Definition: PXDGainCalibrationAlgorithm.h:40
Belle2::PXDGainCalibrationAlgorithm::FitLandau
double FitLandau(std::vector< double > &signals)
Calculate MPV from signal vector using a landau fit.
Definition: PXDGainCalibrationAlgorithm.cc:366
Belle2::PXDGainCalibrationAlgorithm::PXDGainCalibrationAlgorithm
PXDGainCalibrationAlgorithm()
Constructor set the prefix to PXDGainCalibrationAlgorithm.
Definition: PXDGainCalibrationAlgorithm.cc:100
Belle2::PXDGainCalibrationAlgorithm::noiseSigma
float noiseSigma
Artificial noise sigma for smearing cluster charge.
Definition: PXDGainCalibrationAlgorithm.h:43
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXDGainCalibrationAlgorithm::calibrate
virtual EResult calibrate() override
Run algo on data.
Definition: PXDGainCalibrationAlgorithm.cc:116
Belle2::PXDGainCalibrationAlgorithm::safetyFactor
float safetyFactor
Safety factor for determining whether the collected number of clusters is enough.
Definition: PXDGainCalibrationAlgorithm.h:46
Belle2::PXDGainCalibrationAlgorithm::strategy
int strategy
strategy to used for gain calibration, 0 for medians, 1 for landau fit
Definition: PXDGainCalibrationAlgorithm.h:52
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::PXDGainCalibrationAlgorithm::forceContinue
bool forceContinue
Force continue in low statistics runs instead of returning c_NotEnoughData.
Definition: PXDGainCalibrationAlgorithm.h:49
Belle2::PXDGainCalibrationAlgorithm::GetChargeMedianFromDB
double GetChargeMedianFromDB(VxdID sensorID, unsigned short uBin, unsigned short vBin)
Retrive charge median value from pulled in data base payload.
Definition: PXDGainCalibrationAlgorithm.cc:287
Belle2::PXDGainCalibrationAlgorithm::GetCurrentGainFromDB
double GetCurrentGainFromDB(VxdID sensorID, unsigned short uBin, unsigned short vBin)
Retrive current gain value from pulled in data base payload.
Definition: PXDGainCalibrationAlgorithm.cc:318
Belle2::PXDGainCalibrationAlgorithm::CalculateMedian
double CalculateMedian(std::vector< double > &signals)
Calculate a median from unsorted signal vector. The input vector gets sorted.
Definition: PXDGainCalibrationAlgorithm.cc:350