ATLAS Offline Software
Loading...
Searching...
No Matches
MdtROD_Decoder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONBYTESTREAM_MDTROD_DECODER_H
6#define MUONBYTESTREAM_MDTROD_DECODER_H
7
8#include <cassert>
9#include <map>
10#include <string>
11#include <vector>
12
16#include "GaudiKernel/ServiceHandle.h"
17#include "MDT_Hid2RESrcID.h"
18#include "MdtAmtReadOut.h"
19#include "MdtCsmReadOut.h"
20#include "MdtHptdcReadOut.h"
21#include "MdtRODReadOut.h"
24#include "MuonRDO/MdtAmtHit.h"
25#include "MuonRDO/MdtCsm.h"
28#include "eformat/SourceIdentifier.h"
29#include "eformat/Version.h"
30
31class MdtROD_Decoder : public AthAlgTool {
32public:
33 using leading_amt_map = std::map<uint16_t, std::unique_ptr<MdtAmtHit>>;
34
37 MdtROD_Decoder(const std::string& type, const std::string& name, const IInterface* parent);
38
41 virtual ~MdtROD_Decoder() = default;
42
45 static const InterfaceID& interfaceID();
46
47 virtual StatusCode initialize() override;
48 virtual StatusCode finalize() override;
49
51 MDT_Hid2RESrcID* getHid2RE() const { return m_hid2re.get(); }
52
53 StatusCode fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag, MdtCsmContainer& rdoIDC) const;
54
55 int specialROBNumber() const { return m_specialROBNumber; }
56
57private:
58 std::unique_ptr<MDT_Hid2RESrcID> m_hid2re{};
59 SG::ReadCondHandleKey<MuonMDT_CablingMap> m_readKey{this, "ReadKey", "MuonMDT_CablingMap", "Key of MuonMDT_CablingMap"};
60
61 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
62
65
66 // variables to count how often the caching kicks in
67 // Mutable as this is just to count calls of const function
68 mutable std::atomic_uint m_nCache ATLAS_THREAD_SAFE = 0;
69 mutable std::atomic_uint m_nNotCache ATLAS_THREAD_SAFE = 0;
70};
71
72#endif
Define macros for attributes used to control the static checker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This container provides acces to the MDT RDOs.
std::unique_ptr< MDT_Hid2RESrcID > m_hid2re
MDT_Hid2RESrcID * getHid2RE() const
TODO Add documentation.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
int specialROBNumber() const
int m_specialROBNumber
TMP special ROB number for sector13 runs.
MdtROD_Decoder(const std::string &type, const std::string &name, const IInterface *parent)
constructor
virtual StatusCode finalize() override
virtual ~MdtROD_Decoder()=default
destructor
StatusCode fillCollections(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, MdtCsmContainer &rdoIDC) const
virtual StatusCode initialize() override
std::atomic_uint m_nCache ATLAS_THREAD_SAFE
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
SG::ReadCondHandleKey< MuonMDT_CablingMap > m_readKey
std::map< uint16_t, std::unique_ptr< MdtAmtHit > > leading_amt_map
eformat::ROBFragment< PointerType > ROBFragment
Definition RawEvent.h:27