5#ifndef RECBACKGROUNDALGS_BEAMBACKGROUNDFILLER
6#define RECBACKGROUNDALGS_BEAMBACKGROUNDFILLER
11#include "AthLinks/ElementLinkVector.h"
13#include "GaudiKernel/ServiceHandle.h"
22#include "GaudiKernel/SystemOfUnits.h"
43 virtual StatusCode
execute(
const EventContext& ctx)
const override;
103 void FindFakeJets(
const EventContext& ctx, Cache& cache)
const;
111 this,
"SegmentKeys", {
"NCB_TrackMuonSegments", } ,
112 "Muon segment collections from the MS patterns"};
117 this,
"caloClusterContainerKey",
"CaloCalTopoClusters",
118 "ReadHandleKey for CaloClusterContainer"};
122 this,
"jetContainerKey",
"AntiKt4EMTopoJets",
123 "ReadHandleKey for JetContainer"};
127 this,
"BeamBackgroundKey",
"BeamBackgroundData",
128 "WriteHandleKey for BeamBackgroundData"};
134 Gaudi::Property<double>
m_thetaCutNCB{
this,
"cutThetaNCB", 5. * Gaudi::Units::deg};
143 Gaudi::Property<double>
m_clusRadiusLow{
this,
"cutRadiusLow", 881. * Gaudi::Units::mm};
154 Gaudi::Property<double>
m_cutDrdz{
this,
"cutDrdz", 0.15};
156 this,
"edmHelper",
"Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
157 "Handle to the service providing the IMuonEDMHelperSvc interface"};
159 this,
"MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
An algorithm that can be simultaneously executed in multiple threads.
Gaudi::Property< double > m_thetaCutNCB
Inclanation cut between the segment position and its direction.
SG::WriteHandleKey< BeamBackgroundData > m_beamBackgroundDataWriteHandleKey
Gaudi::Property< double > m_cutDradClusSeg
void SegmentMethod(Cache &cache) const
This function looks at the segments found by the FillMatchMatrix function.
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerReadHandleKey
ReadHandleKey for JetContainer.
ToolHandle< Muon::IMuonSegmentSelectionTool > m_segmentSelector
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
virtual StatusCode initialize() override
void FindFakeJets(const EventContext &ctx, Cache &cache) const
This function checks whether the matched clusters are contained in any jets.
BeamBackgroundFiller(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKeyArray< Trk::SegmentCollection > m_segmentKeys
ReadHandleKey for Trk::SegmentCollection from CSC.
Gaudi::Property< double > m_cutDrdz
Gaudi::Property< double > m_clusRadiusLow
Gaudi::Property< double > m_cutTimeDiffAC
Gaudi::Property< double > m_cutDphiClusSeg
void ClusterShapeMethod(Cache &cache) const
This function is the implementation of the "Cluster-Shape Method".
void FillBeamBackgroundData(SG::WriteHandle< BeamBackgroundData > &beamBackgroundDataWriteHandle, Cache &cache) const
This function stores all the results in BeamBackgroundData.
void FillMatchMatrix(const EventContext &ctx, Cache &cache) const
This function selects the muon segments with the direction parallel to the beam pipe and calorimeter ...
void OneSidedMethod(Cache &cache) const
This function is the implementation of the "No-Time Method" and the "One-Sided Method".
Gaudi::Property< double > m_clusEnergyCut
Minimum cut on the cluster energy to be considered.
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClusterContainerReadHandleKey
ReadHandleKey for CaloClusterContainer.
Gaudi::Property< double > m_cutDphiSegAC
Gaudi::Property< double > m_clusRadiusHigh
Gaudi::Property< double > m_cutClusTime
double GetSegmentTime(const Muon::MuonSegment &pMuonSegment) const
Gaudi::Property< double > m_cutMuonTime
virtual StatusCode execute(const EventContext &ctx) const override
void TwoSidedMethod(Cache &cache) const
This function is the implementation of the "Two-Sided No-Time Method" and the "Two-Sided Method" that...
virtual ~BeamBackgroundFiller()=default
ElementLinkVector implementation for standalone ROOT.
This is the common class for 3D segments used in the muon spectrometer.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
std::vector< int > m_resultClus
std::vector< int > m_resultSeg
ElementLinkVector< xAOD::JetContainer > m_indexJet
std::vector< std::vector< int > > m_matchMatrix
ElementLinkVector< xAOD::CaloClusterContainer > m_indexClus
ElementLinkVector< Trk::SegmentCollection > m_indexSeg
std::vector< float > m_drdzClus
std::vector< int > m_resultJet