|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include "GaudiKernel/IMessageSvc.h"
14 #include "GaudiKernel/IToolSvc.h"
15 #include "GaudiKernel/ServiceHandle.h"
18 #include "GaudiKernel/SystemOfUnits.h"
21 #include "CaloDetDescr/CaloDetDescrElement.h"
31 constexpr
double s_default = 0;
32 const std::unordered_map<std::string, CaloDepthTool::DepthChoice>
42 static const InterfaceID IID_CaloDepthTool(
"CaloDepthTool", 1, 0);
46 return IID_CaloDepthTool;
50 const std::string&
name,
55 declareInterface<CaloDepthTool>(
this);
69 if (
it != s_stringToEnum.end()) {
73 return StatusCode::FAILURE;
77 return StatusCode::SUCCESS;
83 return StatusCode::SUCCESS;
90 const int sampling_or_module,
108 double radius = s_default;
134 if (std::abs(
radius) < 10.) {
143 const int sampling_or_module,
159 double deta = 99999.;
170 const int sampling_or_module,
188 double radius = s_default;
194 float aeta =
static_cast<float>(std::abs(
eta));
200 radius = (1567.8 - 18.975 * aeta - 17.668 * aeta * aeta) *
203 radius = (1503.2 + 71.716 * aeta - 41.008 * aeta * aeta) *
207 radius = (1697.1 - 15.311 * aeta - 64.153 * aeta * aeta) *
210 radius = (1739.1 - 75.648 * aeta - 18.501 * aeta * aeta) *
258 double radius = s_default;
260 float aeta =
static_cast<float>(std::abs(
eta));
266 radius = (1558.859292 - 4.990838 * aeta - 21.144279 * aeta * aeta) *
269 radius = (1522.775373 + 27.970192 * aeta - 21.104108 * aeta * aeta) *
272 radius = (1689.621619 + 2.682993 * aeta - 70.165741 * aeta * aeta) *
296 radius = (3473.473909 + 453.941515 * aeta - 119.101945 * aeta * aeta) *
328 double radius = s_default;
330 float aeta =
static_cast<float>(std::abs(
eta));
336 radius = (1558.859292 - 4.990838 * aeta - 21.144279 * aeta * aeta) *
339 radius = (1522.775373 + 27.970192 * aeta - 21.104108 * aeta * aeta) *
342 radius = (1698.990944 - 49.431767 * aeta - 24.504976 * aeta * aeta) *
366 radius = (3473.473909 + 453.941515 * aeta - 119.101945 * aeta * aeta) *
390 const int sampling_or_module,
408 double radius = s_default;
434 const int sampling_or_module,
452 double radius = s_default;
470 const int sampling_or_module,
488 double radius = s_default;
505 const int sampling_or_module,
523 double radius = s_default;
540 const int sampling_or_module,
579 if (reg->getSampling(0) ==
sample && reg->calo_sign() *
side > 0) {
580 std::vector<double>
depth;
581 reg->get_depth_in(
depth);
582 for (
unsigned int j = 0; j <
depth.size(); j++)
606 const int sampling_or_module,
646 if (reg->getSampling(0) ==
sample && reg->calo_sign() *
side > 0) {
647 std::vector<double>
depth;
648 reg->get_depth_out(
depth);
649 for (
unsigned int j = 0; j <
depth.size(); j++)
672 if (elt->
is_tile())
return (elt->
r() - elt->
dr()/2);
673 else return (elt->
r() - elt->
dr());
689 if (elt->
is_tile())
return (elt->
z() - (elt->
z() < 0 ? -elt->
dz()/2 : elt->
dz()/2));
690 else return (elt->
z() - (elt->
z() < 0 ? -elt->
dz() : elt->
dz()));
735 if (elt->
is_tile())
return (elt->
r() + elt->
dr()/2);
736 else return (elt->
r() + elt->
dr());
753 if (elt->
is_tile())
return (elt->
z() + (elt->
z() < 0 ? -elt->
dz()/2 : elt->
dz()/2));
754 else return (elt->
z() + (elt->
z() < 0 ? -elt->
dz() : elt->
dz()));
def retrieve(aClass, aKey=None)
Scalar phi() const
phi method
Scalar eta() const
pseudorapidity method
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
Definition of CaloDetDescrManager.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
static void build_sample(CaloCell_ID::SUBCALO subCalo, bool barrel, int sampling_or_module, CaloCell_ID::CaloSample &sample)
translate between the 2 ways to label a sub-detector:
Definition of CaloDetDescriptor.
::StatusCode StatusCode
StatusCode definition for legacy code.
SUBCALO
enumeration of sub calorimeters
bool is_tile() const
cell belongs to Tile
bool is_in(double eta, double phi, CaloCell_ID::CaloSample sample, double &etadist) const
return true if direction eta,phi crosses ANY of the corresponding descriptors
calo_descr_range calo_descriptors_range() const
Range over descriptors.
This class provides the client interface for accessing the detector description information common to...
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...