42 std::array<std::array<unsigned int, kMMFE8sPerLayer>,
kPlanes> mmfe8s{};
44 for(
unsigned int L=0; L<
kPlanes; L++){
46 for(unsigned int p=1; p<=kPCBsPerLayer; p++){
48 for(unsigned int s=0; s<2; s++){
49 unsigned int R = (L%2==s) ? (p-1)*2 : (p-1)*2+1;
59 if (mmfe8s[m_plane][region]==1){
65 if (mmfe8s[m_plane][region]==0){
73 if(mmfe8s[m_plane][region]==0){
78 const Amg::Vector3D globalPos = readout->stripPosition(gctx,
id);
79 m_R = globalPos.perp();
81 m_PitchOverZ = design.stripPitch()/m_Z;
82 m_RZslope = m_R / m_Z;
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);
92 m_refR0 = distanceFromZAxis;
95 double index = std::round((std::abs(m_RZslope)-0.1)/5e-04);
96 m_Rp = distanceFromZAxis + (0.1 + index*((0.6 - 0.1)/1000.))*(std::abs(m_Z) - refPos.z());
Scalar perp() const
perp method - perpendicular length
MMT_Hit(const Identifier &id, const float stripTime, const int BC, const MuonGMR4::MuonDetectorManager *detManager, const ActsTrk::GeometryContext &gctx)
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.
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.
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
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
Definitions shared by the classes of the MM trigger processor emulation.
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).