ATLAS Offline Software
MuonStauRecoTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUON_MUONSTAURECOTOOL_H
6 #define MUON_MUONSTAURECOTOOL_H
7 
8 #include <iostream>
9 #include <string>
10 #include <vector>
11 
13 #include "GaudiKernel/PhysicalConstants.h"
14 #include "GaudiKernel/ServiceHandle.h"
15 #include "GaudiKernel/ToolHandle.h"
25 #include "MuonInsideOutRecoTool.h"
41 #include "TrkTrack/Track.h"
42 
43 namespace Muon {
44  class RpcClusterOnTrack;
45 }
46 
47 namespace MuonCombined {
57  public:
58  typedef std::vector<const MuonHough::MuonLayerHough::Maximum*> MaximumVec;
59  typedef std::vector<const MuonHough::MuonPhiLayerHough::Maximum*> PhiMaximumVec;
60 
61  struct BetaSeed {
62  BetaSeed(float beta_, float error_) : beta(beta_), error(error_) {}
63  float beta{0.f};
64  float error{0.f};
65  };
66 
68  std::vector<std::shared_ptr<const Muon::RpcClusterOnTrack>> rpcClusters;
69  float time{0.f};
70  float error{0.f};
71  };
72  typedef std::vector<RpcTimeMeasurement> RpcTimeMeasurementVec;
73 
74  struct MaximumData {
76  const MuonHough::MuonLayerHough::Maximum* maximum_,
77  const std::vector<std::shared_ptr<const Muon::MuonClusterOnTrack>> & phiClusterOnTracks_) :
78  intersection(intersection_), maximum(maximum_), phiClusterOnTracks(phiClusterOnTracks_) {}
81  std::vector<std::shared_ptr<const Muon::MuonClusterOnTrack>> phiClusterOnTracks;
82 
83  std::vector<std::shared_ptr<const Muon::MuonSegment>> t0fittedSegments;
85  std::vector<BetaSeed> betaSeeds;
86  };
87  using MaximumDataVec = std::vector<std::shared_ptr<MaximumData>>;
88  struct LayerData {
89  LayerData(const Muon::MuonSystemExtension::Intersection& intersection_) : intersection(intersection_) {}
92  };
93  typedef std::vector<LayerData> LayerDataVec;
94 
95  struct AssociatedData {
98  };
99 
100  struct Candidate {
101  Candidate(const BetaSeed& betaSeed_) : betaSeed(betaSeed_) {}
102 
103  // inital parameters
105 
106  // information filled by createCandidates: associated layers with MaximumData, time measurements and final beta fit result
110 
111  // information filled by refineCandidates: segments found using the beta of the final fit
112  std::vector<Muon::MuonLayerRecoData> allLayers;
113 
114  // information filled by the final tracking: MuonCandidate and the track
115  std::unique_ptr<const Muon::MuonCandidate> muonCandidate;
116  std::unique_ptr<Trk::Track> combinedTrack;
119  };
120  typedef std::vector<std::shared_ptr<Candidate>> CandidateVec;
121 
122  struct TruthInfo {
123  TruthInfo(int pdgId_, float mass_, float beta_) : pdgId(pdgId_), mass(mass_), beta(beta_) {}
124  int pdgId{0};
125  float mass{0.f};
126  float beta{0.f};
127  std::string toString() const {
128  std::ostringstream sout;
129  sout << " pdgId " << pdgId << " mass " << mass << " beta " << beta;
130  return sout.str();
131  }
132  };
133 
135  MuonStauRecoTool(const std::string& type, const std::string& name, const IInterface* parent);
136  virtual ~MuonStauRecoTool() = default;
137  virtual StatusCode initialize() override;
138 
140  virtual void extend(const InDetCandidateCollection& inDetCandidates, InDetCandidateToTagMap* tagMap, TrackCollection* combTracks,
141  TrackCollection* meTracks, Trk::SegmentCollection* segments, const EventContext& ctx) const override;
142 
143  virtual void extendWithPRDs(const InDetCandidateCollection& inDetCandidates, InDetCandidateToTagMap* tagMap,
145  TrackCollection* meTracks, Trk::SegmentCollection* segments, const EventContext& ctx) const override;
146 
147  private:
149  void handleCandidate(const EventContext& ctx, const InDetCandidate& inDetCandidate, InDetCandidateToTagMap* tagMap,
150  TrackCollection* combTracks, Trk::SegmentCollection* segments) const;
151 
153  void associateHoughMaxima(const EventContext& ctx, LayerData& layerData) const;
154 
157 
160  const std::vector<Muon::RpcClusterObj>& clusterObjects,
161  RpcTimeMeasurementVec& rpcTimeMeasurements) const;
162 
165  std::vector<std::shared_ptr<const Muon::MuonSegment>>& t0fittedSegments,
166  const ToolHandle<Muon::IMuonPRDSelectionTool>& muonPRDSelectionTool,
167  const ToolHandle<Muon::IMuonSegmentMaker>& segmentMaker) const;
168 
170  bool extractTimeMeasurements(const EventContext& ctx, const Muon::MuonSystemExtension& muonSystemExtension,
171  AssociatedData& associatedData) const;
172 
174  bool createCandidates(const AssociatedData& associatedData, CandidateVec& candidates) const;
175 
177  void extendCandidates(CandidateVec& candidates, std::set<const MaximumData*>& usedMaximumData, LayerDataVec::const_iterator it,
178  LayerDataVec::const_iterator it_end) const;
179 
181  void getBetaSeeds(MaximumData& maximumData) const;
182 
184  bool extractTimeHits(const MaximumData& maximumData, Muon::TimePointBetaFitter::HitVec& hits, const BetaSeed* seed = 0) const;
185 
187  bool refineCandidates(const EventContext& ctx, CandidateVec& candidates) const;
188 
190  bool combineCandidates(const EventContext& ctx, const xAOD::TrackParticle& indetTrackParticle, CandidateVec& candidates) const;
191 
194 
196  void addTag(const InDetCandidate& inDetCandidate, Candidate& candidate, InDetCandidateToTagMap* tagMap, TrackCollection* combTracks,
197  Trk::SegmentCollection* segments) const;
198 
200  void extractTimeMeasurementsFromTrack(const EventContext& ctx, Candidate& candidate) const;
201 
203  std::unique_ptr<TruthInfo> getTruth(const xAOD::TrackParticle& indetTrackParticle) const;
204 
206  bool selectTruth(const TruthInfo* truthInfo) const {
207  if (!m_useTruthMatching) return true;
208  if (truthInfo && m_selectedPdgs.count(truthInfo->pdgId)) return true;
209  return false;
210  }
211 
213  void addCandidatesToNtuple(const xAOD::TrackParticle& indetTrackParticle, const CandidateVec& candidates, int stage) const;
214 
216  bool processMuonSystemExtension(const xAOD::TrackParticle& indetTrackParticle, const Muon::MuonSystemExtension& muonSystemExtension,
218 
220  void mdtTimeCalibration(const Identifier& id, float& time, float& error) const;
221  void rpcTimeCalibration(const Identifier& id, float& time, float& error) const;
222  void segmentTimeCalibration(const Identifier& id, float& time, float& error) const;
223 
224  float calculateTof(const float beta, const float dist) const;
225  float calculateBeta(const float time, const float dist) const;
226 
229  this, "Key_MuonLayerHoughToolHoughDataPerSectorVec", "HoughDataPerSectorVec", "HoughDataPerSectorVec key"};
230 
231  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
232  ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
233  "Handle to the service providing the IMuonEDMHelperSvc interface"};
234 
235  ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this, "MuonEDMPrinterTool", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
236  ToolHandle<Muon::IMuonSegmentMaker> m_segmentMaker{this, "MuonSegmentMaker", "Muon::DCMathSegmentMaker/DCMathSegmentMaker"};
237  ToolHandle<Muon::IMuonSegmentMaker> m_segmentMakerT0Fit{this, "MuonSegmentMakerT0Fit",
238  "Muon::DCMathSegmentMaker/DCMathT0FitSegmentMaker"};
239  ToolHandle<Muon::IMuonLayerSegmentMatchingTool> m_segmentMatchingTool{
240  this, "MuonLayerSegmentMatchingTool", "Muon::MuonLayerSegmentMatchingTool/MuonLayerSegmentMatchingTool"};
241 
242  ToolHandle<Muon::IMuonRecoValidationTool> m_recoValidationTool{this, "MuonRecoValidationTool", ""};
243  ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_trackAmbibuityResolver{this, "TrackAmbiguityProcessor",
244  "Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"};
245  ToolHandle<Muon::IMuonHitTimingTool> m_hitTimingTool{this, "MuonHitTimingTool", "Muon::MuonHitTimingTool/MuonHitTimingTool"};
246  ToolHandle<Muon::IMuonPRDSelectionTool> m_muonPRDSelectionTool{this, "MuonPRDSelectionTool", ""};
247  ToolHandle<Muon::IMuonPRDSelectionTool> m_muonPRDSelectionToolStau{this, "MuonPRDSelectionToolStau", ""};
248  ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreator{this, "MdtDriftCircleOnTrackCreator",
249  "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"};
250  ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreatorStau{
251  this, "MdtDriftCircleOnTrackCreatorStau", "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreatorStau"};
252  ToolHandle<MuonCombined::MuonInsideOutRecoTool> m_insideOutRecoTool{this, "MuonInsideOutRecoTool",
253  "MuonCombined::MuonInsideOutRecoTool/MuonInsideOutRecoTool"};
254  ToolHandle<Trk::IUpdator> m_updator{this, "Updator", "Trk::KalmanUpdator/KalmanUpdator"};
256  "Conditions object containing the calibrations"};
257 
259 
260  Gaudi::Property<bool> m_doSummary{this, "DoSummary", false, "enable summary output"};
261  Gaudi::Property<bool> m_useTruthMatching{this, "UseTruthMatching", false, "enable usage of truth info for reconstruction"};
262  Gaudi::Property<bool> m_doTruth{this, "DoTruth", false, "enable truth matching"};
263  Gaudi::Property<bool> m_segmentMDTT{this, "UseSegmentMDTT", true};
264  Gaudi::Property<bool> m_ignoreSiAssocated{this, "IgnoreSiAssociatedCandidates", true};
265  Gaudi::Property<std::vector<int>> m_pdgsToBeConsidered{this, "ConsideredPDGs", {}, "PDG IDs considered in truth matching"};
266  Gaudi::Property<double> m_ptThreshold{this, "PtThreshold", 10000};
267  Gaudi::Property<double> m_houghAssociationPullCut{this, "HoughAssociationPullCut", 5};
268  Gaudi::Property<double> m_mdttBetaAssociationCut{this, "MDTTAssocationCut", 0.4};
269  Gaudi::Property<double> m_rpcBetaAssociationCut{this, "RPCAssocationCut", 0.2};
270  Gaudi::Property<double> m_segmentBetaAssociationCut{this, "SegmentAssocationCut", 0.2};
271 
272  std::set<int> m_selectedPdgs; // set storing particle PDG's considered for matching
273  };
274 
275 } // namespace MuonCombined
276 
277 #endif
MuonCombined::MuonStauRecoTool::BetaSeed::BetaSeed
BetaSeed(float beta_, float error_)
Definition: MuonStauRecoTool.h:62
MuonCombined::MuonStauRecoTool::m_muonPRDSelectionToolStau
ToolHandle< Muon::IMuonPRDSelectionTool > m_muonPRDSelectionToolStau
Definition: MuonStauRecoTool.h:247
ICombinedMuonTrackBuilder.h
MuonCombined::MuonStauRecoTool::AssociatedData::phiMaxima
PhiMaximumVec phiMaxima
Definition: MuonStauRecoTool.h:97
MuonCombined::MuonStauRecoTool::Candidate
Definition: MuonStauRecoTool.h:100
MuonCombined::MuonStauRecoTool::extractTimeHits
bool extractTimeHits(const MaximumData &maximumData, Muon::TimePointBetaFitter::HitVec &hits, const BetaSeed *seed=0) const
extract hits for the beta fit, returns true if hits were added
Definition: MuonStauRecoTool.cxx:1038
MuonCombined::MuonStauRecoTool::extractTimeMeasurementsFromTrack
void extractTimeMeasurementsFromTrack(const EventContext &ctx, Candidate &candidate) const
extract time measurements from the track associated with the candidate
Definition: MuonStauRecoTool.cxx:261
MuonCombined::MuonStauRecoTool::m_useTruthMatching
Gaudi::Property< bool > m_useTruthMatching
Definition: MuonStauRecoTool.h:261
MuonCombined::MuonStauRecoTool::Candidate::layerDataVec
LayerDataVec layerDataVec
Definition: MuonStauRecoTool.h:107
MuonCombined::MuonStauRecoTool::MaximumDataVec
std::vector< std::shared_ptr< MaximumData > > MaximumDataVec
Definition: MuonStauRecoTool.h:87
python.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:604
MuonCombined::MuonStauRecoTool::m_calibDbKey
SG::ReadCondHandleKey< MuonCalib::MdtCalibDataContainer > m_calibDbKey
Definition: MuonStauRecoTool.h:255
MuonCombined::MuonStauRecoTool::addCandidatesToNtuple
void addCandidatesToNtuple(const xAOD::TrackParticle &indetTrackParticle, const CandidateVec &candidates, int stage) const
helper function to add Candidate to ntuple
Definition: MuonStauRecoTool.cxx:1418
MuonCombined::MuonStauRecoTool::m_rpcBetaAssociationCut
Gaudi::Property< double > m_rpcBetaAssociationCut
Definition: MuonStauRecoTool.h:269
MuonEDMPrinterTool.h
MuonCombined::MuonStauRecoTool::m_ptThreshold
Gaudi::Property< double > m_ptThreshold
Definition: MuonStauRecoTool.h:266
MuonCombined::MuonStauRecoTool::MaximumData::intersection
Muon::MuonSystemExtension::Intersection intersection
Definition: MuonStauRecoTool.h:79
MuonCombined::MuonStauRecoTool::m_doTruth
Gaudi::Property< bool > m_doTruth
Definition: MuonStauRecoTool.h:262
MuonCombined::InDetCandidateToTagMap
Definition: InDetCandidateToTagMap.h:15
drawFromPickle.candidates
candidates
Definition: drawFromPickle.py:271
IMuonPRDSelectionTool.h
MuonCombined::MuonStauRecoTool::m_recoValidationTool
ToolHandle< Muon::IMuonRecoValidationTool > m_recoValidationTool
Definition: MuonStauRecoTool.h:242
MuonCombined::MuonStauRecoTool::m_updator
ToolHandle< Trk::IUpdator > m_updator
Definition: MuonStauRecoTool.h:254
MuonCombined::MuonStauRecoTool::CandidateVec
std::vector< std::shared_ptr< Candidate > > CandidateVec
Definition: MuonStauRecoTool.h:120
MdtCalibDataContainer.h
MuonCombined::MuonStauRecoTool::m_hitTimingTool
ToolHandle< Muon::IMuonHitTimingTool > m_hitTimingTool
Definition: MuonStauRecoTool.h:245
MuonCombined::MuonStauRecoTool::MaximumData::phiClusterOnTracks
std::vector< std::shared_ptr< const Muon::MuonClusterOnTrack > > phiClusterOnTracks
Definition: MuonStauRecoTool.h:81
MuonCombined::MuonStauRecoTool::Candidate::Candidate
Candidate(const BetaSeed &betaSeed_)
Definition: MuonStauRecoTool.h:101
MuonCombined::MuonStauRecoTool::RpcTimeMeasurement
Definition: MuonStauRecoTool.h:67
MuonCombined::MuonStauRecoTool::initialize
virtual StatusCode initialize() override
Definition: MuonStauRecoTool.cxx:48
MuonCombined::MuonStauRecoTool::MaximumData::MaximumData
MaximumData(const Muon::MuonSystemExtension::Intersection &intersection_, const MuonHough::MuonLayerHough::Maximum *maximum_, const std::vector< std::shared_ptr< const Muon::MuonClusterOnTrack >> &phiClusterOnTracks_)
Definition: MuonStauRecoTool.h:75
MuonCombined::MuonStauRecoTool::TruthInfo::toString
std::string toString() const
Definition: MuonStauRecoTool.h:127
MuonCombined::MuonStauRecoTool::m_doSummary
Gaudi::Property< bool > m_doSummary
Definition: MuonStauRecoTool.h:260
skel.it
it
Definition: skel.GENtoEVGEN.py:423
MuonCombined::MuonStauRecoTool::m_printer
ToolHandle< Muon::MuonEDMPrinterTool > m_printer
Definition: MuonStauRecoTool.h:235
RpcHitClustering.h
MuonCombined::InDetCandidate
Definition: InDetCandidate.h:18
MuonCombined::MuonStauRecoTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonStauRecoTool.h:231
IMuonLayerSegmentMatchingTool.h
MuonCombined::MuonStauRecoTool::createRpcTimeMeasurementsFromClusters
void createRpcTimeMeasurementsFromClusters(const Muon::MuonSystemExtension::Intersection &intersection, const std::vector< Muon::RpcClusterObj > &clusterObjects, RpcTimeMeasurementVec &rpcTimeMeasurements) const
create Rpc hit timing for a set of clusters
Definition: MuonStauRecoTool.cxx:1241
MuonCombined::MuonStauRecoTool::Candidate::betaSeed
BetaSeed betaSeed
Definition: MuonStauRecoTool.h:104
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
MuonCombined::MuonStauRecoTool::MaximumVec
std::vector< const MuonHough::MuonLayerHough::Maximum * > MaximumVec
Definition: MuonStauRecoTool.h:58
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
MuonCombined::MuonStauRecoTool::RpcTimeMeasurementVec
std::vector< RpcTimeMeasurement > RpcTimeMeasurementVec
Definition: MuonStauRecoTool.h:72
intersection
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:25
MuonCombined::MuonStauRecoTool::resolveAmbiguities
bool resolveAmbiguities(CandidateVec &candidates) const
resolve ambiguities between the candidates
Definition: MuonStauRecoTool.cxx:732
MuonCombined::MuonStauRecoTool::extractRpcTimingFromMaximum
void extractRpcTimingFromMaximum(const Muon::MuonSystemExtension::Intersection &intersection, MaximumData &maximumData) const
extract RPC hit timing
Definition: MuonStauRecoTool.cxx:1195
MuonCombined::MuonStauRecoTool::extendCandidates
void extendCandidates(CandidateVec &candidates, std::set< const MaximumData * > &usedMaximumData, LayerDataVec::const_iterator it, LayerDataVec::const_iterator it_end) const
extend a CandidateVec with the next LayerData
Definition: MuonStauRecoTool.cxx:920
ITrackAmbiguityProcessorTool.h
MuonCombined::MuonStauRecoTool::RpcTimeMeasurement::rpcClusters
std::vector< std::shared_ptr< const Muon::RpcClusterOnTrack > > rpcClusters
Definition: MuonStauRecoTool.h:68
IUpdator.h
MuonLayerHoughTool.h
MuonLayerHough.h
Track.h
IMuonHitTimingTool.h
Muon::TimePointBetaFitter::FitResult
simple struct holding the fit result
Definition: TimePointBetaFitter.h:33
MuonCombined::MuonStauRecoTool::m_trackAmbibuityResolver
ToolHandle< Trk::ITrackAmbiguityProcessorTool > m_trackAmbibuityResolver
Definition: MuonStauRecoTool.h:243
MuonCombined::MuonStauRecoTool::TruthInfo::beta
float beta
Definition: MuonStauRecoTool.h:126
MuonCombined::MuonStauRecoTool::segmentTimeCalibration
void segmentTimeCalibration(const Identifier &id, float &time, float &error) const
Definition: MuonStauRecoTool.cxx:1405
MuonHough::MuonLayerHough::Maximum
struct representing the maximum in the hough space
Definition: MuonLayerHough.h:56
MuonCombined::MuonStauRecoTool::LayerData::LayerData
LayerData(const Muon::MuonSystemExtension::Intersection &intersection_)
Definition: MuonStauRecoTool.h:89
MuonCombined::MuonStauRecoTool::m_muonSectorMapping
Muon::MuonSectorMapping m_muonSectorMapping
Definition: MuonStauRecoTool.h:258
MuonCombined::MuonStauRecoTool::rpcTimeCalibration
void rpcTimeCalibration(const Identifier &id, float &time, float &error) const
Definition: MuonStauRecoTool.cxx:1401
MuonCombined::MuonStauRecoTool::LayerDataVec
std::vector< LayerData > LayerDataVec
Definition: MuonStauRecoTool.h:93
MuonCombined::MuonStauRecoTool::m_segmentMatchingTool
ToolHandle< Muon::IMuonLayerSegmentMatchingTool > m_segmentMatchingTool
Definition: MuonStauRecoTool.h:239
MuonCombined::MuonStauRecoTool::PhiMaximumVec
std::vector< const MuonHough::MuonPhiLayerHough::Maximum * > PhiMaximumVec
Definition: MuonStauRecoTool.h:59
MuonCombined::MuonStauRecoTool::TruthInfo::pdgId
int pdgId
Definition: MuonStauRecoTool.h:124
MuonCombined::MuonStauRecoTool::m_mdttBetaAssociationCut
Gaudi::Property< double > m_mdttBetaAssociationCut
Definition: MuonStauRecoTool.h:268
MuonCombined::MuonStauRecoTool::m_mdtCreator
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreator
Definition: MuonStauRecoTool.h:248
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
Muon::MuonSystemExtension
Tracking class to hold the extrapolation from a particle from the calo entry to the end of muon syste...
Definition: MuonSystemExtension.h:18
MuonCombined::MuonStauRecoTool::Candidate::allLayers
std::vector< Muon::MuonLayerRecoData > allLayers
Definition: MuonStauRecoTool.h:112
AthAlgTool.h
IMuonCombinedInDetExtensionTool.h
MuonCombined::MuonStauRecoTool::MuonStauRecoTool
MuonStauRecoTool(const std::string &type, const std::string &name, const IInterface *parent)
Default AlgTool functions.
Definition: MuonStauRecoTool.cxx:45
MuonCombined::MuonStauRecoTool::BetaSeed::beta
float beta
Definition: MuonStauRecoTool.h:63
MuonCombined::MuonStauRecoTool::m_segmentMDTT
Gaudi::Property< bool > m_segmentMDTT
Definition: MuonStauRecoTool.h:263
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonCombined::MuonStauRecoTool::mdtTimeCalibration
void mdtTimeCalibration(const Identifier &id, float &time, float &error) const
Definition: MuonStauRecoTool.cxx:1397
MuonCombined::MuonStauRecoTool::createCandidates
bool createCandidates(const AssociatedData &associatedData, CandidateVec &candidates) const
create candidates from the beta seeds
Definition: MuonStauRecoTool.cxx:839
MuonCombined::MuonStauRecoTool::AssociatedData
Definition: MuonStauRecoTool.h:95
MuonCombined::MuonStauRecoTool::~MuonStauRecoTool
virtual ~MuonStauRecoTool()=default
MuonCombined::MuonStauRecoTool::Candidate::muonCandidate
std::unique_ptr< const Muon::MuonCandidate > muonCandidate
Definition: MuonStauRecoTool.h:115
MuonCombined::MuonStauRecoTool::Candidate::finalBetaFitResult
Muon::TimePointBetaFitter::FitResult finalBetaFitResult
Definition: MuonStauRecoTool.h:118
MuonCombined::MuonStauRecoTool::MaximumData::maximum
const MuonHough::MuonLayerHough::Maximum * maximum
Definition: MuonStauRecoTool.h:80
MuonCombined::MuonStauRecoTool::BetaSeed
Definition: MuonStauRecoTool.h:61
MuonCombined::MuonStauRecoTool::Candidate::hits
Muon::TimePointBetaFitter::HitVec hits
Definition: MuonStauRecoTool.h:108
MuonCombined::MuonStauRecoTool::m_houghDataPerSectorVecKey
SG::ReadHandleKey< Muon::MuonLayerHoughTool::HoughDataPerSectorVec > m_houghDataPerSectorVecKey
storegate
Definition: MuonStauRecoTool.h:228
MuGirlLowBetaTag.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
MuonCombined::MuonStauRecoTool::addTag
void addTag(const InDetCandidate &inDetCandidate, Candidate &candidate, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, Trk::SegmentCollection *segments) const
create final tag object and add it to the inDetCandidate
Definition: MuonStauRecoTool.cxx:684
MuonCombined::MuonStauRecoTool::m_segmentMaker
ToolHandle< Muon::IMuonSegmentMaker > m_segmentMaker
Definition: MuonStauRecoTool.h:236
MuonCombined::MuonStauRecoTool::m_segmentBetaAssociationCut
Gaudi::Property< double > m_segmentBetaAssociationCut
Definition: MuonStauRecoTool.h:270
MuonCombined::MuonStauRecoTool::MaximumData
Definition: MuonStauRecoTool.h:74
MuonCombined::MuonStauRecoTool::combineCandidates
bool combineCandidates(const EventContext &ctx, const xAOD::TrackParticle &indetTrackParticle, CandidateVec &candidates) const
combine reconstruction
Definition: MuonStauRecoTool.cxx:784
MuonCombined::MuonStauRecoTool::LayerData::maximumDataVec
MaximumDataVec maximumDataVec
Definition: MuonStauRecoTool.h:91
MuonCombined::MuonStauRecoTool::m_selectedPdgs
std::set< int > m_selectedPdgs
Definition: MuonStauRecoTool.h:272
IMuonEDMHelperSvc.h
MuonSystemExtension.h
MuonCombined::MuonStauRecoTool::calculateTof
float calculateTof(const float beta, const float dist) const
Calcualte for zero betas.
Definition: MuonStauRecoTool.cxx:1410
MuonCombined::MuonStauRecoTool::associateHoughMaxima
void associateHoughMaxima(const EventContext &ctx, LayerData &layerData) const
associate Hough maxima to intersection
Definition: MuonStauRecoTool.cxx:1282
MuonCombined::MuonStauRecoTool::MaximumData::betaSeeds
std::vector< BetaSeed > betaSeeds
Definition: MuonStauRecoTool.h:85
MuonCombined::MuonStauRecoTool::findSegments
void findSegments(const Muon::MuonSystemExtension::Intersection &intersection, MaximumData &maximumData, std::vector< std::shared_ptr< const Muon::MuonSegment >> &t0fittedSegments, const ToolHandle< Muon::IMuonPRDSelectionTool > &muonPRDSelectionTool, const ToolHandle< Muon::IMuonSegmentMaker > &segmentMaker) const
find segments for a given maximum
Definition: MuonStauRecoTool.cxx:1117
MuonCombined::MuonStauRecoTool::getBetaSeeds
void getBetaSeeds(MaximumData &maximumData) const
calculate the beta seeds for a give MaximumData
Definition: MuonStauRecoTool.cxx:1100
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
MuonCombined::MuonStauRecoTool::Candidate::stauHits
MuGirlNS::StauHits stauHits
Definition: MuonStauRecoTool.h:117
IMdtDriftCircleOnTrackCreator.h
MuonCombined::MuonStauRecoTool::calculateBeta
float calculateBeta(const float time, const float dist) const
In cases of invalid times just return an phyisical value of 20 times the speed of light The subsequen...
Definition: MuonStauRecoTool.cxx:1415
MuonCombined::MuonStauRecoTool::TruthInfo
Definition: MuonStauRecoTool.h:122
MuonCombined::MuonStauRecoTool::handleCandidate
void handleCandidate(const EventContext &ctx, const InDetCandidate &inDetCandidate, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, Trk::SegmentCollection *segments) const
handle a single candidate
Definition: MuonStauRecoTool.cxx:105
MuonCombined::MuonStauRecoTool::LayerData::intersection
Muon::MuonSystemExtension::Intersection intersection
Definition: MuonStauRecoTool.h:90
MuonCombined::MuonStauRecoTool::MaximumData::rpcTimeMeasurements
RpcTimeMeasurementVec rpcTimeMeasurements
Definition: MuonStauRecoTool.h:84
MuonCombined::MuonStauRecoTool::m_segmentMakerT0Fit
ToolHandle< Muon::IMuonSegmentMaker > m_segmentMakerT0Fit
Definition: MuonStauRecoTool.h:237
MuonCombined::MuonStauRecoTool::extend
virtual void extend(const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
IMuonCombinedInDetExtensionTool interface: extend ID candidate.
Definition: MuonStauRecoTool.cxx:82
SG::ReadCondHandleKey< MuonCalib::MdtCalibDataContainer >
IMuonRecoValidationTool.h
MuonCombined::IMuonCombinedInDetExtensionTool
interface for tools buildingmuons from ID candidates
Definition: IMuonCombinedInDetExtensionTool.h:25
MuonSectorMapping.h
Muon::TimePointBetaFitter::HitVec
std::vector< Hit > HitVec
Definition: TimePointBetaFitter.h:30
MuonCombined::MuonStauRecoTool::getTruth
std::unique_ptr< TruthInfo > getTruth(const xAOD::TrackParticle &indetTrackParticle) const
extract truth from the indetTrackParticle
Definition: MuonStauRecoTool.cxx:92
MuonCombined::MuonStauRecoTool::Candidate::combinedTrack
std::unique_ptr< Trk::Track > combinedTrack
Definition: MuonStauRecoTool.h:116
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
MuonCombined::MuonStauRecoTool
ID seeded Stau reconstruction.
Definition: MuonStauRecoTool.h:56
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonCombined
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
Definition: IMuonSystemExtensionTool.h:23
MuonCandidate.h
MuonCombined::MuonStauRecoTool::AssociatedData::layerData
LayerDataVec layerData
Definition: MuonStauRecoTool.h:96
MuonCombined::MuonStauRecoTool::TruthInfo::mass
float mass
Definition: MuonStauRecoTool.h:125
MuonCombined::MuonStauRecoTool::m_ignoreSiAssocated
Gaudi::Property< bool > m_ignoreSiAssocated
Definition: MuonStauRecoTool.h:264
MuonCombined::MuonStauRecoTool::m_mdtCreatorStau
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreatorStau
Definition: MuonStauRecoTool.h:250
MuonCombined::MuonStauRecoTool::Candidate::betaFitResult
Muon::TimePointBetaFitter::FitResult betaFitResult
Definition: MuonStauRecoTool.h:109
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
Muon::MuonSystemExtension::Intersection
data per intersection
Definition: MuonSystemExtension.h:21
MuonCombined::MuonStauRecoTool::processMuonSystemExtension
bool processMuonSystemExtension(const xAOD::TrackParticle &indetTrackParticle, const Muon::MuonSystemExtension &muonSystemExtension, CandidateVec &candidates)
match extension to Hough maxima, extract time measurements, create candidates, run segment finding
MuonClusterOnTrack.h
MuonCombined::MuonStauRecoTool::m_insideOutRecoTool
ToolHandle< MuonCombined::MuonInsideOutRecoTool > m_insideOutRecoTool
Definition: MuonStauRecoTool.h:252
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
MuonCombined::MuonStauRecoTool::extractTimeMeasurements
bool extractTimeMeasurements(const EventContext &ctx, const Muon::MuonSystemExtension &muonSystemExtension, AssociatedData &associatedData) const
associate Hough maxima and associate time measurements
Definition: MuonStauRecoTool.cxx:981
MuonCombined::IMuonCombinedInDetExtensionTool::MuonPrdData
Definition: IMuonCombinedInDetExtensionTool.h:27
MuonCombined::MuonStauRecoTool::m_muonPRDSelectionTool
ToolHandle< Muon::IMuonPRDSelectionTool > m_muonPRDSelectionTool
Definition: MuonStauRecoTool.h:246
AthAlgTool
Definition: AthAlgTool.h:26
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
MuonCombined::MuonStauRecoTool::extendWithPRDs
virtual void extendWithPRDs(const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, IMuonCombinedInDetExtensionTool::MuonPrdData prdData, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
Definition: MuonStauRecoTool.cxx:73
MuonInsideOutRecoTool.h
MuonCombined::MuonStauRecoTool::selectTruth
bool selectTruth(const TruthInfo *truthInfo) const
if truth tracking is enabled, return whether the pdg is selected
Definition: MuonStauRecoTool.h:206
MuonLayerRecoData.h
error
Definition: IImpactPoint3dEstimator.h:70
MuGirlNS::StauHits
std::vector< StauHit > StauHits
Definition: CandidateSummary.h:67
TimePointBetaFitter.h
MuonCombined::MuonStauRecoTool::m_houghAssociationPullCut
Gaudi::Property< double > m_houghAssociationPullCut
Definition: MuonStauRecoTool.h:267
MuonCombined::MuonStauRecoTool::m_pdgsToBeConsidered
Gaudi::Property< std::vector< int > > m_pdgsToBeConsidered
Definition: MuonStauRecoTool.h:265
MuonCombined::MuonStauRecoTool::RpcTimeMeasurement::time
float time
Definition: MuonStauRecoTool.h:69
MuonCombined::MuonStauRecoTool::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonStauRecoTool.h:232
MuonCombined::MuonStauRecoTool::MaximumData::t0fittedSegments
std::vector< std::shared_ptr< const Muon::MuonSegment > > t0fittedSegments
Definition: MuonStauRecoTool.h:83
IMuonIdHelperSvc.h
MuonCombined::MuonStauRecoTool::refineCandidates
bool refineCandidates(const EventContext &ctx, CandidateVec &candidates) const
refine candidates: find segments for the given beta
Definition: MuonStauRecoTool.cxx:190
IMuonSegmentMaker.h
MuonCombined::MuonStauRecoTool::LayerData
Definition: MuonStauRecoTool.h:88
ServiceHandle< Muon::IMuonIdHelperSvc >
MuonCombined::MuonStauRecoTool::TruthInfo::TruthInfo
TruthInfo(int pdgId_, float mass_, float beta_)
Definition: MuonStauRecoTool.h:123