ATLAS Offline Software
Loading...
Searching...
No Matches
InDetTestPixelLayerTool.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 InDetTestPixelLayerTool_H
6#define InDetTestPixelLayerTool_H
7
11
15
17
19
21
22#include "GaudiKernel/ServiceHandle.h"
23#include "GaudiKernel/ToolHandle.h"
24#include "GaudiKernel/ThreadLocalContext.h" //for Gaudi::Hive::currentContext()
25
26#include <mutex>
27#include <string>
28#include <vector>
29
30namespace Trk {
31class Track;
32class IExtrapolator;
34}
35namespace Rec {
36class TrackParticle;
37}
38class AtlasDetectorID;
39class Identifier;
40class PixelID;
41class EventContext;
42
43namespace InDet {
44
46 : virtual public IInDetTestPixelLayerTool
47 , public AthAlgTool
48{
49
50public:
51 InDetTestPixelLayerTool(const std::string& name,
52 const std::string& n,
53 const IInterface* p);
54
55 virtual StatusCode initialize() override final;
56
57 // bool expectHitInPixelLayer(const Rec::TrackParticle*) const ;
58 virtual bool expectHitInPixelLayer(
59 const EventContext& ctx,
61 int pixel_layer) const override final;
62 virtual bool expectHitInPixelLayer(
63 const EventContext& ctx,
64 const Trk::Track*,
65 int pixel_layer,
66 bool checkBarrelOnly = false) const override final;
67 virtual bool expectHitInPixelLayer(const EventContext& ctx,
68 const Trk::TrackParameters* trackpar,
69 int pixel_layer,
70 bool checkBarrelOnly = false) const override final;
71
72 virtual bool expectHit(
73 const Trk::TrackParameters* trackpar) const override final;
74
78 std::vector<TrackStateOnPixelLayerInfo>& infoList) const override final;
80 const Trk::Track*,
81 std::vector<TrackStateOnPixelLayerInfo>& infoList) const override final;
83 const Trk::TrackParameters* trackpar,
84 std::vector<TrackStateOnPixelLayerInfo>& infoList,
85 int pixel_layer = -1,
86 bool checkBarrelOnly = false) const override final;
87
88 virtual double getFracGood(const Trk::TrackParticleBase* trackpar,
89 int pixel_layer) const override final;
90 virtual double getFracGood(const Trk::TrackParameters* trackpar,
91 int pixel_layer) const override final;
92
93private:
94
95 bool isActive(const Trk::TrackParameters* trackpar) const;
97 const EventContext& ctx,
98 const Trk::TrackParameters* trackpar,
99 std::vector<std::unique_ptr<const Trk::TrackParameters>>& pixelLayerParam)
100 const;
102 const Trk::TrackParameters* trackpar,
103 std::vector<std::unique_ptr<const Trk::TrackParameters>>& pixelLayerParam)
104 const
105 {
107 Gaudi::Hive::currentContext(), trackpar, pixelLayerParam);
108 }
109
110 double getFracGood(const Trk::TrackParameters* trackpar,
111 double phiRegionSize,
112 double etaRegionSize,
113 const InDet::SiDetectorElementStatus *pixelDetElStatus) const;
114
116
118 ToolHandle<Trk::IExtrapolator> m_extrapolator{
119 this,
120 "Extrapolator",
121 "Trk::Extrapolator/InDetExtrapolator",
122 "Extrapolator used to extrapolate to layers"
123 };
124
126 ToolHandle<IInDetConditionsTool> m_pixelCondSummaryTool{
127 this,
128 "PixelSummaryTool",
129 "PixelConditionsSummaryTool/InDetPixelConditionsSummaryTool",
130 "Tool to retrieve Pixel Conditions summary"
131 };
132
137 {this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};
138
141
144
145 BooleanProperty m_checkActiveAreas{this, "CheckActiveAreas", true};
146 BooleanProperty m_checkDeadRegions{this, "CheckDeadRegions", true};
147 BooleanProperty m_checkDisabledFEs{this, "CheckDisabledFEs", true};
148 DoubleProperty m_phiRegionSize{this, "PhiRegionSize", 3.};
149 DoubleProperty m_etaRegionSize{this, "EtaRegionSize", 3.};
150 DoubleProperty m_goodFracCut{this, "GoodFracCut", 0.5};
151 DoubleProperty m_outerRadius{this, "OuterRadius", 230.};
152};
153
154
157 if (!m_pixelDetElStatus.empty()) {
159 if (!pixelDetElStatus.isValid()) {
160 std::stringstream msg;
161 msg << "Failed to get " << m_pixelDetElStatus.key() << " from StoreGate in " << name();
162 throw std::runtime_error(msg.str());
163 }
164 }
165 return pixelDetElStatus;
166}
167
168} // end namespace
169
170#endif
Maintain a set of objects, one per slot.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
MsgStream & msg() const
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
const PixelID * m_pixelId
ID pixel helper.
virtual bool expectHit(const Trk::TrackParameters *trackpar) const override final
bool isActive(const Trk::TrackParameters *trackpar) const
InDetTestPixelLayerTool(const std::string &name, const std::string &n, const IInterface *p)
virtual StatusCode initialize() override final
virtual double getFracGood(const Trk::TrackParticleBase *trackpar, int pixel_layer) const override final
ToolHandle< Trk::IExtrapolator > m_extrapolator
Pointer to Extrapolator AlgTool.
virtual bool expectHitInPixelLayer(const EventContext &ctx, const Trk::TrackParticleBase *, int pixel_layer) const override final
const AtlasDetectorID * m_idHelper
detector helper
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool
Handles to IConditionsSummaryServices for Pixels.
SG::ReadHandle< InDet::SiDetectorElementStatus > getPixelDetElStatus(const EventContext &ctx) const
bool getPixelLayerParameters(const Trk::TrackParameters *trackpar, std::vector< std::unique_ptr< const Trk::TrackParameters > > &pixelLayerParam) const
virtual bool getTrackStateOnPixelLayerInfo(const Trk::TrackParticleBase *, std::vector< TrackStateOnPixelLayerInfo > &infoList) const override final
bool getPixelLayerParameters(const EventContext &ctx, const Trk::TrackParameters *trackpar, std::vector< std::unique_ptr< const Trk::TrackParameters > > &pixelLayerParam) const
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
Property holding a SG store/key/clid from which a ReadHandle is made.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
Primary Vertex Finder.
Gaudi Tools.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters