ATLAS Offline Software
Loading...
Searching...
No Matches
PcbElement.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONNSWASBUILT_PCBELEMENT_H
6#define MUONNSWASBUILT_PCBELEMENT_H
7
8#include <memory>
9
12
13namespace NswAsBuilt {
14
26 class PcbElement {
27 public:
28
30
31 /* A reference point along a strip, and the pitchvector to be added to find the neighbouring strips */
32 struct stripPoint_t {
33 Amg::Vector3D pos{Amg::Vector3D::Zero()}; // a point along the central strip
34 Amg::Vector3D pitchvector{Amg::Vector3D::Zero()}; // the pitch vector to add to get the other strips
35 };
36
37 /* The strip configuration: three reference points along the central strip of this PCB. */
39 int centralStripNumber{0}; // the athena strip number of the central strip
40 stripPoint_t centerPoint{}; // the center of the central strip
41 stripPoint_t leftPoint{}; // the left (X<0) point of the central strip
42 stripPoint_t rightPoint{}; // the right(X>0) point of the central strip
43 };
44
45 /* Constructor */
46 PcbElement(stripConfiguration_t config, const Element& element);
47
48 /* The return type of the getStrip method: three points along the strip, in quadruplet coordinate */
49 struct strip_t {
50 Amg::Vector3D center{Amg::Vector3D::Zero()};
51 Amg::Vector3D left{Amg::Vector3D::Zero()};
52 Amg::Vector3D right{Amg::Vector3D::Zero()};
53 };
54
55 /* Returns three points (center, left, right) of a given strip, in quadruplet coordinates. */
56 strip_t getStrip(ParameterClass iclass, int stripNumber) const;
57
58 /* Returns a point within sx, in [-0.5,+0.5] aroung the strip, parameterized by second coordinate sy, in [-1,+1] */
59 Amg::Vector3D getPositionAlongStrip(ParameterClass iclass, int stripNumber, double sx, double sy) const;
60
61 private:
63 const Element& m_element; // reference element of a PCB
64 };
65}
66
67#endif
68
Element: a node in a hierarchy of alignment frames.
Definition Element.h:52
Amg::Vector3D getPositionAlongStrip(ParameterClass iclass, int stripNumber, double sx, double sy) const
const Element & m_element
Definition PcbElement.h:63
Element::ParameterClass ParameterClass
Definition PcbElement.h:29
PcbElement(stripConfiguration_t config, const Element &element)
strip_t getStrip(ParameterClass iclass, int stripNumber) const
stripConfiguration_t m_config
Definition PcbElement.h:62
Eigen::Matrix< double, 3, 1 > Vector3D