Belle II Software  release-05-02-19
eclTimeShiftsAlgorithm.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 /**************************************************************************
10  * Description: *
11  * Plot the ecl times (crystal and crate) *
12  **************************************************************************/
13 
14 #pragma once
15 #include <framework/database/DBObjPtr.h>
16 #include <calibration/CalibrationAlgorithm.h>
17 #include <ecl/dbobjects/ECLCrystalCalib.h>
18 #include <ecl/dbobjects/ECLReferenceCrystalPerCrateCalib.h>
19 #include <string>
20 
21 namespace Belle2 {
26  namespace ECL {
27 
29  class eclTimeShiftsAlgorithm : public CalibrationAlgorithm {
30  public:
31 
34 
37 
38 
39  /*** Parameters ***/
40 
42  std::string debugFilenameBase;
43 
46  double timeShiftForPlotStyle[52] ;
47 
48  double crysCrateShift_min;
49  double crysCrateShift_max;
54 
55  protected:
56 
58  EResult calibrate() override;
59 
60  private:
61 
64 
67 
70 
72  const int m_numCrystals = 8736;
73 
75  const int m_numCrates = 52;
76 
77  // Variables to be read in from the per-crystal tree
79  Int_t m_exp_perCrystal;
80  Int_t m_crystalID;
81  Double_t m_crateTimeConst;
82  Double_t m_crystalTimeConst;
83  Double_t m_crateTimeUnc;
84  Double_t m_crystalTimeUnc;
85  Int_t m_crateID;
87  // Variables to be read in from the per-crate tree
88  //Int_t m_run_perCrate;
89  //Int_t m_exp_perCrate;
92  // Cuts for runs to plot
93  double m_tcrate_min_cut = -150;
94  double m_tcrate_max_cut = 150;
95  double m_tcrate_unc_min_cut = 0.0001 ;
96  double m_tcrate_unc_max_cut = 0.4 ;
99  };
100  }
102 } // namespace Belle2
103 
104 
Belle2::ECL::eclTimeShiftsAlgorithm::m_crystalTimeConst
Double_t m_crystalTimeConst
Crystal time calibration constant.
Definition: eclTimeShiftsAlgorithm.h:91
Belle2::ECL::eclTimeShiftsAlgorithm::m_tcrate_max_cut
double m_tcrate_max_cut
Maximum value cut for the crate time calibration constant for plotting
Definition: eclTimeShiftsAlgorithm.h:103
Belle2::ECL::eclTimeShiftsAlgorithm::m_tcrate_unc_min_cut
double m_tcrate_unc_min_cut
Minimum value cut for the crate time calibration constant uncertainty for plotting.
Definition: eclTimeShiftsAlgorithm.h:104
Belle2::ECL::eclTimeShiftsAlgorithm::crysCrateShift_max
double crysCrateShift_max
Plotting time max for crystal+crate shift plots.
Definition: eclTimeShiftsAlgorithm.h:58
Belle2::ECL::eclTimeShiftsAlgorithm::m_refCrystalID
Int_t m_refCrystalID
Crystal ID number for the reference crystal.
Definition: eclTimeShiftsAlgorithm.h:99
Belle2::ECL::eclTimeShiftsAlgorithm::m_ECLCrateTimeOffset
DBObjPtr< ECLCrystalCalib > m_ECLCrateTimeOffset
ECLCrateTimeOffset payload that we want to read from the DB.
Definition: eclTimeShiftsAlgorithm.h:75
Belle2::ECL::eclTimeShiftsAlgorithm::m_exp_perCrystal
Int_t m_exp_perCrystal
Experiment number
Definition: eclTimeShiftsAlgorithm.h:88
Belle2::ECL::eclTimeShiftsAlgorithm::crysCrateShift_min
double crysCrateShift_min
Plotting time min for crystal+crate shift plots.
Definition: eclTimeShiftsAlgorithm.h:57
Belle2::ECL::eclTimeShiftsAlgorithm::m_run_perCrystal
Int_t m_run_perCrystal
Run number.
Definition: eclTimeShiftsAlgorithm.h:87
Belle2::ECL::eclTimeShiftsAlgorithm::m_crystalID
Int_t m_crystalID
Crystal ID number.
Definition: eclTimeShiftsAlgorithm.h:89
Belle2::ECL::eclTimeShiftsAlgorithm::algorithmReadPayloads
bool algorithmReadPayloads
Whether or not to have the algorithm code to loop over all the runs and read the payloads itself.
Definition: eclTimeShiftsAlgorithm.h:62
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::ECL::eclTimeShiftsAlgorithm::m_tcrate_unc_max_cut
double m_tcrate_unc_max_cut
Maximum value cut for the crate time calibration constant uncertainty for plotting.
Definition: eclTimeShiftsAlgorithm.h:105
Belle2::ECL::eclTimeShiftsAlgorithm::m_tcrate_min_cut
double m_tcrate_min_cut
Minimum value cut for the crate time calibration constant for plotting.
Definition: eclTimeShiftsAlgorithm.h:102
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECL::eclTimeShiftsAlgorithm::m_ECLCrystalTimeOffset
DBObjPtr< ECLCrystalCalib > m_ECLCrystalTimeOffset
ECLCrystalTimeOffset payload that we want to read from the DB.
Definition: eclTimeShiftsAlgorithm.h:72
Belle2::ECL::eclTimeShiftsAlgorithm::eclTimeShiftsAlgorithm
eclTimeShiftsAlgorithm()
..Constructor
Definition: eclTimeShiftsAlgorithm.cc:33
Belle2::ECL::eclTimeShiftsAlgorithm::timeShiftForPlotStyle
double timeShiftForPlotStyle[52]
List of time offsets, one per crate, used just to centre the time constants around zero.
Definition: eclTimeShiftsAlgorithm.h:55
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::ECL::eclTimeShiftsAlgorithm::m_numCrates
const int m_numCrates
Number of Crates expected.
Definition: eclTimeShiftsAlgorithm.h:84
Belle2::ECL::eclTimeShiftsAlgorithm::debugFilenameBase
std::string debugFilenameBase
Name of file with debug output, eclTimeShiftsAlgorithm.root by default.
Definition: eclTimeShiftsAlgorithm.h:51
Belle2::ECL::eclTimeShiftsAlgorithm::~eclTimeShiftsAlgorithm
~eclTimeShiftsAlgorithm()
..Destructor
Definition: eclTimeShiftsAlgorithm.h:45
Belle2::ECL::eclTimeShiftsAlgorithm::calibrate
EResult calibrate() override
..Run algorithm
Definition: eclTimeShiftsAlgorithm.cc:49
Belle2::ECL::eclTimeShiftsAlgorithm::m_crateID
Int_t m_crateID
Crate ID number.
Definition: eclTimeShiftsAlgorithm.h:94
Belle2::ECL::eclTimeShiftsAlgorithm::m_crystalTimeUnc
Double_t m_crystalTimeUnc
Uncertainty on the crystal time calibration constant.
Definition: eclTimeShiftsAlgorithm.h:93
Belle2::ECL::eclTimeShiftsAlgorithm::m_crateTimeConst
Double_t m_crateTimeConst
Crate time calibration constant.
Definition: eclTimeShiftsAlgorithm.h:90
Belle2::ECL::eclTimeShiftsAlgorithm::m_numCrystals
const int m_numCrystals
Number of Crystals expected.
Definition: eclTimeShiftsAlgorithm.h:81
Belle2::ECL::eclTimeShiftsAlgorithm::m_crateTimeUnc
Double_t m_crateTimeUnc
Uncertainty on the crate time calibration constant.
Definition: eclTimeShiftsAlgorithm.h:92
Belle2::ECL::eclTimeShiftsAlgorithm::m_refCrysIDzeroingCrate
DBObjPtr< ECLReferenceCrystalPerCrateCalib > m_refCrysIDzeroingCrate
payload that we want to read from the DB
Definition: eclTimeShiftsAlgorithm.h:78