Project
Loading...
Searching...
No Matches
FT3Layer.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_FT3_UPGRADEV3LAYER_H_
16#define ALICEO2_FT3_UPGRADEV3LAYER_H_
17
18#include <TGeoManager.h> // for gGeoManager
19#include "Rtypes.h" // for Double_t, Int_t, Bool_t, etc
20#include "FT3Simulation/Detector.h" // for Detector, Detector::Model
22
23class TGeoVolume;
24
25namespace o2
26{
27namespace ft3
28{
29
32class FT3Layer : public TObject
33{
34 public:
35 // Default constructor
36 FT3Layer() = default;
37
38 // Sample layer constructor
39 FT3Layer(Int_t layerDirection, Int_t layerNumber, std::string layerName, Float_t z, Float_t rIn, Float_t rOut, Float_t Layerx2X0, bool partOfMiddleLayers);
40
42 FT3Layer(const FT3Layer&) = default;
43
45 FT3Layer& operator=(const FT3Layer&) = default;
46
48 ~FT3Layer() override;
49
51 auto getInnerRadius() const { return mInnerRadius; }
52 auto getOuterRadius() const { return mOuterRadius; }
53 auto getDirection() const { return mDirection; }
54 bool getIsInMiddleLayer() const { return mIsMiddleLayer; }
55 auto getZ() const { return mZ; }
56 auto getx2X0() const { return mx2X0; }
57
60 virtual void createLayer(TGeoVolume* motherVolume);
61
62 // create layer for disk support
63 void createSeparationLayer(TGeoVolume* motherVolume, const std::string& separationLayerName);
64 void createSeparationLayer_waterCooling(TGeoVolume* motherVolume, const std::string& separationLayerName);
65 void createReferenceCircles(TGeoVolume* motherVolume, const std::string& name);
66
67 private:
68 Int_t mLayerNumber = -1;
69 Int_t mDirection;
70 bool mIsMiddleLayer = true;
71 std::string mLayerName;
72 Double_t mInnerRadius;
73 Double_t mOuterRadius;
74 Double_t mZ;
75 Double_t mChipThickness;
76 Double_t mSensorThickness;
77 Double_t mx2X0;
78
79 ClassDefOverride(FT3Layer, 0); // ALICE 3 EndCaps geometry
80};
81} // namespace ft3
82} // namespace o2
83
84#endif
Definition of the FT3Module class.
Definition of the Detector class.
virtual void createLayer(TGeoVolume *motherVolume)
Definition FT3Layer.cxx:211
auto getDirection() const
Definition FT3Layer.h:53
void createSeparationLayer_waterCooling(TGeoVolume *motherVolume, const std::string &separationLayerName)
Definition FT3Layer.cxx:75
void createReferenceCircles(TGeoVolume *motherVolume, const std::string &name)
Definition FT3Layer.cxx:188
FT3Layer(const FT3Layer &)=default
Copy constructor.
auto getx2X0() const
Definition FT3Layer.h:56
auto getZ() const
Definition FT3Layer.h:55
~FT3Layer() override
Default destructor.
FT3Layer()=default
auto getOuterRadius() const
Definition FT3Layer.h:52
void createSeparationLayer(TGeoVolume *motherVolume, const std::string &separationLayerName)
Definition FT3Layer.cxx:162
bool getIsInMiddleLayer() const
Definition FT3Layer.h:54
auto getInnerRadius() const
getters
Definition FT3Layer.h:51
FT3Layer & operator=(const FT3Layer &)=default
Assignment operator.
GLuint const GLchar * name
Definition glcorearb.h:781
GLdouble GLdouble GLdouble z
Definition glcorearb.h:843
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...