ATLAS Offline Software
Loading...
Searching...
No Matches
LArOFC.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef LARRAWCONDITIONS_LAROFC
6#define LARRAWCONDITIONS_LAROFC
7
13
15
16#include <vector>
17#include <array>
18
19class LArOFC : public ILArOFC {
20
21 public:
22 LArOFC(const LArOnlineID_Base* onlineID,
23 const LArOnOffIdMapping* cabling,
24 const size_t nGains);
25
26 virtual ~LArOFC();
27
28 bool setOFC(const IdentifierHash& hid, const int gain, std::pair<std::vector<float>,std::vector<float>> ofcab);
29
30 virtual ILArOFC::OFCRef_t OFC_a(const HWIdentifier& id,
31 int gain,
32 int tbin=0) const;
33
34 virtual ILArOFC::OFCRef_t OFC_b(const HWIdentifier& id,
35 int gain,
36 int tbin=0) const;
37
38 virtual ILArOFC::OFCRef_t OFC_a(const Identifier& id,
39 int gain,
40 int tbin=0) const;
41 virtual ILArOFC::OFCRef_t OFC_b(const Identifier& id,
42 int gain,
43 int tbin=0) const;
44 //FIXME: is used, for data
45 virtual float timeOffset(const HWIdentifier& id, int gain) const;
46 virtual float timeOffset(const Identifier& CellID, int gain) const;
47 virtual unsigned nTimeBins(const HWIdentifier& id, int gain) const;
48 virtual unsigned nTimeBins(const Identifier& CellID, int gain) const;
49 virtual float timeBinWidth(const HWIdentifier& id, int gain) const;
50 virtual float timeBinWidth(const Identifier& CellID, int gain) const;
51
52 private:
53 // dimensions n x m
54 // n: number of IDs
55 // m: number of OFCs
56 typedef std::vector<std::vector<float> > vecOFCa;
57 typedef std::vector<std::vector<float> > vecOFCb;
58
59 // dimensions k x (n x m)
60 // k: 3 (value of enum LARNGAIN)
61 std::array<vecOFCa, CaloGain::LARNGAIN> m_OFCa;
62 std::array<vecOFCa, CaloGain::LARNGAIN> m_OFCb;
63
66
67};
68
70CLASS_DEF( LArOFC, 71011311, 1)
71#include "AthenaKernel/CondCont.h"
73
74#endif
#define CONDCONT_DEF(...)
Definition CondCont.h:1413
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
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
std::vector< std::vector< float > > vecOFCa
Definition LArOFC.h:56
std::vector< std::vector< float > > vecOFCb
Definition LArOFC.h:57
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.