ATLAS Offline Software
Loading...
Searching...
No Matches
TileDetDescriptor.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 Tile Calorimeter detector description package
7 -----------------------------------------
8***************************************************************************/
9
11
13
14#include <iostream>
15#include <iomanip>
16#include <cstring>
17
18using std::memset;
19
21 :
22 m_phi_min(0),
23 m_phi_max(0),
24 m_dphi(0),
25 m_zshift(0),
26 m_n_samp(0),
27 m_n_phi(0),
28 m_sign_eta(0)
29{
30 AtlasDetectorID atlas ("AtlasDetectorID", "");
31 m_id = atlas.tile();
32 memset(m_eta_min, 0, MAX_N_SAMP_TILEDD*sizeof(float));
33 memset(m_eta_max, 0, MAX_N_SAMP_TILEDD*sizeof(float));
34 memset(m_deta, 0, MAX_N_SAMP_TILEDD*sizeof(float));
35 memset(m_rcenter, 0, MAX_N_SAMP_TILEDD*sizeof(float));
36 memset(m_dr, 0, MAX_N_SAMP_TILEDD*sizeof(float));
37 memset(m_zcenter, 0, MAX_N_SAMP_TILEDD*sizeof(float));
38 memset(m_dz, 0, MAX_N_SAMP_TILEDD*sizeof(float));
39 memset(m_n_eta, 0, MAX_N_SAMP_TILEDD*sizeof(int));
40}
41
43 const float eta_max[],
44 const float deta[],
45 const float phi_min,
46 const float phi_max,
47 const float dphi,
48 const float zshift,
49 const float rcenter[],
50 const float dr[],
51 const float zcenter[],
52 const float dz[],
53 const unsigned int n_samp,
54 const int sign_eta)
57 , m_dphi(dphi)
60 , m_n_phi((unsigned int) ((phi_max - phi_min)/dphi + 0.5))
62{
63 AtlasDetectorID atlas ("AtlasDetectorID", "");
64 m_id = atlas.tile();
65 for (unsigned int i=0; i<n_samp; ++i) {
66 m_eta_min[i] = eta_min[i];
67 m_eta_max[i] = eta_max[i];
68 m_deta[i] = deta[i];
69 m_rcenter[i] = rcenter[i];
70 m_dr[i] = dr[i];
71 m_zcenter[i] = zcenter[i];
72 m_dz[i] = dz[i];
73 m_n_eta[i] = ((unsigned int) ((eta_max[i] - eta_min[i])/deta[i] + 0.5));
74 }
75 for (unsigned int i=n_samp; i<MAX_N_SAMP_TILEDD; ++i) {
76 m_eta_min[i] = 0;
77 m_eta_max[i] = 0;
78 m_deta[i] = 0;
79 m_rcenter[i] = 0;
80 m_dr[i] = 0;
81 m_zcenter[i] = 0;
82 m_dz[i] = 0;
83 m_n_eta[i] = 0;
84 }
85}
86
87void
89 const float eta_max[],
90 const float deta[],
91 const float phi_min,
92 const float phi_max,
93 const float dphi,
94 const float zshift,
95 const float rcenter[],
96 const float dr[],
97 const float zcenter[],
98 const float dz[],
99 const unsigned int n_samp,
100 const unsigned int n_eta[],
101 const unsigned int n_phi,
102 const int sign_eta)
103{
106 m_dphi = dphi;
109 m_n_phi = n_phi;
111
112 for (unsigned int i=0; i<n_samp; ++i) {
113 m_eta_min[i] = eta_min[i];
114 m_eta_max[i] = eta_max[i];
115 m_deta[i] = deta[i];
116 m_rcenter[i] = rcenter[i];
117 m_dr[i] = dr[i];
118 m_zcenter[i] = zcenter[i];
119 m_dz[i] = dz[i];
120 m_n_eta[i] = n_eta[i];
121 }
122}
123
124
126{
127 std::cout << std::endl << " TileDetDescriptor print: "
128 << std::endl << std::endl;
129
130 std::cout << " phi min phi max dphi nphi zshift sign_eta nsamp"
131 << std::endl;
132 std::cout << std::setiosflags(std::ios::fixed);
133 std::cout
134 << std::setw(9) << std::setprecision(4) << m_phi_min << " "
135 << std::setw(9) << std::setprecision(4) << m_phi_max << " "
136 << std::setw(9) << std::setprecision(4) << m_dphi << " "
137 << std::setw(6) << std::setprecision(4) << m_n_phi << " "
138 << std::setw(8) << std::setprecision(2) << m_zshift << " "
139 << std::setw(7) << std::setprecision(4) << m_sign_eta<< " "
140 << std::setw(7) << std::setprecision(4) << m_n_samp << " "
141 << std::endl;
142
143 std::cout << " eta min eta max deta neta radius dR Z dZ"
144 << std::endl;
145
146 for (unsigned int i=0; i<m_n_samp; ++i) {
147 std::cout
148 << std::setw(9) << std::setprecision(4) << m_eta_min[i] << " "
149 << std::setw(9) << std::setprecision(4) << m_eta_max[i] << " "
150 << std::setw(9) << std::setprecision(4) << m_deta[i] << " "
151 << std::setw(6) << std::setprecision(4) << m_n_eta[i] << " "
152 << std::setw(9) << std::setprecision(2) << m_rcenter[i] << " "
153 << std::setw(9) << std::setprecision(2) << m_dr[i] << " "
154 << std::setw(9) << std::setprecision(2) << m_zcenter[i] << " "
155 << std::setw(9) << std::setprecision(2) << m_dz[i] << " "
156 << std::endl;
157 }
158
159 std::cout << std::resetiosflags(std::ios::fixed);
160}
161
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
#define MAX_N_SAMP_TILEDD
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Identifier tile(void) const
float zcenter(unsigned int samp) const
float rcenter(unsigned int samp) const
float eta_min(unsigned int samp) const
unsigned int m_n_eta[MAX_N_SAMP_TILEDD]
float m_eta_max[MAX_N_SAMP_TILEDD]
float m_dr[MAX_N_SAMP_TILEDD]
float m_eta_min[MAX_N_SAMP_TILEDD]
float m_dz[MAX_N_SAMP_TILEDD]
float deta(unsigned int samp) const
float m_rcenter[MAX_N_SAMP_TILEDD]
float eta_max(unsigned int samp) const
int n_eta(unsigned int samp) const
float dz(unsigned int samp) const
float m_zcenter[MAX_N_SAMP_TILEDD]
void set(const Identifier &id)
float dr(unsigned int samp) const
float m_deta[MAX_N_SAMP_TILEDD]