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);
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 auto getZ() const { return mZ; }
55 auto getx2X0() const { return mx2X0; }
56
59 virtual void createLayer(TGeoVolume* motherVolume);
60
61 static void initialize_mat();
62
63 // create layer for disk support
64 void createSeparationLayer(TGeoVolume* motherVolume, const std::string& separationLayerName);
65 void createSeparationLayer_waterCooling(TGeoVolume* motherVolume, const std::string& separationLayerName);
66
67 static TGeoMaterial* carbonFiberMat;
68 static TGeoMedium* medCarbonFiber;
69
70 static TGeoMaterial* kaptonMat;
71 static TGeoMedium* kaptonMed;
72
73 static TGeoMaterial* waterMat;
74 static TGeoMedium* waterMed;
75
76 static TGeoMaterial* foamMat;
77 static TGeoMedium* medFoam;
78
79 private:
80 Int_t mLayerNumber = -1;
81 Int_t mDirection;
82 std::string mLayerName;
83 Double_t mInnerRadius;
84 Double_t mOuterRadius;
85 Double_t mZ;
86 Double_t mChipThickness;
87 Double_t mx2X0;
88
89 ClassDefOverride(FT3Layer, 0); // ALICE 3 EndCaps geometry
90};
91} // namespace ft3
92} // namespace o2
93
94#endif
Definition of the FT3Module class.
Definition of the Detector class.
static TGeoMaterial * waterMat
Definition FT3Layer.h:73
virtual void createLayer(TGeoVolume *motherVolume)
Definition FT3Layer.cxx:225
static TGeoMedium * medFoam
Definition FT3Layer.h:77
auto getDirection() const
Definition FT3Layer.h:53
static TGeoMedium * medCarbonFiber
Definition FT3Layer.h:68
void createSeparationLayer_waterCooling(TGeoVolume *motherVolume, const std::string &separationLayerName)
Definition FT3Layer.cxx:108
FT3Layer(const FT3Layer &)=default
Copy constructor.
static void initialize_mat()
Definition FT3Layer.cxx:77
auto getx2X0() const
Definition FT3Layer.h:55
auto getZ() const
Definition FT3Layer.h:54
static TGeoMedium * waterMed
Definition FT3Layer.h:74
~FT3Layer() override
Default destructor.
FT3Layer()=default
static TGeoMaterial * carbonFiberMat
Definition FT3Layer.h:67
static TGeoMedium * kaptonMed
Definition FT3Layer.h:71
static TGeoMaterial * kaptonMat
Definition FT3Layer.h:70
auto getOuterRadius() const
Definition FT3Layer.h:52
void createSeparationLayer(TGeoVolume *motherVolume, const std::string &separationLayerName)
Definition FT3Layer.cxx:197
auto getInnerRadius() const
getters
Definition FT3Layer.h:51
FT3Layer & operator=(const FT3Layer &)=default
Assignment operator.
static TGeoMaterial * foamMat
Definition FT3Layer.h:76
GLdouble GLdouble GLdouble z
Definition glcorearb.h:843
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...