ATLAS Offline Software
MM_RawData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONRDO_MM_RAWDATA_H
6 #define MUONRDO_MM_RAWDATA_H
7 
8 #include <inttypes.h>
9 #include <vector>
10 #include <iosfwd>
11 #include "Identifier/Identifier.h"
12 
13 class MsgStream;
14 
15 namespace Muon {
16 
20 class MM_RawData final{
21 
22  friend class MM_RawDataCnv_p1;
23  friend class MM_RawDataCnv_p2;
24  friend class MM_RawDataCnv_p3;
25 
26  private:
27 
28  // not sure whether the offline identifier is needed
30 
32  int m_channel{0};
34  int m_time{0};
36  int m_charge{0};
39  //indicator if the charge and time are in counts or physical units
41 
42 
43  public:
44 
45  MM_RawData ( const Identifier& id ) : m_id(id) {}
46 
47  MM_RawData ( const Identifier& id, const int channel,
48  const int time, const int charge, const uint16_t relBcid, bool timeAndChargeInCounts)
50 
51  MM_RawData() = default;
52  MM_RawData(const MM_RawData&) = default;
53  MM_RawData(MM_RawData&&) = default;
54  MM_RawData& operator=(const MM_RawData&) = default;
56  ~MM_RawData() = default;
57 
58  const Identifier& identify() const { return m_id; }
59 
60  // access functions to the online data
61  int channel() const { return m_channel; }
62  int time() const { return m_time; }
63  uint16_t relBcid() const { return m_relBcid; }
64  int charge() const { return m_charge; }
66 
67 
68  // Lower time bound of digits selected at the end of digitization, excluding the peaktime.
69  // As of June 2022, the main event is assigned to relative_BCID=1, which is set to correspond
70  // to the time interval [-12.5ns, +12.5ns]. The digits within the BC window [0, +7] are kept.
71  // Therefore the lower time bound is -37.5 ns.
72  static constexpr double s_lowerTimeBound{-37.5};
73 
74  // BC window
75  static constexpr int s_BCWindow{8};
76 
77 };
78 }
79 
81 MsgStream& operator << ( MsgStream& sl, const Muon::MM_RawData& coll);
82 
84 std::ostream& operator << ( std::ostream& sl, const Muon::MM_RawData& coll);
85 
86 
87 #endif
88 
89 
90 
91 
92 
93 
94 
Muon::MM_RawDataCnv_p2
Definition: MM_RawDataCnv_p2.h:18
Muon::MM_RawData::relBcid
uint16_t relBcid() const
Definition: MM_RawData.h:63
operator<<
MsgStream & operator<<(MsgStream &sl, const Muon::MM_RawData &coll)
Overload of << operator for MsgStream for debug output.
Definition: MM_RawData.cxx:8
Muon::MM_RawData::s_lowerTimeBound
static constexpr double s_lowerTimeBound
Definition: MM_RawData.h:72
Muon::MM_RawData::timeAndChargeInCounts
bool timeAndChargeInCounts() const
Definition: MM_RawData.h:65
Muon::MM_RawData::identify
const Identifier & identify() const
Definition: MM_RawData.h:58
Muon::MM_RawData::time
int time() const
Definition: MM_RawData.h:62
Muon::MM_RawDataCnv_p1
Definition: MM_RawDataCnv_p1.h:18
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MM_RawData::s_BCWindow
static constexpr int s_BCWindow
Definition: MM_RawData.h:75
Muon::MM_RawData::~MM_RawData
~MM_RawData()=default
Muon::MM_RawData::operator=
MM_RawData & operator=(const MM_RawData &)=default
Muon::MM_RawData::m_charge
int m_charge
adc counts or electrons
Definition: MM_RawData.h:36
Muon::MM_RawDataCnv_p3
Definition: MM_RawDataCnv_p3.h:18
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
Muon::MM_RawData
Temporary class to hold the MM RDO.
Definition: MM_RawData.h:20
Muon::MM_RawData::MM_RawData
MM_RawData(const Identifier &id, const int channel, const int time, const int charge, const uint16_t relBcid, bool timeAndChargeInCounts)
Definition: MM_RawData.h:47
Muon::MM_RawData::MM_RawData
MM_RawData(MM_RawData &&)=default
Muon::MM_RawData::operator=
MM_RawData & operator=(MM_RawData &&)=default
Muon::MM_RawData::MM_RawData
MM_RawData()=default
Muon::MM_RawData::channel
int channel() const
Definition: MM_RawData.h:61
Muon::MM_RawData::m_id
Identifier m_id
Definition: MM_RawData.h:29
Muon::MM_RawData::charge
int charge() const
Definition: MM_RawData.h:64
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
Muon::MM_RawData::m_channel
int m_channel
channel Id
Definition: MM_RawData.h:32
Muon::MM_RawData::m_time
int m_time
tdc counts or ns
Definition: MM_RawData.h:34
Muon::MM_RawData::MM_RawData
MM_RawData(const MM_RawData &)=default
Muon::MM_RawData::m_relBcid
uint16_t m_relBcid
rel bcid
Definition: MM_RawData.h:38
Muon::MM_RawData::m_timeAndChargeInCounts
bool m_timeAndChargeInCounts
Definition: MM_RawData.h:40
Muon::MM_RawData::MM_RawData
MM_RawData(const Identifier &id)
Definition: MM_RawData.h:45
Identifier
Definition: IdentifierFieldParser.cxx:14