Module hitpos_mod

module hitpos_mod

        ! Uses
    use precision_mod
    use physicalconstants_mod
    use det_geom_mod
    use chambers_mod
    use filters_mod
    use tdc_mod
    use unp_mod
    use strs_mod
    use hists_mod
    use namelist_mod
    use pattern_mod
    use calibrations_mod
    use hitpos_struct_mod
    use leftright_mod

        ! Variables
    type (HitPos_type), public, TARGET, dimension (DCMaxAllowedHits) :: DCHitPos
    type (HitPos_type), public, TARGET, dimension (DCMaxAllowedHits) :: DCHitPosAll
    type (HitPos_type), public, TARGET, dimension (PCmaxAllowedHits) :: PCHitPos
    integer (kind=i4), public, TARGET :: nClustersWind
    character, public, dimension (DCMaxAllowedHits) :: SaveLCR

        ! Subroutines and functions
    public subroutine HitCluster (iWindow)
    public subroutine HitTime (iWindow, TrackParam, Fail, iterate)
    private subroutine HitSegment (iPlaneP, iHitWind, ThetaUV, TrackParam, WireIndex, iterate, Fail)
    private subroutine HitPosition (iPlaneP, iWireP, HitRadius, ThetaUV, iHitWind, TrackParam, Fail)
    public function HitDriftBin (dist) result (bin)
    private subroutine SortHitsZ (HitPos, LastHit, nHits)

end module hitpos_mod

Description of Variables

DCHitPos

type (HitPos_type), public, TARGET, dimension (DCMaxAllowedHits) :: DCHitPos

DCHitPosAll

type (HitPos_type), public, TARGET, dimension (DCMaxAllowedHits) :: DCHitPosAll

PCHitPos

type (HitPos_type), public, TARGET, dimension (PCmaxAllowedHits) :: PCHitPos

nClustersWind

integer (kind=i4), public, TARGET :: nClustersWind

SaveLCR

character, public, dimension (DCMaxAllowedHits) :: SaveLCR

Description of Subroutines and Functions

HitCluster

public subroutine HitCluster (iWindow)
    integer :: iWindow
end subroutine HitCluster

HitTime

public subroutine HitTime (iWindow, TrackParam, Fail, iterate)
    integer (kind=i4) :: iWindow
    real (kind=r4), DIMENSION(10) :: TrackParam
    logical :: Fail
    integer (kind=i4) :: iterate
    ! Calls: HitPosition, HitSegment
end subroutine HitTime

HitSegment

private subroutine HitSegment (iPlaneP, iHitWind, ThetaUV, TrackParam, WireIndex, iterate, Fail)
    integer (kind=i4), POINTER :: iPlaneP
    integer (kind=i4) :: iHitWind
    real (kind=r4) :: ThetaUV
    real (kind=r4), TARGET, DIMENSION( 10 ) :: TrackParam
    integer (kind=i4) :: WireIndex
    integer (kind=i4) :: iterate
    logical :: Fail
end subroutine HitSegment

HitPosition

private subroutine HitPosition (iPlaneP, iWireP, HitRadius, ThetaUV, iHitWind, TrackParam, Fail)
    integer (kind=i4), POINTER :: iPlaneP
    integer (kind=i4), POINTER :: iWireP
    real (kind=r4) :: HitRadius
    real (kind=r4) :: ThetaUV
    integer (kind=i4) :: iHitWind
    real (kind=r4), TARGET, DIMENSION( 10 ) :: TrackParam
    logical :: Fail
    ! Calls: kerror
end subroutine HitPosition

HitDriftBin

public function HitDriftBin (dist) result (bin)
    real (kind=r4), INTENT( IN ) :: dist
    integer (kind=i4) :: bin
end function HitDriftBin

SortHitsZ

private subroutine SortHitsZ (HitPos, LastHit, nHits)
    type (HitPos_type), INTENT(INOUT), dimension (:) :: HitPos
    integer (kind=I4), INTENT(IN) :: LastHit
    integer (kind=I4), INTENT(IN) :: nHits
end subroutine SortHitsZ