ATLAS Offline Software
Loading...
Searching...
No Matches
MuidTrackIsolation.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
13
14#ifndef MUIDCALOISOLATIONTOOLS_MUIDTRACKISOLATION_H
15#define MUIDCALOISOLATIONTOOLS_MUIDTRACKISOLATION_H
16
18#include "GaudiKernel/ToolHandle.h"
23
24namespace Trk {
25 class Surface;
26}
27
28namespace Rec {
29
30 class MuidTrackIsolation : public AthAlgTool, virtual public IMuidTrackIsolation {
31 public:
32 MuidTrackIsolation(const std::string& type, const std::string& name, const IInterface* parent);
33 virtual ~MuidTrackIsolation(void) = default; // destructor
34
35 StatusCode initialize() override;
36
40 std::pair<int, double> trackIsolation(const EventContext& ctx, double eta, double phi) const override;
41
42 private:
43 // isolation without extrapolation to calo
44 std::pair<int, double> trackVertex(const TrackCollection* indetTracks, double eta, double phi) const;
45
46 // isolation performing extrapolation to calo
47 std::pair<int, double> trackExtrapolated(const TrackCollection* indetTracks, double eta, double phi) const;
48
50 std::unique_ptr<const Trk::Surface> m_caloBackwardDisc;
51 std::unique_ptr<const Trk::Surface> m_caloCylinder;
52 std::unique_ptr<const Trk::Surface> m_caloForwardDisc;
54 SG::ReadHandleKey<TrackCollection> m_inDetTracksLocation{this, "InDetTracksLocation", "Tracks", "ID tracks"};
55 // FIXME: mutable
56 ToolHandle<Trk::IIntersector> m_intersector{this, "RungeKuttaIntersector", "Trk::RungeKuttaIntersector/RungeKuttaIntersector"};
57 Gaudi::Property<double> m_minPt{this, "MinPt", 1.0 * Gaudi::Units::GeV};
58 Gaudi::Property<double> m_trackCone{this, "TrackCone", 0.2};
59 double m_trackCone2{0.};
60 Gaudi::Property<bool> m_trackExtrapolation{this, "TrackExtrapolation", false};
61 };
62
63} // namespace Rec
64
65#endif // MUIDCALOISOLATIONTOOLS_MUIDTRACKISOLATION_H
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Property holding a SG store/key/clid from which a ReadHandle is made.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Base class for MuidTrackIsolation AlgTool.
std::pair< int, double > trackIsolation(const EventContext &ctx, double eta, double phi) const override
IMuidTrackIsolation interface: get the number of tracks and summed momentum in a cone at the producti...
Gaudi::Property< double > m_minPt
std::unique_ptr< const Trk::Surface > m_caloForwardDisc
std::unique_ptr< const Trk::Surface > m_caloBackwardDisc
Gaudi::Property< double > m_trackCone
ToolHandle< Trk::IIntersector > m_intersector
Gaudi::Property< bool > m_trackExtrapolation
MuidTrackIsolation(const std::string &type, const std::string &name, const IInterface *parent)
std::unique_ptr< const Trk::Surface > m_caloCylinder
SG::ReadHandleKey< TrackCollection > m_inDetTracksLocation
StatusCode initialize() override
virtual ~MuidTrackIsolation(void)=default
std::pair< int, double > trackExtrapolated(const TrackCollection *indetTracks, double eta, double phi) const
std::pair< int, double > trackVertex(const TrackCollection *indetTracks, double eta, double phi) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Gaudi Tools.
Ensure that the ATLAS eigen extensions are properly loaded.