detector2D Derived Type

type, public, abstract, extends(detector) :: detector2D

2D detecctor type. Records spatial information


Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: bin_wid_x

Bin width in the x dimension

real(kind=wp), public :: bin_wid_y

Bin width in the y dimension

real(kind=wp), public, allocatable :: data(:,:)

Bins

type(vector), public :: dir

Surface normal of the detector

integer, public :: layer

Layer ID of the detector

integer, public :: nbinsX

Number of bins in x dimension (detector space)

integer, public :: nbinsY

Number of bins in y dimension (detector space)

type(vector), public :: pos

position of the detector

logical, public :: trackHistory

Boolean, if true store the history of the photon prior to detection.


Type-Bound Procedures

procedure(checkHitInterface), public, deferred :: check_hit

  • function checkHitInterface(this, hitpoint) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(detector), intent(inout) :: this
    type(hit_t), intent(in) :: hitpoint

    Return Value logical

procedure, public :: record_hit => record_hit_2D_sub

  • private subroutine record_hit_2D_sub(this, hitpoint, history)

    check if a hit is on the detector and record it if so

    Arguments

    Type IntentOptional Attributes Name
    class(detector2D), intent(inout) :: this
    type(hit_t), intent(in) :: hitpoint

    Interaction information

    type(history_stack_t), intent(inout) :: history

    Photon packet history

Source Code

    type, abstract, extends(detector) :: detector2D
        !> Number of bins in x dimension (detector space)
        integer       :: nbinsX
        !> Number of bins in y dimension (detector space)
        integer       :: nbinsY
        !> Bin width in the x dimension
        real(kind=wp) :: bin_wid_x
        !> Bin width in the y dimension
        real(kind=wp) :: bin_wid_y
        !> Bins
        real(kind=wp), allocatable :: data(:,:)
        contains
        procedure :: record_hit => record_hit_2D_sub
    end type detector2D