Belle II Software
release-05-01-25
HoughPlaneMulti2.cc
1
//-----------------------------------------------------------------------------
2
// $Id$
3
//-----------------------------------------------------------------------------
4
// Filename : HoughPlaneMulti2.cc
5
// Section : TRG CDC
6
// Owner : Yoshihito Iwasaki
7
// Email : yoshihito.iwasaki@kek.jp
8
//-----------------------------------------------------------------------------
9
// Description : A class to represent multi Hough parameter planes (version 2)
10
//-----------------------------------------------------------------------------
11
// $Log$
12
//-----------------------------------------------------------------------------
13
14
#define TRG_SHORT_NAMES
15
#define TRGCDC_SHORT_NAMES
16
17
#include "trg/trg/Utilities.h"
18
#include "trg/cdc/HoughPlaneMulti2.h"
19
20
namespace
Belle2
{
26
TRGCDCHoughPlaneMulti2::TRGCDCHoughPlaneMulti2
(
const
std::string& name,
27
const
TCHTransformation& trans,
28
unsigned
nX,
29
float
xMin,
30
float
xMax,
31
unsigned
nY,
32
float
yMin,
33
float
yMax,
34
unsigned
nLayers)
35
:
TRGCDCHoughPlane
(name, trans, nX, xMin, xMax, nY, yMin, yMax),
36
_nLayers(nLayers),
37
_reverse{}
// 2019/07/31 by ytlai
38
{
39
40
for
(
unsigned
i = 0; i <
N_LAYERS
; i++)
41
_usage[i] =
false
;
42
for
(
unsigned
i = 0; i < _nLayers; i++)
43
_layers[i] =
new
TCHPlaneBoolean(name +
44
":layer"
+
45
TRGUtil::itostring(i),
46
trans,
47
nX,
48
xMin,
49
xMax,
50
nY,
51
yMin,
52
yMax);
53
if
(nLayers >
N_LAYERS
)
54
std::cout
55
<<
"Too many layers requested("
<< _nLayers <<
") : "
56
<<
"max #layers = "
<<
N_LAYERS
<< std::endl;
57
}
58
59
TRGCDCHoughPlaneMulti2::~TRGCDCHoughPlaneMulti2
()
60
{
61
for
(
unsigned
i = 0; i <
_nLayers
; i++)
62
delete
_layers
[i];
63
}
64
65
void
66
TRGCDCHoughPlaneMulti2::merge
(
void
)
67
{
68
const
unsigned
n =
_layers
[0]->
_n
;
69
for
(
unsigned
i = 0; i <
_nLayers
; i++) {
70
71
//...Use _usage here...
72
if
(!
_usage
[i])
continue
;
73
74
for
(
unsigned
j = 0; j < n; j++) {
75
if
(!
_layers
[i]->
_cell
[j])
continue
;
76
for
(
unsigned
k = 0; k < 32; k++) {
77
if
((
_layers
[i]->
_cell
[j] >> k) & 1) {
78
add
(j * 32 + k, 1);
79
}
80
}
81
}
82
}
83
}
84
85
void
86
TRGCDCHoughPlaneMulti2::mergeOuters
(
void
)
87
{
88
const
unsigned
n =
_layers
[0]->
_n
;
89
for
(
unsigned
i = 1; i <
_nLayers
; i++) {
90
91
//...Use _usage here...
92
if
(!
_usage
[i])
continue
;
93
94
for
(
unsigned
j = 0; j < n; j++) {
95
if
(!
_layers
[i]->
_cell
[j])
continue
;
96
for
(
unsigned
k = 0; k < 32; k++) {
97
if
((
_layers
[i]->
_cell
[j] >> k) & 1) {
98
add
(j * 32 + k, 1);
99
}
100
}
101
}
102
}
103
}
104
106
}
// namespace Belle2
Belle2::TRGCDCHoughPlaneMulti2::~TRGCDCHoughPlaneMulti2
virtual ~TRGCDCHoughPlaneMulti2()
Destructor.
Definition:
HoughPlaneMulti2.cc:59
Belle2::TRGCDCHoughPlaneBoolean::_n
unsigned _n
nX * nY / 32 + 1
Definition:
HoughPlaneBoolean.h:102
Belle2::TRGCDCHoughPlane
A class to represent a Hough parameter plane.
Definition:
HoughPlane.h:31
Belle2::TRGCDCHoughPlane::add
void add(unsigned cellId, int weight) override
Add to a cell.
Definition:
HoughPlane.h:160
Belle2
Abstract base class for different kinds of events.
Definition:
MillepedeAlgorithm.h:19
Belle2::TRGCDCHoughPlaneMulti2::_nLayers
unsigned _nLayers
# of layers.
Definition:
HoughPlaneMulti2.h:128
Belle2::TRGCDCHoughPlaneMulti2::merge
void merge(void)
Merge layers into one.
Definition:
HoughPlaneMulti2.cc:66
N_LAYERS
#define N_LAYERS
number of layers
Definition:
HoughPlaneMulti.h:31
Belle2::TRGCDCHoughPlaneMulti2::_layers
TRGCDCHoughPlaneBoolean * _layers[N_LAYERS]
Hough plane for each layer.
Definition:
HoughPlaneMulti2.h:131
Belle2::TRGCDCHoughPlaneMulti2::_usage
bool _usage[N_LAYERS]
Used or not.
Definition:
HoughPlaneMulti2.h:134
Belle2::TRGCDCHoughPlaneMulti2::mergeOuters
void mergeOuters(void)
Merge outer layers into one.
Definition:
HoughPlaneMulti2.cc:86
Belle2::TRGCDCHoughPlane::_cell
int *const _cell
Counters.
Definition:
HoughPlane.h:87
Belle2::TRGCDCHoughPlaneMulti2::TRGCDCHoughPlaneMulti2
TRGCDCHoughPlaneMulti2(const std::string &name, const TRGCDCHoughTransformation &transformation, unsigned nX, float xMin, float xMax, unsigned nY, float yMin, float yMax, unsigned nLayers)
Contructor.
Definition:
HoughPlaneMulti2.cc:26
trg
cdc
src
HoughPlaneMulti2.cc
Generated on Fri Nov 5 2021 04:05:34 for Belle II Software by
1.8.17