ATLAS Offline Software
Loading...
Searching...
No Matches
StgcRawDataMonAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// Package : sTgcRawDataMonAlg
7// Author: Sebastian Fuenzalida Garrido
8// Local supervisor: Edson Carquin Lopez
9// Technical supervisor: Gerardo Vasquez
10//
11// DESCRIPTION:
12// Subject: sTgc --> sTgc raw data monitoring
14
15#ifndef sTgcRawDataMonAlg_H
16#define sTgcRawDataMonAlg_H
17
18// Core Include
20
21// Helper Includes
29
32
34
37
42
43// stl includes
44#include <string>
45
46namespace Muon {
47 class sTgcPrepData;
48}
49
51 static const std::array<std::string, 2> sTgcSide = {"C", "A"};
52 static const std::array<std::string, 2> sTgcSize = {"S", "L"};
53}
54
60 static constexpr uint32_t FIRSTPFEBVMM = 1;
61 public:
62 sTgcRawDataMonAlg(const std::string& name, ISvcLocator* pSvcLocator);
63
64 virtual ~sTgcRawDataMonAlg()=default;
65 virtual StatusCode initialize() override;
66 virtual StatusCode fillHistograms(const EventContext& ctx) const override;
67 private:
68 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
69 ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator {this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
70
77
78 int getFEBs(int eta,int layers) const;
79 int getSectors(const Identifier& id) const;
80 int getLayer(const int multiplet, const int gasGap) const;
81 int32_t sourceidToSector(uint32_t sourceid, bool isSideA) const;
82 int getSignedPhiId(const uint32_t phiid) const;
83 std::optional<Identifier> getPadId(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const;
84 std::optional<std::tuple<Identifier, const Trk::RIO_OnTrack*>> getRotIdAndRotObject(const Trk::TrackStateOnSurface* trkState) const;
85 std::optional<Identifier> getRotId(const Trk::TrackStateOnSurface* trkState) const;
86 std::optional<std::tuple<int, int, std::string, std::string, int>> getPadEtaPhiTuple(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const;
87 std::optional<double> band2theta(double rPosAtNSW, const MuonGM::MuonDetectorManager* muonDetectorManagerObject) const;
88 std::optional<double> band2eta(double rPosAtNSW, const MuonGM::MuonDetectorManager* muonDetectorManagerObject) const;
89 std::optional<double> rPosAtNsw2eta(double rPosAtNSW, bool isA, const MuonGM::MuonDetectorManager* muonDetectorManagerObject) const;
90 std::optional<double> bandId2eta(int bandid, bool isLarge, bool isA, const MuonGM::MuonDetectorManager* muonDetectorManagerObject) const;
91 double triggersectorphiid2phi(uint32_t sourceid, int trigger_phiid) const;
92
93 SG::ReadHandleKey<Muon::sTgcPrepDataContainer> m_sTgcContainerKey{this,"sTgcPrepDataContainerName", "STGC_Measurements"};
94 SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_detectorManagerKey{this, "DetectorManagerKey", "MuonDetectorManager","Key of input MuonDetectorManager condition data"};
95 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_meTrkKey{this, "METrkContainer", "ExtrapolatedMuonTrackParticles"};
98
99 Gaudi::Property<double> m_cutPt{this, "cutPt", 15000.};
100 Gaudi::Property<double> m_cutEtaDown{this, "cutEtaDown", 1.3};
101 Gaudi::Property<double> m_cutEtaUp{this, "cutEtaUp", 2.4};
102 Gaudi::Property<double> m_minDeltaR{this, "minDeltaR", 0.1};
103 Gaudi::Property<int> m_cutTriggerPhiId{this, "cutTriggerPhiId", 63};
104 Gaudi::Property<int> m_cutTriggerBandId{this, "cutTriggerBandId", 255};
105};
106#endif
Scalar eta() const
pseudorapidity method
Property holding a SG store/key/clid from which a ReadHandle is made.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Class to represent sTgc measurements.
Property holding a SG store/key/clid from which a ReadHandle is made.
represents the track state (measurement, material, fit parameters and quality) at a surface.
std::optional< std::tuple< Identifier, const Trk::RIO_OnTrack * > > getRotIdAndRotObject(const Trk::TrackStateOnSurface *trkState) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Property< double > m_cutPt
std::optional< double > band2eta(double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
int getLayer(const int multiplet, const int gasGap) const
Muon::nsw::NSWPadTriggerL1a decoder
SG::ReadHandleKey< Muon::NSW_PadTriggerDataContainer > m_rdoKey
int getSignedPhiId(const uint32_t phiid) const
void fillsTgcLumiblockHistograms(const Muon::sTgcPrepDataContainer *, const int lb) const
std::optional< double > rPosAtNsw2eta(double rPosAtNSW, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
void fillsTgcOccupancyHistograms(const Muon::sTgcPrepDataContainer *, const MuonGM::MuonDetectorManager *, const int lb) const
int32_t sourceidToSector(uint32_t sourceid, bool isSideA) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_meTrkKey
Muon::nsw::MapperSTG mapper
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
static constexpr uint32_t NVMMCHAN
static constexpr uint32_t FIRSTPFEBVMM
Gaudi::Property< int > m_cutTriggerBandId
void fillsTgcPadTriggerEfficiencyHistograms(const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detectorManagerKey
Gaudi::Property< double > m_cutEtaDown
double triggersectorphiid2phi(uint32_t sourceid, int trigger_phiid) const
virtual StatusCode initialize() override
initialize
void fillsTgcPadTriggerDataHistograms(const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const int lb) const
virtual ~sTgcRawDataMonAlg()=default
void fillsTgcClusterFromTrackHistograms(const xAOD::TrackParticleContainer *) const
sTgcRawDataMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< int > m_cutTriggerPhiId
std::optional< std::tuple< int, int, std::string, std::string, int > > getPadEtaPhiTuple(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const
std::optional< Identifier > getPadId(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const
Muon::MuonSectorMapping MuonSectorMapping
std::optional< Identifier > getRotId(const Trk::TrackStateOnSurface *trkState) const
std::optional< double > bandId2eta(int bandid, bool isLarge, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
int getSectors(const Identifier &id) const
std::optional< double > band2theta(double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
void fillsTgcEfficiencyHistograms(const xAOD::MuonContainer *, const MuonGM::MuonDetectorManager *) const
Gaudi::Property< double > m_minDeltaR
Gaudi::Property< double > m_cutEtaUp
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_sTgcContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
int getFEBs(int eta, int layers) const
int lb
Definition globals.cxx:23
static const std::array< std::string, 2 > sTgcSize
static const std::array< std::string, 2 > sTgcSide
constexpr uint32_t N_CHAN_PER_VMM
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
MuonPrepDataContainerT< sTgcPrepData > sTgcPrepDataContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".