ATLAS Offline Software
Loading...
Searching...
No Matches
MMDetectorDescription.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MMDetectorDescription_H
6#define MMDetectorDescription_H
7
12#include <string>
13#include <vector>
14#include <iostream>
15
17
19 double stripPitch{0.};
20 double gasThickness{0.};
21 double pcbThickness{0.};
22 double driftThickness{0.};
23 std::vector<double> stereoAngle{};
24 std::vector<int> readoutSide{};
25 double zpos{0.};
26 double distanceFromZAxis{0.}; //inner radius: distance from the IP till the bottom part of the module
27 double roLength{0.}; //module's radial size
28 double activeBottomLength{0.}; // active area: bottom length
29 double activeTopLength{0.}; //active area: top length
30 double activeH{0.}; //active area: radial size
31 double minYPhiR{0.}; //active area: the distance between the first eta and stereo strips (active) [R:right, L:left, min:bottom part, max:top part]. LM1 is the special case as there is no space to route any strips at the bottom, we use two distances (left and right).
32 double minYPhiL{0.};
33 double maxYPhi{0.};
34 int nMissedTopEta{0}; //number of strips that are not connected at any FE board (eta layer)
36 int nMissedTopStereo{0}; //number of strips that are not connected at any FE board (stereo layer)
38 int nRoutedTop{0}; // number of strips needed to cover the low efficient parts of the module (these strips are shorter in lenght than the normal ones)
40 double dlStereoTop{0.};
41 double dlStereoBottom{0.};
42 int tStrips{0}; //total strips per module (disconnected strips are included)
43};
44
46public:
47 MMDetectorDescription(const std::string& s,
49 void Register();
50
51 double sWidth() const {return small_x();}
52 double lWidth() const {return large_x();}
53 double Length() const {return y();}
54 double Tck() const {return z();}
55
56 void xFrame(double y) {m_xFrame=y;}
57 double xFrame() const {return m_xFrame;}
58
59 void ysFrame(double y) {m_ysFrame=y;}
60 double ysFrame() const {return m_ysFrame;}
61
62 void ylFrame(double y) {m_ylFrame=y;}
63 double ylFrame() const {return m_ylFrame;}
64
66
68
70
71protected:
72 double m_xFrame = 0.0;
73 double m_ysFrame = 0.0;
74 double m_ylFrame = 0.0;
75
77
79};
80
81#endif
double z() const
AGDDDetector(const std::string &s)
void y(double yval)
double small_x() const
double large_x() const
double y() const
void SetDetectorAddress(AGDDDetectorPositioner *)
MMReadoutParameters & GetReadoutParameters()
MMReadoutParameters roParameters
MuonGM::MM_Technology * GetTechnology()
MMDetectorDescription(const std::string &s, AGDDDetectorStore &ds)
std::vector< double > stereoAngle
std::vector< int > readoutSide