ATLAS Offline Software
TGCCandData.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
5 
6 namespace L0Muon {
7 
9  return m_coinType;
10 }
11 
12 float TGCCandData::deltaPhi() const {
13  float dphi = static_cast<float>(m_deltaPhi & DPHI_BIT_MASK) / static_cast<float>(DPHI_BIT_MASK+1) * s_dphiRange;
14  return (m_deltaPhi & (DPHI_BIT_MASK + 1)) ? dphi : -1. * dphi;
15 }
16 
17 float TGCCandData::deltaTheta() const {
18  float dtheta = static_cast<float>(m_deltaTheta & DTHETA_BIT_MASK) / static_cast<float>(DTHETA_BIT_MASK+1) * s_dthetaRange;
19  return (m_deltaTheta & (DTHETA_BIT_MASK + 1)) ? dtheta : -1. * dtheta;
20 }
21 
23  return m_nswSegment;
24 }
25 
26 
28  m_coinType = cointype & COINTYPE_BIT_MASK;
29 }
30 
31 void TGCCandData::setDeltaPhi(float dphi) {
32  m_deltaPhi = std::min(static_cast<uint8_t>(std::abs(dphi) / s_dphiRange * static_cast<float>(DPHI_BIT_MASK+1)),
33  static_cast<uint8_t>(DPHI_BIT_MASK));
34  if (dphi > 0.) m_deltaPhi += DPHI_BIT_MASK + 1;
35 }
36 
37 void TGCCandData::setDeltaTheta(float dtheta) {
38  m_deltaTheta = std::min(static_cast<uint8_t>(std::abs(dtheta) / s_dthetaRange * static_cast<float>(DTHETA_BIT_MASK+1)),
39  static_cast<uint8_t>(DTHETA_BIT_MASK));
40  if (dtheta > 0.) m_deltaTheta += DTHETA_BIT_MASK + 1;
41 }
42 
44  m_nswSegment = nswout;
45 }
46 
47 } // end of L0Muon namespace
L0Muon::TGCCandData::setDeltaPhi
void setDeltaPhi(float dphi)
Definition: TGCCandData.cxx:31
L0Muon::TGCCandData::setNswSegment
void setNswSegment(uint32_t nswout)
Definition: TGCCandData.cxx:43
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:558
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
L0Muon::TGCCandData::coinType
uint8_t coinType() const
Definition: TGCCandData.cxx:8
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
L0Muon::TGCCandData::s_dthetaRange
static constexpr float s_dthetaRange
range of the RPC hits z positions
Definition: TGCCandData.h:30
L0Muon::TGCCandData::COINTYPE_BIT_MASK
static constexpr uint8_t COINTYPE_BIT_MASK
Bit mask for Coincidence Types.
Definition: TGCCandData.h:34
L0Muon
Definition: L0MuonSmearingAlg.cxx:13
L0Muon::TGCCandData::m_deltaTheta
uint8_t m_deltaTheta
Segment polar angle w.r.t. the vector from IP to the segment position (7 bits)
Definition: TGCCandData.h:50
L0Muon::TGCCandData::m_deltaPhi
uint8_t m_deltaPhi
Segment azimuthal angle w.r.t. the vector from IP to the segment position (4 bits)
Definition: TGCCandData.h:47
L0Muon::TGCCandData::nswSegment
uint32_t nswSegment() const
Definition: TGCCandData.cxx:22
L0Muon::TGCCandData::DPHI_BIT_MASK
static constexpr uint8_t DPHI_BIT_MASK
Bit mask for deltaPhi : 1 bit for sign and 3 bits.
Definition: TGCCandData.h:36
L0Muon::TGCCandData::DTHETA_BIT_MASK
static constexpr uint8_t DTHETA_BIT_MASK
Bit mask for deltaTheta : 1 bit for sign and 6 bits.
Definition: TGCCandData.h:38
L0Muon::TGCCandData::m_nswSegment
uint32_t m_nswSegment
Copy of the NSW-TP output (To be defined)
Definition: TGCCandData.h:53
TGCCandData.h
L0Muon::TGCCandData::deltaTheta
float deltaTheta() const
Definition: TGCCandData.cxx:17
L0Muon::TGCCandData::deltaPhi
float deltaPhi() const
Definition: TGCCandData.cxx:12
L0Muon::TGCCandData::setDeltaTheta
void setDeltaTheta(float dtheta)
Definition: TGCCandData.cxx:37
L0Muon::TGCCandData::m_coinType
uint8_t m_coinType
Coincidence Type (3 bits) [rsv.][GoodMF][InnerCoin].
Definition: TGCCandData.h:44
L0Muon::TGCCandData::s_dphiRange
static constexpr float s_dphiRange
Definition: TGCCandData.h:31
L0Muon::TGCCandData::setCoinType
void setCoinType(uint8_t cointype)
Definition: TGCCandData.cxx:27