ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
ActsPlugins::TGeoSurfaceConverter Struct Reference

Helper struct to convert TGeoShapes into Surface or Volume Bounds. More...

#include <ActsPlugins/Root/TGeoSurfaceConverter.hpp>

Static Public Member Functions

static std::tuple< std::shared_ptr< const Acts::CylinderBounds >, const Acts::Transform3, double > cylinderComponents (const TGeoShape &tgShape, const Double_t *rotation, const Double_t *translation, TGeoAxes axes, double scalor=10.) noexcept(false)
 Convert a TGeoShape into cylinder surface components.
static std::tuple< std::shared_ptr< const Acts::DiscBounds >, const Acts::Transform3, double > discComponents (const TGeoShape &tgShape, const Double_t *rotation, const Double_t *translation, TGeoAxes axes, double scalor=10.) noexcept(false)
 Convert a TGeoShape into disk surface components.
static std::tuple< std::shared_ptr< const Acts::PlanarBounds >, const Acts::Transform3, double > planeComponents (const TGeoShape &tgShape, const Double_t *rotation, const Double_t *translation, TGeoAxes axes, double scalor=10.) noexcept(false)
 Convert a TGeoShape into plane surface components.
static double toRadian (double deg)
 Translate TGeo degree [0, 360) to radian.
static std::tuple< std::shared_ptr< Acts::Surface >, double > toSurface (const TGeoShape &tgShape, const TGeoMatrix &tgMatrix, TGeoAxes axes, double scalor=10.) noexcept(false)
 Convert a TGeoShape to a Surface.
static Acts::Transform3 transformFromShape (const TGeoShape &tgShape, const TGeoMatrix &tgMatrix, TGeoAxes axes, double scalor=10.) noexcept(false)
 Extract the transform from a TGeoShape by trying cylinder, disc, then plane conversion.

Detailed Description

Helper struct to convert TGeoShapes into Surface or Volume Bounds.

Member Function Documentation

◆ cylinderComponents()

std::tuple< std::shared_ptr< const Acts::CylinderBounds >, const Acts::Transform3, double > ActsPlugins::TGeoSurfaceConverter::cylinderComponents ( const TGeoShape & tgShape,
const Double_t * rotation,
const Double_t * translation,
TGeoAxes axes,
double scalor = 10. )
static

Convert a TGeoShape into cylinder surface components.

Parameters
tgShapeThe TGeoShape
rotationThe rotation matrix as Double_t* from root
translationThe translation vector as Double_t* from root
axesThe axes definition
scalorThe unit scalor between TGeo and Acts
Returns
tuple of DiscBounds, Transform, thickness

◆ discComponents()

std::tuple< std::shared_ptr< const Acts::DiscBounds >, const Acts::Transform3, double > ActsPlugins::TGeoSurfaceConverter::discComponents ( const TGeoShape & tgShape,
const Double_t * rotation,
const Double_t * translation,
TGeoAxes axes,
double scalor = 10. )
static

Convert a TGeoShape into disk surface components.

Parameters
tgShapeThe TGeoShape
rotationThe rotation matrix as Double_t* from root
translationThe translation vector as Double_t* from root
axesThe axes definition
scalorThe unit scalor between TGeo and Acts
Returns
tuple of DiscBounds, Transform, thickness

◆ planeComponents()

std::tuple< std::shared_ptr< const Acts::PlanarBounds >, const Acts::Transform3, double > ActsPlugins::TGeoSurfaceConverter::planeComponents ( const TGeoShape & tgShape,
const Double_t * rotation,
const Double_t * translation,
TGeoAxes axes,
double scalor = 10. )
static

Convert a TGeoShape into plane surface components.

Parameters
tgShapeThe TGeoShape
rotationThe rotation matrix as Double_t* from root
translationThe translation as a Double_t*
axesThe axes definition
scalorThe unit scalor between TGeo and Acts
Returns
tuple of PlanarBounds, Transform, thickness

◆ toRadian()

double ActsPlugins::TGeoSurfaceConverter::toRadian ( double deg)
static

Translate TGeo degree [0, 360) to radian.

  • will correct to [-pi,pi)
  • it will return any multiple of 360.0 to 2pi
    Parameters
    degThe input in degree
    Returns
    angle in radians

◆ toSurface()

std::tuple< std::shared_ptr< Acts::Surface >, double > ActsPlugins::TGeoSurfaceConverter::toSurface ( const TGeoShape & tgShape,
const TGeoMatrix & tgMatrix,
TGeoAxes axes,
double scalor = 10. )
static

Convert a TGeoShape to a Surface.

Parameters
tgShapeThe TGeoShape
tgMatrixThe matrix representing the transform
axesThe axes definition
scalorThe unit scalor between TGeo and Acts
Returns
shared pointer to a surface and the original thickness that has been condensed to the surface

◆ transformFromShape()

Acts::Transform3 ActsPlugins::TGeoSurfaceConverter::transformFromShape ( const TGeoShape & tgShape,
const TGeoMatrix & tgMatrix,
TGeoAxes axes,
double scalor = 10. )
static

Extract the transform from a TGeoShape by trying cylinder, disc, then plane conversion.

Parameters
tgShapeThe TGeoShape
tgMatrixThe matrix representing the transform
axesThe axes definition
scalorThe unit scalor between TGeo and Acts
Returns
The Acts transform
Exceptions
std::runtime_errorif the shape cannot be converted