15#ifndef MdtRawDataMonAlg_H
16#define MdtRawDataMonAlg_H
22#include "GaudiKernel/ServiceHandle.h"
23#include "GaudiKernel/ToolHandle.h"
87 if (
A.idHash != B.idHash)
return A.idHash < B.idHash;
89 if (
A.tubeBin != B.tubeBin)
return A.tubeBin < B.tubeBin;
90 return A.isHit < B.isHit;
102 virtual StatusCode
fillHistograms(
const EventContext& ctx)
const override;
114 "Key of input MuonDetectorManager condition data"};
119 bool trig_barrel,
bool trig_endcap, std::array<MDTSummaryHistogramStruct, 4096>*)
const;
127 static bool AinB(
int A, std::vector<int>& B);
134 static void CorrectTubeMax(
const std::string& hardware_name,
int& numTubes);
135 static void CorrectLayerMax(
const std::string& hardware_name,
int& numLayers);
148 this,
"SegmentKey", {
"TrkMuonSegments",
"UnAssocMuonTrkSegments"},
"muon segments"};
172 Gaudi::Property<size_t>
m_ADCCut{
this,
"ADCCut", 50};
173 Gaudi::Property<size_t>
m_nb_hits{
this,
"Eff_nHits", 5};
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi 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.
Header file for AthHistogramAlgorithm.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
This is a "hash" representation of an Identifier.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
int get_bin_for_LB_hist(int region, int layer, int phi, int eta, bool isBIM) const
virtual StatusCode fillMDTHistograms(const Muon::MdtPrepData *) const
StatusCode getChamber(const IdentifierHash &id, MDTChamber *&chamber) const
virtual StatusCode binMdtRegional(TH2 *, std::string_view xAxis)
Gaudi::Property< bool > m_do_mdttdccut_sector
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_muon_type
int GetTubeMax(const Identifier &digcoll_id, std::string_view hardware_name)
std::map< Identifier, std::set< Identifier > > m_DeadChannels
virtual StatusCode binMdtGlobal_byLayer(TH2 *, TH2 *, TH2 *)
StatusCode handleEvent_effCalc_fillVects(const Trk::SegmentCollection *segms, MDTSegmentHistogramStruct(&vects)[4][4][16]) const
std::string getChamberName(const Muon::MdtPrepData *) const
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_key_rpc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Property< size_t > m_ADCCut
std::vector< std::unique_ptr< MDTChamber > > m_hist_hash_list
std::vector< Identifier > m_chambersId
static void CorrectLayerMax(const std::string &hardware_name, int &numLayers)
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_key_mdt
virtual StatusCode binMdtOccVsLB_Crate(TH2 *&h, int region, int crate)
Gaudi::Property< bool > m_do_run3Geometry
Gaudi::Property< bool > m_doMdtESD
virtual StatusCode fillMDTSummaryHistograms(std::array< MDTSummaryHistogramStruct, 4096 > *vects, int lb) const
const MuonGM::MuonDetectorManager * m_detMgr
virtual StatusCode binMdtGlobal(TH2 *, char ecap)
bool isATLASReady() const
int mezzmdt(const Identifier &id) const
virtual StatusCode initialize() override
initialize
virtual ~MdtRawDataMonAlg()
int get_bin_for_LB_crate_hist(int region, int layer, int phi, int eta, std::string_view chamber) const
Gaudi::Property< bool > m_do_mdtchamberstatphislice
StatusCode GetTimingInfo()
int cachedTubeLayerMax(const Identifier &id) const
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
std::vector< IdentifierHash > m_chambersIdHash
Gaudi::Property< size_t > m_adcScale
Gaudi::Property< bool > m_chi2_cut
Gaudi::Property< bool > m_maskNoisyTubes
virtual StatusCode binMdtOccVsLB(TH2 *&h, int region, int layer)
int cachedTubeMax(const Identifier &id) const
Gaudi::Property< size_t > m_HighOccThreshold
std::unique_ptr< MDTNoisyTubes > m_masked_tubes
virtual void fillMDTOverviewHistograms(const MDTOverviewHistogramStruct &vects) const
SG::ReadHandleKeyArray< Trk::SegmentCollection > m_segm_type
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_l1RoiKey
MdtRawDataMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode fillMDTSegmentHistograms(const MDTSegmentHistogramStruct(&vects)[4][4][16]) const
std::map< std::string, int > m_tubesperchamber_map
void initDeadChannels(const MuonGM::MdtReadoutElement *mydetEl)
virtual StatusCode fillMDTSummaryVects(const Muon::MdtPrepData *, const std::set< std::string > &, bool &isNoiseBurstCandidate, bool trig_barrel, bool trig_endcap, std::array< MDTSummaryHistogramStruct, 4096 > *) const
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
Gaudi::Property< bool > m_doChamberHists
static void ChamberTubeNumberCorrection(int &tubeNum, std::string_view hardware_name, int tubePos, int numLayers)
Gaudi::Property< size_t > m_nb_hits
std::atomic< int > m_firstEvent
Gaudi::Property< bool > m_do_mdtChamberHits
static bool AinB(int A, std::vector< int > &B)
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
static constexpr Identifier::value_type s_detectorElementMask
static void CorrectTubeMax(const std::string &hardware_name, int &numTubes)
virtual void fillMDTOverviewVects(const Muon::MdtPrepData *, bool &isNoiseBurstCandidate, MDTOverviewHistogramStruct &vects) const
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Class to represent measurements from the Monitored Drift Tubes.
Property holding a SG store/key/clid from which a ReadHandle is made.
TubeTraversedBySegment(const std::string &hn, int tb, bool ih, IdentifierHash idh)
std::string hardware_name
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
DataVector< Trk::Segment > SegmentCollection
hold the test vectors and ease the comparison
bool operator()(const TubeTraversedBySegment &A, const TubeTraversedBySegment &B) const