ATLAS Offline Software
Loading...
Searching...
No Matches
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
9#include "GaudiKernel/ServiceHandle.h"
10#include "GaudiKernel/ToolHandle.h"
16
17namespace Muon {
18
19 class MuonSegment;
20
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
51
53 this,
54 "MuonIdHelperSvc",
55 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
56 };
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(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
abstract interface for tools removing duplicates from segment collections and segment combinations
Class to hold a set of MuonSegments belonging together.
std::vector< std::unique_ptr< MuonSegment > > SegmentVec
MuonSegmentOverlapRemovalTool(const std::string &, const std::string &, const IInterface *)
constructor
Gaudi::Property< double > m_overlapFractionCut
cut on overlap fraction for segments
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
EDM Helper tool.
void removeDuplicates(Trk::SegmentCollection &segments) const override
remove duplicates from a vector of segments.
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
EDM printer tool.
virtual ~MuonSegmentOverlapRemovalTool()=default
destructor
Gaudi::Property< bool > m_removePartialOverlaps
remove partial overlaps between segments
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StatusCode initialize() override
AlgTool initilize.
This is the common class for 3D segments used in the muon spectrometer.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
DataVector< Trk::Segment > SegmentCollection