ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimLorentzAngleTool.h
Go to the documentation of this file.
1// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3#ifndef FPGATRACKSIMLORENTZANGLETOOL_H
4#define FPGATRACKSIMLORENTZANGLETOOL_H
5
6// Athena headers
8
9// ID helpers
15
16// FPGATracSkim headers
18
19class PixelID;
20class SCT_ID;
24
25class FPGATrackSimHit;
26
27namespace FPGATrackSim {
29 public:
30 LorentzAngleTool(const std::string&, const std::string&, const IInterface*);
31 virtual ~LorentzAngleTool() = default;
32 virtual StatusCode initialize() override;
33
34 float getLorentzAngleShift(const FPGATrackSimHit & hit, int correctionType) const;
35 StatusCode updateHitPosition(FPGATrackSimHit & hit, int correctionType) const;
36
37private:
38 Gaudi::Property<bool> m_useAthenaLorentzAngleTools{this, "UseAthenaLorentzAngleTools", false, "Use Athena Lorentz Angle tools to get the Lorentz angle shift"};
39 Gaudi::Property<bool> m_shiftGlobalPosition{this, "shiftGlobalPosition", true, "Shift the global position of the hit along with the local position"};
40
41 ToolHandle<ISiLorentzAngleTool> m_lorentzAngleToolPixel {this, "LorentzAngleToolPixel", "SiLorentzAngleTool/PixelLorentzAngleTool", "Tool to retrieve Lorentz angle of Pixel"};
42 ToolHandle<ISiLorentzAngleTool> m_lorentzAngleToolStrip {this, "LorentzAngleToolStrip", "SiLorentzAngleTool/SCTLorentzAngleTool", "Tool to retrieve Lorentz angle of SCT"};
43
46 const PixelID* m_pixelId = nullptr;
47 const SCT_ID* m_SCTId = nullptr;
48
49 float getPixelBarrelShift_v0(unsigned layerDisk, int etaModule) const;
50 float getPixelEndcapShift_v0(unsigned layerDisk, unsigned phiModule, int etaModule) const;
51 float getStripBarrelShift_v0(bool isStereo, unsigned layerDisk, int etaModule) const;
52 float getStripEndcapShift_v0(unsigned layerDisk, int etaModule, float z) const;
53
54 float getPixelBarrelShift_v1(unsigned layerDisk, int etaModule) const;
55 float getPixelEndcapShift_v1(unsigned layerDisk, unsigned phiModule, int etaModule) const;
56 float getStripBarrelShift_v1(bool isStereo, int etaModule) const;
57 float getStripEndcapShift_v1(unsigned layerDisk, int etaModule, float z) const;
58
59 float getPixelBarrelShift_v2(unsigned layerDisk) const;
60 float getPixelEndcapShift_v2(unsigned layerDisk, unsigned phiModule, int etaModule) const;
61 float getStripBarrelShift_v2(bool isStereo) const;
62 float getStripEndcapShift_v2(unsigned layerDisk, int etaModule, float z) const;
63
64 };
65} // namespace FPGATrackSim
66
67#endif // FPGATRACKSIMLORENTZANGLETOOL_H
: FPGATrackSim-specific class to represent an hit in the detector.
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
#define z
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
const InDetDD::PixelDetectorManager * m_pixelManager
float getPixelEndcapShift_v1(unsigned layerDisk, unsigned phiModule, int etaModule) const
float getStripEndcapShift_v0(unsigned layerDisk, int etaModule, float z) const
virtual ~LorentzAngleTool()=default
float getPixelBarrelShift_v1(unsigned layerDisk, int etaModule) const
float getStripBarrelShift_v1(bool isStereo, int etaModule) const
float getPixelEndcapShift_v2(unsigned layerDisk, unsigned phiModule, int etaModule) const
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolPixel
Gaudi::Property< bool > m_useAthenaLorentzAngleTools
LorentzAngleTool(const std::string &, const std::string &, const IInterface *)
float getLorentzAngleShift(const FPGATrackSimHit &hit, int correctionType) const
float getStripEndcapShift_v2(unsigned layerDisk, int etaModule, float z) const
const InDetDD::SiDetectorManager * m_SCTManager
float getPixelBarrelShift_v0(unsigned layerDisk, int etaModule) const
float getPixelEndcapShift_v0(unsigned layerDisk, unsigned phiModule, int etaModule) const
StatusCode updateHitPosition(FPGATrackSimHit &hit, int correctionType) const
float getStripBarrelShift_v0(bool isStereo, unsigned layerDisk, int etaModule) const
float getStripEndcapShift_v1(unsigned layerDisk, int etaModule, float z) const
float getStripBarrelShift_v2(bool isStereo) const
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolStrip
float getPixelBarrelShift_v2(unsigned layerDisk) const
Interface class for tool providing Lorentz angle (and the corresponding shift of the measurement) for...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Base class for Pixel and SCT Detector managers.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68