ATLAS Offline Software
Loading...
Searching...
No Matches
PprMonitorAlgorithm.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef TRIGT1CALOMONITORING_PPRMONITORALGORITHM_H
5#define TRIGT1CALOMONITORING_PPRMONITORALGORITHM_H
6
10
11
13public:PprMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
14 virtual ~PprMonitorAlgorithm()=default;
15 virtual StatusCode initialize() override;
16 virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
17
19 struct MonitorTT {
21 double phiScaled;
22 double maxADC;
23 int jepET;
24 };
25
26
27private:
28
29 StringProperty m_packageName{this,"PackageName","PprMonitor","group name for histogramming"};
30
33
34
36 Gaudi::Property<double> m_phiScaleTT{this, "phiScaleTT", 32./M_PI, "Scale factor to convert trigger tower phi to integer binning"};
37 Gaudi::Property<int> m_TT_ADC_HitMap_Thresh{this, "TT_ADC_HitMap_Thresh", 50, "ADC cut for hit maps"};
38 Gaudi::Property<int> m_SliceNo{this, "SliceNo", 15, "Number of possible time slices in the readout"};
39 Gaudi::Property<int> m_EMFADCCut{this, "EMFADCCut", 40, "EM FADC cut for signal"};
40 Gaudi::Property<int> m_TT_ADC_Pedestal{this, "ADCPedestal", 32, "Nominal pedestal value"};
41 Gaudi::Property<std::vector<int>> m_TT_HitMap_ThreshVec{this, "LUTHitMap_ThreshVec", {0, 1, 3, 5, 10, 20, 30, 50}, "Thresholds for LUT hitmaps"};
42
44 std::map<std::string,int> m_groupTimeslice_EM;
45 std::map<std::string,int> m_groupTimeslice_HAD;
46
47
48 // Error vector StoreGate key
49 SG::WriteHandleKey<std::vector<int>> m_errorLocation{this,"ErrorLocationPPM","L1CaloPPMErrorVector","ErrorVector"};
50
51 typedef std::vector<int> ErrorVector;
53
54 StatusCode makePPMTower( const xAOD::TriggerTower_v2* tt,
55 std::vector<MonitorTT> &vecMonTT) const;
56
57 double recTime(const std::vector<short unsigned int> &vFADC, int cut) const;
58
59 std::string getPartition(int layer, double eta) const;
60
61 StatusCode fillPPMEtaPhi( MonitorTT &monTT,
62 const std::string& groupName,
63 const std::string& weightName,
64 double weight=1.) const;
65
66 StatusCode fillPPMPhi( MonitorTT &monTT,
67 const std::string& groupName) const;
68
69
70 // count number of error events per lumiblock across threads
71 mutable std::mutex m_mutex{};
72 mutable std::map<uint32_t, int> m_errorLB_tt_counter ATLAS_THREAD_SAFE;
73
74};
75#endif
#define M_PI
Scalar eta() const
pseudorapidity method
Header file to be included by clients of the Monitored infrastructure.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
static const std::string xAODTriggerTowerLocation
Gaudi::Property< std::vector< int > > m_TT_HitMap_ThreshVec
std::map< uint32_t, int > m_errorLB_tt_counter ATLAS_THREAD_SAFE
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
virtual ~PprMonitorAlgorithm()=default
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_xAODTriggerTowerContainerName
container keys including steering parameter and description
std::vector< int > ErrorVector
StatusCode fillPPMPhi(MonitorTT &monTT, const std::string &groupName) const
std::map< std::string, int > m_groupTimeslice_HAD
Gaudi::Property< int > m_EMFADCCut
StatusCode makePPMTower(const xAOD::TriggerTower_v2 *tt, std::vector< MonitorTT > &vecMonTT) const
Helper functions.
double recTime(const std::vector< short unsigned int > &vFADC, int cut) const
std::map< std::string, int > m_groupTimeslice_EM
Groups for GenericMonitoringArrays.
StringProperty m_packageName
Gaudi::Property< int > m_SliceNo
Gaudi::Property< int > m_TT_ADC_Pedestal
SG::WriteHandleKey< std::vector< int > > m_errorLocation
StatusCode fillPPMEtaPhi(MonitorTT &monTT, const std::string &groupName, const std::string &weightName, double weight=1.) const
Gaudi::Property< int > m_TT_ADC_HitMap_Thresh
Gaudi::Property< double > m_phiScaleTT
Properties.
std::string getPartition(int layer, double eta) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Description of TriggerTower_v2.
void initialize()
Struct to contain PPM trigger tower info.
double maxADC
phi for 2d maps with integer bins (taking into account granularity in eta)
const xAOD::TriggerTower_v2 * tower