Project
Loading...
Searching...
No Matches
ITSMFTDetectorDefinitions.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 ALICEO2_ITSMFT_TRACKING_DETECTORDEFINITIONS_H_
13#define ALICEO2_ITSMFT_TRACKING_DETECTORDEFINITIONS_H_
14
15#include <array>
16#include <cstddef>
17#include <limits>
18
23
25{
26namespace detail
27{
28constexpr NominalSurfaceMaterial siliconMaterial(float xOverX0) noexcept
29{
30 return {xOverX0, xOverX0 * o2::its::constants::Radl * o2::its::constants::Rho};
31}
32
33// Preserve the production prescription: 0.042/5 X/X0 for each sensor plane.
34inline constexpr auto mftSurfaceMaterial = siliconMaterial(0.042f / 5.f);
35
36} // namespace detail
37
38// Canonical descriptors, using the exact production tracking values.
39inline constexpr std::array<SurfaceDescriptor, ITSNLayers> kITSSurfaces{
40 SurfaceDescriptor{0, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 2.33959f, detail::siliconMaterial(5.e-3f), {-kITSLookupZHalfExtent[0], kITSLookupZHalfExtent[0]}},
41 SurfaceDescriptor{1, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 3.14076f, detail::siliconMaterial(5.e-3f), {-kITSLookupZHalfExtent[1], kITSLookupZHalfExtent[1]}},
42 SurfaceDescriptor{2, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 3.91924f, detail::siliconMaterial(5.e-3f), {-kITSLookupZHalfExtent[2], kITSLookupZHalfExtent[2]}},
43 SurfaceDescriptor{3, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 19.6213f, detail::siliconMaterial(1.e-2f), {-kITSLookupZHalfExtent[3], kITSLookupZHalfExtent[3]}},
44 SurfaceDescriptor{4, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 24.5597f, detail::siliconMaterial(1.e-2f), {-kITSLookupZHalfExtent[4], kITSLookupZHalfExtent[4]}},
45 SurfaceDescriptor{5, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 34.388f, detail::siliconMaterial(1.e-2f), {-kITSLookupZHalfExtent[5], kITSLookupZHalfExtent[5]}},
46 SurfaceDescriptor{6, static_cast<uint8_t>(o2::detectors::DetID::ITS), SurfaceKind::Cylinder, 0, 39.3329f, detail::siliconMaterial(1.e-2f), {-kITSLookupZHalfExtent[6], kITSLookupZHalfExtent[6]}},
47};
48
49inline constexpr std::array<SurfaceDescriptor, MFTNLayers> kMFTSurfaces{
50 SurfaceDescriptor{0, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -45.2889f, detail::mftSurfaceMaterial, {2.1f, 12.5f}},
51 SurfaceDescriptor{1, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -46.7111f, detail::mftSurfaceMaterial, {2.1f, 12.5f}},
52 SurfaceDescriptor{2, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -48.5889f, detail::mftSurfaceMaterial, {2.1f, 12.5f}},
53 SurfaceDescriptor{3, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -50.0111f, detail::mftSurfaceMaterial, {2.1f, 12.5f}},
54 SurfaceDescriptor{4, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -52.3889f, detail::mftSurfaceMaterial, {2.1f, 14.f}},
55 SurfaceDescriptor{5, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -53.8111f, detail::mftSurfaceMaterial, {2.1f, 14.f}},
56 SurfaceDescriptor{6, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -67.6889f, detail::mftSurfaceMaterial, {3.1f, 17.f}},
57 SurfaceDescriptor{7, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -69.1111f, detail::mftSurfaceMaterial, {3.1f, 17.f}},
58 SurfaceDescriptor{8, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -76.0889f, detail::mftSurfaceMaterial, {3.5f, 17.5f}},
59 SurfaceDescriptor{9, static_cast<uint8_t>(o2::detectors::DetID::MFT), SurfaceKind::Disk, 0, -77.5111f, detail::mftSurfaceMaterial, {3.5f, 17.5f}},
60};
61
62} // namespace o2::itsmft::tracking
63
64#endif /* ALICEO2_ITSMFT_TRACKING_DETECTORDEFINITIONS_H_ */
constexpr float Radl
Definition Constants.h:34
constexpr float Rho
Definition Constants.h:35
constexpr NominalSurfaceMaterial siliconMaterial(float xOverX0) noexcept
constexpr std::array< SurfaceDescriptor, MFTNLayers > kMFTSurfaces
constexpr std::array< float, ITSNLayers > kITSLookupZHalfExtent
constexpr std::array< SurfaceDescriptor, ITSNLayers > kITSSurfaces