Project
Loading...
Searching...
No Matches
Geometry.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_FIT_GEOMETRY_H_
13#define ALICEO2_FIT_GEOMETRY_H_
15// Full geomrtry hits classes for detector: FIT //
19#include "FT0Base/Constants.h"
20#include "Framework/Logger.h"
21#include <Rtypes.h>
22#include <TGeoPhysicalNode.h>
23#include <TVector3.h>
24#include <string>
25
26class TGeoPNEntry;
27
28namespace o2
29{
30namespace ft0
31{
32// FIT is not tracking detector, Geometry could be used in future but not now. So just simple settings
34{
35 public:
40 Geometry();
43 // Geometry(const Geometry& geom) : mMCP{ { 0, 0, 0 }; }
44
46 TVector3 centerMCP(int imcp) { return mMCP[imcp]; }
47 TVector3 tiltMCP(int imcp) { return mAngles[imcp]; }
48
49 // static constexpr int Nchannels = o2::ft0::Constants::sNCHANNELS_PM; // number of PM channels
50 static constexpr int Nchannels = 208; // number of sensors
51 static constexpr int Nsensors = 208; // number of sensors
52 static constexpr int NCellsA = 24; // number of radiatiors on A side
53 static constexpr int NCellsC = 28; // number of radiatiors on C side
54 static constexpr float ZdetA = 335.5; // Z position of center volume on A side
55 static constexpr float ZdetC = 82; // Z position of center volume on C side
56 static constexpr float ChannelWidth = 13.02; // channel width in ps
57 static constexpr float ChannelWidthInverse = 0.076804916; // channel width in ps inverse
59 void setAsideModules();
60 void setCsideModules();
61 TGeoPNEntry* getPNEntry(int index) const
62 {
66 }
67
68 // NEW:
69 // Calculate the coordinates of all the channels.
71 // Get the coordinates of the center of the channel channelId.
72 TVector3 getChannelCenter(UInt_t channelId) const { return mChannelCenter[channelId]; }
73
74 private:
75 TVector3 mMCP[52];
76 TVector3 mAngles[28];
77 std::array<TVector3, Nchannels> mChannelCenter;
78
79 // Convert the local ordering of the channels to the official one and apply it to the channel map.
80 // localChannelOrder[local channel index] = official channel.
81 Int_t localChannelOrder[Nchannels] = {
82 58, 56, 59, 57, 54, 52, 55, 53, 50, 49, 51, 48, 47, 45, 46, 44, 43, 42, 41, 40,
83 61, 60, 63, 62, 14, 12, 15, 13, 10, 9, 11, 8, 7, 6, 5, 4, 39, 38, 37, 36,
84 65, 64, 66, 67, 17, 16, 18, 19, 3, 2, 0, 1, 35, 34, 32, 33,
85 68, 69, 70, 71, 20, 21, 22, 23, 24, 27, 25, 26, 29, 31, 28, 30, 94, 95, 92, 93,
86 72, 73, 74, 75, 76, 78, 77, 79, 80, 83, 81, 82, 85, 87, 84, 86, 89, 91, 88, 90,
87 173, 172, 175, 174, 206, 207, 204, 205, 169, 168, 171, 170, 202, 203, 200, 201,
88 117, 116, 119, 118, 142, 143, 140, 141, 114, 112, 115, 113, 137, 139, 136, 138,
89 166, 164, 167, 165, 197, 199, 196, 198, 110, 108, 111, 109, 133, 135, 132, 134,
90 162, 160, 163, 161, 193, 195, 192, 194, 107, 105, 106, 104, 128, 130, 129, 131,
91 159, 157, 158, 156, 188, 190, 189, 191, 99, 98, 97, 96, 120, 121, 122, 123,
92 103, 102, 101, 100, 124, 125, 126, 127, 155, 153, 154, 152, 184, 186, 185, 187,
93 147, 146, 145, 144, 176, 177, 178, 179, 151, 150, 149, 148, 180, 181, 182, 183};
94
95 ClassDefNV(Geometry, 3);
96};
97} // namespace ft0
98} // namespace o2
99#endif
Definition of the GeometryManager class.
General constants in FT0.
static TGeoPNEntry * getPNEntry(o2::detectors::DetID detid, Int_t sensid)
static constexpr ID FT0
Definition DetID.h:75
TVector3 centerMCP(int imcp)
Definition Geometry.h:46
void setCsideModules()
Definition Geometry.cxx:46
static constexpr int Nsensors
Definition Geometry.h:51
static constexpr float ZdetC
Definition Geometry.h:55
void setAsideModules()
Definition Geometry.cxx:32
static constexpr float ZdetA
Definition Geometry.h:54
static constexpr int NCellsA
Definition Geometry.h:52
static constexpr int Nchannels
Definition Geometry.h:50
TGeoPNEntry * getPNEntry(int index) const
Definition Geometry.h:61
static constexpr int NCellsC
Definition Geometry.h:53
TVector3 getChannelCenter(UInt_t channelId) const
Definition Geometry.h:72
static constexpr o2::detectors::DetID::ID getDetID()
Definition Geometry.h:58
static constexpr float ChannelWidthInverse
Definition Geometry.h:57
void calculateChannelCenter()
Definition Geometry.cxx:120
static constexpr float ChannelWidth
Definition Geometry.h:56
TVector3 tiltMCP(int imcp)
Definition Geometry.h:47
GLuint index
Definition glcorearb.h:781
struct o2::upgrades_utils::@462 ft0
structure to keep V0C information
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...