ATLAS Offline Software
IMuonHitTimingTool.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_IMUONHITTIMINGTOOL_H
6 #define MUON_IMUONHITTIMINGTOOL_H
7 
17 #include <limits>
18 #include <vector>
19 
20 #include "GaudiKernel/IAlgTool.h"
22 #include <set>
23 
24 namespace Muon {
25 
27  static const InterfaceID IID_IMuonHitTimingTool("Muon::IMuonHitTimingTool", 1, 0);
28 
29  class MuonClusterOnTrack;
30 
36  class IMuonHitTimingTool : virtual public IAlgTool {
37  public:
39  struct TimingResult {
41  TimingResult() : valid(false), time(std::numeric_limits<float>::lowest()), error(std::numeric_limits<float>::lowest()) {}
42 
44  TimingResult(bool valid_, double time_, double error_) : valid(valid_), time(time_), error(error_) {}
45 
47  bool valid;
48 
51  float time;
52 
54  float error;
55  };
56 
58  virtual ~IMuonHitTimingTool(){};
59 
61  static const InterfaceID& interfaceID() { return IID_IMuonHitTimingTool; }
62 
66  virtual TimingResult calculateTimingResult(const std::vector<const MuonClusterOnTrack*>& hits) const = 0;
67 
69  virtual std::set<MuonStationIndex::TechnologyIndex> acceptedTechnologies() const = 0;
70  };
71 
72 } // namespace Muon
73 
74 #endif
Muon::IMuonHitTimingTool::calculateTimingResult
virtual TimingResult calculateTimingResult(const std::vector< const MuonClusterOnTrack * > &hits) const =0
Calculate the time offset of a given set of hits wrt to the current bunch The hits SHOULD be of the s...
Muon::IMuonHitTimingTool::TimingResult::TimingResult
TimingResult(bool valid_, double time_, double error_)
full constructor
Definition: IMuonHitTimingTool.h:44
Muon::IMuonHitTimingTool::interfaceID
static const InterfaceID & interfaceID()
AlgTool and IAlgTool interface methods.
Definition: IMuonHitTimingTool.h:61
Muon::IMuonHitTimingTool::TimingResult::time
float time
the actual time offset (ns) wrt the current bunch assuming the particle travelled in a straight line ...
Definition: IMuonHitTimingTool.h:51
Muon::IMuonHitTimingTool::TimingResult::error
float error
uncertainty on the time (ns)
Definition: IMuonHitTimingTool.h:54
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::IMuonHitTimingTool::acceptedTechnologies
virtual std::set< MuonStationIndex::TechnologyIndex > acceptedTechnologies() const =0
return a set of technologies accepted by the tool
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
Muon::IMuonHitTimingTool::TimingResult::TimingResult
TimingResult()
default constructor, constructs an invalid TimingResult
Definition: IMuonHitTimingTool.h:41
Muon::IMuonHitTimingTool::TimingResult
simple struct holding the result of the tool
Definition: IMuonHitTimingTool.h:39
Muon::IMuonHitTimingTool
Tool to calculate the timing wrt to the current BC Depending to the implementation the tool can handl...
Definition: IMuonHitTimingTool.h:36
Muon::IMuonHitTimingTool::TimingResult::valid
bool valid
flag indicating whether the time was correctly calculated
Definition: IMuonHitTimingTool.h:47
Muon::IMuonHitTimingTool::~IMuonHitTimingTool
virtual ~IMuonHitTimingTool()
Virtual destructor.
Definition: IMuonHitTimingTool.h:58
MuonStationIndex.h
error
Definition: IImpactPoint3dEstimator.h:70
readCCLHist.float
float
Definition: readCCLHist.py:83