ATLAS Offline Software
TileTMDBMonitorAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILEMONITORING_TILETMDBMONITORALGORITHM_H
6 #define TILEMONITORING_TILETMDBMONITORALGORITHM_H
7 
13 
18 
20 #include "StoreGate/ReadHandle.h"
22 
23 #include "math.h"
24 
25 class TileHWID;
26 class TileCablingService;
27 
33 
34  public:
35 
37  virtual ~TileTMDBMonitorAlgorithm() = default;
38  virtual StatusCode initialize() override;
39  virtual StatusCode fillHistograms(const EventContext& ctx) const override;
40 
41 
42  void fillNoiseHistograms(const TileDigitsCollection* muRcvDigitsCollection, const int drawer, const int partition) const;
43 
44  private:
45 
46  Gaudi::Property<std::vector<float>> m_pulseEnergyRange{this,
47  "PulseEnergyRange", {0.5F, 5000.F}, "Energy [MeV] range for pulse shape"};
48 
49  Gaudi::Property<std::vector<float>> m_energyRange{this,
50  "EnergyRange", {100.0F, 10000.F}, "Energy [MeV] range for pulse shape"};
51 
52  Gaudi::Property<bool> m_fillDetailedHistograms{this,
53  "fillDetailedHistograms", false, "Fill monitoring histograms per TMDB channel"};
54 
56  "TileRawChannelContainer", "TileRawChannelCnt", "Input Tile raw channel container key"};
57 
59  "MuonReceiverRawChannelContainer", "MuRcvRawChCnt", "Input Tile muon receiver raw channel container key"};
60 
62  "MuonReceiverDigitsContainer", "MuRcvDigitsCnt", "Input Tile muon receiver digits container key"};
63 
64  ToolHandle<ITileCondToolTMDB> m_tileCondToolTMDB{this,
65  "TileCondToolTMDB", "TileCondToolTMDB", "Tile TMDB conditions tool"};
66 
71  "TileCablingSvc", "TileCablingSvc", "The Tile cabling service"};
72 
73  const TileHWID* m_tileHWID{nullptr};
74  const TileCablingService* m_cabling{nullptr};
75 
76  std::vector<int> m_peakGroups;
77  std::vector<int> m_energyGroups;
78 
79  std::vector<std::vector<std::vector<std::vector<float>>>> m_PedestalVector;
80 
81  std::vector<std::vector<std::vector<int>>> m_chanEnergyGroups;
82  std::vector<std::vector<std::vector<std::vector<int>>>> m_chanChannelNoiseGroups;
83  std::vector<std::vector<std::vector<int>>> m_chanPeakPosGroups;
84  std::vector<std::vector<std::vector<int>>> m_calibErrorGroups;
85  std::vector<std::vector<std::vector<int>>> m_pulseGroups;
86 
87  struct corrmap {
88  double **accCorrelation;
89  double *accMean;
90  };
91 
92  std::vector<std::vector<std::vector<float *>>> m_accCorrelation;
93 
95 
96  // Mapping from Tile raw channels to TMDB in LB for odd modules,
97  // in even modules TMDB channels are shifted by 1
98  const std::map<int, int> m_cellTMDB_LB{{0, 0 /*D0*/},
99  {13, 1 /*D1L*/}, {14, 2 /*D1R*/},
100  {24, 3 /*D2R*/}, {25, 4 /*D2L*/},
101  {41, 5 /*D3L*/}, {44, 6 /*D3R*/}};
102 
103  // Mapping from Tile raw channels to TMDB in EB
104  const std::map<int, int> m_cellTMDB_EB{{16, 0 /*D5R*/}, {17, 1 /*D5L*/},
105  {37, 2 /*D6L*/}, {38, 3 /*D6R*/}};
106 
107  std::reference_wrapper<const std::map<int, int>> m_cellTMDB[Tile::MAX_ROS - 1] = {m_cellTMDB_LB,
110  m_cellTMDB_EB};
111 };
112 
113 
114 #endif // TILEMONITORING_TILETMDBMONITORALGORITHM_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TileCablingSvc.h
TileTMDBMonitorAlgorithm::m_cellTMDB
std::reference_wrapper< const std::map< int, int > > m_cellTMDB[Tile::MAX_ROS - 1]
Definition: TileTMDBMonitorAlgorithm.h:107
TileTMDBMonitorAlgorithm::corrmap
Definition: TileTMDBMonitorAlgorithm.h:87
TileTMDBMonitorAlgorithm::m_muRcvRawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_muRcvRawChannelContainerKey
Definition: TileTMDBMonitorAlgorithm.h:58
TileTMDBMonitorAlgorithm::m_tileCondToolTMDB
ToolHandle< ITileCondToolTMDB > m_tileCondToolTMDB
Definition: TileTMDBMonitorAlgorithm.h:64
TileTMDBMonitorAlgorithm::m_cellTMDB_LB
const std::map< int, int > m_cellTMDB_LB
Definition: TileTMDBMonitorAlgorithm.h:98
TileTMDBMonitorAlgorithm::m_fillDetailedHistograms
Gaudi::Property< bool > m_fillDetailedHistograms
Definition: TileTMDBMonitorAlgorithm.h:52
TileTMDBMonitorAlgorithm::fillNoiseHistograms
void fillNoiseHistograms(const TileDigitsCollection *muRcvDigitsCollection, const int drawer, const int partition) const
Definition: TileTMDBMonitorAlgorithm.cxx:74
TileCalibUtils.h
TileTMDBMonitorAlgorithm::m_peakGroups
std::vector< int > m_peakGroups
Definition: TileTMDBMonitorAlgorithm.h:76
SG::ReadHandleKey< TileRawChannelContainer >
TileTMDBMonitorAlgorithm::m_accCorrelation
std::vector< std::vector< std::vector< float * > > > m_accCorrelation
Definition: TileTMDBMonitorAlgorithm.h:92
TileTMDBMonitorAlgorithm::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileTMDBMonitorAlgorithm.h:73
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
ReadCondHandle.h
TileTMDBMonitorAlgorithm::~TileTMDBMonitorAlgorithm
virtual ~TileTMDBMonitorAlgorithm()=default
TileTMDBMonitorAlgorithm::m_chanChannelNoiseGroups
std::vector< std::vector< std::vector< std::vector< int > > > > m_chanChannelNoiseGroups
Definition: TileTMDBMonitorAlgorithm.h:82
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:39
TileRawChannelContainer.h
TileTMDBMonitorAlgorithm
Definition: TileTMDBMonitorAlgorithm.py:1
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileTMDBMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: TileTMDBMonitorAlgorithm.cxx:90
Tile
Definition: TileVolumeBuilder.h:42
TileHWID.h
ITileCondToolTMDB.h
TileTMDBMonitorAlgorithm::corrmap::accMean
double * accMean
Definition: TileTMDBMonitorAlgorithm.h:89
TileDigitsContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileTMDBMonitorAlgorithm::m_cellTMDB_EB
const std::map< int, int > m_cellTMDB_EB
Definition: TileTMDBMonitorAlgorithm.h:104
AthMonitorAlgorithm.h
TileTMDBMonitorAlgorithm::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileTMDBMonitorAlgorithm.h:70
TileCalibUtils::MAX_ROS
static const unsigned int MAX_ROS
Number of ROSs
Definition: TileCalibUtils.h:138
TileCablingService
Definition: TileCablingService.h:23
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
ReadCondHandleKey.h
TileTMDBMonitorAlgorithm::corrmap::accCorrelation
double ** accCorrelation
Definition: TileTMDBMonitorAlgorithm.h:88
TileTMDBMonitorAlgorithm::m_chanPeakPosGroups
std::vector< std::vector< std::vector< int > > > m_chanPeakPosGroups
Definition: TileTMDBMonitorAlgorithm.h:83
TileTMDBMonitorAlgorithm::m_energyGroups
std::vector< int > m_energyGroups
Definition: TileTMDBMonitorAlgorithm.h:77
TileDigitsCollection
Definition: TileDigitsCollection.h:18
TileTMDBMonitorAlgorithm::m_muRcvDigitsContainerKey
SG::ReadHandleKey< TileDigitsContainer > m_muRcvDigitsContainerKey
Definition: TileTMDBMonitorAlgorithm.h:61
TileTMDBMonitorAlgorithm::m_pulseGroups
std::vector< std::vector< std::vector< int > > > m_pulseGroups
Definition: TileTMDBMonitorAlgorithm.h:85
TileTMDBMonitorAlgorithm::m_PedestalVector
std::vector< std::vector< std::vector< std::vector< float > > > > m_PedestalVector
Definition: TileTMDBMonitorAlgorithm.h:79
python.Classes.TileCalibUtils
TileCalibUtils
Definition: TileCalib/TileCalibBlobObjs/python/Classes.py:5
StateLessPT_NewConfig.partition
partition
Definition: StateLessPT_NewConfig.py:49
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: AthMonitorAlgorithm.cxx:8
TileTMDBMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: TileTMDBMonitorAlgorithm.cxx:12
TileTMDBMonitorAlgorithm::m_calibErrorGroups
std::vector< std::vector< std::vector< int > > > m_calibErrorGroups
Definition: TileTMDBMonitorAlgorithm.h:84
TileTMDBMonitorAlgorithm::m_chanEnergyGroups
std::vector< std::vector< std::vector< int > > > m_chanEnergyGroups
Definition: TileTMDBMonitorAlgorithm.h:81
ReadHandle.h
Handle class for reading from StoreGate.
TileTMDBMonitorAlgorithm::m_rawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileTMDBMonitorAlgorithm.h:55
TileTMDBMonitorAlgorithm::m_pulseEnergyRange
Gaudi::Property< std::vector< float > > m_pulseEnergyRange
Definition: TileTMDBMonitorAlgorithm.h:46
TileTMDBMonitorAlgorithm::m_cabling
const TileCablingService * m_cabling
Definition: TileTMDBMonitorAlgorithm.h:74
TileTMDBMonitorAlgorithm::m_energyRange
Gaudi::Property< std::vector< float > > m_energyRange
Definition: TileTMDBMonitorAlgorithm.h:49
ServiceHandle< TileCablingSvc >