17 {
18 const Muon::IMuonIdHelperSvc* idHelperSvc = detManager->
idHelperSvc();
19 const MmIdHelper& idHelper = idHelperSvc->
mmIdHelper();
27
28 const MuonGMR4::MmReadoutElement* readout = detManager->getMmReadoutElement(id);
30
31
34
35
37
38
40
41
42 std::array<std::array<unsigned int, kMMFE8sPerLayer>,
kPlanes> mmfe8s{};
43
45
47
48 for(
unsigned int s=0;
s<2;
s++){
49 unsigned int R = (
L%2==
s) ? (p-1)*2 : (
p-1)*2+1;
51 }
52 }
53 }
54
56
59 if (mmfe8s[
m_plane][region]==1){
61 }else{
63 }
64 }else{
65 if (mmfe8s[
m_plane][region]==0){
67 }else{
69 }
70 }
71
72
75 }
76
77
79 m_R = globalPos.perp();
83
84
85 const Identifier refId = idHelper.
channelID(stationName, 1, 1, 1, 1, 1);
86 const MuonGMR4::MmReadoutElement* roEl = detManager->getMmReadoutElement(refId);
89 const Identifier refStripId = idHelper.
channelID(stationName, 1, 1, 1, 1, firstActiveStrip);
91
94
96 m_Rp = distanceFromZAxis + (0.1 +
index*((0.6 - 0.1)/1000.))*(std::abs(
m_Z) - refPos.z());
98}
Identifier channelID(int stationName, int stationEta, int stationPhi, int multilayer, int gasGap, int channel) const
int channel(const Identifier &id) const override
int gasGap(const Identifier &id) const override
get the hashes
int multilayer(const Identifier &id) const
double moduleHeight() const
Returns the height along the z-axis.
const StripLayer & stripLayer(const Identifier &measId) const
IdentifierHash layerHash(const Identifier &measId) const override final
The layer hash removes the bits from the IdentifierHash corresponding to the measurement's channel nu...
unsigned int firstStrip(const IdentifierHash &layerHash) const
Returns the first active strip.
Amg::Vector3D stripPosition(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns a pointer to the central MuonIdHelperSvc.
Amg::Vector3D center(const ActsTrk::GeometryContext &ctx) const
Returns the geometrical center point of the readout element.
double stereoAngle() const
Returns the value of the stereo angle.
double stripPitch() const
Distance between two adjacent strips.
bool hasStereoAngle() const
Returns whether a stereo angle is defined.
const StripDesign & design(bool phiView=false) const
Returns the underlying strip design.
virtual const MmIdHelper & mmIdHelper() const =0
access to CscIdHelper
virtual int stationPhi(const Identifier &id) const =0
Return stationPhi for all technologies.
virtual int stationEta(const Identifier &id) const =0
Return stationEta for all technologies.
virtual std::string chamberNameString(const Identifier &id) const =0
print chamber name to string
virtual int sector(const Identifier &id) const =0
return sector number 1-16, odd=large, even=small
Eigen::Matrix< double, 3, 1 > Vector3D
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
constexpr int kStripsEta1
Nominal strips of one layer of the |stationEta| = 1 module (5120).
constexpr int kStripsPerVMM
Strips read out by one VMM.
constexpr int kStripsPerMMFE8
Strips read out by one MMFE8 board.
constexpr int kPlanes
Planes of the MM octuplet (2 multilayers x 4 gas gaps).
constexpr int kMMFE8sPerHalfLayer
MMFE8 boards in each radial half of the layer (inner: 0-7, outer: 8-15).
constexpr int kPCBsPerLayer
PCBs of one sector layer (2 MMFE8 boards per PCB).