ATLAS Offline Software
Loading...
Searching...
No Matches
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
35
36
37namespace Muon {
38 class MMPrepData;
39 }
40
41namespace {
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]
75 StatusCode fillMMHistograms( const Muon::MMPrepData* ) const;
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
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
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.
int get_bin_for_occ_lb_pcb_hist(const int multiplet, const int gas_gap, const int PCB) const
int get_bin_for_occ(const int gas_gap, const int PCB) const
void clusterFromTrack(const xAOD::TrackParticleContainer *, const int lb) const
int get_bin_for_occ_ASide_hist(const int stationEta, const int multiplet, const int gas_gap) const
void MMEfficiency(const xAOD::TrackParticleContainer *) const
int get_FEB_from_channel(const int channel, const int stEta) const
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
int get_bin_for_occ_CSide_hist(const int stationEta, const int multiplet, const int gas_gap) const
SG::ReadHandleKey< xAOD::NSWMMTPRDOContainer > m_mmtpRdoKey
void fillMMOverviewHistograms(const MMOverviewHistogramStruct &vects, MMByPhiStruct(&occupancyPlots)[16][2], const int lb) const
int get_bin_for_occ_CSide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Gaudi::Property< bool > m_doMMESD
virtual ~MMRawDataMonAlg()=default
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_MMContainerKey
MMRawDataMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode fillMMSummaryVects(const Muon::MMPrepData *, MMSummaryHistogramStruct(&vects)[2][16][2][2][4]) const
StatusCode fillMMHistograms(const Muon::MMPrepData *) const
int get_sectorEta_from_stationEta(const int stationEta) const
StatusCode fillMMOverviewVects(const Muon::MMPrepData *, MMOverviewHistogramStruct &vects, MMByPhiStruct(&occupancyPlots)[16][2]) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
int get_sectorPhi_from_stationPhi_stName(const int stationPhi, const std::string &stName) const
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Gaudi::Property< float > m_cut_pt
virtual StatusCode initialize() override
initialize
SG::ReadHandleKey< Trk::SegmentCollection > m_segm_type
int get_bin_for_feb_occ(const int gas_gap, const int FEB) const
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
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
Gaudi::Property< bool > m_do_stereoCorrection
int get_bin_for_occ_CSide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
void fillMMTrigger(const xAOD::NSWMMTPRDOContainer *, const int) const
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
StatusCode fillMMSummaryHistograms(const MMSummaryHistogramStruct(&vects)[2][16][2][2][4]) const
Gaudi::Property< bool > m_do_mm_overview
int get_PCB_from_channel(const int channel) const
int get_bin_for_occ_ASide_pcb_eta1_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
void clusterFromSegments(const Trk::SegmentCollection *, const int lb) const
Gaudi::Property< bool > m_doDetailedHists
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_meTrkKey
int get_bin_for_occ_ASide_pcb_eta2_hist(const int stationEta, const int multiplet, const int gas_gap, const int PCB) const
Class to represent MM measurements.
Definition MMPrepData.h:22
Property holding a SG store/key/clid from which a ReadHandle is made.
int lb
Definition globals.cxx:23
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
DataVector< Trk::Segment > SegmentCollection
NSWMMTPRDOContainer_v1 NSWMMTPRDOContainer
Define the version of the NSW MM RDO container.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".