Project
Loading...
Searching...
No Matches
Layer.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_IOTOF_LAYER_H
13#define ALICEO2_IOTOF_LAYER_H
14
15#include <TGeoManager.h>
16#include <Rtypes.h>
17
18namespace o2
19{
20namespace iotof
21{
22class Layer
23{
24 public:
25 Layer() = default;
26 Layer(std::string layerName, float rInn, float rOut, float zLength, float zOffset, float layerX2X0, bool isBarrel = true);
27 ~Layer() = default;
28
29 auto getInnerRadius() const { return mInnerRadius; }
30 auto getOuterRadius() const { return mOuterRadius; }
31 auto getZLength() const { return mZLength; }
32 auto getZOffset() const { return mZOffset; }
33 auto getx2X0() const { return mX2X0; }
34 auto getChipThickness() const { return mChipThickness; }
35 auto getName() const { return mLayerName; }
36 auto getIsBarrel() const { return mIsBarrel; }
37
38 virtual void createLayer(TGeoVolume* motherVolume){};
39
40 protected:
41 std::string mLayerName;
44 float mZLength;
45 float mZOffset{0.f}; // Of use when fwd layers
46 float mX2X0;
48 bool mIsBarrel{true};
49};
50
51class ITOFLayer : public Layer
52{
53 public:
54 using Layer::Layer;
55 virtual void createLayer(TGeoVolume* motherVolume) override;
56};
57
58class OTOFLayer : public Layer
59{
60 public:
61 using Layer::Layer;
62 virtual void createLayer(TGeoVolume* motherVolume) override;
63};
64
65class FTOFLayer : public Layer
66{
67 public:
68 using Layer::Layer;
69 virtual void createLayer(TGeoVolume* motherVolume) override;
70};
71
72class BTOFLayer : public Layer
73{
74 public:
75 using Layer::Layer;
76 virtual void createLayer(TGeoVolume* motherVolume) override;
77};
78
79} // namespace iotof
80} // namespace o2
81#endif // ALICEO2_IOTOF_LAYER_H
virtual void createLayer(TGeoVolume *motherVolume) override
Definition Layer.cxx:129
virtual void createLayer(TGeoVolume *motherVolume) override
Definition Layer.cxx:97
virtual void createLayer(TGeoVolume *motherVolume) override
Definition Layer.cxx:37
float mZOffset
Definition Layer.h:45
auto getName() const
Definition Layer.h:35
float mOuterRadius
Definition Layer.h:43
~Layer()=default
float mZLength
Definition Layer.h:44
auto getIsBarrel() const
Definition Layer.h:36
bool mIsBarrel
Definition Layer.h:48
auto getZLength() const
Definition Layer.h:31
auto getInnerRadius() const
Definition Layer.h:29
float mChipThickness
Definition Layer.h:47
auto getx2X0() const
Definition Layer.h:33
auto getChipThickness() const
Definition Layer.h:34
std::string mLayerName
Definition Layer.h:41
float mInnerRadius
Definition Layer.h:42
virtual void createLayer(TGeoVolume *motherVolume)
Definition Layer.h:38
auto getZOffset() const
Definition Layer.h:32
float mX2X0
Definition Layer.h:46
auto getOuterRadius() const
Definition Layer.h:30
virtual void createLayer(TGeoVolume *motherVolume) override
Definition Layer.cxx:68
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...