Project
Loading...
Searching...
No Matches
InterCalibConfig.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_ZDC_INTERCALIBCONFIG_H
13#define O2_ZDC_INTERCALIBCONFIG_H
14
15#include "ZDCBase/Constants.h"
16#include <Rtypes.h>
17#include <array>
18#include <string>
19#include <limits>
20
24
25namespace o2
26{
27namespace zdc
28{
30 static constexpr int NH = 9;
31 bool enabled[NH] = {true, true, true, true, true, true, true, true, true};
32 double cutLow[NH] = {-std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity(), -std::numeric_limits<float>::infinity()};
33 double cutHigh[NH] = {std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity()};
34
35 // Distance from calorimeter side close to the beam (always positive)
36 // Meaningful values are in the range of tower x centers i.e. from
37 // 2.8 to 19.6 If one puts less than 2.8 then the computation will be
38 // the same as for ZPA/ZPC with no cuts
39 double xcut_ZPA = 0;
40 double xcut_ZPC = 0;
41 double rms_cut_ZP = 0; // RMS of ZP centroid can go from 0 to 8.4 cm
42 double towerCutLow_ZPA[4] = {0, 0, 0, 0}; // Applied to all ZP fits except ZPI
43 double towerCutLow_ZPC[4] = {0, 0, 0, 0}; // Applied to all ZP fits except ZPI
44 double towerCutHigh_ZPA[4] = {std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity()}; // Applied to all ZP fits except ZPI
45 double towerCutHigh_ZPC[4] = {std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity()}; // Applied to all ZP fits except ZPI
46 bool cross_check = false;
47
48 int nb1[NH] = {0};
49 double amin1[NH] = {0};
50 double amax1[NH] = {0};
51 int nb2[NH] = {0};
52 double amin2[NH] = {0};
53 double amax2[NH] = {0};
54 double start[NH] = {0.75, 0.75, 0.75, 0.75, 1., 1., 1., 0.75, 0.75};
55 double l_bnd[NH] = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1};
56 double u_bnd[NH] = {10., 10., 10., 10., 10., 10., 10., 10., 10.};
57 double l_bnd_o[NH] = {-20., -20., -20., -20., -20., -20., -20., -20., -20.};
58 double u_bnd_o[NH] = {20., 20., 20., 20., 20., 20., 20., 20., 20.};
59 double step_o[NH] = {0., 0., 0., 0., 0., 0., 0., 0., 0.};
60 double min_e[NH] = {0., 0., 0., 0., 0., 0., 0., 0., 0.};
61 std::string desc = "";
62
63 void print() const;
64 void resetCuts();
65 void resetCutLow();
66 void resetCutHigh();
67 void resetCutLow(int ih);
68 void resetCutHigh(int ih);
69 void setMinEntries(double val);
70 void setMinEntries(int ih, double val);
71 void setCutLow(double val);
72 void setCutHigh(double val);
73 void setCutLow(int ih, double val);
74 void setCutHigh(int ih, double val);
75 void setCuts(double low, double high);
76 void setCuts(int ih, double low, double high);
77 void setBinning1D(int nb, double amin, double amax);
78 void setBinning2D(int nb, double amin, double amax);
79 void setBinning1D(int ih, int nb, double amin, double amax);
80 void setBinning2D(int ih, int nb, double amin, double amax);
81 void setDescription(std::string d) { desc = d; }
82 void enable(bool c0, bool c1, bool c2, bool c3, bool c4, bool c5, bool c6, bool c7, bool c8)
83 {
84 enabled[0] = c0;
85 enabled[1] = c1;
86 enabled[2] = c2;
87 enabled[3] = c3;
88 enabled[4] = c4;
89 enabled[5] = c5;
90 enabled[6] = c6;
91 enabled[7] = c7;
92 enabled[8] = c8;
93 }
95};
96} // namespace zdc
97} // namespace o2
98
99#endif
bool const GPUTPCGMMerger::trackCluster * c1
bool const GPUTPCGMMerger::trackCluster const clcomparestruct * c2
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition glcorearb.h:2513
GLuint GLfloat * val
Definition glcorearb.h:1582
GLuint start
Definition glcorearb.h:469
struct o2::upgrades_utils::@463 zdc
structure to keep FT0 information
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
void setBinning2D(int nb, double amin, double amax)
ClassDefNV(InterCalibConfig, 5)
double amin2[NH]
2D histogram: number of bins
void setDescription(std::string d)
void setBinning1D(int nb, double amin, double amax)
void setCuts(double low, double high)
static constexpr int NH
double amin1[NH]
1D histogram: number of bins
void enable(bool c0, bool c1, bool c2, bool c3, bool c4, bool c5, bool c6, bool c7, bool c8)