ATLAS Offline Software
Segmentation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Segmentation.h, ATLAS Detector software
8 
9 #ifndef TRKDIGEVENT_SEGMENTATION_H
10 #define TRKDIGEVENT_SEGMENTATION_H
11 
12 // GeoPrimitives
14 // Trk includes
16 // STL
17 #include <memory>
18 #include <vector>
19 
20 namespace Trk {
21 
22  class Surface;
23  class SurfaceBounds;
24 
39  class Segmentation {
40  public:
42  virtual ~Segmentation() {}
43 
45  virtual void createSegmenationSurfaces(std::vector< std::shared_ptr< const Surface> >& boundarySurfaces,
46  std::vector< std::shared_ptr< const Surface> >& segmentationSurfacesX,
47  std::vector< std::shared_ptr< const Surface> >& segmentationSurfacesY,
48  double halfThickness,
49  int readoutDirection,
50  double lorentzAngle) const = 0;
51 
53  virtual const DigitizationCell cell(const Amg::Vector3D& position) const = 0;
54 
56  virtual const DigitizationCell cell(const Amg::Vector2D& position) const = 0;
57 
59  virtual const Amg::Vector2D cellPosition(const DigitizationCell& dCell) const = 0;
60 
63  const Amg::Vector3D& end,
64  double halfThickness,
65  int readoutDirection,
66  double lorentzAngle) const =0;
67 
69  virtual const SurfaceBounds& moduleBounds() const = 0;
70 
71 
72  };
73 
74 }
75 
76 #endif
77 
Trk::Segmentation::cellPosition
virtual const Amg::Vector2D cellPosition(const DigitizationCell &dCell) const =0
calculate the cell Position from the Id
Trk::Segmentation::cell
virtual const DigitizationCell cell(const Amg::Vector2D &position) const =0
Get the digitization cell fropm a 2D position
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
Trk::Segmentation::digitizationStep
virtual const DigitizationStep digitizationStep(const Amg::Vector3D &start, const Amg::Vector3D &end, double halfThickness, int readoutDirection, double lorentzAngle) const =0
Fill the associated digitsation cell from the start and end position in 3D, correct for lorentz effec...
Trk::Segmentation::~Segmentation
virtual ~Segmentation()
Virtual Destructor.
Definition: Segmentation.h:42
Trk::Segmentation::cell
virtual const DigitizationCell cell(const Amg::Vector3D &position) const =0
Get the digitization cell fropm a 3D position - ignores the shift.
Trk::DigitizationCell
std::pair< size_t, size_t > DigitizationCell
Definition: DigitizationCell.h:18
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
GeoPrimitives.h
Trk::Segmentation::moduleBounds
virtual const SurfaceBounds & moduleBounds() const =0
return the surface bounds by reference
Trk::DigitizationStep
Definition: DigitizationCell.h:21
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::Segmentation::createSegmenationSurfaces
virtual void createSegmenationSurfaces(std::vector< std::shared_ptr< const Surface > > &boundarySurfaces, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesX, std::vector< std::shared_ptr< const Surface > > &segmentationSurfacesY, double halfThickness, int readoutDirection, double lorentzAngle) const =0
Create the segmentation surfaces in X.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
DigitizationCell.h
Trk::Segmentation
Definition: Segmentation.h:39