Skip to content
Snippets Groups Projects
Select Git revision
  • irt-init-v01
  • master default protected
  • 59-detailed-forward-gem-trd
  • 147-fix-dirc-overlaps-and-make-it-great-again
  • test-drich-tracker
  • 144-irt-geometry
  • deathvalley
  • drich-two-mirrors
  • zji-ScFiCal
  • deathvalley-1.5T
  • tmp_viz
  • test_tof_zy
  • canyonlands
  • update_becal_nlayers
  • 131-update-tof-for-canyonlands
  • zdc_prim_fix
  • rich-photos
  • backward_ecal_cleanup
  • 134-make-new-3d-views-of-ff-region-and-detectors
  • sly2j-master-patch-62318
  • deathvalley-v1.1
  • deathvalley-v1.0-1.5T
  • deathvalley-v1.0
  • canyonlands-v2.2
  • canyonlands-v2.1
  • canyonlands-v2.0
  • canyonlands-v1.2
  • canyonlands-v1.1
  • acadia-v2.1
  • canyonlands-v1.0
  • acadia-v2.0
  • acadia-v1.1
  • acadia-v1.0
  • acadia-v1.0-alpha
  • v0.2.0
  • v0.1.0
36 results

GeometryHelpers.h

Blame
  • Forked from EIC / detectors / athena
    32 commits behind, 5 commits ahead of the upstream repository.
    GeometryHelpers.h 1.03 KiB
    #pragma once
    #include <vector>
    #include "Math/Point2D.h"
    
    // some utility functions that can be shared
    namespace athena::geo {
    
    using Point =  ROOT::Math::XYPoint;
    
    /** Fill rectangles in a ring (disk).
     *
     * @param ref  2D reference point.
     * @param sx   x side length
     * @param sy   y side length
     * @param rmin inner radius of disk
     * @param rmax  outer radius of disk to fill
     * @param phmin  phi min
     * @param phmax phi max
     */
    std::vector<Point> fillRectangles(Point ref, double sx, double sy, double rmin, double rmax,
                                      double phmin = -M_PI, double phmax = M_PI);
    // fill squares in a ring
    inline std::vector<Point> fillSquares(Point ref, double size, double rmin, double rmax,
                                          double phmin = -M_PI, double phmax = M_PI)
    {
        return fillRectangles(ref, size, size, rmin, rmax, phmin, phmax);
    }
    
    std::vector<Point> fillHexagons(Point ref, double lside, double rmin, double rmax,
                                    double phmin = -M_PI, double phmax = M_PI);
    
    } // athena::geo