module Windex_mod
! Uses
use Precision_mod
use Namelist_mod
use Chambers_mod
use Det_Geom_mod
use Tdc_mod
use Unp_mod
use Hists_mod
use Pattern_mod
use Cluster_mod
use Pattern_Log_mod
use Xtalk_mod, ONLY: DC_IsXtalk, PC_IsXtalk
use windowstat_mod
! Subroutines and functions
public subroutine GetTriggerInfo ()
public subroutine GetScintHits ()
public subroutine DoClustering ()
public subroutine DoClusteringWin (i)
public subroutine AllEventWindowTypes ()
private subroutine AEWT_MoreMuThanEManyPidPC ()
private function AEWT_MMTEMPP_NotFastDecay (iwindow)
private function AEWT_MMTEMPP_NFDK_Upstream (iwindow)
private function AEWT_MMTEMPP_NFDK_Downstream (iwindow)
private subroutine AEWT_MoreMuThanEOnePidPC ()
private subroutine AEWT_MoreEThanMu ()
public subroutine FillWindowBJhistos ()
private subroutine BookWindowBJhistos ()
end module Windex_mod
==============================================================================
Name: windex_mod
------------------------------------------------------------------------------
Description:
Final step in windowing and classification --
change window classifications based on whole event
information, and creates histograms by window. These subroutines
have been pulled out of windowbj_mod, since I
wanted to shorten windowbj_mod so that it would
compile more reliably without making the compiler
core dump. ( I suspect it doesn't like such long
pieces of code).
==============================================================================
Author: Blair Jamieson (!! is for inclusion of comments in f90doc)
Version: Jul.2003
public subroutine GetTriggerInfo () end subroutine GetTriggerInfo SUBROUTINE GetTriggerInfo ------------------------------------------------------------------ Author: Blair Date: Jan. 2003 Description: This subroutine gets the capacitive probe time and stores it in cptime. It also gets the M scintillator 1+2 width and puts it in the variable m12width.
public subroutine GetScintHits () end subroutine GetScintHits
public subroutine DoClustering ()
! Calls: ClusterStat, Clustering
end subroutine DoClustering
SUBROUTINE DoClustering
------------------------------------------------------------------
Author: Blair
Date: Jan. 2003
Description:
This subroutine calls clustering for each window and
plane.
Modifications
--------------
Mar. 2003 - ABJ:
Don't call clustering for the odd window before
a beam positron and decay overlap window... that was
already done to try to extract the beam positron
public subroutine DoClusteringWin (i)
integer (kind=i4) :: i
! Calls: Clustering
end subroutine DoClusteringWin
SUBROUTINE DoClusteringWin
------------------------------------------------------------------
Author: Blair
Date: Mar. 2003
Description:
This subroutine calls clustering for each
plane in window i.
public subroutine AllEventWindowTypes ()
! Calls: AEWT_MoreEThanMu, AEWT_MoreMuThanEManyPidPC, AEWT_MoreMuThanEOnePidPC
end subroutine AllEventWindowTypes
Subroutine AllEventWindowTypes
------------------------------------------------------------------
Author: Blair
Date: Feb. 2003
Description:
Check overall event to see if any of the windows could have been
misidentified.
private subroutine AEWT_MoreMuThanEManyPidPC () end subroutine AEWT_MoreMuThanEManyPidPC Subroutine AEWT_MoreMuThanEManyPidPC ------------------------------------------------------------------ Author: Anthony Date: Mar. 2008 Description: See if any of the windows were identified as muon and beam positron overlaps.
private function AEWT_MMTEMPP_NotFastDecay (iwindow)
integer (kind=i4), intent(in) :: iwindow
logical :: AEWT_MMTEMPP_NotFastDecay
end function AEWT_MMTEMPP_NotFastDecay
Subroutine AEWT_MMTEMPP_NotFastDecay
------------------------------------------------------------------
Author: Anthony
Date: Mar. 2008
Description:
centre of circle moved, change in hits per plane,
and slight difference in spread in hits between
upstream and downstream... lets call this an overlap
of beam positron and decay
private function AEWT_MMTEMPP_NFDK_Upstream (iwindow)
integer (kind=i4), intent(in) :: iwindow
logical :: AEWT_MMTEMPP_NFDK_Upstream
end function AEWT_MMTEMPP_NFDK_Upstream
Subroutine AEWT_MMTEMPP_NFDK_Upstream
------------------------------------------------------------------
Author: Anthony
Date: Mar. 2008
Description:
This event is apparently not a fast decay.
It has more hits upstream so upstream decay is assumed.
Now check if it is a delta or a scatter.
private function AEWT_MMTEMPP_NFDK_Downstream (iwindow)
integer (kind=i4), intent(in) :: iwindow
logical :: AEWT_MMTEMPP_NFDK_Downstream
end function AEWT_MMTEMPP_NFDK_Downstream
Subroutine AEWT_MMTEMPP_NFDK_Downstream
------------------------------------------------------------------
Author: Anthony
Date: Mar. 2008
Description:
This event is apparently not a fast decay.
It has more hits downstream so downstream decay is assumed.
Now check if it is a delta or a scatter.
private subroutine AEWT_MoreMuThanEOnePidPC () end subroutine AEWT_MoreMuThanEOnePidPC Subroutine AEWT_MoreMuThanEOnePidPC ------------------------------------------------------------------ Author: Anthony Date: Mar. 2008 Description: See if this could be a fast decay upstream Characteristics: 1) could have larger radius than usual muon (poor indicator) 2) has hits with width < 150 ns (poor indicator) 3) could have larger tsig due to multiple tracks (ok indicator) 4) hitspp > 1.75 (ok indicator) use just conditions 2,3,4
private subroutine AEWT_MoreEThanMu () end subroutine AEWT_MoreEThanMu Subroutine AEWT_MoreEThanMu ------------------------------------------------------------------ Author: Anthony Date: Mar. 2008 Description:
public subroutine FillWindowBJhistos ()
! Calls: BookWindowBJhistos, HF1, HF2, fillskimN, hf2
end subroutine FillWindowBJhistos
private subroutine BookWindowBJhistos ()
! Calls: HBOOK1, HBOOK2
end subroutine BookWindowBJhistos