ATLAS Offline Software
Loading...
Searching...
No Matches
FPGAClusterConverter.h
Go to the documentation of this file.
1
2/*
3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4*/
5
6#ifndef FPGATrkConverter_FPGAClusterConverter_H
7#define FPGATrkConverter_FPGAClusterConverter_H
8
9
20
21class AtlasDetectorID;
22class PixelID;
23class SCT_ID;
24class Identifier;
25
26namespace InDetDD {
29}
30
31namespace InDet {
32 class PixelCluster;
33 class SCT_Cluster;
34}
35
36class FPGATrackSimHit;
38
39
40class FPGAClusterConverter : public extends<AthAlgTool,IFPGAClusterConverter>
41 {
42 public:
43
44 FPGAClusterConverter(const std::string& type, const std::string& name, const IInterface* parent);
45 virtual ~FPGAClusterConverter() = default;
46 virtual StatusCode initialize() override final;
47
48 virtual StatusCode convertHits(const std::vector<FPGATrackSimHit>& ,
49 InDet::PixelClusterCollection &,
50 InDet::SCT_ClusterCollection &) const override final;
51 virtual StatusCode convertHits(const std::vector<const FPGATrackSimHit*>&,
52 InDet::PixelClusterCollection &,
53 InDet::SCT_ClusterCollection &) const override final;
54 virtual StatusCode convertHits(const std::vector<FPGATrackSimHit>& hits,
55 xAOD::PixelClusterContainer& pixelCont,
56 xAOD::StripClusterContainer& SCTCont) const override final;
57 virtual StatusCode convertClusters(const std::vector<FPGATrackSimCluster>& ,
58 InDet::PixelClusterCollection &,
59 InDet::SCT_ClusterCollection &) const override final;
60 virtual StatusCode convertClusters(const std::vector<FPGATrackSimCluster>& cl,
61 xAOD::PixelClusterContainer& pixelCont,
62 xAOD::StripClusterContainer& SCTCont) const override final;
63 virtual StatusCode convertSpacePoints(const std::vector<FPGATrackSimCluster>& fpgaSPs,
64 xAOD::SpacePointContainer& SPStripCont,
65 xAOD::SpacePointContainer& SPPixelCont,
66 xAOD::StripClusterContainer& stripClusterCont,
67 xAOD::PixelClusterContainer& pixelClusterCont) const override final;
68
69 virtual StatusCode createPixelCluster(const FPGATrackSimHit& h, const std::vector<Identifier>& rdoList, std::unique_ptr<InDet::PixelCluster>&) const override final;
70 virtual StatusCode createPixelCluster(const FPGATrackSimHit& h, const std::vector<Identifier>& rdoList, xAOD::PixelCluster &) const override final;
71 virtual StatusCode createSCTCluster(const FPGATrackSimHit& h, const std::vector<Identifier>& rdoList, std::unique_ptr<InDet::SCT_Cluster>&) const override final;
72 virtual StatusCode createSCTCluster(const FPGATrackSimHit& h, const std::vector<Identifier>& rdoList, xAOD::StripCluster&) const override final;
73 virtual StatusCode createPixelCluster(const FPGATrackSimCluster&, std::unique_ptr<InDet::PixelCluster>&) const override final;
74 virtual StatusCode createPixelCluster(const FPGATrackSimCluster&, xAOD::PixelCluster& ) const override final;
75 virtual StatusCode createSCTCluster(const FPGATrackSimCluster&, std::unique_ptr<InDet::SCT_Cluster>&) const override final;
76 virtual StatusCode createSCTCluster(const FPGATrackSimCluster&, xAOD::StripCluster& ) const override final;
77 virtual StatusCode createSP(const FPGATrackSimCluster& cl, xAOD::SpacePoint& sp, xAOD::StripClusterContainer& clustersCont ) const override final;
78 virtual StatusCode createPixelSPs(xAOD::SpacePointContainer& pixelSPs, xAOD::PixelClusterContainer& clustersCont ) const override final;
79
80 virtual StatusCode getRdoList(std::vector<Identifier> &rdoList, const FPGATrackSimCluster& cluster) const override final;
81 virtual StatusCode getStripsInfo(const xAOD::StripCluster& cl, float& halfStripLength, Amg::Vector3D& stripDirection, Amg::Vector3D& stripCenter) const override final;
82
83 SG::ReadHandleKey<FPGATrackSimClusterCollection> m_FPGAClusterKey{this, "FPGATrackSimClusterKey","FPGAClusters","FPGATrackSim Clusters key"};
84 SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey{ this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
85
86
87 private:
88
89 const PixelID* m_pixelId{nullptr};
90 const SCT_ID* m_SCTId{nullptr};
93
94 ToolHandle<ISiLorentzAngleTool> m_lorentzAngleToolPixel {this, "LorentzAngleToolPixel", "SiLorentzAngleTool/PixelLorentzAngleTool", "Tool to retrieve Lorentz angle of Pixel"};
95 ToolHandle<ISiLorentzAngleTool> m_lorentzAngleToolStrip {this, "LorentzAngleToolStrip", "SiLorentzAngleTool/SCTLorentzAngleTool", "Tool to retrieve Lorentz angle of SCT"};
96
97 Gaudi::Property<bool> m_skipStripSpacePointFormation {this, "skipStripSpFormation", true, "Should be enabled in case we want to test strip seeding"};
98 Gaudi::Property<bool> m_doShift {this, "doLorentzShift", false, "Apply Lorentz angle shift to the clusters"};
99 Gaudi::Property<bool> m_useInherentLocalCoordinates {this, "useFPGALocalCoordinates", true, "instead of getting indirectly the local coordinates from the cell position, use the values stored in FPGATrackSimHit objects"};
100 Gaudi::Property<bool> m_broadErrors {this, "broadErrors", false, "If true use cluster width to set errors, otherwise use avg pixel width"};
101
102 };
103
104#endif
105
std::vector< FPGATrackSimCluster > FPGATrackSimClusterCollection
Eigen::Matrix< double, 3, 1 > Vector3D
Header file for AthHistogramAlgorithm.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual StatusCode createPixelCluster(const FPGATrackSimHit &h, const std::vector< Identifier > &rdoList, std::unique_ptr< InDet::PixelCluster > &) const override final
SG::ReadHandleKey< FPGATrackSimClusterCollection > m_FPGAClusterKey
const InDetDD::PixelDetectorManager * m_pixelManager
Gaudi::Property< bool > m_broadErrors
virtual StatusCode getRdoList(std::vector< Identifier > &rdoList, const FPGATrackSimCluster &cluster) const override final
FPGAClusterConverter(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode createSCTCluster(const FPGATrackSimHit &h, const std::vector< Identifier > &rdoList, std::unique_ptr< InDet::SCT_Cluster > &) const override final
Gaudi::Property< bool > m_skipStripSpacePointFormation
virtual StatusCode createSP(const FPGATrackSimCluster &cl, xAOD::SpacePoint &sp, xAOD::StripClusterContainer &clustersCont) const override final
virtual StatusCode createPixelSPs(xAOD::SpacePointContainer &pixelSPs, xAOD::PixelClusterContainer &clustersCont) const override final
virtual StatusCode initialize() override final
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolPixel
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Gaudi::Property< bool > m_doShift
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleToolStrip
Gaudi::Property< bool > m_useInherentLocalCoordinates
virtual ~FPGAClusterConverter()=default
const InDetDD::SCT_DetectorManager * m_SCTManager
virtual StatusCode convertHits(const std::vector< FPGATrackSimHit > &, InDet::PixelClusterCollection &, InDet::SCT_ClusterCollection &) const override final
virtual StatusCode convertSpacePoints(const std::vector< FPGATrackSimCluster > &fpgaSPs, xAOD::SpacePointContainer &SPStripCont, xAOD::SpacePointContainer &SPPixelCont, xAOD::StripClusterContainer &stripClusterCont, xAOD::PixelClusterContainer &pixelClusterCont) const override final
virtual StatusCode convertClusters(const std::vector< FPGATrackSimCluster > &, InDet::PixelClusterCollection &, InDet::SCT_ClusterCollection &) const override final
virtual StatusCode getStripsInfo(const xAOD::StripCluster &cl, float &halfStripLength, Amg::Vector3D &stripDirection, Amg::Vector3D &stripCenter) const override final
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
STL class.
Definition of ATLAS Math & Geometry primitives (Amg)
Message Stream Member.
Primary Vertex Finder.
Forward declaration.
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.