ATLAS Offline Software
MMRawDataMonAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Package : MMRawDataMonitoring
7 // Author: M. Biglietti, E. Rossi (Roma Tre)
8 //
9 // DESCRIPTION:
10 // Subject: MM-->Offline Muon Data Quality
12 
13 #ifndef MMRawDataMonAlg_H
14 #define MMRawDataMonAlg_H
15 
16 //Core Include
19 #include "GaudiKernel/ServiceHandle.h"
20 #include "GaudiKernel/ToolHandle.h"
21 //Helper Includes
22 
30 #include "xAODMuon/MuonContainer.h"
35 
36 
37 namespace Muon {
38  class MMPrepData;
39  }
40 
41 namespace {
42  struct MMOverviewHistogramStruct;
43  struct MMSummaryHistogramStruct;
44  struct MMByPhiStruct;
45 }
46 
47 //stl includes
48 #include <string>
49 
51  public:
52 
53  MMRawDataMonAlg( const std::string& name, ISvcLocator* pSvcLocator );
54 
55  // virtual ~MMRawDataMonAlg();
56  virtual ~MMRawDataMonAlg()=default;
57  virtual StatusCode initialize() override;
58  virtual StatusCode fillHistograms(const EventContext& ctx) const override;
59 
60  private:
61 
62  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
63 
64  ToolHandle<CP::IMuonSelectionTool> m_muonSelectionTool{this,"MuonSelectionTool","CP::MuonSelectionTool/MuonSelectionTool"};
65  SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_DetectorManagerKey {this, "DetectorManagerKey", "MuonDetectorManager","Key of input MuonDetectorManager condition data"};
66  SG::ReadHandleKey<Trk::SegmentCollection> m_segm_type{this,"Eff_segm_type","TrackMuonSegments","muon segments"};
67  SG::ReadHandleKey<Muon::MMPrepDataContainer> m_MMContainerKey{this,"MMPrepDataContainerName","MM_Measurements"};
68  SG::ReadHandleKey<xAOD::MuonContainer> m_muonKey{this,"MuonKey","Muons","muons"};
69  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_meTrkKey{this, "METrkContainer", "ExtrapolatedMuonTrackParticles"};
70  SG::ReadHandleKey<xAOD::NSWMMTPRDOContainer> m_mmtpRdoKey{this, "NSW_MMTPDataKey", "NSW_MMTrigProcessor_RDO"};
71 
72  StatusCode fillMMOverviewVects(const Muon::MMPrepData*, MMOverviewHistogramStruct& vects, MMByPhiStruct (&occupancyPlots)[16][2]) const;
73  void fillMMOverviewHistograms(const MMOverviewHistogramStruct& vects, MMByPhiStruct (&occupancyPlots)[16][2], const int lb) const;
74  StatusCode fillMMSummaryVects( const Muon::MMPrepData*, MMSummaryHistogramStruct (&vects)[2][16][2][2][4]) const; //[side][stationPhi][stationEta][multiplet][gas_gap]
76  StatusCode fillMMSummaryHistograms( const MMSummaryHistogramStruct (&vects)[2][16][2][2][4]) const;
77 
78 
79  void clusterFromTrack(const xAOD::TrackParticleContainer*,const int lb) const;
80  void clusterFromSegments(const Trk::SegmentCollection*, const int lb) const;
81 
82  int get_PCB_from_channel(const int channel) const;
83  int get_FEB_from_channel(const int channel, const int stEta) const;
84  int get_sectorPhi_from_stationPhi_stName(const int stationPhi, const std::string& stName) const;
85  int get_sectorEta_from_stationEta(const int stationEta) const;
86 
87  int get_bin_for_occ_CSide_hist(const int stationEta, const int multiplet, const int gas_gap) const;
88  int get_bin_for_occ_ASide_hist(const int stationEta, const int multiplet, const int gas_gap) const;
89 
90  int get_bin_for_occ(const int gas_gap, const int PCB) const;
91  int get_bin_for_feb_occ(const int gas_gap, const int FEB) const;
92 
93  int get_bin_for_occ_CSide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const;
94  int get_bin_for_occ_CSide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const;
95  int get_bin_for_occ_ASide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const;
96  int get_bin_for_occ_ASide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const;
97  int get_bin_for_occ_lb_CSide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB,const int isector) const;
98  int get_bin_for_occ_lb_CSide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB,int isector) const;
99  int get_bin_for_occ_lb_ASide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB,int isector) const;
100  int get_bin_for_occ_lb_ASide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB, const int isector) const;
101  int get_bin_for_occ_lb_pcb_hist(const int multiplet, const int gas_gap, const int PCB) const;
102 
103  void MMEfficiency(const xAOD::TrackParticleContainer*) const;
104  void fillMMTrigger( const xAOD::NSWMMTPRDOContainer*, const int) const;
105 
106  Gaudi::Property<bool> m_doMMESD{this,"DoMMESD",true};
107  Gaudi::Property<bool> m_do_mm_overview{this,"do_mm_overview",true};
108  Gaudi::Property<bool> m_do_stereoCorrection{this,"do_stereoCorrection",false};
109  Gaudi::Property<float> m_cut_pt{this,"cut_pt",15000};
110  Gaudi::Property<bool> m_doDetailedHists{this,"doDetailedHists",true};
111 
112 };
113 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
MMRawDataMonAlg::m_doMMESD
Gaudi::Property< bool > m_doMMESD
Definition: MMRawDataMonAlg.h:106
MMRawDataMonAlg::get_bin_for_occ_ASide_pcb_eta2_hist
int get_bin_for_occ_ASide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:156
MMRawDataMonAlg::m_MMContainerKey
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_MMContainerKey
Definition: MMRawDataMonAlg.h:67
MMRawDataMonAlg::get_bin_for_occ_ASide_hist
int get_bin_for_occ_ASide_hist(const int stationEta, const int multiplet, const int gas_gap) const
Definition: MMRawDataUtils.cxx:106
MMRawDataMonAlg::~MMRawDataMonAlg
virtual ~MMRawDataMonAlg()=default
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
Muon::MMPrepData
Class to represent MM measurements.
Definition: MMPrepData.h:22
MMRawDataMonAlg::m_do_mm_overview
Gaudi::Property< bool > m_do_mm_overview
Definition: MMRawDataMonAlg.h:107
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
MMRawDataMonAlg::initialize
virtual StatusCode initialize() override
initialize
Definition: MMRawDataMonAlg.cxx:103
MMRawDataMonAlg::get_bin_for_occ_lb_CSide_pcb_eta2_hist
int get_bin_for_occ_lb_CSide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB, const int isector) const
Definition: MMRawDataUtils.cxx:177
Trk::PrepRawDataType::MMPrepData
@ MMPrepData
MMRawDataMonAlg::m_meTrkKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_meTrkKey
Definition: MMRawDataMonAlg.h:69
MMRawDataMonAlg::m_mmtpRdoKey
SG::ReadHandleKey< xAOD::NSWMMTPRDOContainer > m_mmtpRdoKey
Definition: MMRawDataMonAlg.h:70
MMRawDataMonAlg::m_do_stereoCorrection
Gaudi::Property< bool > m_do_stereoCorrection
Definition: MMRawDataMonAlg.h:108
MuonRoIContainer.h
MMRawDataMonAlg::m_cut_pt
Gaudi::Property< float > m_cut_pt
Definition: MMRawDataMonAlg.h:109
MMRawDataMonAlg::get_bin_for_feb_occ
int get_bin_for_feb_occ(const int gas_gap, const int FEB) const
Definition: MMRawDataUtils.cxx:136
MMRawDataMonAlg::m_muonKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Definition: MMRawDataMonAlg.h:68
MMRawDataMonAlg::fillMMOverviewHistograms
void fillMMOverviewHistograms(const MMOverviewHistogramStruct &vects, MMByPhiStruct(&occupancyPlots)[16][2], const int lb) const
Definition: MMRawDataMonAlg.cxx:259
MMRawDataMonAlg::get_PCB_from_channel
int get_PCB_from_channel(const int channel) const
Definition: MMRawDataUtils.cxx:23
MMPrepDataContainer.h
MMRawDataMonAlg::get_bin_for_occ_CSide_pcb_eta2_hist
int get_bin_for_occ_CSide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:116
MuonPrepDataContainer.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
MMRawDataMonAlg::clusterFromSegments
void clusterFromSegments(const Trk::SegmentCollection *, const int lb) const
Definition: MMRawDataMonAlg.cxx:845
MMRawDataMonAlg::MMEfficiency
void MMEfficiency(const xAOD::TrackParticleContainer *) const
Definition: MMRawDataMonAlg.cxx:747
MMRawDataMonAlg::get_bin_for_occ_ASide_pcb_eta1_hist
int get_bin_for_occ_ASide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:167
MMRawDataMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: MMRawDataMonAlg.cxx:129
MMRawDataMonAlg::m_segm_type
SG::ReadHandleKey< Trk::SegmentCollection > m_segm_type
Definition: MMRawDataMonAlg.h:66
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
MMRawDataMonAlg::get_bin_for_occ_CSide_hist
int get_bin_for_occ_CSide_hist(const int stationEta, const int multiplet, const int gas_gap) const
Definition: MMRawDataUtils.cxx:97
IMuonSelectionTool.h
MMRawDataMonAlg::fillMMTrigger
void fillMMTrigger(const xAOD::NSWMMTPRDOContainer *, const int) const
Definition: MMRawDataMonAlg.cxx:397
MMPrepDataCollection.h
MMRawDataMonAlg
Definition: MMRawDataMonAlg.h:50
MMRawDataMonAlg::get_FEB_from_channel
int get_FEB_from_channel(const int channel, const int stEta) const
Definition: MMRawDataUtils.cxx:34
python.BunchSpacingUtils.lb
lb
Definition: BunchSpacingUtils.py:88
MMRawDataMonAlg::m_muonSelectionTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
Definition: MMRawDataMonAlg.h:64
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthMonitorAlgorithm.h
DQAtlasReadyFilterTool.h
MMPrepData.h
MMRawDataMonAlg::get_sectorEta_from_stationEta
int get_sectorEta_from_stationEta(const int stationEta) const
Definition: MMRawDataUtils.cxx:87
MMRawDataMonAlg::m_DetectorManagerKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
Definition: MMRawDataMonAlg.h:65
MMRawDataMonAlg::fillMMOverviewVects
StatusCode fillMMOverviewVects(const Muon::MMPrepData *, MMOverviewHistogramStruct &vects, MMByPhiStruct(&occupancyPlots)[16][2]) const
Definition: MMRawDataMonAlg.cxx:185
MMRawDataMonAlg::get_sectorPhi_from_stationPhi_stName
int get_sectorPhi_from_stationPhi_stName(const int stationPhi, const std::string &stName) const
Definition: MMRawDataUtils.cxx:64
DataVector< xAOD::TrackParticle_v1 >
MMRawDataMonAlg::get_bin_for_occ_lb_pcb_hist
int get_bin_for_occ_lb_pcb_hist(const int multiplet, const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:222
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
MMRawDataMonAlg::get_bin_for_occ_lb_CSide_pcb_eta1_hist
int get_bin_for_occ_lb_CSide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB, int isector) const
Definition: MMRawDataUtils.cxx:189
MMRawDataMonAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MMRawDataMonAlg.h:62
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MMRawDataMonAlg::fillMMSummaryVects
StatusCode fillMMSummaryVects(const Muon::MMPrepData *, MMSummaryHistogramStruct(&vects)[2][16][2][2][4]) const
Definition: MMRawDataMonAlg.cxx:295
MMRawDataMonAlg::fillMMHistograms
StatusCode fillMMHistograms(const Muon::MMPrepData *) const
Definition: MMRawDataMonAlg.cxx:393
MMRawDataMonAlg::get_bin_for_occ_lb_ASide_pcb_eta1_hist
int get_bin_for_occ_lb_ASide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB, int isector) const
Definition: MMRawDataUtils.cxx:200
MuonDetectorManager.h
MuonContainer.h
MMRawDataMonAlg::m_doDetailedHists
Gaudi::Property< bool > m_doDetailedHists
Definition: MMRawDataMonAlg.h:110
MMRawDataMonAlg::MMRawDataMonAlg
MMRawDataMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MMRawDataMonAlg.cxx:98
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager >
MMRawDataMonAlg::fillMMSummaryHistograms
StatusCode fillMMSummaryHistograms(const MMSummaryHistogramStruct(&vects)[2][16][2][2][4]) const
Definition: MMRawDataMonAlg.cxx:351
MMRawDataMonAlg::get_bin_for_occ
int get_bin_for_occ(const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:128
MMRawDataMonAlg::clusterFromTrack
void clusterFromTrack(const xAOD::TrackParticleContainer *, const int lb) const
Definition: MMRawDataMonAlg.cxx:497
NSWMMTPRDOContainer.h
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
MMRawDataMonAlg::get_bin_for_occ_lb_ASide_pcb_eta2_hist
int get_bin_for_occ_lb_ASide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB, const int isector) const
Definition: MMRawDataUtils.cxx:211
MMRawDataMonAlg::get_bin_for_occ_CSide_pcb_eta1_hist
int get_bin_for_occ_CSide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Definition: MMRawDataUtils.cxx:145
IMuonIdHelperSvc.h
ServiceHandle< Muon::IMuonIdHelperSvc >