CMS 3D CMS Logo

GEMEtaPartitionSpecs.cc
Go to the documentation of this file.
4 
5 
6 using namespace GeomDetEnumerators;
7 
8 
10  : GeomDetType(name, rss), _p(pars), _n(name)
11 {
12  if (rss == GEM )
13  {
14  float b = _p[0];
15  float B = _p[1];
16  float h = _p[2];
17  float r0 = h*(B + b)/(B - b);
18  float striplength = h*2;
19  float strips = _p[3];
20  float pitch = (b + B)/strips;
21  int nstrip =static_cast<int>(strips);
22  _top = new TrapezoidalStripTopology(nstrip, pitch, striplength, r0);
23 
24  float pads = _p[4];
25  float pad_pitch = (b + B)/pads;
26  int npad =static_cast<int>(pads);
27  _top_pad = new TrapezoidalStripTopology(npad, pad_pitch, striplength, r0);
28  } else {
29  _top = nullptr;
30  _top_pad = nullptr;
31  }
32 }
33 
34 
36 {
37  if (_top) delete _top;
38  if (_top_pad) delete _top_pad;
39 }
40 
41 
42 const Topology&
44 {
45  return *_top;
46 }
47 
48 const StripTopology&
50 {
51  return *_top;
52 }
53 
54 
55 const Topology&
57 {
58  return *_top_pad;
59 }
60 
61 const StripTopology&
63 {
64  return *_top_pad;
65 }
66 
67 
68 const std::string&
70 {
71  return _n;
72 }
73 
74 
75 const std::vector<float>&
77 {
78  return _p;
79 }
const Topology & padTopology() const
const StripTopology & specificPadTopology() const
const GEMSpecs & parameters() const
StripTopology * _top_pad
topology of trigger pads (pad = bundle of strips, basically, a "fat" strip)
const StripTopology & specificTopology() const
const Topology & topology() const
std::vector< float > _p
std::vector< float > GEMSpecs
static const std::string B
GEMEtaPartitionSpecs(SubDetector rss, const std::string &name, const GEMSpecs &pars)
double b
Definition: hdecay.h:120
StripTopology * _top
topology of strips
const std::string & detName() const