ATLAS Offline Software
TileSampleNoise.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILECONDITIONS_TILESAMPLENOISE_H
6 #define TILECONDITIONS_TILESAMPLENOISE_H
7 
8 // Tile includes
10 
11 #include "AthenaKernel/CLASS_DEF.h"
12 #include "AthenaKernel/CondCont.h"
13 
19 
20  public:
21 
22  TileSampleNoise(std::unique_ptr<TileCalibDataFlt> sampleNoise) : m_sampleNoise{std::move(sampleNoise)} {};
23 
24  virtual ~TileSampleNoise() = default;
25 
26  float getPed(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
27 
28  float getHfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
29 
30  float getLfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
31 
32  float getHfn1(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
33 
34  float getHfn2(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
35 
36  float getHfnNorm(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const;
37 
38  private:
39 
40  std::unique_ptr<TileCalibDataFlt> m_sampleNoise;
41 };
42 
43 
44 // inlines
45 inline
46 float TileSampleNoise::getPed(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
47  return m_sampleNoise->getCalibDrawer(drawerIdx)->getData(channel, adc, 0);
48 }
49 
50 inline
51 float TileSampleNoise::getHfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
52  return m_sampleNoise->getCalibDrawer(drawerIdx)->getData(channel, adc, 1);
53 }
54 
55 inline
56 float TileSampleNoise::getLfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
57  const TileCalibDrawerFlt* calibDrawer = m_sampleNoise->getCalibDrawer(drawerIdx);
58  //=== check if Lfn is stored already if not - return zero
59  return (calibDrawer->getObjSizeUint32() < 3) ? 0. : calibDrawer->getData(channel, adc, 2);
60 }
61 
62 inline
63 float TileSampleNoise::getHfn1(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
64  const TileCalibDrawerFlt* calibDrawer = m_sampleNoise->getCalibDrawer(drawerIdx);
65  //=== check if Hfn1 is stored already, if not - return old Hfn
66  return (calibDrawer->getObjSizeUint32() < 4) ? calibDrawer->getData(channel, adc, 1)
67  : calibDrawer->getData(channel, adc, 3);
68 }
69 
70 inline
71 float TileSampleNoise::getHfn2(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
72  const TileCalibDrawerFlt* calibDrawer = m_sampleNoise->getCalibDrawer(drawerIdx);
73  //=== check if Hfn2 is stored already, if not - return zero
74  return (calibDrawer->getObjSizeUint32() < 5) ? 0.0 : calibDrawer->getData(channel, adc, 4);
75 }
76 
77 inline
78 float TileSampleNoise::getHfnNorm(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const {
79  const TileCalibDrawerFlt* calibDrawer = m_sampleNoise->getCalibDrawer(drawerIdx);
80  //=== check if HfnNorm is stored already, if not - return zero
81  return (calibDrawer->getObjSizeUint32() < 6) ? 0.0 : calibDrawer->getData(channel, adc, 5);
82 }
83 
84 // Set up the ClassID of this class (obtained using 'clid -s TileSampleNoise')
85 CLASS_DEF(TileSampleNoise, 197315591, 0)
86 // Set up the ClassID of the container (obtained using 'clid -cs TileSampleNoise')
88 
89 #endif
TileCalibDrawerFlt
Generic class for storing a number of floats (Flt) for each channel or ADC.
Definition: TileCalibDrawerFlt.h:27
TileSampleNoise::getHfn2
float getHfn2(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:71
CondCont.h
Hold mappings of ranges to condition objects.
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileSampleNoise::TileSampleNoise
TileSampleNoise(std::unique_ptr< TileCalibDataFlt > sampleNoise)
Definition: TileSampleNoise.h:22
TileCalibData.h
TileSampleNoise
Condition object to keep and provide Tile sample noise.
Definition: TileSampleNoise.h:18
TileSampleNoise::~TileSampleNoise
virtual ~TileSampleNoise()=default
TileSampleNoise::getHfn
float getHfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:51
TileSampleNoise::getHfn1
float getHfn1(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:63
TileSampleNoise::getHfnNorm
float getHfnNorm(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:78
BchCleanup.calibDrawer
calibDrawer
Definition: BchCleanup.py:217
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
TileSampleNoise::getPed
float getPed(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:46
TileSampleNoise::getLfn
float getLfn(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Definition: TileSampleNoise.h:56
CONDCONT_DEF
CONDCONT_DEF(TileSampleNoise, 176906267)
CLASS_DEF.h
macros to associate a CLID to a type
TileSampleNoise::m_sampleNoise
std::unique_ptr< TileCalibDataFlt > m_sampleNoise
Definition: TileSampleNoise.h:40