Project
Loading...
Searching...
No Matches
FCTLayer.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
14
15#ifndef ALICEO2_FCT_UPGRADEV3LAYER_H_
16#define ALICEO2_FCT_UPGRADEV3LAYER_H_
17
18#include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc
19#include "FCTSimulation/Detector.h" // for Detector, Detector::Model
20
21class TGeoVolume;
22
23namespace o2
24{
25namespace fct
26{
27
30class FCTLayer : public TObject
31{
32 public:
33 // Default constructor
34 FCTLayer() = default;
35
36 // Sample layer constructor, for disk and square layers (since they have the same parameters, but a different shape. Differentiate by filling in the type)
37 FCTLayer(Int_t layerNumber, std::string layerName, Float_t z, Float_t rIn, Float_t rOut_SideL, Float_t Layerx2X0, Int_t type);
38
40 FCTLayer(const FCTLayer&) = default;
41
43 FCTLayer& operator=(const FCTLayer&) = default;
44
46 ~FCTLayer() override;
47
49 auto getInnerRadius() const { return mInnerRadius; }
50 auto getOuterRadius() const { return mOuterRadius; }
51 auto getSideLength() const { return mSideLength; }
52 auto getLayerNumber() const { return mLayerNumber; }
53 auto getType() const { return mType; }
54 auto getZ() const { return mZ; }
55 auto getx2X0() const { return mx2X0; }
56
59 virtual void createLayer(TGeoVolume* motherVolume);
60
61 private:
62 Int_t mLayerNumber = -1;
63 Int_t mType;
64 std::string mLayerName;
65 Double_t mInnerRadius;
66 Double_t mOuterRadius;
67 Double_t mSideLength;
68 Double_t mZ;
69 Double_t mChipThickness;
70 Double_t mx2X0;
71
72 virtual void createDiskLayer(TGeoVolume* motherVolume);
73 virtual void createSquareLayer(TGeoVolume* motherVolume);
74 virtual void createConverterLayer(TGeoVolume* motherVolume);
75
76 ClassDefOverride(FCTLayer, 0); // ALICE 3 EndCaps geometry
77};
78} // namespace fct
79} // namespace o2
80
81#endif
Definition of the Detector class.
auto getx2X0() const
Definition FCTLayer.h:55
virtual void createLayer(TGeoVolume *motherVolume)
Definition FCTLayer.cxx:71
FCTLayer(const FCTLayer &)=default
Copy constructor.
auto getType() const
Definition FCTLayer.h:53
auto getZ() const
Definition FCTLayer.h:54
FCTLayer()=default
FCTLayer & operator=(const FCTLayer &)=default
Assignment operator.
auto getInnerRadius() const
getters
Definition FCTLayer.h:49
auto getLayerNumber() const
Definition FCTLayer.h:52
auto getOuterRadius() const
Definition FCTLayer.h:50
auto getSideLength() const
Definition FCTLayer.h:51
~FCTLayer() override
Default destructor.
GLint GLint GLsizei GLint GLenum GLenum type
Definition glcorearb.h:275
GLdouble GLdouble GLdouble z
Definition glcorearb.h:843
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...