ATLAS Offline Software
Loading...
Searching...
No Matches
LArOFC.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8#include <cassert>
9
10LArOFC::LArOFC(const LArOnlineID_Base* onlineID, const LArOnOffIdMapping* cabling, const size_t nGains) :
11 m_onlineID(onlineID),
12 m_cabling(cabling) {
13
14 assert(m_onlineID);
15 assert(nGains<=CaloGain::LARNGAIN && nGains>0);
16
17 for (size_t i=0;i<nGains;++i) {
18 m_OFCa[i].resize(onlineID->channelHashMax());
19 m_OFCb[i].resize(onlineID->channelHashMax());
20 }
21
22}
23
25
26bool LArOFC::setOFC(const IdentifierHash& hid, const int gain, std::pair<std::vector<float>,std::vector<float>> ofcab) {
27 if (gain >= CaloGain::LARNGAIN || hid >= m_OFCa[gain].size()) return false;
28 m_OFCa[gain][hid].swap(ofcab.first);
29 m_OFCb[gain][hid].swap(ofcab.second);
30 return true;
31}
32
33ILArOFC::OFCRef_t LArOFC::OFC_a(const HWIdentifier &hwid, int gain, int) const {
34 const IdentifierHash hid = m_onlineID->channel_Hash(hwid);
35 return m_OFCa[gain][hid];
36}
37
38ILArOFC::OFCRef_t LArOFC::OFC_a(const Identifier &id, int gain, int) const {
39 const HWIdentifier hwid = m_cabling->createSignalChannelID(id);
40 return this->OFC_a(hwid, gain);
41}
42
43ILArOFC::OFCRef_t LArOFC::OFC_b(const HWIdentifier &hwid, int gain, int) const {
44 const IdentifierHash hid = m_onlineID->channel_Hash(hwid);
45 return m_OFCb[gain][hid];
46}
47
48ILArOFC::OFCRef_t LArOFC::OFC_b(const Identifier &id, int gain, int) const {
49 const HWIdentifier hwid = m_cabling->createSignalChannelID(id);
50 return this->OFC_b(hwid, gain);
51}
52
53float LArOFC::timeOffset(const HWIdentifier&, int) const {
54 return 0;
55}
56float LArOFC::timeOffset(const Identifier&, int) const {
57 return 0;
58}
59unsigned LArOFC::nTimeBins(const HWIdentifier&, int) const {
60 return 1;
61}
62unsigned LArOFC::nTimeBins(const Identifier&, int) const {
63 return 1;
64}
65float LArOFC::timeBinWidth(const HWIdentifier&, int) const {
66 return 1;
67}
68float LArOFC::timeBinWidth(const Identifier&, int) const {
69 return 1;
70}
LArVectorProxy OFCRef_t
This class defines the interface for accessing Optimal Filtering coefficients for each channel provid...
Definition ILArOFC.h:26
This is a "hash" representation of an Identifier.
std::array< vecOFCa, CaloGain::LARNGAIN > m_OFCb
Definition LArOFC.h:62
virtual ILArOFC::OFCRef_t OFC_b(const HWIdentifier &id, int gain, int tbin=0) const
Definition LArOFC.cxx:43
bool setOFC(const IdentifierHash &hid, const int gain, std::pair< std::vector< float >, std::vector< float > > ofcab)
Definition LArOFC.cxx:26
virtual ~LArOFC()
Definition LArOFC.cxx:24
const LArOnOffIdMapping * m_cabling
Definition LArOFC.h:65
virtual ILArOFC::OFCRef_t OFC_a(const HWIdentifier &id, int gain, int tbin=0) const
access to OFCs by online ID, gain, and tbin (!=0 for testbeam)
Definition LArOFC.cxx:33
const LArOnlineID_Base * m_onlineID
Definition LArOFC.h:64
LArOFC(const LArOnlineID_Base *onlineID, const LArOnOffIdMapping *cabling, const size_t nGains)
Definition LArOFC.cxx:10
virtual unsigned nTimeBins(const HWIdentifier &id, int gain) const
Definition LArOFC.cxx:59
virtual float timeOffset(const HWIdentifier &id, int gain) const
Definition LArOFC.cxx:53
std::array< vecOFCa, CaloGain::LARNGAIN > m_OFCa
Definition LArOFC.h:61
virtual float timeBinWidth(const HWIdentifier &id, int gain) const
Definition LArOFC.cxx:65
Helper for the Liquid Argon Calorimeter cell identifiers.
size_type channelHashMax() const
Define channel hash tables max size.
@ LARNGAIN
Definition CaloGain.h:19