ATLAS Offline Software
Loading...
Searching...
No Matches
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
13class MsgStream;
14
15namespace Muon {
16
20class 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};
38 uint16_t m_relBcid{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
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
81MsgStream& operator << ( MsgStream& sl, const Muon::MM_RawData& coll);
82
84std::ostream& operator << ( std::ostream& sl, const Muon::MM_RawData& coll);
85
86
87#endif
88
89
90
91
92
93
94
MsgStream & operator<<(MsgStream &sl, const Muon::MM_RawData &coll)
Overload of << operator for MsgStream for debug output.
Definition MM_RawData.cxx:8
Temporary class to hold the MM RDO.
Definition MM_RawData.h:20
static constexpr int s_BCWindow
Definition MM_RawData.h:75
MM_RawData(const Identifier &id)
Definition MM_RawData.h:45
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
int time() const
Definition MM_RawData.h:62
MM_RawData & operator=(MM_RawData &&)=default
uint16_t m_relBcid
rel bcid
Definition MM_RawData.h:38
friend class MM_RawDataCnv_p3
Definition MM_RawData.h:24
MM_RawData(const MM_RawData &)=default
static constexpr double s_lowerTimeBound
Definition MM_RawData.h:72
int channel() const
Definition MM_RawData.h:61
friend class MM_RawDataCnv_p1
Definition MM_RawData.h:22
Identifier m_id
Definition MM_RawData.h:29
friend class MM_RawDataCnv_p2
Definition MM_RawData.h:23
int m_channel
channel Id
Definition MM_RawData.h:32
const Identifier & identify() const
Definition MM_RawData.h:58
bool m_timeAndChargeInCounts
Definition MM_RawData.h:40
uint16_t relBcid() const
Definition MM_RawData.h:63
int m_time
tdc counts or ns
Definition MM_RawData.h:34
bool timeAndChargeInCounts() const
Definition MM_RawData.h:65
int charge() const
Definition MM_RawData.h:64
MM_RawData(MM_RawData &&)=default
~MM_RawData()=default
int m_charge
adc counts or electrons
Definition MM_RawData.h:36
MM_RawData()=default
MM_RawData & operator=(const MM_RawData &)=default
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.