Belle II Software  release-05-02-19
TestBoundarySettingAlgorithm.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: David Dossett *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 #include <calibration/CalibrationAlgorithm.h>
13 #include <algorithm>
14 
15 namespace Belle2 {
23  class TestBoundarySettingAlgorithm : public CalibrationAlgorithm {
24  public:
25 
28 
31 
33  void setMinEntries(const int minEntries) {m_minEntries = minEntries;}
34 
36  int getMinEntries() const {return m_minEntries;}
37 
39  void setBoundaries(const std::vector<Calibration::ExpRun>& boundaries) {m_requestedBoundaries = boundaries;}
40 
42  std::vector<Calibration::ExpRun> getBoundaries() const {return m_requestedBoundaries;}
43 
44  protected:
45 
47  virtual EResult calibrate() override;
48 
50  virtual bool isBoundaryRequired(const Calibration::ExpRun& /*currentRun*/) override;
51 
53  // We reset the temporary boundaries list to be the same as the requested one.
54  virtual void boundaryFindingSetup(std::vector<Calibration::ExpRun> /*runs*/, int /*iteration = 0*/) override
55  {
56  m_boundaries = m_requestedBoundaries;
57  };
58 
59  private:
60 
62  int m_minEntries = 100;
63 
65  std::vector<Calibration::ExpRun> m_requestedBoundaries;
66 
67  };
69 } // namespace Belle2
Belle2::TestBoundarySettingAlgorithm::setBoundaries
void setBoundaries(const std::vector< Calibration::ExpRun > &boundaries)
Setter for boundaries.
Definition: TestBoundarySettingAlgorithm.h:47
Belle2::TestBoundarySettingAlgorithm::m_requestedBoundaries
std::vector< Calibration::ExpRun > m_requestedBoundaries
During findPayloadBoundaries and isBoundaryRequired this is used to define the boundaries we want.
Definition: TestBoundarySettingAlgorithm.h:73
Belle2::TestBoundarySettingAlgorithm::getBoundaries
std::vector< Calibration::ExpRun > getBoundaries() const
getter for current boundaries
Definition: TestBoundarySettingAlgorithm.h:50
Belle2::TestBoundarySettingAlgorithm::TestBoundarySettingAlgorithm
TestBoundarySettingAlgorithm()
Constructor set the prefix to TestCalibration.
Definition: TestBoundarySettingAlgorithm.cc:12
Belle2::TestBoundarySettingAlgorithm::calibrate
virtual EResult calibrate() override
Run algo on data.
Definition: TestBoundarySettingAlgorithm.cc:24
Belle2::TestBoundarySettingAlgorithm::~TestBoundarySettingAlgorithm
virtual ~TestBoundarySettingAlgorithm()
Destructor.
Definition: TestBoundarySettingAlgorithm.h:38
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TestBoundarySettingAlgorithm::getMinEntries
int getMinEntries() const
getter for m_minEntries
Definition: TestBoundarySettingAlgorithm.h:44
Belle2::TestBoundarySettingAlgorithm::m_minEntries
int m_minEntries
Set when c_NotEnoughData will be returned.
Definition: TestBoundarySettingAlgorithm.h:70
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::TestBoundarySettingAlgorithm::isBoundaryRequired
virtual bool isBoundaryRequired(const Calibration::ExpRun &) override
Decide if a run should be a payload boundary. Only used in certain Python Algorithm Starategies.
Definition: TestBoundarySettingAlgorithm.cc:54
Belle2::TestBoundarySettingAlgorithm::boundaryFindingSetup
virtual void boundaryFindingSetup(std::vector< Calibration::ExpRun >, int) override
What we do before isBoundaryRequired gets called.
Definition: TestBoundarySettingAlgorithm.h:62
Belle2::TestBoundarySettingAlgorithm::setMinEntries
void setMinEntries(const int minEntries)
setter for m_minEntries
Definition: TestBoundarySettingAlgorithm.h:41