ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointMakerTool.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 SiSpacePointMakerTool_H
6#define SiSpacePointMakerTool_H
7
9
14
17
19
20#include <string>
21
22class SCT_ID;
25namespace InDetDD {
28}
29namespace InDet {
30 class SiCluster;
31}
32
33namespace InDet {
34
35 constexpr size_t nNeighbours{6};
36
44
45 class SiSpacePointMakerTool final: public AthAlgTool {
46
47 public:
49 SiSpacePointMakerTool(const std::string& type, const std::string& name, const IInterface* parent);
50
52 virtual ~SiSpacePointMakerTool() = default;
53
55 static const InterfaceID& interfaceID();
56
58 virtual StatusCode initialize() override;
59
61 virtual StatusCode finalize() override;
62
66 IdentifierHash, double, double, DataPool<SCT_SpacePoint>* dataItemsSCT);
67
68 void fillSCT_SpacePointCollection(std::array<const InDetDD::SiDetectorElement*, nNeighbours>&,
69 std::array<const SCT_ClusterCollection*, nNeighbours>&,
70 std::array<double, 14>&,bool,const Amg::Vector3D&,
72 DataPool<SCT_SpacePoint>* dataItemsSCT) const;
73
75 static void fillPixelSpacePointCollection(const InDet::PixelClusterCollection* clusters,
76 SpacePointCollection* spacepointCollection,
77 DataPool<PixelSpacePoint>* dataItemsPixel);
78
79
80
81 private:
83
84 DoubleProperty m_stripLengthTolerance{this, "StripLengthTolerance", 0.01};
85 DoubleProperty m_SCTgapParameter{this, "SCTGapParameter", 0., "Recommend 0.001 - 0.0015 for ITK geometry"};
86 DoubleProperty m_locXOffset_ECEtaOvlpRaws9n10{this, "locXOffset_ECEtaOvlpRaws9n10", 31.4, "Local x offset between EC raws 9 and 10 (31.4 for ITk)"};
88
90
91 const SCT_ID* m_idHelper{nullptr};
93
95 void updateRange(const InDetDD::SiDetectorElement* element1,
96 const InDetDD::SiDetectorElement* element2,
97 double& stripLengthGapTolerance, double& min, double& max) const;
98
100 double offset(const InDetDD::SiDetectorElement* element1,
101 const InDetDD::SiDetectorElement* element2,
102 double& stripLengthGapTolerance) const;
103
105 bool fillSCT_Information(const InDet::SCT_ClusterCollection* clusters1,
106 const InDet::SCT_ClusterCollection* clusters2,
107 const Amg::Vector3D& vertexVec,
108 const InDetDD::SiDetectorElementCollection* elements) const;
109
110 };
111}
112
113#endif //SiSpacePointMakerTool_H
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
a typed memory pool that saves time spent allocation small object.
Definition DataPool.h:63
This is a "hash" representation of an Identifier.
Class to hold the SiDetectorElement objects to be put in the detector store.
Class to hold geometrical description of a silicon detector element.
bool fillSCT_Information(const InDet::SCT_ClusterCollection *clusters1, const InDet::SCT_ClusterCollection *clusters2, const Amg::Vector3D &vertexVec, const InDetDD::SiDetectorElementCollection *elements) const
Not implemented yet.
virtual StatusCode initialize() override
Initialize.
virtual StatusCode finalize() override
Finalize.
SiSpacePointMakerTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
void fillSCT_SpacePointCollection(std::array< const InDetDD::SiDetectorElement *, nNeighbours > &, std::array< const SCT_ClusterCollection *, nNeighbours > &, std::array< double, 14 > &, bool, const Amg::Vector3D &, SpacePointCollection *, SpacePointOverlapCollection *, DataPool< SCT_SpacePoint > *dataItemsSCT) const
static void fillPixelSpacePointCollection(const InDet::PixelClusterCollection *clusters, SpacePointCollection *spacepointCollection, DataPool< PixelSpacePoint > *dataItemsPixel)
Convert clusters to space points: PixelClusters -> PixelSpacePoints.
static const InterfaceID & interfaceID()
Return interfaceID.
double offset(const InDetDD::SiDetectorElement *element1, const InDetDD::SiDetectorElement *element2, double &stripLengthGapTolerance) const
Get stripLengthGapTolerance and return offset value for two SiDetectorElement's.
virtual ~SiSpacePointMakerTool()=default
Default destructor.
void updateRange(const InDetDD::SiDetectorElement *element1, const InDetDD::SiDetectorElement *element2, double &stripLengthGapTolerance, double &min, double &max) const
update range accordingly to the gap between the stereo modules
static Trk::SpacePoint * makeSCT_SpacePoint(InDet::SCTinformation &, InDet::SCTinformation &, IdentifierHash, IdentifierHash, double, double, DataPool< SCT_SpacePoint > *dataItemsSCT)
Convert clusters to space points: SCT_Clusters -> SCT_SpacePoints.
constexpr size_t nNeighbours
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Eigen::Matrix< double, 3, 1 > Vector3D
Message Stream Member.
Primary Vertex Finder.