Belle II Software  release-05-02-19
PXDValidationAlgorithm.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2021 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Qingyuan Liu *
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 #include <TH1F.h>
17 #include <TH2F.h>
18 
19 
20 namespace Belle2 {
28  class PXDValidationAlgorithm : public CalibrationAlgorithm {
29  public:
30 
33 
35  virtual ~PXDValidationAlgorithm() override;
36 
38  int minTrackPoints;
39 
41  bool save2DHists;
42 
44  void setBoundaries(const std::vector<Calibration::ExpRun>& boundaries) {m_requestedBoundaries = boundaries;}
45 
47  std::vector<Calibration::ExpRun> getBoundaries() const {return m_requestedBoundaries;}
48 
49  protected:
50 
52  virtual EResult calibrate() override;
53 
55  virtual bool isBoundaryRequired(const Calibration::ExpRun& /*currentRun*/) override;
56 
58  // We reset the temporary boundaries list to be the same as the requested one.
59  virtual void boundaryFindingSetup(std::vector<Calibration::ExpRun> /*runs*/, int /* iteration = 0*/) override
60  {
61  m_boundaries = m_requestedBoundaries;
62  };
63 
64  private:
65 
67  std::vector<Calibration::ExpRun> m_requestedBoundaries;
68 
70  std::shared_ptr<TFile> m_file;
71 
73  std::shared_ptr<TTree> m_tree;
74 
76  int m_exp;
77 
79  int m_run;
80 
82  std::vector<unsigned short> m_pxdid;
83 
85  std::vector<unsigned short> m_uBin;
86 
88  std::vector<unsigned short> m_vBin;
89 
91  std::vector<unsigned long> m_nTrackPoints;
92 
94  std::vector<unsigned long> m_nTrackClusters;
95 
97  TH1F* m_hD0;
98 
100  TH1F* m_hZ0;
101 
103  TH2F* m_hTrackPointsLayer1;
104 
107 
109  TH2F* m_hTrackPointsLayer2;
110 
113 
114  };
116 } // namespace Belle2
117 
118 
Belle2::PXDValidationAlgorithm::m_hD0
TH1F * m_hD0
Histogram of corrected d0 for each 2-track event.
Definition: PXDValidationAlgorithm.h:105
Belle2::PXDValidationAlgorithm::getBoundaries
std::vector< Calibration::ExpRun > getBoundaries() const
getter for current boundaries
Definition: PXDValidationAlgorithm.h:55
Belle2::PXDValidationAlgorithm::m_nTrackPoints
std::vector< unsigned long > m_nTrackPoints
Vecotr of number of track points.
Definition: PXDValidationAlgorithm.h:99
Belle2::PXDValidationAlgorithm::m_hTrackPointsLayer2
TH2F * m_hTrackPointsLayer2
Histogram of intersection points for layer 2.
Definition: PXDValidationAlgorithm.h:117
Belle2::PXDValidationAlgorithm::m_vBin
std::vector< unsigned short > m_vBin
Vecotr of vBin.
Definition: PXDValidationAlgorithm.h:96
Belle2::PXDValidationAlgorithm::m_hTrackClustersLayer2
TH2F * m_hTrackClustersLayer2
Histogram of track matched clusters for layer 2.
Definition: PXDValidationAlgorithm.h:120
Belle2::PXDValidationAlgorithm::m_exp
int m_exp
Experiment number.
Definition: PXDValidationAlgorithm.h:84
Belle2::PXDValidationAlgorithm::m_pxdid
std::vector< unsigned short > m_pxdid
Vector of PXD module id (DHE id)
Definition: PXDValidationAlgorithm.h:90
Belle2::PXDValidationAlgorithm::m_requestedBoundaries
std::vector< Calibration::ExpRun > m_requestedBoundaries
During findPayloadBoundaries and isBoundaryRequired this is used to define the boundaries we want.
Definition: PXDValidationAlgorithm.h:70
Belle2::PXDValidationAlgorithm::m_file
std::shared_ptr< TFile > m_file
Pointer for TFile.
Definition: PXDValidationAlgorithm.h:78
Belle2::PXDValidationAlgorithm::~PXDValidationAlgorithm
virtual ~PXDValidationAlgorithm() override
Destructor.
Definition: PXDValidationAlgorithm.cc:109
Belle2::PXDValidationAlgorithm::calibrate
virtual EResult calibrate() override
Run algo on data.
Definition: PXDValidationAlgorithm.cc:113
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::PXDValidationAlgorithm::save2DHists
bool save2DHists
Flag to save 2D histograms for efficiency;.
Definition: PXDValidationAlgorithm.h:49
Belle2::PXDValidationAlgorithm::m_hZ0
TH1F * m_hZ0
Histogram of corrected z0 for each 2-track event.
Definition: PXDValidationAlgorithm.h:108
Belle2::PXDValidationAlgorithm::m_tree
std::shared_ptr< TTree > m_tree
Pointer for TTree of the validation info.
Definition: PXDValidationAlgorithm.h:81
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::PXDValidationAlgorithm::minTrackPoints
int minTrackPoints
Minimum number of track points per sensor.
Definition: PXDValidationAlgorithm.h:46
Belle2::PXDValidationAlgorithm::m_hTrackClustersLayer1
TH2F * m_hTrackClustersLayer1
Histogram of track matched clusters for layer 1.
Definition: PXDValidationAlgorithm.h:114
Belle2::PXDValidationAlgorithm::boundaryFindingSetup
virtual void boundaryFindingSetup(std::vector< Calibration::ExpRun >, int) override
What we do before isBoundaryRequired gets called.
Definition: PXDValidationAlgorithm.h:67
Belle2::PXDValidationAlgorithm::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: PXDValidationAlgorithm.cc:313
Belle2::PXDValidationAlgorithm::m_hTrackPointsLayer1
TH2F * m_hTrackPointsLayer1
Histogram of intersection points for layer 1.
Definition: PXDValidationAlgorithm.h:111
Belle2::PXDValidationAlgorithm::m_nTrackClusters
std::vector< unsigned long > m_nTrackClusters
Vecotr of number of track matched clusters.
Definition: PXDValidationAlgorithm.h:102
Belle2::PXDValidationAlgorithm::m_uBin
std::vector< unsigned short > m_uBin
Vecotr of uBin.
Definition: PXDValidationAlgorithm.h:93
Belle2::PXDValidationAlgorithm::m_run
int m_run
Run number.
Definition: PXDValidationAlgorithm.h:87
Belle2::PXDValidationAlgorithm::PXDValidationAlgorithm
PXDValidationAlgorithm()
Constructor set the prefix to PXDValidationAlgorithm.
Definition: PXDValidationAlgorithm.cc:93
Belle2::PXDValidationAlgorithm::setBoundaries
void setBoundaries(const std::vector< Calibration::ExpRun > &boundaries)
Setter for boundaries.
Definition: PXDValidationAlgorithm.h:52