ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonSegmentMakers
MuonSegmentMakerTools
MuonSegmentOverlapRemovalTools
src
MuonSegmentOverlapRemovalTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUON_MUONSEGMENTSOVERLAPREMOVALTOOL_H
6
#define MUON_MUONSEGMENTSOVERLAPREMOVALTOOL_H
7
8
#include "
AthenaBaseComps/AthAlgTool.h
"
9
#include "GaudiKernel/ServiceHandle.h"
10
#include "GaudiKernel/ToolHandle.h"
11
#include "
MuonIdHelpers/IMuonIdHelperSvc.h
"
12
#include "
MuonRecHelperTools/IMuonEDMHelperSvc.h
"
13
#include "
MuonRecHelperTools/MuonEDMPrinterTool.h
"
14
#include "
MuonSegment/MuonSegmentCombination.h
"
15
#include "
MuonSegmentMakerToolInterfaces/IMuonSegmentOverlapRemovalTool.h
"
16
17
namespace
Muon
{
18
19
class
MuonSegment
;
20
25
class
MuonSegmentOverlapRemovalTool
:
virtual
public
IMuonSegmentOverlapRemovalTool
,
public
AthAlgTool
{
26
public
:
28
MuonSegmentOverlapRemovalTool
(
const
std::string&,
const
std::string&,
const
IInterface*);
29
31
virtual
~MuonSegmentOverlapRemovalTool
() =
default
;
32
34
StatusCode
initialize
()
override
;
35
38
void
removeDuplicates
(
Trk::SegmentCollection
& segments)
const override
;
39
43
std::unique_ptr<MuonSegmentCombination>
removeDuplicates
(
const
MuonSegmentCombination
& combi)
const override
;
44
45
typedef
std::vector<MuonSegment*>
SegVec
;
46
47
private
:
48
// this is only needed now by the call to remove duplicates from a MuonSegmentCombination
49
// cleaning of MuonSegmentCombinations is turned off, so perhaps this can be removed entirely
50
SegVec
removeDuplicates
(
MuonSegmentCombination::SegmentVec
& segments)
const
;
51
52
ServiceHandle<Muon::IMuonIdHelperSvc>
m_idHelperSvc
{
53
this
,
54
"MuonIdHelperSvc"
,
55
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"
,
56
};
57
ServiceHandle<Muon::IMuonEDMHelperSvc>
m_edmHelperSvc
{
58
this
,
59
"edmHelper"
,
60
"Muon::MuonEDMHelperSvc/MuonEDMHelperSvc"
,
61
"Handle to the service providing the IMuonEDMHelperSvc interface"
,
62
};
63
64
PublicToolHandle<Muon::MuonEDMPrinterTool>
m_printer
{
65
this
,
66
"Printer"
,
67
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"
,
68
};
69
70
Gaudi::Property<bool>
m_removePartialOverlaps
{
71
this
,
"RemovePartialOverlaps"
,
true
,
72
"removal partial overlaps between segments"
};
73
Gaudi::Property<double>
m_overlapFractionCut
{
74
this
,
"OverlapFractionCut"
, 0.8,
75
"Cut overlap fraction, if fraction is smaller than cut both segments are kept"
};
76
};
77
78
}
// namespace Muon
79
80
#endif
AthAlgTool.h
IMuonEDMHelperSvc.h
IMuonIdHelperSvc.h
IMuonSegmentOverlapRemovalTool.h
MuonEDMPrinterTool.h
MuonSegmentCombination.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
Muon::IMuonSegmentOverlapRemovalTool
abstract interface for tools removing duplicates from segment collections and segment combinations
Definition
IMuonSegmentOverlapRemovalTool.h:22
Muon::MuonSegmentCombination
Class to hold a set of MuonSegments belonging together.
Definition
MuonSegmentCombination.h:30
Muon::MuonSegmentCombination::SegmentVec
std::vector< std::unique_ptr< MuonSegment > > SegmentVec
Definition
MuonSegmentCombination.h:32
Muon::MuonSegmentOverlapRemovalTool::MuonSegmentOverlapRemovalTool
MuonSegmentOverlapRemovalTool(const std::string &, const std::string &, const IInterface *)
constructor
Definition
MuonSegmentOverlapRemovalTool.cxx:14
Muon::MuonSegmentOverlapRemovalTool::m_overlapFractionCut
Gaudi::Property< double > m_overlapFractionCut
cut on overlap fraction for segments
Definition
MuonSegmentOverlapRemovalTool.h:73
Muon::MuonSegmentOverlapRemovalTool::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
EDM Helper tool.
Definition
MuonSegmentOverlapRemovalTool.h:57
Muon::MuonSegmentOverlapRemovalTool::removeDuplicates
void removeDuplicates(Trk::SegmentCollection &segments) const override
remove duplicates from a vector of segments.
Definition
MuonSegmentOverlapRemovalTool.cxx:27
Muon::MuonSegmentOverlapRemovalTool::m_printer
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
EDM printer tool.
Definition
MuonSegmentOverlapRemovalTool.h:64
Muon::MuonSegmentOverlapRemovalTool::~MuonSegmentOverlapRemovalTool
virtual ~MuonSegmentOverlapRemovalTool()=default
destructor
Muon::MuonSegmentOverlapRemovalTool::m_removePartialOverlaps
Gaudi::Property< bool > m_removePartialOverlaps
remove partial overlaps between segments
Definition
MuonSegmentOverlapRemovalTool.h:70
Muon::MuonSegmentOverlapRemovalTool::SegVec
std::vector< MuonSegment * > SegVec
Definition
MuonSegmentOverlapRemovalTool.h:45
Muon::MuonSegmentOverlapRemovalTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition
MuonSegmentOverlapRemovalTool.h:52
Muon::MuonSegmentOverlapRemovalTool::initialize
StatusCode initialize() override
AlgTool initilize.
Definition
MuonSegmentOverlapRemovalTool.cxx:19
Muon::MuonSegment
This is the common class for 3D segments used in the muon spectrometer.
Definition
MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
ServiceHandle
Definition
ClusterMakerTool.h:36
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Trk::SegmentCollection
DataVector< Trk::Segment > SegmentCollection
Definition
SegmentCollection.h:13
Generated on
for ATLAS Offline Software by
1.17.0