Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:55:32

0001 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT
0002 
0003 #ifndef EDM4EIC_Surface_H
0004 #define EDM4EIC_Surface_H
0005 
0006 #include <array>
0007 #include <cstdint>
0008 #include <ostream>
0009 
0010 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0011 #include "nlohmann/json_fwd.hpp"
0012 #endif
0013 
0014 namespace edm4eic {
0015 
0016 /** @class Surface
0017  *  
0018  *  @author: 
0019  */
0020 class Surface {
0021 public:
0022   int surfaceType{}; ///< Cone = 0, Cylinder = 1, Disc = 2, Perigee = 3, Plane = 4, Straw = 5, Curvilinear = 6, Other = 7
0023   int boundsType{}; ///< eCone = 0, eCylinder = 1, eDiamond = 2, eDisc = 3, eEllipse = 4, eLine = 5, eRectangle = 6, eTrapezoid = 7, eTriangle = 8, eDiscTrapezoid = 9, eConvexPolygon = 10, eAnnulus = 11, eBoundless = 12, eOther = 13
0024   std::uint64_t geometryId{}; ///< bit pattern volume:8,boundary:8,layer:12,approach:8,sensitive:20,extra:8
0025   std::uint64_t identifier{}; ///< identifier of associated detector element, if available
0026   std::array<double, 10> boundValues{}; ///< bound values, e.g. for RectangleBounds, BoundValues are eMinX = 0, eMinY = 1, eMaxX = 2, eMaxY = 3, eSize = 4
0027   std::uint32_t boundValuesSize{}; ///< size of bound values
0028   std::array<double, 16> transform{}; ///< row-wise 4x4 affine transform [R T; 0 1] with 3x3 rotation matrix R and translation column 3-vector T
0029 
0030 
0031 };
0032 
0033 std::ostream& operator<<(std::ostream& o, const edm4eic::Surface& value);
0034 
0035 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0036 void to_json(nlohmann::json& j, const Surface& value);
0037 #endif
0038 
0039 } // namespace edm4eic
0040 
0041 
0042 #endif