ATLAS Offline Software
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 
10 #include "MuonNSWAsBuilt/Element.h"
12 
13 namespace 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 {
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 
NswAsBuilt::PcbElement::stripPoint_t
Definition: PcbElement.h:32
fitman.sy
sy
Definition: fitman.py:524
NswAsBuilt::PcbElement::m_element
const Element & m_element
Definition: PcbElement.h:63
python.compressB64.sx
string sx
Definition: compressB64.py:96
NswAsBuilt::PcbElement::stripPoint_t::pitchvector
Amg::Vector3D pitchvector
Definition: PcbElement.h:34
NswAsBuilt::PcbElement::PcbElement
PcbElement(stripConfiguration_t config, const Element &element)
Definition: PcbElement.cxx:12
NswAsBuilt::PcbElement::stripConfiguration_t::centralStripNumber
int centralStripNumber
Definition: PcbElement.h:39
NswAsBuilt::PcbElement::stripConfiguration_t::leftPoint
stripPoint_t leftPoint
Definition: PcbElement.h:41
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
NswAsBuilt::PcbElement::stripConfiguration_t::rightPoint
stripPoint_t rightPoint
Definition: PcbElement.h:42
Element.h
GeoPrimitives.h
NswAsBuilt::PcbElement::strip_t
Definition: PcbElement.h:49
NswAsBuilt::PcbElement::getPositionAlongStrip
Amg::Vector3D getPositionAlongStrip(ParameterClass iclass, int stripNumber, double sx, double sy) const
Definition: PcbElement.cxx:37
NswAsBuilt::PcbElement::ParameterClass
Element::ParameterClass ParameterClass
Definition: PcbElement.h:29
NswAsBuilt::PcbElement::strip_t::right
Amg::Vector3D right
Definition: PcbElement.h:52
NswAsBuilt::PcbElement::stripPoint_t::pos
Amg::Vector3D pos
Definition: PcbElement.h:33
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
NswAsBuilt::Element::ParameterClass
ParameterClass
Definition: Element.h:63
NswAsBuilt::PcbElement::strip_t::center
Amg::Vector3D center
Definition: PcbElement.h:50
NswAsBuilt::PcbElement::strip_t::left
Amg::Vector3D left
Definition: PcbElement.h:51
NswAsBuilt::PcbElement::getStrip
strip_t getStrip(ParameterClass iclass, int stripNumber) const
Definition: PcbElement.cxx:18
NswAsBuilt
Definition: CathodeBoardElement.h:12
NswAsBuilt::Element
Element: a node in a hierarchy of alignment frames.
Definition: Element.h:52
NswAsBuilt::PcbElement::m_config
stripConfiguration_t m_config
Definition: PcbElement.h:62
NswAsBuilt::PcbElement::stripConfiguration_t
Definition: PcbElement.h:38
NswAsBuilt::PcbElement::stripConfiguration_t::centerPoint
stripPoint_t centerPoint
Definition: PcbElement.h:40
NswAsBuilt::PcbElement
Helper class saving all the needed information to compute strips for a particular PCB.
Definition: PcbElement.h:26
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32