ATLAS Offline Software
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 
13 public: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 
27 private:
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 
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 
62  const std::string& groupName,
63  const std::string& weightName,
64  double weight=1.) const;
65 
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
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
PprMonitorAlgorithm::m_TT_ADC_HitMap_Thresh
Gaudi::Property< int > m_TT_ADC_HitMap_Thresh
Definition: PprMonitorAlgorithm.h:37
PprMonitorAlgorithm::MonitorTT::jepET
int jepET
max ADC timeslice
Definition: PprMonitorAlgorithm.h:23
PprMonitorAlgorithm
Definition: PprMonitorAlgorithm.py:1
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
PprMonitorAlgorithm::m_TT_ADC_Pedestal
Gaudi::Property< int > m_TT_ADC_Pedestal
Definition: PprMonitorAlgorithm.h:40
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
RunTileMonitoring.groupName
groupName
Definition: RunTileMonitoring.py:158
M_PI
#define M_PI
Definition: ActiveFraction.h:11
PprMonitorAlgorithm::makePPMTower
StatusCode makePPMTower(const xAOD::TriggerTower_v2 *tt, std::vector< MonitorTT > &vecMonTT) const
Helper functions.
Definition: PprMonitorAlgorithm.cxx:408
PprMonitorAlgorithm::m_xAODTriggerTowerContainerName
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_xAODTriggerTowerContainerName
container keys including steering parameter and description
Definition: PprMonitorAlgorithm.h:32
PprMonitorAlgorithm::MonitorTT::tower
const xAOD::TriggerTower_v2 * tower
Definition: PprMonitorAlgorithm.h:20
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
PprMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: PprMonitorAlgorithm.cxx:45
PprMonitorAlgorithm::MonitorTT
Struct to contain PPM trigger tower info.
Definition: PprMonitorAlgorithm.h:19
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
PprMonitorAlgorithm::recTime
double recTime(const std::vector< short unsigned int > &vFADC, int cut) const
Definition: PprMonitorAlgorithm.cxx:436
PprMonitorAlgorithm::m_TT_HitMap_ThreshVec
Gaudi::Property< std::vector< int > > m_TT_HitMap_ThreshVec
Definition: PprMonitorAlgorithm.h:41
PprMonitorAlgorithm::~PprMonitorAlgorithm
virtual ~PprMonitorAlgorithm()=default
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
PprMonitorAlgorithm::fillPPMPhi
StatusCode fillPPMPhi(MonitorTT &monTT, const std::string &groupName) const
Definition: PprMonitorAlgorithm.cxx:566
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PprMonitorAlgorithm::m_mutex
std::mutex m_mutex
Definition: PprMonitorAlgorithm.h:71
AthMonitorAlgorithm.h
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
xAOD::TriggerTower_v2
Description of TriggerTower_v2.
Definition: TriggerTower_v2.h:49
PprMonitorAlgorithm::m_packageName
StringProperty m_packageName
Definition: PprMonitorAlgorithm.h:29
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
PprMonitorAlgorithm::getPartition
std::string getPartition(int layer, double eta) const
Definition: PprMonitorAlgorithm.cxx:479
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
PprMonitorAlgorithm::m_EMFADCCut
Gaudi::Property< int > m_EMFADCCut
Definition: PprMonitorAlgorithm.h:39
PprMonitorAlgorithm::m_groupTimeslice_HAD
std::map< std::string, int > m_groupTimeslice_HAD
Definition: PprMonitorAlgorithm.h:45
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
PprMonitorAlgorithm::ErrorVector
std::vector< int > ErrorVector
Definition: PprMonitorAlgorithm.h:51
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
static const std::string xAODTriggerTowerLocation
Definition: TrigT1CaloDefs.h:36
PprMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: PprMonitorAlgorithm.cxx:23
PprMonitorAlgorithm::m_phiScaleTT
Gaudi::Property< double > m_phiScaleTT
Properties.
Definition: PprMonitorAlgorithm.h:36
PprMonitorAlgorithm::ATLAS_THREAD_SAFE
std::map< uint32_t, int > m_errorLB_tt_counter ATLAS_THREAD_SAFE
Definition: PprMonitorAlgorithm.h:72
PprMonitorAlgorithm::fillPPMEtaPhi
StatusCode fillPPMEtaPhi(MonitorTT &monTT, const std::string &groupName, const std::string &weightName, double weight=1.) const
Definition: PprMonitorAlgorithm.cxx:521
PprMonitorAlgorithm::m_groupTimeslice_EM
std::map< std::string, int > m_groupTimeslice_EM
Groups for GenericMonitoringArrays.
Definition: PprMonitorAlgorithm.h:44
PprMonitorAlgorithm::MonitorTT::maxADC
double maxADC
phi for 2d maps with integer bins (taking into account granularity in eta)
Definition: PprMonitorAlgorithm.h:22
PprMonitorAlgorithm::PprMonitorAlgorithm
PprMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: PprMonitorAlgorithm.cxx:18
PprMonitorAlgorithm::m_errorLocation
SG::WriteHandleKey< std::vector< int > > m_errorLocation
Definition: PprMonitorAlgorithm.h:49
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
PprMonitorAlgorithm::MonitorTT::phiScaled
double phiScaled
Definition: PprMonitorAlgorithm.h:21
PprMonitorAlgorithm::m_SliceNo
Gaudi::Property< int > m_SliceNo
Definition: PprMonitorAlgorithm.h:38