Project
Loading...
Searching...
No Matches
TRKLayer.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_TRK_LAYER_H
13#define ALICEO2_TRK_LAYER_H
14
15#include <TGeoManager.h>
16#include <Rtypes.h>
17
19#include "TRKBase/Specs.h"
20
21namespace o2
22{
23namespace trk
24{
26{
27 public:
28 TRKLayer() = default;
29 TRKLayer(int layerNumber, std::string layerName, float rInn, float rOut, int numberOfModules, float layerX2X0);
30 TRKLayer(int layerNumber, std::string layerName, float rInn, int numberOfModules, float thick);
31 ~TRKLayer() = default;
32
33 void setLayout(eLayout layout) { mLayout = layout; };
34
35 auto getInnerRadius() const { return mInnerRadius; }
36 auto getOuterRadius() const { return mOuterRadius; }
37 auto getZ() const { return constants::moduleMLOT::length * mNumberOfModules; }
38 auto getx2X0() const { return mX2X0; }
39 auto getChipThickness() const { return mChipThickness; }
40 auto getNumber() const { return mLayerNumber; }
41 auto getName() const { return mLayerName; }
42
43 TGeoVolume* createSensor(std::string type);
44 TGeoVolume* createDeadzone(std::string type);
45 TGeoVolume* createMetalStack(std::string type);
46 TGeoVolume* createChip(std::string type);
47 TGeoVolume* createModule(std::string type);
48 TGeoVolume* createStave(std::string type);
49 TGeoVolume* createHalfStave(std::string type);
50 void createLayer(TGeoVolume* motherVolume);
51
52 private:
53 // TGeo objects outside logical volumes can cause errors. Only used in case of kStaggered and kTurboStaves layouts
54 static constexpr float mLogicalVolumeThickness = 1;
55
56 int mLayerNumber;
57 eLayout mLayout;
58 std::string mLayerName;
59 float mInnerRadius;
60 float mOuterRadius;
61 int mNumberOfModules;
62 float mX2X0;
63 float mChipWidth;
64 float mChipLength;
65 float mChipThickness;
66 float mDeadzoneWidth;
67 float mSensorThickness;
68 int mHalfNumberOfChips;
69
70 ClassDef(TRKLayer, 2);
71};
72
73} // namespace trk
74} // namespace o2
75#endif // ALICEO2_TRK_LAYER_H
specs of the ALICE3 TRK
void createLayer(TGeoVolume *motherVolume)
Definition TRKLayer.cxx:331
auto getZ() const
Definition TRKLayer.h:37
~TRKLayer()=default
void setLayout(eLayout layout)
Definition TRKLayer.h:33
auto getx2X0() const
Definition TRKLayer.h:38
TGeoVolume * createMetalStack(std::string type)
Definition TRKLayer.cxx:87
auto getInnerRadius() const
Definition TRKLayer.h:35
TGeoVolume * createSensor(std::string type)
Definition TRKLayer.cxx:45
TGeoVolume * createChip(std::string type)
Definition TRKLayer.cxx:108
auto getOuterRadius() const
Definition TRKLayer.h:36
TGeoVolume * createStave(std::string type)
Definition TRKLayer.cxx:263
auto getChipThickness() const
Definition TRKLayer.h:39
TGeoVolume * createHalfStave(std::string type)
Definition TRKLayer.cxx:224
TGeoVolume * createDeadzone(std::string type)
Definition TRKLayer.cxx:66
auto getName() const
Definition TRKLayer.h:41
auto getNumber() const
Definition TRKLayer.h:40
TRKLayer()=default
TGeoVolume * createModule(std::string type)
Definition TRKLayer.cxx:169
GLint GLint GLsizei GLint GLenum GLenum type
Definition glcorearb.h:275
constexpr double length
Definition Specs.h:95
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...