ATLAS Offline Software
TileCellNoiseFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 #ifndef TILERECUTILS_TILECELLNOISEFILTER_H
9 #define TILERECUTILS_TILECELLNOISEFILTER_H
10 
11 // Tile includes
15 
16 // Calo includes
20 
21 // Atlas includes
24 #include "GaudiKernel/ToolHandle.h"
25 #include "GaudiKernel/ServiceHandle.h"
26 
27 
28 // forward declarations
29 class TileID;
30 class TileHWID;
31 class TileCell;
32 class CaloCellContainer;
33 
38 class TileCellNoiseFilter: public extends<AthAlgTool, ICaloCellMakerTool> {
39 
40  public:
41 
43  TileCellNoiseFilter(const std::string& type, const std::string& name,
44  const IInterface* parent);
45 
47  virtual ~TileCellNoiseFilter() {};
48 
50  static const InterfaceID& interfaceID();
51 
53  StatusCode initialize() override;
55  StatusCode finalize() override;
56 
58  virtual StatusCode process (CaloCellContainer* cellcoll,
59  const EventContext& ctx) const override;
60 
61  private:
62 
63  static const int s_maxPartition = 4; // LBA,LBC,EBA,EBC
64  static const int s_maxDrawer = 64; // # of drawers per partition
65  static const int s_maxMOB = 4; // # of motherboards per drawer
66  static const int s_maxChannel = 12; // # of channels per motherboard
67 
69 
70  // set common-mode subtructed energy
71  void setCMSEnergy(const TileEMScale* emScale, const cmdata_t& commonMode, TileCell *cell) const;
72 
73  // calculate common-mode for all the motherboards
74  int calcCM(const CaloNoise* caloNoise, const TileSampleNoise* sampleNoise, const TileEMScale* emScale,
75  const CaloCellContainer *cellcoll, cmdata_t& commonMode) const;
76 
77  // derive a value of common-mode shift
78  float getCMShift(const cmdata_t& commonMode,
79  int partition, int drawer, int channel) const
80  {
81  return commonMode[partition][drawer][channel / s_maxChannel];
82  }
83 
84  const TileID* m_tileID{nullptr};
85  const TileHWID* m_tileHWID{nullptr};
86 
91  "TileEMScale", "TileEMScale", "Input Tile EMS calibration constants"};
92 
97  "TileSampleNoise", "TileSampleNoise", "Input Tile sample noise"};
98 
100  "",
101  "CaloNoise object to read, or null to use the DB directly"};
102 
103  ToolHandle<ITileBadChanTool> m_tileBadChanTool{this,
104  "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};
105 
106  // properties
110 
112 
114 
115 };
116 
117 #endif // TILERECUTILS_TILECELLNOISEFILTER_H
TileCell
Definition: TileCell.h:57
TileCellNoiseFilter::m_tileHWID
const TileHWID * m_tileHWID
Pointer to TileHWID.
Definition: TileCellNoiseFilter.h:85
TileEMScale
Condition object to keep calibration factors of TileCal channels.
Definition: TileEMScale.h:87
TileCellNoiseFilter::s_maxMOB
static const int s_maxMOB
Definition: TileCellNoiseFilter.h:65
TileEMScale.h
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
TileCellNoiseFilter::finalize
StatusCode finalize() override
AlgTool finalize method.
Definition: TileCellNoiseFilter.cxx:131
TileCellNoiseFilter::~TileCellNoiseFilter
virtual ~TileCellNoiseFilter()
Virtual destructor.
Definition: TileCellNoiseFilter.h:47
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileSampleNoise
Condition object to keep and provide Tile sample noise.
Definition: TileSampleNoise.h:18
TileCellNoiseFilter::m_minimumNumberOfTruncatedChannels
float m_minimumNumberOfTruncatedChannels
Definition: TileCellNoiseFilter.h:108
TileCellNoiseFilter::m_truncationThresholdOnAbsEinSigma
float m_truncationThresholdOnAbsEinSigma
Definition: TileCellNoiseFilter.h:107
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
TileCellNoiseFilter::TileCellNoiseFilter
TileCellNoiseFilter(const std::string &type, const std::string &name, const IInterface *parent)
AlgTool like constructor.
Definition: TileCellNoiseFilter.cxx:35
TileCellNoiseFilter::s_caloIndex
static const CaloCell_ID::SUBCALO s_caloIndex
Definition: TileCellNoiseFilter.h:111
CaloCell_ID.h
TileCellNoiseFilter::s_maxChannel
static const int s_maxChannel
Definition: TileCellNoiseFilter.h:66
TileCellNoiseFilter::s_maxDrawer
static const int s_maxDrawer
Definition: TileCellNoiseFilter.h:64
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileCellNoiseFilter::initialize
StatusCode initialize() override
AlgTool initialize method.
Definition: TileCellNoiseFilter.cxx:53
TileCellNoiseFilter::m_sampleNoiseKey
SG::ReadCondHandleKey< TileSampleNoise > m_sampleNoiseKey
Name of TileSampleNoise in condition store.
Definition: TileCellNoiseFilter.h:96
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloCell_Base_ID::SUBCALO
SUBCALO
enumeration of sub calorimeters
Definition: CaloCell_Base_ID.h:46
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TileCellNoiseFilter
This tool subtracts common-mode noise from all TileCells.
Definition: TileCellNoiseFilter.h:38
CaloCell_Base_ID::TILE
@ TILE
Definition: CaloCell_Base_ID.h:46
TileCellNoiseFilter::setCMSEnergy
void setCMSEnergy(const TileEMScale *emScale, const cmdata_t &commonMode, TileCell *cell) const
Definition: TileCellNoiseFilter.cxx:137
ReadCondHandleKey.h
TileCellNoiseFilter::getCMShift
float getCMShift(const cmdata_t &commonMode, int partition, int drawer, int channel) const
Definition: TileCellNoiseFilter.h:78
CaloNoise
Definition: CaloNoise.h:16
TileCellNoiseFilter::s_maxPartition
static const int s_maxPartition
Definition: TileCellNoiseFilter.h:63
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CaloNoise.h
TileCellNoiseFilter::m_caloNoiseKey
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseKey
Definition: TileCellNoiseFilter.h:99
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
TileCellNoiseFilter::m_emScaleKey
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
Definition: TileCellNoiseFilter.h:90
ICaloCellMakerTool.h
SG::ReadCondHandleKey< TileEMScale >
TileSampleNoise.h
TileCellNoiseFilter::cmdata_t
float cmdata_t[s_maxPartition][s_maxDrawer][s_maxMOB]
Definition: TileCellNoiseFilter.h:68
TileCellNoiseFilter::process
virtual StatusCode process(CaloCellContainer *cellcoll, const EventContext &ctx) const override
proceed the coherent noise subtraction algorithm and correct Tile cell energies
Definition: TileCellNoiseFilter.cxx:78
TileCellNoiseFilter::m_tileID
const TileID * m_tileID
Pointer to TileID.
Definition: TileCellNoiseFilter.h:84
TileCellNoiseFilter::m_tileBadChanTool
ToolHandle< ITileBadChanTool > m_tileBadChanTool
Definition: TileCellNoiseFilter.h:103
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
StateLessPT_NewConfig.partition
partition
Definition: StateLessPT_NewConfig.py:49
ITileBadChanTool.h
TileCellNoiseFilter::m_maxNoiseSigma
float m_maxNoiseSigma
Definition: TileCellNoiseFilter.h:113
TileCellNoiseFilter::m_useTwoGaussNoise
bool m_useTwoGaussNoise
Definition: TileCellNoiseFilter.h:109
TileCellNoiseFilter::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: TileCellNoiseFilter.cxx:29
TileCellNoiseFilter::calcCM
int calcCM(const CaloNoise *caloNoise, const TileSampleNoise *sampleNoise, const TileEMScale *emScale, const CaloCellContainer *cellcoll, cmdata_t &commonMode) const
Definition: TileCellNoiseFilter.cxx:196