ATLAS Offline Software
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
11 #include "InDetIdentifier/SCT_ID.h"
15 
16 // FPGATracSkim headers
18 
19 class PixelID;
20 class SCT_ID;
21 class PixelDetectorManager;
22 class SCT_DetectorManager;
24 
25 class FPGATrackSimHit;
26 
27 namespace FPGATrackSim {
28  class LorentzAngleTool : public AthAlgTool {
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 
37 private:
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
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
FPGATrackSim::LorentzAngleTool::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: FPGATrackSimLorentzAngleTool.h:44
FPGATrackSim::LorentzAngleTool::getStripBarrelShift_v2
float getStripBarrelShift_v2(bool isStereo) const
Definition: FPGATrackSimLorentzAngleTool.cxx:643
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
FPGATrackSim::LorentzAngleTool::updateHitPosition
StatusCode updateHitPosition(FPGATrackSimHit &hit, int correctionType) const
Definition: FPGATrackSimLorentzAngleTool.cxx:31
FPGATrackSim::LorentzAngleTool::m_SCTId
const SCT_ID * m_SCTId
Definition: FPGATrackSimLorentzAngleTool.h:47
FPGATrackSim::LorentzAngleTool::getStripBarrelShift_v1
float getStripBarrelShift_v1(bool isStereo, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:469
FPGATrackSim::LorentzAngleTool::m_lorentzAngleToolPixel
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolPixel
Definition: FPGATrackSimLorentzAngleTool.h:41
FPGATrackSim::LorentzAngleTool::m_useAthenaLorentzAngleTools
Gaudi::Property< bool > m_useAthenaLorentzAngleTools
Definition: FPGATrackSimLorentzAngleTool.h:38
ISiLorentzAngleTool.h
FPGATrackSim::LorentzAngleTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimLorentzAngleTool.cxx:16
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSim::LorentzAngleTool::m_lorentzAngleToolStrip
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolStrip
Definition: FPGATrackSimLorentzAngleTool.h:42
FPGATrackSim::LorentzAngleTool::getPixelEndcapShift_v1
float getPixelEndcapShift_v1(unsigned layerDisk, unsigned phiModule, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:371
PixelDetectorManager.h
z
#define z
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGATrackSim::LorentzAngleTool::getPixelEndcapShift_v0
float getPixelEndcapShift_v0(unsigned layerDisk, unsigned phiModule, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:171
FPGATrackSim::LorentzAngleTool::m_pixelId
const PixelID * m_pixelId
Definition: FPGATrackSimLorentzAngleTool.h:46
FPGATrackSim::LorentzAngleTool::getStripEndcapShift_v0
float getStripEndcapShift_v0(unsigned layerDisk, int etaModule, float z) const
Definition: FPGATrackSimLorentzAngleTool.cxx:341
FPGATrackSim::LorentzAngleTool::getPixelBarrelShift_v1
float getPixelBarrelShift_v1(unsigned layerDisk, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:446
FPGATrackSim::LorentzAngleTool::getStripBarrelShift_v0
float getStripBarrelShift_v0(bool isStereo, unsigned layerDisk, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:272
FPGATrackSim
Definition: FPGATrackSimRegionMergingAlg.h:25
ISiLorentzAngleTool
Definition: ISiLorentzAngleTool.h:28
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
FPGATrackSim::LorentzAngleTool::getStripEndcapShift_v2
float getStripEndcapShift_v2(unsigned layerDisk, int etaModule, float z) const
Definition: FPGATrackSimLorentzAngleTool.cxx:649
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSim::LorentzAngleTool::getPixelEndcapShift_v2
float getPixelEndcapShift_v2(unsigned layerDisk, unsigned phiModule, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:556
FPGATrackSim::LorentzAngleTool::getPixelBarrelShift_v2
float getPixelBarrelShift_v2(unsigned layerDisk) const
Definition: FPGATrackSimLorentzAngleTool.cxx:627
FPGATrackSim::LorentzAngleTool::~LorentzAngleTool
virtual ~LorentzAngleTool()=default
TRT::Hit::phiModule
@ phiModule
Definition: HitInfo.h:80
SCT_ID
Definition: SCT_ID.h:68
InDetDD::SiDetectorManager
Definition: SiDetectorManager.h:60
FPGATrackSim::LorentzAngleTool::LorentzAngleTool
LorentzAngleTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimLorentzAngleTool.cxx:11
FPGATrackSim::LorentzAngleTool::m_SCTManager
const InDetDD::SiDetectorManager * m_SCTManager
Definition: FPGATrackSimLorentzAngleTool.h:45
SiDetectorManager.h
FPGATrackSim::LorentzAngleTool::m_shiftGlobalPosition
Gaudi::Property< bool > m_shiftGlobalPosition
Definition: FPGATrackSimLorentzAngleTool.h:39
FPGATrackSim::LorentzAngleTool::getStripEndcapShift_v1
float getStripEndcapShift_v1(unsigned layerDisk, int etaModule, float z) const
Definition: FPGATrackSimLorentzAngleTool.cxx:537
AthAlgTool
Definition: AthAlgTool.h:26
PixelID
Definition: PixelID.h:67
FPGATrackSim::LorentzAngleTool::getPixelBarrelShift_v0
float getPixelBarrelShift_v0(unsigned layerDisk, int etaModule) const
Definition: FPGATrackSimLorentzAngleTool.cxx:233
FPGATrackSim::LorentzAngleTool
Definition: FPGATrackSimLorentzAngleTool.h:28
FPGATrackSim::LorentzAngleTool::getLorentzAngleShift
float getLorentzAngleShift(const FPGATrackSimHit &hit, int correctionType) const
Definition: FPGATrackSimLorentzAngleTool.cxx:108