ATLAS Offline Software
CaloDetDescriptor.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "Identifier/Identifier.h"
7 #include <cmath>
8 #include <iomanip>
9 #include <iostream>
10 
11 
13  const AtlasDetectorID* helper,
14  const CaloCell_Base_ID* calo_helper,
16  int layer)
17  : m_id (id),
18  m_calo_eta_min (0),
19  m_calo_eta_max (0)
20 {
22  m_calo_helper=calo_helper;
23 
24  // --m_is_xxx
33 
34  // -- m_calo_sign
35  if (m_is_tile)
37  else {
38  int posneg = m_calo_helper->pos_neg(id);
39  if (posneg == 0)
40  m_calo_sign = 0;
41  else
42  m_calo_sign = (int)(posneg/std::abs(posneg));
43  }
44 
45  // -- m_layer
47 
48  // -- m_calo_sampl
49  if(m_is_tile)
50  {
52  {
54  }
55  else
56  {
57  const Tile_Base_ID* tileid = static_cast<const Tile_Base_ID*>(m_helper);
58  if(tileid->is_tile_barrel(id))
60  else if(tileid->is_tile_extbarrel(id))
62  else if(tileid->is_tile_gap(id))
65  else
67  }
68  }
69  else
71 
72  // -- m_calo_num
74 
75  // -- m_calocell_min
76  IdentifierHash junk;
78 
79  // -- m_lar_deta, m_lar_n_eta (phi)
84 
85  // To be initialized in the derived classes:
86  m_calo_phi_min = 0.;
87  m_calo_phi_max = 0.;
88  m_calo_r_min = 0.;
89  m_calo_r_max = 0.;
90  m_calo_z_min = 0.;
91  m_calo_z_max = 0.;
92 
93  m_lar_reg_min = 999999.;
94  m_lar_reg_max = -999999.;
95  m_lar_phi_min = 999999.;
96  m_lar_eta_min = 0.;
97 
98  m_n_calo_depth = 0;
99  m_calo_depth_in.resize(0);
100  m_calo_depth_out.resize(0);
101 
102  // Eigen doesn't default-initialize things.
103  m_transform.setIdentity();
104 
106 }
107 
109 = default;
110 
112 {
113  dump(std::cout);
114 }
115 
116 void CaloDetDescriptor::dump(std::ostream& os) const
117 {
118  os << " CaloDetDescriptor print: \n\n";
119 
121 
123  os << " LAr EM ENDCAP: " << (int) m_calo_sampl << " " << (int) m_calo_num << "\n";
124  else if(m_calo_helper->is_em_barrel(m_id))
125  os << " LAr EM BARREL: " << (int) m_calo_sampl << " " << (int) m_calo_num << "\n";
126  else if(m_calo_helper->is_lar_hec(m_id))
127  os << " LAr HEC: " << (int) m_calo_sampl << " " << (int) m_calo_num << "\n";
128  else if(m_calo_helper->is_lar_fcal(m_id))
129  os << " LAr Fcal: " << (int) m_calo_sampl << " " << (int) m_calo_num << "\n";
130  else
131  {
132  if(!m_is_tile) os << " UNKNOW LAr decriptor !!!! \n";
133  }
134 
135  os << "Ideal values before alignment :\n";
136  os << " eta_min eta_max deta n_eta phi_min phi_max dphi n_phi \n";
137  os << std::setw(9) << std::setprecision(4) << calo_eta_min() << " "
138  << std::setw(9) << std::setw(9) << std::setprecision(4) << calo_eta_max() << " "
139  << std::setw(9) << std::setprecision(4) << deta() << " "
140  << std::setw(9) << std::setprecision(4) << n_eta() << " "
141  << std::setw(9) << std::setprecision(4) << calo_phi_min() << " "
142  << std::setw(9) << std::setprecision(4) << calo_phi_max() << " "
143  << std::setw(9) << std::setprecision(4) << dphi() << " "
144  << std::setw(9) << std::setprecision(4) << n_phi() << "\n";
145 
146  os << " r_min z_min r_max z_max sign\n";
147 
148  os << std::setprecision(4) << calo_r_min() << " "
149  << std::setprecision(4) << calo_r_max() << " "
150  << std::setprecision(4) << calo_z_min() << " "
151  << std::setprecision(4) << calo_z_max() << " "
152  << std::setprecision(1) << calo_sign() << "\n";
153 
154  Amg::RotationMatrix3D rot= m_transform.rotation ();
155 
156  //calculate euler angles
157  double theta1, psi1, phi1;
158  if (std::abs(std::abs(rot(2,1))-1.0f) > 0.00001)
159  {
160  theta1 = -std::asin(rot(2,0));
161  psi1 = std::atan2(rot(2,1)/std::cos(theta1), rot(2,2)/std::cos(theta1));
162  phi1 = std::atan2(rot(1,0)/std::cos(theta1), rot(0,0)/std::cos(theta1));
163  } else {
164  phi1 = 0;
165  if(rot(2,0) == -1){
166  theta1 = M_PI*0.5;
167  psi1 = std::atan2(rot(0,1),rot(0,2));
168  } else {
169  theta1 = -(M_PI * 0.5);
170  psi1 = std::atan2(-rot(0,1), -rot(0,2));
171  }
172  }
173 
174  os << "\nEigenTransform phi,theta,psi,x,y,z: "
175  << phi1 << " " << theta1 << " "
176  << psi1 << " " << m_transform(0,3) << " "
177  << m_transform(1,3) << " " << m_transform(2,3) << "\n\n";
178 
179  os << std::setprecision(4) << "in real world (can be <0)"
180  << m_lar_reg_min << " " << m_lar_reg_max << " "
181  << m_lar_phi_min << " " << m_lar_eta_min << "\n\n";
182 }
183 
186 {
188  {
189  const Tile_Base_ID* tileid = reinterpret_cast<const Tile_Base_ID*> (m_helper);
190  Identifier id = tileid->cell_id (onecalo_hash);
191  return (CaloCell_ID::CaloSample) (m_calo_sampl + tileid->sample(id));
192  }
193  else
194  {
195  return m_calo_sampl;
196  }
197 }
198 
200  double& radius,
201  double& hphi,
202  double& hlength,
203  double& depth) const
204 {
205  // For cylinders : htrans is the displacement compared to a cylinder centered along the
206  // z axis
207 
208  htrans = m_transform;
210  hlength = m_calo_z_max;
211  hphi = 0.5*m_lar_dphi*m_lar_n_phi;
213 
214  if (m_is_tile)
215  {
216  // need to shift tile cylinders (half-barrels, ext.barrels and ITC)
217  hlength = m_calo_z_max-m_calo_z_min;
218  double z = m_calo_sign*(m_calo_z_min + m_calo_z_max)/2.;
220  htrans = (htrans) * vec;
221  }
222 
223  return true;
224 }
225 
227  double& z,
228  double& rmin,
229  double& rmax,
230  double& hphisec,
231  double& depth) const
232 {
233  // For disks : htrans is the position of the entrance surface, i.e. the alignment
234  // heptransform + a z shift to put the entrance at the right z.
235 
236  htrans = m_transform;
239 
240  Amg::Translation3D vec(0.,0.,z);
241  htrans = (htrans) * vec;
242 
243  rmin = m_calo_r_min;
244  rmax = m_calo_r_max;
245  hphisec = 0.5*m_lar_dphi*m_lar_n_phi;
246 
247  return true;
248 }
249 
250 bool CaloDetDescriptor::is_in(double eta_min,
251  double eta_max,
252  double /*phi_min*/,
253  double /*phi_max*/) const
254 {
255  bool result = (eta_min + 0.00001 <= m_lar_reg_max &&
256  eta_max >= m_lar_reg_min + 0.00001);
257  return result;
258 }
259 
261 {
262  int result = -1;
263  // if(m_calo_sign*eta<0) return result;
264  if(eta < m_lar_reg_min || eta > m_lar_reg_max) return result;
265 
266 
267  if(std::abs(eta) + 0.00001 >= m_lar_eta_min)
268  result = (int)((std::abs(eta) - m_lar_eta_min)/m_lar_deta) + m_etachan_min;
269 
271 
272  return result;
273 }
274 
276 {
277  double phi_fixed = phi ;
278 
279  // -M_PI,M_PI convention :
280  if (phi <= m_lar_phi_min)
281  phi_fixed = phi_fixed + 2.0*M_PI;
282 
283  int chan = (int)((phi_fixed - m_lar_phi_min)/m_lar_dphi) + m_calo_helper->phi_min(m_id);
284 
285  if(chan >= m_lar_n_phi + m_calo_helper->phi_min(m_id)) chan = -1;
286 
287  return chan;
288 }
289 
291 {
292  int result = -1;
293  eta = eta*m_calo_sign;
294  if(eta < m_calo_eta_min || eta > m_calo_eta_max) return result;
295 
296 
297  if(std::abs(eta) + 0.00001 >= m_calo_eta_min)
298  result = (int)((std::abs(eta) - m_calo_eta_min)/m_lar_deta);
299 
301 
302  return result;
303 }
304 
306 {
307  double phi_fixed = phi ;
308 
309  // -M_PI,M_PI convention :
310  if (phi <= m_calo_phi_min)
311  phi_fixed = phi_fixed + 2.0*M_PI;
312 
313  int chan = (int)((phi_fixed - m_calo_phi_min)/m_lar_dphi) + m_calo_helper->phi_min(m_id);
314 
315  if(chan >= m_lar_n_phi + m_calo_helper->phi_min(m_id)) chan = -1;
316 
317  return chan;
318 }
319 
320 
321 
323 { return m_n_calo_depth; }
324 
325 void CaloDetDescriptor::get_depth_in(std::vector<double>& calo_depth) const
326 {
327  calo_depth.resize(m_n_calo_depth);
328  for (int i=0; i<m_n_calo_depth; i++)
329  calo_depth [i] = m_calo_depth_in[i];
330 }
331 
332 void CaloDetDescriptor::get_depth_out(std::vector<double>& calo_depth) const
333 {
334  calo_depth.resize(m_n_calo_depth);
335  for (int i=0; i<m_n_calo_depth; i++)
336  calo_depth [i] = m_calo_depth_out[i];
337 }
338 
339 
341 {
345 }
346 
347 void CaloDetDescriptor::set_depth_in(std::vector<double>& calo_depth)
348 {
349  for (int i=0; i<m_n_calo_depth; i++)
350  m_calo_depth_in[i] = calo_depth[i];
351 }
352 
353 void CaloDetDescriptor::set_depth_out(std::vector<double>& calo_depth)
354 {
355  for (int i=0; i<m_n_calo_depth; i++)
356  m_calo_depth_out[i] = calo_depth[i];
357 }
358 
360  double deta,
361  int nphi,
362  double dphi)
363 {
364  m_lar_deta = deta;
365  m_lar_dphi = dphi;
366  m_lar_n_eta = neta;
367  m_lar_n_phi = nphi;
368 }
369 
CaloDetDescriptor::calo_eta_max
double calo_eta_max() const
'ideal' geometry: eta maximal
Definition: CaloDetDescriptor.h:563
CaloDetDescriptor::getSampling
CaloCell_ID::CaloSample getSampling() const
get sampling returns the cached CaloSample, if the descriptor contains more than one sampling,...
Definition: CaloDetDescriptor.h:134
CaloDetDescriptor::m_lar_deta
double m_lar_deta
delta eta (LAr)
Definition: CaloDetDescriptor.h:390
CaloDetDescriptor::m_transform
Amg::Transform3D m_transform
misalignment transformation
Definition: CaloDetDescriptor.h:442
CaloDetDescriptor::m_calo_num
CaloCell_ID::SUBCALO m_calo_num
Subcalo.
Definition: CaloDetDescriptor.h:382
CaloDetDescriptor::dump
void dump(std::ostream &os) const
dump contents to a stream.
Definition: CaloDetDescriptor.cxx:116
CaloCell_Base_ID::is_em_endcap_outer
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
CaloDetDescriptor::m_lar_reg_max
double m_lar_reg_max
maximal Abs Eta for LAr region
Definition: CaloDetDescriptor.h:449
CaloDetDescriptor::get_cylinder_surface
bool get_cylinder_surface(Amg::Transform3D &htrans, double &radius, double &hphi, double &hlength, double &depth) const
this will be the closest radius of this region
Definition: CaloDetDescriptor.cxx:199
CaloDetDescriptor::m_is_lar_em_endcap_inner
bool m_is_lar_em_endcap_inner
descriptor belongs to the inner wheel of EM end cap
Definition: CaloDetDescriptor.h:355
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
CaloDetDescriptor::m_lar_eta_min
double m_lar_eta_min
minimal Eta for LAr region
Definition: CaloDetDescriptor.h:455
get_generator_info.result
result
Definition: get_generator_info.py:21
CaloDetDescriptor::get_depth_out
void get_depth_out(std::vector< double > &calo_depth) const
get vector of out depths
Definition: CaloDetDescriptor.cxx:332
CaloDetDescriptor::m_calo_eta_min
double m_calo_eta_min
minimal Eta (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:407
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
CaloCell_Base_ID::phi_min
int phi_min(const Identifier regId) const
min value of phi index (-999 == failure)
CaloDetDescriptor::phi_channel
int phi_channel(double phi) const
channel number for a given eta/phi (if outside returns -1) Should not be used for FCAL
Definition: CaloDetDescriptor.cxx:275
AtlasDetectorID::is_lar_fcal
bool is_lar_fcal(Identifier id) const
Definition: AtlasDetectorID.h:839
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
Tile_Base_ID::is_tile_gap
bool is_tile_gap(const Identifier &id) const
Definition: Tile_Base_ID.cxx:223
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
CaloCell_Base_ID::is_em_endcap
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
CaloCell_ID_FCS::TileExt0
@ TileExt0
Definition: FastCaloSim_CaloCell_ID.h:37
CaloDetDescriptor::m_is_lar_em_endcap
bool m_is_lar_em_endcap
descriptor belongs to EM end cap
Definition: CaloDetDescriptor.h:352
CaloCell_Base_ID::pos_neg
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
CaloDetDescriptor::m_etachan_min
int m_etachan_min
minimal Eta channel number
Definition: CaloDetDescriptor.h:458
CaloDetDescriptor::dphi
double dphi() const
delta phi
Definition: CaloDetDescriptor.h:593
CaloDetDescriptor::n_calo_depth
int n_calo_depth() const
number of calo depths
Definition: CaloDetDescriptor.cxx:322
Tile_Base_ID::sample
int sample(const Identifier &id) const
Definition: Tile_Base_ID.cxx:171
CaloDetDescriptor::m_lar_reg_min
double m_lar_reg_min
minimal Abs Eta for LAr region
Definition: CaloDetDescriptor.h:446
M_PI
#define M_PI
Definition: ActiveFraction.h:11
CaloDetDescriptor::set_n_calo_depth
void set_n_calo_depth(int n_calo_depth)
set number of calo depths
Definition: CaloDetDescriptor.cxx:340
CaloDetDescriptor::m_lar_n_eta
int m_lar_n_eta
eta granularity (LAr)
Definition: CaloDetDescriptor.h:396
Tile_Base_ID::is_tile_extbarrel
bool is_tile_extbarrel(const Identifier &id) const
Definition: Tile_Base_ID.cxx:214
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
CaloCell_Base_ID::eta_max
int eta_max(const Identifier regId) const
max value of eta index (-999 == failure)
CaloDetDescriptor::m_n_calo_depth
int m_n_calo_depth
number of depths
Definition: CaloDetDescriptor.h:432
CaloDetDescriptor::is_in
bool is_in(double eta_min, double eta_max, double phi_min, double phi_max) const
check overlap with a given zone in eta and phi (for LAr only)
Definition: CaloDetDescriptor.cxx:250
CaloCell_Base_ID::calo_sample
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
Definition: CaloCell_Base_ID.cxx:141
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
CaloDetDescriptor::calo_phi_min
double calo_phi_min() const
'ideal' geometry: phi minimal
Definition: CaloDetDescriptor.h:568
CaloDetDescriptor::calo_phi_max
double calo_phi_max() const
'ideal' geometry: phi maximal
Definition: CaloDetDescriptor.h:573
CaloCell_Base_ID::is_tile
bool is_tile(const Identifier id) const
test if the id belongs to the Tiles
CaloDetDescriptor::m_lar_dphi
double m_lar_dphi
delta phi (LAr)
Definition: CaloDetDescriptor.h:393
CaloDetDescriptor::get_disk_surface
bool get_disk_surface(Amg::Transform3D &htrans, double &z, double &rmin, double &rmax, double &hphisec, double &depth) const
(for Trk::Surface)
Definition: CaloDetDescriptor.cxx:226
CaloDetDescriptor::eta_channel_raw
int eta_channel_raw(double eta) const
channel number for a given eta/phi raw (if outside returns -1).
Definition: CaloDetDescriptor.cxx:290
CaloDetDescriptor::m_helper
const AtlasDetectorID * m_helper
Atlas Detector ID helper.
Definition: CaloDetDescriptor.h:336
CaloCell_Base_ID::is_hec
bool is_hec(const Identifier id) const
test if the id belongs to the HEC
CaloDetDescriptor::print
virtual void print() const
print the contents
Definition: CaloDetDescriptor.cxx:111
CaloDetDescriptor::calo_z_max
double calo_z_max() const
'ideal' geometry: z maximal
Definition: CaloDetDescriptor.h:553
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
CaloDetDescriptor::m_layer
int m_layer
layer
Definition: CaloDetDescriptor.h:374
CaloDetDescriptor::m_lar_phi_min
double m_lar_phi_min
minimal Phi for LAr region
Definition: CaloDetDescriptor.h:452
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
CaloDetDescriptor.h
Definition of CaloDetDescriptor.
CaloDetDescriptor::m_calo_helper
const CaloCell_Base_ID * m_calo_helper
Calo Cell ID helper.
Definition: CaloDetDescriptor.h:339
CaloCell_ID::SUBCALO
CaloCell_Base_ID::SUBCALO SUBCALO
Definition: CaloCell_ID.h:50
CaloDetDescriptor::m_lar_n_phi
int m_lar_n_phi
phi granularity (LAr)
Definition: CaloDetDescriptor.h:399
CaloCell_Base_ID::phi_max
int phi_max(const Identifier regId) const
max value of phi index (-999 == failure)
CaloCell_Base_ID::is_em
bool is_em(const Identifier id) const
test if the id belongs to LArEM
CaloDetDescriptor::get_depth_in
void get_depth_in(std::vector< double > &calo_depth) const
get vector of in depths
Definition: CaloDetDescriptor.cxx:325
CaloDetDescriptor::calo_sign
int calo_sign() const
'ideal' geometry: calo sign
Definition: CaloDetDescriptor.h:543
CaloDetDescriptor::calo_z_min
double calo_z_min() const
'ideal' geometry: z minimal
Definition: CaloDetDescriptor.h:548
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:116
CaloCell_ID::CaloSample
CaloSampling::CaloSample CaloSample
Definition: CaloCell_ID.h:53
lumiFormat.i
int i
Definition: lumiFormat.py:85
CaloDetDescriptor::m_calo_depth_in
std::vector< double > m_calo_depth_in
in depths
Definition: CaloDetDescriptor.h:435
CaloDetDescriptor::n_phi
int n_phi() const
phi granularity
Definition: CaloDetDescriptor.h:603
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
z
#define z
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
CaloCell_Base_ID::calo_cell_hash_range
void calo_cell_hash_range(const Identifier id, IdentifierHash &caloCellMin, IdentifierHash &caloCellMax) const
to loop on 'global' cell hashes of one sub-calorimeter alone
CaloCell_Base_ID::is_fcal
bool is_fcal(const Identifier id) const
test if the id belongs to the FCAL - true also for MiniFCAL
CaloCell_ID_FCS::TileBar0
@ TileBar0
Definition: FastCaloSim_CaloCell_ID.h:31
CaloCell_Base_ID::sampling
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
CaloDetDescriptor::eta_channel
int eta_channel(double eta) const
channel number for a given eta/phi (if outside returns -1).
Definition: CaloDetDescriptor.cxx:260
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Tile_Base_ID
This class factors out code common between TileID and Tile_SuperCell_ID.
Definition: Tile_Base_ID.h:39
CaloDetDescriptor::~CaloDetDescriptor
virtual ~CaloDetDescriptor()
virtual detructor
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
CaloDetDescriptor::m_calo_z_max
double m_calo_z_max
maximal Z (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:428
CaloDetDescriptor::layer
int layer() const
get layer
Definition: CaloDetDescriptor.h:528
CaloCell_Base_ID::is_em_endcap_inner
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
CaloDetDescriptor::m_calo_z_min
double m_calo_z_min
minimal Z (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:425
CaloCell_Base_ID::sub_calo
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
hist_file_dump.f
f
Definition: hist_file_dump.py:135
AtlasDetectorID::is_lar_hec
bool is_lar_hec(Identifier id) const
Definition: AtlasDetectorID.h:829
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
CaloCell_Base_ID::phiGranularity
float phiGranularity(const Identifier regId) const
LAr phi granularity (NOT_VALID == failure)
CaloCell_ID_FCS::TileGap1
@ TileGap1
Definition: FastCaloSim_CaloCell_ID.h:34
CaloDetDescriptor::set_depth_in
void set_depth_in(std::vector< double > &calo_depth)
set vector of in depths
Definition: CaloDetDescriptor.cxx:347
CaloDetDescriptor::deta
double deta() const
delta eta
Definition: CaloDetDescriptor.h:588
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
CaloDetDescriptor::m_is_lar_em_endcap_outer
bool m_is_lar_em_endcap_outer
descriptor belongs to the outer wheel of EM end cap
Definition: CaloDetDescriptor.h:358
CaloDetDescriptor::m_calo_phi_max
double m_calo_phi_max
maximal Phi (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:416
CaloCell_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:655
CaloCell_Base_ID::eta_min
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
CaloDetDescriptor::m_calo_depth_out
std::vector< double > m_calo_depth_out
out depths
Definition: CaloDetDescriptor.h:438
CaloDetDescriptor::m_calo_sampl
CaloCell_ID::CaloSample m_calo_sampl
Calo Sample.
Definition: CaloDetDescriptor.h:378
CaloDetDescriptor::m_is_lar_em_barrel
bool m_is_lar_em_barrel
descriptor belongs to EM barrel
Definition: CaloDetDescriptor.h:349
CaloDetDescriptor::m_calo_eta_max
double m_calo_eta_max
maximal Eta (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:410
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
CaloDetDescriptor::set_depth_out
void set_depth_out(std::vector< double > &calo_depth)
set vector of out depths
Definition: CaloDetDescriptor.cxx:353
CaloDetDescriptor::m_calo_r_max
double m_calo_r_max
maximal R (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:422
CaloDetDescriptor::m_id
Identifier m_id
Region identifier.
Definition: CaloDetDescriptor.h:342
CaloDetDescriptor::CaloDetDescriptor
CaloDetDescriptor(const Identifier &id, const AtlasDetectorID *helper, const CaloCell_Base_ID *calo_helper, CaloCell_ID::CaloSample sample=CaloCell_ID::Unknown, int layer=CaloCell_ID::NOT_VALID)
Constructor.
Definition: CaloDetDescriptor.cxx:12
CaloDetDescriptor::calo_eta_min
double calo_eta_min() const
'ideal' geometry: eta minimal
Definition: CaloDetDescriptor.h:558
CaloCell_Base_ID::side
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
CaloDetDescriptor::m_calo_r_min
double m_calo_r_min
minimal R (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:419
CaloDetDescriptor::set_eta_phi_granularity
void set_eta_phi_granularity(int neta, double deta, int nphi, double dphi)
Set Phi granularity.
Definition: CaloDetDescriptor.cxx:359
CaloDetDescriptor::m_is_lar_fcal
bool m_is_lar_fcal
descriptor belongs to FCAL
Definition: CaloDetDescriptor.h:364
CaloDetDescriptor::phi_channel_raw
int phi_channel_raw(double phi) const
channel number for a given eta/phi raw (if outside returns -1) Should not be used for FCAL
Definition: CaloDetDescriptor.cxx:305
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
CaloDetDescriptor::n_eta
int n_eta() const
eta granularity
Definition: CaloDetDescriptor.h:598
CaloDetDescriptor::m_is_lar_hec
bool m_is_lar_hec
descriptor belongs to HEC
Definition: CaloDetDescriptor.h:361
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
CaloDetDescriptor::m_is_tile
bool m_is_tile
descriptor belongs to Tile
Definition: CaloDetDescriptor.h:367
CaloDetDescriptor::m_calo_phi_min
double m_calo_phi_min
minimal Phi (to be defined in the derived classes)
Definition: CaloDetDescriptor.h:413
CaloDetDescriptor::m_calo_sign
int m_calo_sign
calo sign
Definition: CaloDetDescriptor.h:371
CaloDetDescriptor::m_is_lar_em
bool m_is_lar_em
descriptor belongs to EM calorimeter
Definition: CaloDetDescriptor.h:346
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
CaloDetDescriptor::calo_r_max
double calo_r_max() const
'ideal' geometry: r maximal
Definition: CaloDetDescriptor.h:583
Tile_Base_ID::is_tile_barrel
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
Definition: Tile_Base_ID.cxx:205
CaloCell_Base_ID::NOT_VALID
@ NOT_VALID
Definition: CaloCell_Base_ID.h:46
Tile_Base_ID::cell_id
Identifier cell_id(const Identifier &any_id) const
Definition: Tile_Base_ID.cxx:581
CaloCell_Base_ID
Helper base class for offline cell identifiers.
Definition: CaloCell_Base_ID.h:41
CaloDetDescriptor::calo_r_min
double calo_r_min() const
'ideal' geometry: r minimal
Definition: CaloDetDescriptor.h:578
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
CaloDetDescriptor::m_calocell_min
IdentifierHash m_calocell_min
minimal hash id of region cells
Definition: CaloDetDescriptor.h:386
Identifier
Definition: IdentifierFieldParser.cxx:14
CaloCell_Base_ID::etaGranularity
float etaGranularity(const Identifier regId) const
LAr eta granularity (NOT_VALID == failure)