Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sPHENIXActsDetectorElement.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file sPHENIXActsDetectorElement.h
1 #ifndef TRACKBASE_SPHENIXACTSDETECTORELEMENT_H
2 #define TRACKBASE_SPHENIXACTSDETECTORELEMENT_H
3 
7 
14 class ActsGeometry;
15 
17 {
18  public:
19 
20  sPHENIXActsDetectorElement() = delete;
21 
23  const TGeoNode& tGeoNode,
24  const TGeoMatrix& tGeoMatrix = TGeoIdentity(),
25  const std::string& axes = "XYZ",
26  double scalor = 10.,
27  std::shared_ptr<const Acts::ISurfaceMaterial> material = nullptr) :
28  Acts::TGeoDetectorElement(identifier, tGeoNode, tGeoMatrix,
29  axes, scalor, material) {}
30 
32  const TGeoNode& tGeoNode,
33  Acts::Transform3& tgTransform,
34  std::shared_ptr<const Acts::PlanarBounds> tgBounds,
35  double tgThickness = 0.) :
36  Acts::TGeoDetectorElement(identifier, tGeoNode, tgTransform,
37  tgBounds, tgThickness) {}
38 
39 
41  const TGeoNode& tGeoNode,
42  Acts::Transform3& tgTransform,
43  std::shared_ptr<const Acts::DiscBounds> tgBounds,
44  double tgThickness = 0.) :
45  Acts::TGeoDetectorElement(identifier, tGeoNode, tgTransform, tgBounds,
46  tgThickness) {}
47 
48  ~sPHENIXActsDetectorElement() override;
49 
50  const Acts::Transform3& transform(const Acts::GeometryContext& ctxt) const override;
51 
52 
53 private:
54 
55  std::map<unsigned int, unsigned int> base_layer_map = { {10, 0}, {12,3}, {14,7}, {16,55} };
56 
57 };
58 
59 std::shared_ptr<sPHENIXActsDetectorElement> sPHENIXElementFactory(
60  const Identifier& identifier, const TGeoNode& tGeoNode,
61  const TGeoMatrix& tGeoMatrix, const std::string& axes, double scalor,
62  std::shared_ptr<const Acts::ISurfaceMaterial> material) {
63  return std::make_shared<sPHENIXActsDetectorElement>(identifier, tGeoNode, tGeoMatrix,
64  axes, scalor, material);
65 }
66 
67 #endif