ATLAS Offline Software
Loading...
Searching...
No Matches
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
22
23#include "math.h"
24
25class TileHWID;
27
31
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};
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 {
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,
111};
112
113
114#endif // TILEMONITORING_TILETMDBMONITORALGORITHM_H
Header file to be included by clients of the Monitored infrastructure.
Property holding a SG store/key/clid from which a ReadHandle is made.
Handle class for reading from StoreGate.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Property holding a SG store/key/clid from which a ReadHandle is made.
Static class providing several utility functions and constants.
static const unsigned int MAX_ROS
Number of ROSs.
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Gaudi::Property< bool > m_fillDetailedHistograms
SG::ReadHandleKey< TileRawChannelContainer > m_muRcvRawChannelContainerKey
virtual ~TileTMDBMonitorAlgorithm()=default
std::vector< std::vector< std::vector< std::vector< int > > > > m_chanChannelNoiseGroups
std::vector< std::vector< std::vector< int > > > m_calibErrorGroups
ToolHandle< ITileCondToolTMDB > m_tileCondToolTMDB
Gaudi::Property< std::vector< float > > m_pulseEnergyRange
const std::map< int, int > m_cellTMDB_EB
const std::map< int, int > m_cellTMDB_LB
std::vector< std::vector< std::vector< float * > > > m_accCorrelation
std::vector< std::vector< std::vector< std::vector< float > > > > m_PedestalVector
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
std::vector< std::vector< std::vector< int > > > m_chanPeakPosGroups
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
std::vector< std::vector< std::vector< int > > > m_chanEnergyGroups
std::vector< std::vector< std::vector< int > > > m_pulseGroups
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
const TileCablingService * m_cabling
SG::ReadHandleKey< TileDigitsContainer > m_muRcvDigitsContainerKey
void fillNoiseHistograms(const TileDigitsCollection *muRcvDigitsCollection, const int drawer, const int partition) const
std::reference_wrapper< const std::map< int, int > > m_cellTMDB[Tile::MAX_ROS - 1]
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Gaudi::Property< std::vector< float > > m_energyRange
void initialize()