ATLAS Offline Software
MuTagAmbiguitySolverTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MuTagAmbiguitySolverTool_H
6 #define MuTagAmbiguitySolverTool_H
7 
8 #include <string>
9 
11 #include "GaudiKernel/ServiceHandle.h"
12 #include "GaudiKernel/ToolHandle.h"
20 
28 namespace Muon {
29  class MuonSegment;
30 }
31 
33 public:
34  MuTagAmbiguitySolverTool(const std::string& t, const std::string& n, const IInterface* p);
35  virtual ~MuTagAmbiguitySolverTool() = default;
36 
37  virtual StatusCode initialize();
38 
39  std::vector<MuonCombined::MuonSegmentInfo> solveAmbiguities(const EventContext& ctx, std::vector<MuonCombined::MuonSegmentInfo> mtos) const;
40 
41  std::vector<MuonCombined::MuonSegmentInfo> selectBestMuTaggedSegments(const EventContext& ctx, std::vector<MuonCombined::MuonSegmentInfo> mtss) const;
42 
43 private:
45  int ambiguousSegment(const EventContext& ctx, const Muon::MuonSegment& seg1, const Muon::MuonSegment& seg2) const;
46  double Rseg(unsigned int nseg) const;
47 
49  this,
50  "edmHelper",
51  "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
52  "Handle to the service providing the IMuonEDMHelperSvc interface",
53  };
55  this,
56  "MuonIdHelperSvc",
57  "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
58  };
59 
60  ToolHandle<Muon::MuonEDMPrinterTool> p_muonPrinter{
61  this,
62  "Printer",
63  "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
64  };
65  ToolHandle<Muon::IMuonSegmentMatchingTool> p_segmentMatchingTool{
66  this,
67  "MuonSegmentMatchingTool",
68  "Muon::MuonSegmentMatchingTool/MuonSegmentMatchingTool",
69  };
70 
73  bool m_rejectOuterEndcap;
76 };
77 
78 #endif // MuTagAmbiguitySolverTool_H
MuTagAmbiguitySolverTool::solveAmbiguities
std::vector< MuonCombined::MuonSegmentInfo > solveAmbiguities(const EventContext &ctx, std::vector< MuonCombined::MuonSegmentInfo > mtos) const
Definition: MuTagAmbiguitySolverTool.cxx:39
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
IMuTagAmbiguitySolverTool
Definition: IMuTagAmbiguitySolverTool.h:28
IMuonSegmentMatchingTool.h
MuonEDMPrinterTool.h
MuTagAmbiguitySolverTool
Definition: MuTagAmbiguitySolverTool.h:32
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
MuonSegmentInfo.h
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
MuTagAmbiguitySolverTool::m_hitOverlapMatching
bool m_hitOverlapMatching
check hit overlap of segments in ambi solving
Definition: MuTagAmbiguitySolverTool.h:71
MuTagAmbiguitySolverTool::initialize
virtual StatusCode initialize()
Definition: MuTagAmbiguitySolverTool.cxx:26
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
MuTagAmbiguitySolverTool::p_muonPrinter
ToolHandle< Muon::MuonEDMPrinterTool > p_muonPrinter
Pointer on MuonEDMPrinterTool.
Definition: MuTagAmbiguitySolverTool.h:60
MuTagAmbiguitySolverTool::m_rejectMatchPhi
bool m_rejectMatchPhi
reject one station tags with phi hits and a fabs(MatchPhi = minPullPhi) > 3
Definition: MuTagAmbiguitySolverTool.h:75
MuTagAmbiguitySolverTool::m_slOverlapMatching
bool m_slOverlapMatching
for segments in a SL overlap in the same station layer, check whether from same particle
Definition: MuTagAmbiguitySolverTool.h:72
IMuonEDMHelperSvc.h
MuTagAmbiguitySolverTool::Rseg
double Rseg(unsigned int nseg) const
What are these hardcoded constants about? d + a / (1 + exp())
Definition: MuTagAmbiguitySolverTool.cxx:362
MuTagAmbiguitySolverTool::ambiguousSegment
int ambiguousSegment(const EventContext &ctx, const Muon::MuonSegment &seg1, const Muon::MuonSegment &seg2) const
Definition: MuTagAmbiguitySolverTool.cxx:238
MuTagAmbiguitySolverTool::m_rejectOuterEndcap
bool m_rejectOuterEndcap
reject Endcap Outer one station layer tags (without EI or EM)
Definition: MuTagAmbiguitySolverTool.h:74
MuTagAmbiguitySolverTool::~MuTagAmbiguitySolverTool
virtual ~MuTagAmbiguitySolverTool()=default
IMuTagAmbiguitySolverTool.h
MuTagAmbiguitySolverTool::selectBestMuTaggedSegments
std::vector< MuonCombined::MuonSegmentInfo > selectBestMuTaggedSegments(const EventContext &ctx, std::vector< MuonCombined::MuonSegmentInfo > mtss) const
Definition: MuTagAmbiguitySolverTool.cxx:301
MuTagAmbiguitySolverTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuTagAmbiguitySolverTool.h:54
MuTagAmbiguitySolverTool::p_segmentMatchingTool
ToolHandle< Muon::IMuonSegmentMatchingTool > p_segmentMatchingTool
Pointer on MuonSegmentMatchingTool.
Definition: MuTagAmbiguitySolverTool.h:65
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
AthAlgTool
Definition: AthAlgTool.h:26
MuTagAmbiguitySolverTool::MuTagAmbiguitySolverTool
MuTagAmbiguitySolverTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: MuTagAmbiguitySolverTool.cxx:18
IMuonIdHelperSvc.h
SegmentCollection.h
MuTagAmbiguitySolverTool::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Pointer on IMuonEDMHelperSvc.
Definition: MuTagAmbiguitySolverTool.h:48
ServiceHandle< Muon::IMuonEDMHelperSvc >