DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
ReadoutSegmentations.cpp
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 
14 // Framework includes
16 #include <DD4hep/Factories.h>
17 
18 using namespace dd4hep;
19 using namespace dd4hep::DDSegmentation;
20 
21 namespace {
22  template<typename T> dd4hep::SegmentationObject*
23  create_segmentation(const dd4hep::BitFieldCoder* decoder) {
24  return new dd4hep::SegmentationWrapper<T>(decoder);
25  }
26 }
27 
29 DECLARE_SEGMENTATION(NoSegmentation,create_segmentation<dd4hep::DDSegmentation::NoSegmentation>)
30 
31 #include <DDSegmentation/CartesianGridXY.h>
32 DECLARE_SEGMENTATION(CartesianGridXY,create_segmentation<dd4hep::DDSegmentation::CartesianGridXY>)
33 
34 #include <DDSegmentation/CartesianGridXZ.h>
35 DECLARE_SEGMENTATION(CartesianGridXZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXZ>)
36 
37 #include <DDSegmentation/CartesianGridYZ.h>
38 DECLARE_SEGMENTATION(CartesianGridYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridYZ>)
39 
40 #include <DDSegmentation/CartesianGridXYZ.h>
41 DECLARE_SEGMENTATION(CartesianGridXYZ,create_segmentation<dd4hep::DDSegmentation::CartesianGridXYZ>)
42 
43 #include <DDSegmentation/CartesianGridUV.h>
44 DECLARE_SEGMENTATION(CartesianGridUV,create_segmentation<dd4hep::DDSegmentation::CartesianGridUV>)
45 
46 #include <DDSegmentation/CartesianGridXYStaggered.h>
47 DECLARE_SEGMENTATION(CartesianGridXYStaggered,dd4hep::create_segmentation<dd4hep::DDSegmentation::CartesianGridXYStaggered>)
48 
49 #include <DDSegmentation/CartesianStripX.h>
50 DECLARE_SEGMENTATION(CartesianStripX,create_segmentation<dd4hep::DDSegmentation::CartesianStripX>)
51 
52 #include <DDSegmentation/CartesianStripY.h>
53 DECLARE_SEGMENTATION(CartesianStripY,create_segmentation<dd4hep::DDSegmentation::CartesianStripY>)
54 
55 #include <DDSegmentation/CartesianStripZ.h>
56 DECLARE_SEGMENTATION(CartesianStripZ,create_segmentation<dd4hep::DDSegmentation::CartesianStripZ>)
57 
58 #include <DDSegmentation/TiledLayerGridXY.h>
59 DECLARE_SEGMENTATION(TiledLayerGridXY,create_segmentation<dd4hep::DDSegmentation::TiledLayerGridXY>)
60 
61 #include <DDSegmentation/MegatileLayerGridXY.h>
62 DECLARE_SEGMENTATION(MegatileLayerGridXY,create_segmentation<dd4hep::DDSegmentation::MegatileLayerGridXY>)
63 
64 #include <DDSegmentation/WaferGridXY.h>
65 DECLARE_SEGMENTATION(WaferGridXY,create_segmentation<dd4hep::DDSegmentation::WaferGridXY>)
66 
67 #include <DDSegmentation/PolarGridRPhi.h>
68 DECLARE_SEGMENTATION(PolarGridRPhi,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi>)
69 
70 #include <DDSegmentation/GridPhiEta.h>
71 DECLARE_SEGMENTATION(GridPhiEta,create_segmentation<dd4hep::DDSegmentation::GridPhiEta>)
72 
73 #include <DDSegmentation/GridRPhiEta.h>
74 DECLARE_SEGMENTATION(GridRPhiEta,create_segmentation<dd4hep::DDSegmentation::GridRPhiEta>)
75 
76 #include <DDSegmentation/PolarGridRPhi2.h>
77 DECLARE_SEGMENTATION(PolarGridRPhi2,create_segmentation<dd4hep::DDSegmentation::PolarGridRPhi2>)
78 
79 #include <DDSegmentation/ProjectiveCylinder.h>
80 DECLARE_SEGMENTATION(ProjectiveCylinder,create_segmentation<dd4hep::DDSegmentation::ProjectiveCylinder>)
81 
82 #include <DDSegmentation/MultiSegmentation.h>
83 DECLARE_SEGMENTATION(MultiSegmentation,create_segmentation<dd4hep::DDSegmentation::MultiSegmentation>)
84 
85 #include <DDSegmentation/HexGrid.h>
86 DECLARE_SEGMENTATION(HexGrid,create_segmentation<dd4hep::DDSegmentation::HexGrid>)
87 
88 #include <DDSegmentation/CylindricalGridPhiZ.h>
89 DECLARE_SEGMENTATION(CylindricalGridPhiZ,create_segmentation<dd4hep::DDSegmentation::CylindricalGridPhiZ>)
dd4hep::CartesianGridXYZ
Implementation class for the grid XYZ segmentation.
Definition: CartesianGridXYZ.h:51
dd4hep::CartesianStripX
Implementation class for the strip X segmentation.
Definition: CartesianStripX.h:52
dd4hep::MultiSegmentation
Implementation class for the grid XZ segmentation.
Definition: MultiSegmentation.h:52
dd4hep::DDSegmentation::BitFieldCoder
Helper class for decoding and encoding a bit field of 64bits for convenient declaration.
Definition: BitFieldCoder.h:114
dd4hep::NoSegmentation
Implementation class for the grid XY segmentation.
Definition: NoSegmentation.h:37
DECLARE_SEGMENTATION
#define DECLARE_SEGMENTATION(name, func)
Definition: Factories.h:269
dd4hep::SegmentationObject
Implementation class supporting generic Segmentation of sensitive detectors.
Definition: SegmentationsInterna.h:46
Factories.h
NoSegmentation.h
dd4hep::CartesianGridYZ
Implementation class for the grid YZ segmentation.
Definition: CartesianGridYZ.h:51
dd4hep::CartesianStripY
Implementation class for the strip Y segmentation.
Definition: CartesianStripY.h:52
dd4hep::GridRPhiEta
Implementation class for the grid phi-eta segmentation.
Definition: GridRPhiEta.h:48
dd4hep::SegmentationWrapper
Concrete wrapper class for segmentation implementation based on DDSegmentation objects.
Definition: SegmentationsInterna.h:105
dd4hep::PolarGridRPhi2
Implementation class for the grid XZ segmentation.
Definition: PolarGridRPhi2.h:51
dd4hep::DDSegmentation::MegatileLayerGridXY
a megatile is a rectangule in x-y, split into a grid along x and y, with an exactly integer number of...
Definition: MegatileLayerGridXY.h:48
dd4hep::DDSegmentation::ProjectiveCylinder
A segmentation class to describe projective cylinders.
Definition: ProjectiveCylinder.h:28
dd4hep::CylindricalGridPhiZ
Implementation class for the grid PhiZ segmentation.
Definition: CylindricalGridPhiZ.h:51
dd4hep::CartesianStripZ
Implementation class for the strip Z segmentation.
Definition: CartesianStripZ.h:53
dd4hep::WaferGridXY
Implementation class for the grid XZ segmentation.
Definition: WaferGridXY.h:51
SegmentationsInterna.h
dd4hep::CartesianGridXZ
Implementation class for the grid XZ segmentation.
Definition: CartesianGridXZ.h:51
dd4hep::PolarGridRPhi
Implementation class for the grid XZ segmentation.
Definition: PolarGridRPhi.h:51
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::GridPhiEta
Implementation class for the grid phi-eta segmentation.
Definition: GridPhiEta.h:48
dd4hep::DDSegmentation::CartesianGridXYStaggered
Segmentation base class describing cartesian grid segmentation in the X-Y plane.
Definition: CartesianGridXYStaggered.h:27
dd4hep::DDSegmentation
Namespace for base segmentations.
Definition: CartesianGridUV.h:25
dd4hep::DDSegmentation::TiledLayerGridXY
A segmentation class to describe tiled layers.
Definition: TiledLayerGridXY.h:32
dd4hep::DDSegmentation::HexGrid
Segmentation base class describing hexagonal grid segmentation, with or without staggering.
Definition: HexGrid.h:28
dd4hep::CartesianGridUV
Implementation class for the grid UV segmentation.
Definition: CartesianGridUV.h:51
dd4hep::CartesianGridXY
Implementation class for the grid XY segmentation.
Definition: CartesianGridXY.h:51