ATLAS Offline Software
Loading...
Searching...
No Matches
MultiLayer.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MultiLayer_H
6#define MultiLayer_H
7
9
10#include <string>
11#include <utility>
12#include <vector>
13
14class GeoFullPhysVol;
15
16namespace MuonGM {
17 class MYSQL;
18
19 class MultiLayer : public DetectorElement {
20 public:
21 int nrOfLayers{0};
22 int nrOfTubes{0}; // tubes in a layer
23 double tubePitch{0.}; // tube pitch in a layer
24 double width{0.};
25 double length{0.};
26 double thickness{0.};
27 double mdtthickness{0.};
28 double longWidth{0.}; // for trapezoidal layers
29 int nrOfSteps{0}; // for trapezoidal layers,
30 // nr of steps in the staircase
31 MultiLayer(const MYSQL& mysql, const std::string& n);
32 GeoFullPhysVol *build(StoredMaterialManager& matManager,
33 const MYSQL& mysql);
34 std::array<double, 4> yy{};
35 std::array<double, 4> xx{};
36 virtual void print() const override;
37
38 int cutoutNsteps{0}; // how many sub-multilayers there are along y-amdb
39 std::array<int, 5> cutoutNtubes{}; // how many tubes in the sub-multilayer [i]
40 std::array<double, 5> cutoutXtubes{}; // where is the centre of the tubes in sub-ml[i] along x-amdb
41 std::array<double, 5> cutoutYmax{}; // max Y(amdb) of this sub-multilayer
42 std::array<double, 5> cutoutTubeLength{}; // tube length
43 std::array<bool, 5> cutoutFullLength{}; // true if this region is outside the cutout
44 bool cutoutAtAngle{false}; // true if this station has cutouts at an angle; //EMS1,3 and BOS6
45
46 // the same but for several cutouts along the amdb x (GeoModel y)
47 // gives the (x1,x2) and (y1,y2) tuples of rectangles which are NOT cutout
48 std::vector<std::pair<double, double>> m_nonCutoutXSteps{};
49 std::vector<std::pair<double, double>> m_nonCutoutYSteps{};
50 };
51} // namespace MuonGM
52
53#endif
DetectorElement(const std::string &n)
std::array< double, 5 > cutoutTubeLength
Definition MultiLayer.h:42
std::array< double, 5 > cutoutYmax
Definition MultiLayer.h:41
std::vector< std::pair< double, double > > m_nonCutoutYSteps
Definition MultiLayer.h:49
std::array< double, 4 > xx
Definition MultiLayer.h:35
std::array< double, 4 > yy
Definition MultiLayer.h:34
std::array< int, 5 > cutoutNtubes
Definition MultiLayer.h:39
MultiLayer(const MYSQL &mysql, const std::string &n)
virtual void print() const override
std::array< bool, 5 > cutoutFullLength
Definition MultiLayer.h:43
std::array< double, 5 > cutoutXtubes
Definition MultiLayer.h:40
GeoFullPhysVol * build(StoredMaterialManager &matManager, const MYSQL &mysql)
std::vector< std::pair< double, double > > m_nonCutoutXSteps
Definition MultiLayer.h:48
This class holds one or more material managers and makes them storeable, under StoreGate.
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27