EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
SpacePoint.h
Go to the documentation of this file.
1#pragma once
2
3#include <Acts/EventData/Seed.hpp>
4#include <Acts/Geometry/GeometryIdentifier.hpp>
5#include <Acts/Surfaces/Surface.hpp>
7namespace eicrecon {
8
9class SpacePoint : public edm4eic::TrackerHit {
10public:
11 const Acts::Surface* m_surface = nullptr;
12
13 SpacePoint(const TrackerHit& hit) : TrackerHit(hit) {}
14
15 void setSurface(std::shared_ptr<const ActsGeometryProvider> m_geoSvc) {
16 const auto its = m_geoSvc->surfaceMap().find(getCellID());
17 if (its == m_geoSvc->surfaceMap().end()) {
18 m_surface = nullptr;
19 } else {
20 m_surface = its->second;
21 }
22 }
23
24 float x() const { return getPosition()[0]; }
25 float y() const { return getPosition()[1]; }
26 float z() const { return getPosition()[2]; }
27 float r() const { return std::hypot(x(), y()); }
28 float varianceR() const {
29 return (std::pow(x(), 2) * getPositionError().xx + std::pow(y(), 2) * getPositionError().yy) /
30 (std::pow(x(), 2) + std::pow(y(), 2));
31 }
32 float varianceZ() const { return getPositionError().zz; }
33
34 float t() const { return getTime(); }
35 float varianceT() const { return getTimeError(); }
36
37 bool isOnSurface(const Acts::GeometryContext& gctx) const {
38 if (m_surface == nullptr) {
39 return false;
40 }
41 return m_surface->isOnSurface(gctx, {x(), y(), z()}, {0, 0, 0});
42 }
43};
44
45inline bool operator==(SpacePoint a, SpacePoint b) { return (a.getObjectID() == b.getObjectID()); }
46
47using SpacePointPtr = std::unique_ptr<SpacePoint>;
49using SeedContainer = std::vector<Acts::Seed<SpacePoint>>;
50
51} // namespace eicrecon
Definition SpacePoint.h:9
float x() const
Definition SpacePoint.h:24
float varianceT() const
Definition SpacePoint.h:35
float t() const
Definition SpacePoint.h:34
float y() const
Definition SpacePoint.h:25
SpacePoint(const TrackerHit &hit)
Definition SpacePoint.h:13
const Acts::Surface * m_surface
Definition SpacePoint.h:11
bool isOnSurface(const Acts::GeometryContext &gctx) const
Definition SpacePoint.h:37
float z() const
Definition SpacePoint.h:26
void setSurface(std::shared_ptr< const ActsGeometryProvider > m_geoSvc)
Definition SpacePoint.h:15
float varianceR() const
Definition SpacePoint.h:28
float varianceZ() const
Definition SpacePoint.h:32
float r() const
Definition SpacePoint.h:27
-client
Definition CalorimeterClusterRecoCoG.cc:37
bool operator==(SpacePoint a, SpacePoint b)
Definition SpacePoint.h:45
std::unique_ptr< SpacePoint > SpacePointPtr
Definition SpacePoint.h:47
std::vector< Acts::Seed< SpacePoint > > SeedContainer
Container of sim seed.
Definition SpacePoint.h:49