Module namelist_mod

module namelist_mod

        ! Uses
    use precision_mod

        ! Variables
    integer (kind=I4), private :: i
    integer (kind=I4), private :: isk
    real (kind=R4), public, dimension (100) :: param = (/ (0.0, i = 1, 100) /)
    integer (kind=I4), public :: nEVTprocessed = -1
    logical, public :: enableBeamSpots = .FALSE.
    real (kind=r4), public :: BeamSpotConLev = 0.05
    logical, public :: FillRawHist = .TRUE.
    logical, public :: QFillRawHist = .FALSE.
    logical, public :: FillPostFilterHist = .FALSE.
    logical, public :: QFillHist = .FALSE.
    logical, public :: FillXTalkHist = .FALSE.
    logical, public :: FillSkimHist = .FALSE.
    logical, public :: FillTrackHist = .FALSE.
    logical, public :: FillPatternHist = .TRUE.
    logical, public :: FillPhysicsHist = .TRUE.
    logical, public :: FillPACTHist = .FALSE.
    logical, public :: FillTECHist = .FALSE.
    logical, public :: FillWindowBJHist = .FALSE.
    logical, public :: FillTDCLocHist = .FALSE.
    logical, public :: PlaneHists = .FALSE.
    logical, public :: PulserHistToggle = .FALSE.
    logical, public :: FillRatiohist = .FALSE.
    logical, public :: Globalmem_toggle = .FALSE.
    logical, public :: WEvent_per_Plane = .FALSE.
    logical, public :: HMult_times = .TRUE.
    logical, public :: plane_wire_hists = .FALSE.
    logical, public :: TDC_width_hists = .FALSE.
    logical, public :: TDC_time_hists = .TRUE.
    logical, public :: ped_calib_on = .FALSE.
    logical, public :: compareSTR = .FALSE.
    logical, public :: FillBulgeHist = .FALSE.
    logical, public :: FillBMJBHist = .TRUE.
    real, public :: TDC_MIN = -1000.
    real, public :: TDC_MAX = 12000.
    real, public :: PC_ADC_MIN = 0.
    real, public :: PC_ADC_MAX = 500.
    real, public :: SC_ADC_MIN = 0.
    real, public :: SC_ADC_MAX = 14000.
    real, public :: SCTDC_MIN = -100.
    real, public :: SCTDC_MAX = 100.
    real, public :: RF_TDC_MIN = -80.
    real, public :: CP_TDC_MIN = -80.
    real, public :: raw_xmi_tdcslot = 0.
    real, public :: raw_xma_tdcslot = 30000.
    real, public :: raw_xmi_ped = 0.
    real, public :: raw_xma_ped = 3000.
    integer, public :: raw_nx_tdcslot = 3000
    integer, public :: raw_nx_ped = 3000
    integer, public :: RatioMod = 1000
    real (kind=r4), public :: PCEnergyMin = 100.0
    real (kind=r4), public :: aPACTmSS = 2.333
    real (kind=r4), public :: aPACTbSS = 3500.0
    real (kind=r4), public :: bPACTmSS = 2.333
    real (kind=r4), public :: bPACTbSS = 3500.0
    real (kind=r4), public :: aPACTmSM = 2.333
    real (kind=r4), public :: aPACTbSM = 3500.0
    real (kind=r4), public :: bPACTmSM = 2.333
    real (kind=r4), public :: bPACTbSM = 3500.0
    real (kind=r4), public :: aPACTmMS = 2.333
    real (kind=r4), public :: aPACTbMS = 3500.0
    real (kind=r4), public :: bPACTmMS = 2.333
    real (kind=r4), public :: bPACTbMS = 3500.0
    real (kind=r4), public :: aPACTmMM = 2.333
    real (kind=r4), public :: aPACTbMM = 3500.0
    real (kind=r4), public :: bPACTmMM = 2.333
    real (kind=r4), public :: bPACTbMM = 3500.0
    real (kind=r4), public :: PactTDCWidMin = 100.0
    real (kind=r4), public :: PC_LowE = 0.0
    real (kind=r4), public :: PC_HighE = 33000.0
    real (kind=r4), public :: PC6_5Ratio = 1.0
    logical, public :: PACTanalyze = .FALSE.
    logical, public :: PACTDebug = .FALSE.
    logical, public :: PACTPrint = .FALSE.
    logical, public :: FindMuStop = .False.
    logical, public :: RequireTDChitMatch = .False.
    logical, public :: OnlyMaxHit = .False.
    integer (kind=i4), public :: PACT_gate = 200
    integer (kind=i4), public :: PactGateAdd = 100
    integer (kind=i4), public :: DC_PC_SCsumCut = 14000
    integer (kind=i4), public :: DiffPactTDC = 3
    integer (kind=i4), public :: PactClusterMax = 10
    real (kind=r4), public :: TECEdgeCut = 60.0
    real (kind=r4), public :: TECProjectZ1 = -81.
    real (kind=r4), public :: TECProjectZ2 = -134.
    real (kind=r4), public :: TECProjectZ3 = -154.
    real (kind=r4), public :: TECProjectZ4 = -161.944
    real (kind=r4), public :: TECProjectZ5 = -171.944
    real (kind=r4), public :: TECProjectZ6 = -177.844
    real (kind=r4), public :: TECProjectZ7 = -206.044
    real (kind=r4), public :: TEC_min_width = 0.
    real (kind=r4), public :: TEC_max_width = 1000.
    real (kind=r4), public :: TEC_corridor_time = 300.
    real (kind=r4), public :: TEC_iter_distance = 0.15
    real (kind=r4), public :: TEC_adj_wire_time = 75.
    real (kind=r4), public :: TEC_multi_track_gap = 300.
    logical, public :: TECanalyze = .false.
    logical, public :: TECDebug = .FALSE.
    logical, public :: TECview = .False.
    logical, public :: TECanalyzeAll = .false.
    logical, public :: TCTimeWalkCorr = .TRUE.
    logical, public :: TCSTRCorr = .FALSE.
    logical, public :: CheckAdjacentWire = .FALSE.
    logical, public :: TCcompareDC = .false.
    logical, public :: TCZspanCut = .false.
    logical, public :: FindBeamFocus = .false.
    logical, public :: SingleModule = .false.
    integer (kind=i4), public :: TECNhitinCluster = 4
    integer (kind=i4), public :: TEC_gate = 200
    integer (kind=i4), public :: TEC_max_iterations = 10
    real (kind=r4), public :: TEC_muon_momentum = 29.6
    logical, public :: TECreversed = .false.
    logical, public :: XTFindXtalk = .true.
    logical, public :: XTNotInWindows = .true.
    logical, public :: XTRemoveWhits = .false.
    logical, public :: XTPrintMore = .false.
    logical, public :: XTDebug = .false.
    real, public :: XTDCWidthCut = 50.
    real, public :: XTPCWidthCut = 40.
    real, public :: XTDCWidthDiffCut = 60.
    real, public :: XTPCWidthDiffCut = 60.
    integer, public :: XTDCnaway = 40
    integer, public :: XTPCnaway = 32
    real, public, dimension (2) :: XTDCTimeDiffCuts = (/ 5., 65. /)
    real, public, dimension (2) :: XTPCTimeDiffCuts = (/ 5., 60. /)
    integer, public :: FirstPlaneDC = 1
    integer, public :: LastPlaneDC = 44
    integer, public :: FirstPlanePC = 1
    integer, public :: LastPlanePC = 12
    logical, public :: DisableTargetPCTDC = .false.
    logical, public :: enablePrintWindows = .true.
    logical, public :: enablePrintClusters = .false.
    logical, public :: enablePrintMCSP = .false.
    logical, public :: enablePrintRawHits = .false.
    logical, public :: enablePrintWindowHits = .false.
    logical, public :: enablePlotClusters = .true.
    logical, public :: enablePlotFgResults = .true.
    logical, public :: enablePlotRawHits = .true.
    logical, public :: enablePlotWinHits = .false.
    logical, public :: enablePlotMcHitPos = .false.
    logical, public :: enablePlotTrackMCSP = .true.
    logical, public :: enablePlotMcTracks = .true.
    logical, public :: enablePlotHeTracks = .true.
    logical, public :: enablePlotDeltas = .false.
    logical, public :: FindPlanePos = .FALSE.
    logical, public :: FindWirePos = .FALSE.
    logical, public :: FindPlaneRot = .FALSE.
    logical, public :: FindTDC0 = .FALSE.
    logical, public :: FindResolution = .FALSE.
    logical, public :: FindBeamAngle = .FALSE.
    logical, public :: FindPCPlanePos = .FALSE.
    real (kind=R4), public :: s1_peak = 1000.
    real (kind=R4), public :: s2_peak = 1000.
    real (kind=R4), public :: s3_peak = 1000.
    logical, public :: S1_signal = .FALSE.
    logical, public :: S2_signal = .FALSE.
    logical, public :: S3_signal = .FALSE.
    logical, public :: s4_signal = .FALSE.
    logical, public :: S10_signal = .FALSE.
    integer (kind=I4), public :: S1_MAX_NHITS = -1
    integer (kind=I4), public :: S2_MAX_NHITS = -1
    integer (kind=I4), public :: S3_MAX_NHITS = -1
    integer (kind=I4), public :: S4_MAX_NHITS = -1
    integer (kind=I4), public :: S10_MAX_NHITS = -1
    real (kind=r4), public :: S1_WIDTH_CUT = -1
    real (kind=r4), public :: S2_WIDTH_CUT = -1
    real (kind=r4), public :: S3_WIDTH_CUT = -1
    real (kind=r4), public :: S1_MAX_TDC = -1.
    real (kind=r4), public :: S2_MAX_TDC = -1
    real (kind=r4), public :: S3_MAX_TDC = -1
    real (kind=r4), public :: S1_MIN_TDC = -1
    real (kind=r4), public :: S2_MIN_TDC = -1
    real (kind=r4), public :: S3_MIN_TDC = -1.
    real (kind=r4), public :: S1_MAX_ADC = -1
    real (kind=r4), public :: S2_MAX_ADC = -1
    real (kind=r4), public :: S1_MIN_ADC = -1
    real (kind=r4), public :: S2_MIN_ADC = -1
    real (kind=r4), public :: S4_MinTDCcut = -1
    real (kind=r4), public :: S4_MaxTDCcut = -1
    real (kind=r4), public :: S10_MinTDCcut = -1
    real (kind=r4), public :: S10_MaxTDCcut = -1
    integer (kind=I4), public :: DC_MAX_HITS_IN_PLANE = -1
    integer (kind=I4), public :: DC_MIN_PLANES = -1
    real (kind=R4), public :: DC_MINTDC_CUT = -32000.
    real (kind=R4), public :: DC_MAXTDC_CUT = 32000.
    real (kind=R4), public :: DC_MAXWTDC_CUT = -1.
    real (kind=R4), public :: DC_MINWTDC_CUT = -1.
    real (kind=R4), public :: DC_NOISE_WCUT = -1.
    integer (kind=I4), public :: PC_MAX_HITS_IN_PLANE = -1
    integer (kind=I4), public :: PC_MIN_PLANES = -1
    real (kind=R4), public :: PC_MAXTDC_CUT = 32000.
    real (kind=R4), public :: PC_MINTDC_CUT = -32000.
    real (kind=R4), public :: TGTPC_MAXTDC_CUT = 300.
    real (kind=R4), public :: TGTPC_MINTDC_CUT = -32000.
    real (kind=R4), public :: PC_MAXWTDC_CUT = 32000.
    real (kind=R4), public :: PC_MINWTDC_CUT = -1.
    real (kind=R4), public :: PC_NOISE_WCUT = -1.
    real (kind=R4), public :: RF_MIN_TDC = -1.
    real (kind=R4), public :: RF_MAX_TDC = -1.
    logical, public :: patrec_print = .false.
    logical, public :: print_whits_output = .false.
    integer (kind=i4), public :: raw_out = 0
    logical, public :: print_tdc = .false.
    logical, public :: print_hits = .false.
    logical, public :: print_DC = .true.
    logical, public :: print_PC = .true.
    logical, public :: print_PC_ADC = .true.
    logical, public :: print_SC = .true.
    logical, public :: print_SC_ADC = .true.
    logical, public :: print_PU = .true.
    logical, public :: print_TC = .true.
    real, public :: BeamMomentum = 27.9
    character (len=10), public :: BeamType = ""
    character (len=2), public :: trigger = "DS"
    logical, public :: UnpackMC = .false.
    logical, public :: IgnoreMcBFLD = .false.
    logical, public :: enableFilters = .FALSE.
    real, public :: PC_Emin = 0
    real, public :: PC_Emax = 0
    real, public :: SC_Emin = 0
    real, public :: SC_Emax = 0
    integer (kind=i4), public :: qod_buffer_length = 10000
    integer (kind=i4), public :: n_qod_buffers = 4
    integer (kind=i4), public :: WMult_DC = 0
    real (kind=r4), public :: message_prob = .001
    real (kind=r4), public :: drift_message = 0.0001
    real (kind=r4), public :: hw_ratio = 5
    real (kind=r4), public :: rdevshapetol = .05
    real (kind=r4), public :: rdevwiretol = .4
    character (len=132), public :: qodfile = " "
    logical, public :: enableqodmon = .false.
    logical, public :: use_cos_increments = .false.
    real (kind=r4), public :: str_angle_inc = 1.0
    real (kind=r4), public :: str_upper_angle_limit = 80.0
    real (kind=r4), public :: DriftTimeMin = -10000.
    real (kind=r4), public :: DriftTimeMax = 10000.
    real (kind=r4), public :: DriftTimeShift = 0.
    integer (kind=i4), public :: T0Source = 0
    real (kind=r4), public :: ChiDiffCluster = 1.E-02
    real (kind=r4), public :: ChiDiffTime = 1.E-04
    real (kind=r4), public :: Chi2sCutCluster = 1.E05
    real (kind=r4), public :: Chi2sCutTime = 1.E05
    real (kind=r4), public :: SigmaFactor = 5.
    real (kind=r4), public :: ThetaMS = 0.0005
    integer (kind=i4), public :: MaxIterateCluster = 5
    integer (kind=i4), public :: MaxIterateTime = 10
    integer (kind=i4), public :: NoiseExcludeMax = 1
    logical, public :: enableKalman = .false.
    logical, public :: SwitchLR = .false.
    integer (kind=i4), public :: WindowMin = 2
    integer (kind=i4), public :: WindowMax = 10
    integer (kind=i4), public :: WindowStep = 2
    integer (kind=i4), public :: nEventsPlane = 10000
    integer (kind=i4), public :: nEventsWire = 100000
    real (kind=r4), public :: AlignAngleU = 0.
    real (kind=r4), public :: AlignAngleV = 0.
    real (kind=r4), public :: AlignMinTheta = -360.
    real (kind=r4), public :: AlignMaxTheta = 360.
    real (kind=r4), public :: RadiusInCut = 20.0
    real (kind=r4), public :: RadiusOutCut = 20.0
    logical, public :: FixPlanes = .FALSE.
    logical, public :: FindAlignment = .FALSE.
    integer (kind=i4), public :: FixedPlane1 = 1
    integer (kind=i4), public :: FixedPlane2 = 2
    integer (kind=i4), public :: FixedPlane3 = 7
    integer (kind=i4), public :: FixedPlane4 = 8
    logical, public :: SLFASCIIOutput = .FALSE.
    real (kind=r4), public :: AntRadiusInCut = 3
    real (kind=r4), public :: AntRadiusOutCut = 6
    logical, public :: EnableWindowing = .true.
    logical, public :: EnablewindowingBJ = .true.
    logical, public :: WindowVerbose = .false.
    logical, public :: EnableClustering = .true.
    logical, public :: EnableFirstGuess = .true.
    logical, public :: EnableFirstGuessJim = .false.
    logical, public :: EnableFirstGuessArt = .false.
    logical, public :: EnableFirstGuessKO = .true.
    logical, public :: EnableFirstGuessMuon = .false.
    logical, public :: EnableFirstGuessNtuple = .false.
    logical, public, dimension (100) :: firstGuessPCplaneEnable = .true.
    logical, public, dimension (100) :: firstGuessDCplaneEnable = .true.
    logical, public :: FitHalvesSeparately = .false.
    logical, public :: RemoveDeltas = .false.
    logical, public :: UndoOverlaps = .false.
    logical, public :: UndoComplex = .false.
    logical, public :: UseDenseStart = .true.
    logical, public :: UseClusterSize = .true.
    logical, public :: UseSparseOmega = .true.
    integer, public :: UseVarNormCut = 4
    integer, public :: MinPairs = 7
    integer, public :: MaxAmbiguous = 2
    logical, public :: TrackingVerbose = .false.
    integer, public :: FirstGuessVerbose = 0
    integer, public :: FirstGuessTestMode = 0
    real (kind=R4), public :: LineRes = 1.4
    real (kind=R4), public :: winPCthreshold = 100.0
    real (kind=R4), public :: winDCstart = -50.0
    real (kind=R4), public :: winDCend = 1000.0
    integer (kind=I4), public :: WinMinHitPCs = 2
    real (kind=R4), public :: MaxClusterSize = 5.0
    real (kind=R4), public :: MinClCosTheta = 0.5
    integer (kind=I4), public :: MaxMissedPlanes = 2
    real (kind=R4), public :: TanThetaCut = 1000.
    logical, public :: FitStraightHalves = .false.
    logical, public :: FitStraightWhole = .true.
    integer (kind=I4), public :: OmegaEstimator = 2
    integer (kind=I4), public :: nSubSets = 7
    character, public :: VaryPhiOrOmega = "O"
    real (kind=R8), public :: MaxDelOmega = 0.1
    real (kind=r4), public :: PCOverlapTime = 100.
    real (kind=r4), public :: PCOverlapTsig = 30.
    real (kind=r4), public :: PCOverlapSuspiciousTsig = 15.
    real (kind=r4), public :: DCOverlapTime = 1000.
    real (kind=r4), public :: DCConfusionTime = 900.
    real (kind=r4), public :: TooEarlyTime = -5800.
    real (kind=r4), public :: TooLateTime = 9800.
    real (kind=r4), public :: Win_EarlyGateT = -6000.
    real (kind=r4), public :: Win_LateGateT = 10000.
    integer (kind=i4), public :: WIN_NTIMEBINS = 321
    real (kind=r4), public :: Win_TimeBinSize = 50.
    integer (kind=i4), public :: Win_TBinsGapNewWin = 3
    real (kind=r4), public :: LgRadiusNoiseCutR = 5.
    integer (kind=i4), public :: LgRadiusNoiseMaxHits = 6
    logical, public :: enableLgRadiusNoise = .true.
    logical, public :: enableSecondHits = .false.
    logical, public :: enableRemoveCosmicNoise = .true.
    real (kind=r4), public :: MaxDeltaRsig = 0.5
    real (kind=r4), public :: MaxDeltaRsigCut = 1.5
    real (kind=r4), public :: MinDeltaRsigCut = 0.15
    integer (kind=i4), public :: NDeltaSigmasAway = 2
    logical, public :: enableExtractDelta = .false.
    real (kind=r4), public :: ExtractBeameResid = 1.0
    logical, public :: enableExtractBeame = .false.
    real (kind=r4), public :: HitsPPlowthres = 3.5
    real (kind=r4), public :: HitsPPmedthres = 4.0
    real (kind=r4), public :: HitsPPhithres = 15.
    integer (kind=i4), public :: MinHitsSlideScatter = 80
    integer (kind=i4), public :: MinHitsPlaneScatter = 15
    real (kind=r4), public :: MuonMinPCWidth = 200.
    real (kind=r4), public :: MuonMinM12Width = 0.
    integer (kind=i4), public :: MuonStartPlaneMax = 6
    integer (kind=i4), public :: MuonStopPlaneMax = 52
    real (kind=r4), public :: PionCPmin = 68.
    real (kind=r4), public :: PionCPmax = 73.
    real (kind=r4), public :: PionMinM12Width = 32000.
    integer (kind=i4), public :: PionStartPlaneMax = 4
    integer (kind=i4), public :: PionStopPlaneMax = 4
    real (kind=r4), public :: TriggerTimeSlop = 100.
    integer (kind=i4), public :: LaserLikeMinPlSep = 2
    real (kind=r4), public :: LaserLikeMinRSep = 5.
    real (kind=r4), public :: LaserLikeMaxRsig = 0.5
    logical, public :: enableJimsOverlapWin = .false.
    real (kind=r4), public :: HiAngClusterAreaCut = 12.5
    real (kind=r4), public :: HiAngHitsPPCut = 3.5
    logical, public :: EnableKOPCOverlapWindows = .true.
    logical, public :: EnableKODCOverlapWindows = .false.
    logical, public :: enableHelixFit = .true.
    logical, public :: enableKOntuple = .false.
    logical, public :: enableHelixSkim = .false.
    logical, public :: HelixFitAll = .false.
    logical, public :: HelixFitDecay = .true.
    logical, public :: HelixFitBeamPos = .false.
    logical, public :: HelixFitBeamPosAll = .false.
    logical, public :: HelixFitMuon = .false.
    logical, public :: FillHelixHists = .true.
    integer, public :: HelixFitVerbose = 0
    real, public :: HelixFitRadLenHe = 2.57E-6
    real, public :: HelixFitRadLenFoil = 2.07E-5
    real, public :: HelixFitRadLenDC = 4.81E-5
    real, public :: HelixFitMinIonHe = 3.68E-4
    real, public :: HelixFitMinIonFoil = 1.52E-3
    real, public :: HelixFitMinIonDC = 3.86E-3
    real, public :: HelixFitFldOffPmag = 40.0
    real, public :: HelixFitBeta = 1.0
    integer, public :: HelixFitAssumeTrDir = 0
    logical, public :: HelixFitDoLoss = .true.
    logical, public :: HelixFitDoWC = .true.
    logical, public :: HelixFitDoDrift = .true.
    logical, public :: HelixFitDoTime = .false.
    logical, public :: HelixFitDoKinksWC = .true.
    logical, public :: HelixFitDoKinksDT = .true.
    logical, public :: HelixFitDoKinksTarget = .true.
    integer, public :: HelixFitDoVarResolution = 16
    real, public :: HelixFitKinkFudgeWC = 2.0
    real, public :: HelixFitKinkFudgeDT = 1.0
    real, public :: HelixFitLossFudgeIon = 1.0
    real, public :: HelixFitLossFudgeRadlen = 0.0
    logical, public :: HelixFitStartFG = .true.
    logical, public :: HelixFitStartMC = .false.
    logical, public :: MCStartFirstDC = .true.
    logical, public :: HelixFitMCOffset = .false.
    integer, public :: HelixFitHitsInput = 0
    integer, public :: HelixFitStrtInput = 0
    integer, public :: HelixFitTrefInput = 0
    integer, public :: HelixFitAmbigMode = 0
    logical, public :: HelixFitTref = .true.
    logical, public :: HelixFitStopChebyshev = .false.
    logical, public :: HelixFitStopCL = .false.
    logical, public :: HelixFitStopResNorm = .false.
    logical, public :: HelixFitStopCostRms = .true.
    real, public :: HelixFitCostRmsLimit2 = 0.0100
    real, public :: HelixFitCostRmsLimit1 = 0.00005
    real, public :: HelixFitAmbigCutoff = 0.1000
    real, public :: HelixFitNarrowCutoff = 0.0400
    integer, public :: HelixFitMinIter = 2
    integer, public :: HelixFitMaxIterWC = 10
    integer, public :: HelixFitMaxIterDT = 20
    integer, public :: HelixFitMaxPlanesWC = -1
    integer, public :: HelixFitMaxPlanesDT = -1
    real, public :: HelixFitMaxDrift = 3.0
    real, public :: HelixFitMaxChiSqr = 1000.0
    real, public :: HelixFitMaxTime = 1000.0
    logical, public, dimension (100) :: HelixFitPlaneEnable = .true.
    real, public, dimension (100) :: HelixFitWeightsWC = 1.
    real, public, dimension (100) :: HelixFitWeightsDD = 1.
    real, public, dimension (100) :: HelixFitWeightsDT = 1.
    real, public :: HelixFitStrDenScaling = 1.5
    real, public :: HelixFitWireRes = 0.1155
    real, public :: HelixFitDriftRes = 0.0100
    real, public :: HelixFitTimeRes = 12.0
    real, public :: HelixFitCutTref = 0.05
    real, public :: HelixFitCutRes = 0.01
    real, public :: HelixFitCutFit = 0.01
    integer, public :: HelixFitSmearInput = 0
    real, public :: HelixFitSmearP = 0
    real, public :: HelixFitSmearCosT = 0
    real, public :: HelixFitSmearTref = 0
    real, public :: HelixFitSmearPhi = 0
    real, public :: HelixFitSmearU = 0
    real, public :: HelixFitSmearV = 0
    logical, public :: HelixFitUpstream = .true.
    logical, public :: HelixFitDownstream = .true.
    real, public :: HelixFitCosTmin = 0.0100
    real, public :: HelixFitCosTmax = 1.1
    real, public :: HelixFitMomMin = 0.0
    real, public :: HelixFitMomMax = 100.0
    real, public :: HelixFitPtMin = 0.0
    real, public :: HelixFitPtMax = 100.0
    real, public :: HelixFitTrefMin = -999999
    real, public :: HelixFitTrefMax = +999999
    real, public :: HelixFitZtrkMin = -999999
    real, public :: HelixFitZtrkMax = +999999
    integer, public :: HelixFitProbeChiSqr = 0
    integer, public :: HelixFitProbeChiSqrIpar = 1
    real, public :: HelixFitProbeChiSqrStep1 = 0
    real, public :: HelixFitProbeChiSqrStep2 = 0
    integer, public :: HelixFitDebugGotoHitPlane = 0
    integer, public, dimension (100) :: HelixFitKinksUS
    integer, public, dimension (100) :: HelixFitKinksDS
    real, public :: T0_TDC_MIN = 3000.
    real, public :: T0_TDC_MAX = 3080.
    real, public :: TDCnsPerBin = 0.5
    logical, public :: FitT0 = .FALSE.
    logical, public :: TimeBackwards = .TRUE.
    logical, public :: t0Pulser = .FALSE.
    real, public :: T0_TCAP_LOW = -1.
    real, public :: T0_TCAP_HIGH = -1.
    real, public :: t0_cost_min = 0.5
    integer (kind=i4), public :: nEventsMax = 5000
    integer (kind=i4), public :: MinHistFitEntries = 1000
    integer (kind=i4), public :: nResidualBins = 300
    real (kind=r4), public :: MinResidualValue = -0.3
    real (kind=r4), public :: MaxResidualValue = 0.3
    integer (kind=i4), public :: calcResidualMethod = 3
    real (kind=r4), public :: peakTOL = 0.10
    real (kind=r4), public :: DCRadiusCutDense = 15.0
    real (kind=r4), public :: DCRadiusCutSparse = 15.0
    real (kind=r4), public :: PCRadiusCutDense = 4.4
    real (kind=r4), public :: PCRadiusCutSparse = 12
    integer (kind=i4), public :: EffDCCellCut = 6
    integer (kind=i4), public :: EffPCCellCut = 12
    integer (kind=i4), public :: nHitPlanesCut = 0
    integer (kind=i4), public :: EffPCouterHits = 0
    integer (kind=i4), public :: EffDCoutmostAdjCells = 2
    logical, public :: FindEff = .FALSE.
    logical, public :: EffFillHist = .TRUE.
    logical, public :: EffPrint = .TRUE.
    logical, public :: EffDebug = .FALSE.
    logical, public :: EffUseWindowing = .TRUE.
    logical, public :: fixChan = .TRUE.
    logical, public :: iflagReject = .FALSE.
    logical, public :: EnableDeadWires = .TRUE.
    real (kind=r4), public :: EffHelixChiSqrCut = 1.0
    logical, public :: SkimVerbose = .false.
    logical, public, dimension (MAX_SKMOD) :: SkimOnCode = .FALSE.
    integer, public, dimension (MAXFAIL) :: SkimEvTypeToChan = 0
    logical, public :: SkimOnMCEventType = .TRUE.
    integer, public :: SkimNumEvents = -1
    logical, public :: SkimSimpleClean = .FALSE.
    logical, public :: SkimTimeClean = .FALSE.
    logical, public :: SkimOverlapDirty = .FALSE.
    logical, public :: SkimComplexDirty = .FALSE.
    logical, public :: SkimBeamPositron = .FALSE.
    logical, public :: SkimNoBeamPositron = .FALSE.
    logical, public :: SkimDeltas = .FALSE.
    logical, public :: SkimOverlaps = .FALSE.
    logical, public :: SkimFailCode = .FALSE.
    logical, public :: SkimFitFailures = .FALSE.
    logical, public :: SkimIerror = .FALSE.
    integer, public :: nIerrorSkim = 0
    integer, public, dimension (9) :: IerrorSkim = 0
    logical, public, dimension (9) :: IerrorMatch = .TRUE.
    real (kind=r4), public :: PreScaleFraction = 0.1
    integer, public :: SkimMuFarStop = -1
    integer, public :: SkimMuShortStop = -1
    logical, public :: EnableClassify = .TRUE.
    logical, public :: enableSelectEventByTypeNumber = .FALSE.
    logical, public, dimension (MAXFAIL) :: SelectEventbyTypeNumber = .FALSE.
    integer (kind=I4), public :: SelectEvent = 1
    logical, public :: ClassifyVerbose = .FALSE.
    logical, public :: EnableIdentifyPositrons = .FALSE.
    logical, public :: EnableEvalTwoHits = .FALSE.
    logical, public :: SelectSimpleClean = .FALSE.
    logical, public :: SelectTimeClean = .FALSE.
    logical, public :: SelectOverlapDirty = .FALSE.
    logical, public :: SelectComplexDirty = .FALSE.
    logical, public :: SelectBeamPositron = .FALSE.
    integer (kind=I4), public :: SelectByWinTimeAfterTrig = 400.
    logical, public :: SelectDelta = .FALSE.
    logical, public :: SelectTrigParticle = .FALSE.
    real (kind=R4), public :: SelectTCAPmin = 25.
    real (kind=R4), public :: SelectTCAPmax = 30.
    real (kind=R4), public :: SelectM12min = 0.
    real (kind=R4), public :: SelectM12max = 5300.
    real (kind=R4), public :: DetectorTOFcut = 5.0
    integer (kind=I4), public :: SelectFailCode = -1
    logical, public :: enableMuStopGuess = .true.
    real (kind=R4), public :: muonTDCwidavgmin = 0.
    logical, public :: enableTargetClean = .false.
    integer (kind=I4), public :: TrackMinDCuCl = 3
    integer (kind=I4), public :: TrackMinDCvCl = 3
    integer (kind=I4), public :: TrackMinPairs = 5
    real (kind=R4), public :: PCWidthCutU_V = 40.0
    real (kind=R4), public :: DCWidthCutU_V = 40.0
    logical, public :: ClLogging = .FALSE.
    logical, public :: WinLogging = .FALSE.
    logical, public :: FGResultLogging = .FALSE.
    real (kind=R4), public :: Z1Project = -1
    real (kind=R4), public :: Z2Project = -1
    real (kind=R4), public :: Z3Project = -1
    real (kind=R4), public :: Z4Project = -1
    real (kind=R4), public :: Z5Project = -1
    real (kind=R4), public :: Z6Project = -1
    real (kind=R4), public :: Zproj_CP_MIN = -1
    real (kind=R4), public :: Zproj_CP_MAX = -1
    logical, public :: enableRootTree = .true.
    integer (kind=i4), public :: RootTreeType = 0
    logical, public :: RootTreeEnableUser = .false.
    logical, public :: RootTreeEnableMicheldOutput = .false.
    logical, public :: RootTreeEnableMCBankOutput = .false.
    logical, public :: RootTreeMCSelectedEventsOnly = .false.
    logical, public :: RootTreeEnableFGOutput = .false.
    logical, public :: RootTreeEnableMHitsOutput = .false.
    logical, public :: RootTreeEnablePactOutput = .false.
    logical, public :: RootTreeEnablePseudoPact = .true.
    logical, public :: RootTreeEnablePseudoPactTest = .false.
    logical, public :: RootTreeEnableWinStatOutput = .false.
    logical, public :: RootTreeEnableHeFitNHitsOutput = .false.
    logical, public :: RootTreeEnableHeFitLastHitOutput = .false.
    logical, public :: RootTreeEnableFgFitNHitsOutput = .false.
    logical, public :: RootTreeMuonDecayFitOnly = .false.
    logical, public :: RootTreeMuonDecayWinOnly = .false.
    logical, public :: RootTreeSelectedEventsOnly = .false.
    logical, public :: RootTreeEnableAlStudy = .false.
    logical, public :: RootTreeEnableFirstLastDC = .false.
    logical, public :: RootTreeEnableTECFit = .false.
    logical, public :: RootTreeEnableTECVis = .false.
    logical, public :: RootTreeEnableTECHits = .false.
    logical, public :: RootTreeEnableTECExtras = .false.
    character (len=255), public :: RootTreeFilename = ""
    character (len=255), public :: RootTreeName = "T"

        ! Subroutines and functions
    public subroutine real_namelist_c ()
    public subroutine REAL_SHOW_NAMELIST ()
    public subroutine LIST_NAMELISTS ()

end module namelist_mod

Description of Variables

i

integer (kind=I4), private :: i

isk

integer (kind=I4), private :: isk

param

real (kind=R4), public, dimension (100) :: param = (/ (0.0, i = 1, 100) /)

nEVTprocessed

integer (kind=I4), public :: nEVTprocessed = -1

enableBeamSpots

logical, public :: enableBeamSpots = .FALSE.

BeamSpotConLev

real (kind=r4), public :: BeamSpotConLev = 0.05

FillRawHist

logical, public :: FillRawHist = .TRUE.

QFillRawHist

logical, public :: QFillRawHist = .FALSE.

FillPostFilterHist

logical, public :: FillPostFilterHist = .FALSE.

QFillHist

logical, public :: QFillHist = .FALSE.

FillXTalkHist

logical, public :: FillXTalkHist = .FALSE.

FillSkimHist

logical, public :: FillSkimHist = .FALSE.

FillTrackHist

logical, public :: FillTrackHist = .FALSE.

FillPatternHist

logical, public :: FillPatternHist = .TRUE.

FillPhysicsHist

logical, public :: FillPhysicsHist = .TRUE.

FillPACTHist

logical, public :: FillPACTHist = .FALSE.

FillTECHist

logical, public :: FillTECHist = .FALSE.

FillWindowBJHist

logical, public :: FillWindowBJHist = .FALSE.

FillTDCLocHist

logical, public :: FillTDCLocHist = .FALSE.

PlaneHists

logical, public :: PlaneHists = .FALSE.

PulserHistToggle

logical, public :: PulserHistToggle = .FALSE.

FillRatiohist

logical, public :: FillRatiohist = .FALSE.

Globalmem_toggle

logical, public :: Globalmem_toggle = .FALSE.

WEvent_per_Plane

logical, public :: WEvent_per_Plane = .FALSE.

HMult_times

logical, public :: HMult_times = .TRUE.

plane_wire_hists

logical, public :: plane_wire_hists = .FALSE.

TDC_width_hists

logical, public :: TDC_width_hists = .FALSE.

TDC_time_hists

logical, public :: TDC_time_hists = .TRUE.

ped_calib_on

logical, public :: ped_calib_on = .FALSE.

compareSTR

logical, public :: compareSTR = .FALSE.

FillBulgeHist

logical, public :: FillBulgeHist = .FALSE.

FillBMJBHist

logical, public :: FillBMJBHist = .TRUE.

TDC_MIN

real, public :: TDC_MIN = -1000.
 TDC limits for histogramming

TDC_MAX

real, public :: TDC_MAX = 12000.
 TDC limits for histogramming

PC_ADC_MIN

real, public :: PC_ADC_MIN = 0.
 ADC limits for histogramming

PC_ADC_MAX

real, public :: PC_ADC_MAX = 500.
 ADC limits for histogramming

SC_ADC_MIN

real, public :: SC_ADC_MIN = 0.
 SC ADC limits for histogramming

SC_ADC_MAX

real, public :: SC_ADC_MAX = 14000.
 SC ADC limits for histogramming

SCTDC_MIN

real, public :: SCTDC_MIN = -100.
 SCTDC limits for histogramming

SCTDC_MAX

real, public :: SCTDC_MAX = 100.
 SCTDC limits for histogramming

RF_TDC_MIN

real, public :: RF_TDC_MIN = -80.
 Min TDC for RFTOF histogram 

CP_TDC_MIN

real, public :: CP_TDC_MIN = -80.
 Min TDC for CPTOF histogram

raw_xmi_tdcslot

real, public :: raw_xmi_tdcslot = 0.

raw_xma_tdcslot

real, public :: raw_xma_tdcslot = 30000.

raw_xmi_ped

real, public :: raw_xmi_ped = 0.

raw_xma_ped

real, public :: raw_xma_ped = 3000.

raw_nx_tdcslot

integer, public :: raw_nx_tdcslot = 3000

raw_nx_ped

integer, public :: raw_nx_ped = 3000

RatioMod

integer, public :: RatioMod = 1000
 Modulus on which PC Ratio hists are filled

PCEnergyMin

real (kind=r4), public :: PCEnergyMin = 100.0

aPACTmSS

real (kind=r4), public :: aPACTmSS = 2.333

aPACTbSS

real (kind=r4), public :: aPACTbSS = 3500.0

bPACTmSS

real (kind=r4), public :: bPACTmSS = 2.333

bPACTbSS

real (kind=r4), public :: bPACTbSS = 3500.0

aPACTmSM

real (kind=r4), public :: aPACTmSM = 2.333

aPACTbSM

real (kind=r4), public :: aPACTbSM = 3500.0

bPACTmSM

real (kind=r4), public :: bPACTmSM = 2.333

bPACTbSM

real (kind=r4), public :: bPACTbSM = 3500.0

aPACTmMS

real (kind=r4), public :: aPACTmMS = 2.333

aPACTbMS

real (kind=r4), public :: aPACTbMS = 3500.0

bPACTmMS

real (kind=r4), public :: bPACTmMS = 2.333

bPACTbMS

real (kind=r4), public :: bPACTbMS = 3500.0

aPACTmMM

real (kind=r4), public :: aPACTmMM = 2.333

aPACTbMM

real (kind=r4), public :: aPACTbMM = 3500.0

bPACTmMM

real (kind=r4), public :: bPACTmMM = 2.333

bPACTbMM

real (kind=r4), public :: bPACTbMM = 3500.0

PactTDCWidMin

real (kind=r4), public :: PactTDCWidMin = 100.0

PC_LowE

real (kind=r4), public :: PC_LowE = 0.0

PC_HighE

real (kind=r4), public :: PC_HighE = 33000.0

PC6_5Ratio

real (kind=r4), public :: PC6_5Ratio = 1.0

PACTanalyze

logical, public :: PACTanalyze = .FALSE.

PACTDebug

logical, public :: PACTDebug = .FALSE.

PACTPrint

logical, public :: PACTPrint = .FALSE.

FindMuStop

logical, public :: FindMuStop = .False.

RequireTDChitMatch

logical, public :: RequireTDChitMatch = .False.

OnlyMaxHit

logical, public :: OnlyMaxHit = .False.

PACT_gate

integer (kind=i4), public :: PACT_gate = 200

PactGateAdd

integer (kind=i4), public :: PactGateAdd = 100

DC_PC_SCsumCut

integer (kind=i4), public :: DC_PC_SCsumCut = 14000

DiffPactTDC

integer (kind=i4), public :: DiffPactTDC = 3

PactClusterMax

integer (kind=i4), public :: PactClusterMax = 10

TECEdgeCut

real (kind=r4), public :: TECEdgeCut = 60.0

TECProjectZ1

real (kind=r4), public :: TECProjectZ1 = -81.

TECProjectZ2

real (kind=r4), public :: TECProjectZ2 = -134.

TECProjectZ3

real (kind=r4), public :: TECProjectZ3 = -154.

TECProjectZ4

real (kind=r4), public :: TECProjectZ4 = -161.944

TECProjectZ5

real (kind=r4), public :: TECProjectZ5 = -171.944

TECProjectZ6

real (kind=r4), public :: TECProjectZ6 = -177.844

TECProjectZ7

real (kind=r4), public :: TECProjectZ7 = -206.044

TEC_min_width

real (kind=r4), public :: TEC_min_width = 0.

TEC_max_width

real (kind=r4), public :: TEC_max_width = 1000.

TEC_corridor_time

real (kind=r4), public :: TEC_corridor_time = 300.

TEC_iter_distance

real (kind=r4), public :: TEC_iter_distance = 0.15

TEC_adj_wire_time

real (kind=r4), public :: TEC_adj_wire_time = 75.

TEC_multi_track_gap

real (kind=r4), public :: TEC_multi_track_gap = 300.

TECanalyze

logical, public :: TECanalyze = .false.

TECDebug

logical, public :: TECDebug = .FALSE.

TECview

logical, public :: TECview = .False.

TECanalyzeAll

logical, public :: TECanalyzeAll = .false.

TCTimeWalkCorr

logical, public :: TCTimeWalkCorr = .TRUE.

TCSTRCorr

logical, public :: TCSTRCorr = .FALSE.

CheckAdjacentWire

logical, public :: CheckAdjacentWire = .FALSE.

TCcompareDC

logical, public :: TCcompareDC = .false.

TCZspanCut

logical, public :: TCZspanCut = .false.

FindBeamFocus

logical, public :: FindBeamFocus = .false.

SingleModule

logical, public :: SingleModule = .false.

TECNhitinCluster

integer (kind=i4), public :: TECNhitinCluster = 4

TEC_gate

integer (kind=i4), public :: TEC_gate = 200

TEC_max_iterations

integer (kind=i4), public :: TEC_max_iterations = 10

TEC_muon_momentum

real (kind=r4), public :: TEC_muon_momentum = 29.6

TECreversed

logical, public :: TECreversed = .false.

XTFindXtalk

logical, public :: XTFindXtalk = .true.

XTNotInWindows

logical, public :: XTNotInWindows = .true.

XTRemoveWhits

logical, public :: XTRemoveWhits = .false.

XTPrintMore

logical, public :: XTPrintMore = .false.

XTDebug

logical, public :: XTDebug = .false.

XTDCWidthCut

real, public :: XTDCWidthCut = 50.

XTPCWidthCut

real, public :: XTPCWidthCut = 40.

XTDCWidthDiffCut

real, public :: XTDCWidthDiffCut = 60.

XTPCWidthDiffCut

real, public :: XTPCWidthDiffCut = 60.

XTDCnaway

integer, public :: XTDCnaway = 40

XTPCnaway

integer, public :: XTPCnaway = 32

XTDCTimeDiffCuts

real, public, dimension (2) :: XTDCTimeDiffCuts = (/ 5., 65. /)

XTPCTimeDiffCuts

real, public, dimension (2) :: XTPCTimeDiffCuts = (/ 5., 60. /)

FirstPlaneDC

integer, public :: FirstPlaneDC = 1

LastPlaneDC

integer, public :: LastPlaneDC = 44

FirstPlanePC

integer, public :: FirstPlanePC = 1

LastPlanePC

integer, public :: LastPlanePC = 12

DisableTargetPCTDC

logical, public :: DisableTargetPCTDC = .false.

enablePrintWindows

logical, public :: enablePrintWindows = .true.

enablePrintClusters

logical, public :: enablePrintClusters = .false.

enablePrintMCSP

logical, public :: enablePrintMCSP = .false.

enablePrintRawHits

logical, public :: enablePrintRawHits = .false.

enablePrintWindowHits

logical, public :: enablePrintWindowHits = .false.

enablePlotClusters

logical, public :: enablePlotClusters = .true.

enablePlotFgResults

logical, public :: enablePlotFgResults = .true.

enablePlotRawHits

logical, public :: enablePlotRawHits = .true.

enablePlotWinHits

logical, public :: enablePlotWinHits = .false.

enablePlotMcHitPos

logical, public :: enablePlotMcHitPos = .false.

enablePlotTrackMCSP

logical, public :: enablePlotTrackMCSP = .true.

enablePlotMcTracks

logical, public :: enablePlotMcTracks = .true.

enablePlotHeTracks

logical, public :: enablePlotHeTracks = .true.

enablePlotDeltas

logical, public :: enablePlotDeltas = .false.

FindPlanePos

logical, public :: FindPlanePos = .FALSE.

FindWirePos

logical, public :: FindWirePos = .FALSE.

FindPlaneRot

logical, public :: FindPlaneRot = .FALSE.

FindTDC0

logical, public :: FindTDC0 = .FALSE.

FindResolution

logical, public :: FindResolution = .FALSE.

FindBeamAngle

logical, public :: FindBeamAngle = .FALSE.

FindPCPlanePos

logical, public :: FindPCPlanePos = .FALSE.

s1_peak

real (kind=R4), public :: s1_peak = 1000.

s2_peak

real (kind=R4), public :: s2_peak = 1000.

s3_peak

real (kind=R4), public :: s3_peak = 1000.

S1_signal

logical, public :: S1_signal = .FALSE.

S2_signal

logical, public :: S2_signal = .FALSE.

S3_signal

logical, public :: S3_signal = .FALSE.

s4_signal

logical, public :: s4_signal = .FALSE.

S10_signal

logical, public :: S10_signal = .FALSE.

S1_MAX_NHITS

integer (kind=I4), public :: S1_MAX_NHITS = -1

S2_MAX_NHITS

integer (kind=I4), public :: S2_MAX_NHITS = -1

S3_MAX_NHITS

integer (kind=I4), public :: S3_MAX_NHITS = -1

S4_MAX_NHITS

integer (kind=I4), public :: S4_MAX_NHITS = -1

S10_MAX_NHITS

integer (kind=I4), public :: S10_MAX_NHITS = -1

S1_WIDTH_CUT

real (kind=r4), public :: S1_WIDTH_CUT = -1

S2_WIDTH_CUT

real (kind=r4), public :: S2_WIDTH_CUT = -1

S3_WIDTH_CUT

real (kind=r4), public :: S3_WIDTH_CUT = -1

S1_MAX_TDC

real (kind=r4), public :: S1_MAX_TDC = -1.

S2_MAX_TDC

real (kind=r4), public :: S2_MAX_TDC = -1

S3_MAX_TDC

real (kind=r4), public :: S3_MAX_TDC = -1

S1_MIN_TDC

real (kind=r4), public :: S1_MIN_TDC = -1

S2_MIN_TDC

real (kind=r4), public :: S2_MIN_TDC = -1

S3_MIN_TDC

real (kind=r4), public :: S3_MIN_TDC = -1.

S1_MAX_ADC

real (kind=r4), public :: S1_MAX_ADC = -1

S2_MAX_ADC

real (kind=r4), public :: S2_MAX_ADC = -1

S1_MIN_ADC

real (kind=r4), public :: S1_MIN_ADC = -1

S2_MIN_ADC

real (kind=r4), public :: S2_MIN_ADC = -1

S4_MinTDCcut

real (kind=r4), public :: S4_MinTDCcut = -1

S4_MaxTDCcut

real (kind=r4), public :: S4_MaxTDCcut = -1

S10_MinTDCcut

real (kind=r4), public :: S10_MinTDCcut = -1

S10_MaxTDCcut

real (kind=r4), public :: S10_MaxTDCcut = -1

DC_MAX_HITS_IN_PLANE

integer (kind=I4), public :: DC_MAX_HITS_IN_PLANE = -1

DC_MIN_PLANES

integer (kind=I4), public :: DC_MIN_PLANES = -1

DC_MINTDC_CUT

real (kind=R4), public :: DC_MINTDC_CUT = -32000.

DC_MAXTDC_CUT

real (kind=R4), public :: DC_MAXTDC_CUT = 32000.

DC_MAXWTDC_CUT

real (kind=R4), public :: DC_MAXWTDC_CUT = -1.

DC_MINWTDC_CUT

real (kind=R4), public :: DC_MINWTDC_CUT = -1.

DC_NOISE_WCUT

real (kind=R4), public :: DC_NOISE_WCUT = -1.

PC_MAX_HITS_IN_PLANE

integer (kind=I4), public :: PC_MAX_HITS_IN_PLANE = -1

PC_MIN_PLANES

integer (kind=I4), public :: PC_MIN_PLANES = -1

PC_MAXTDC_CUT

real (kind=R4), public :: PC_MAXTDC_CUT = 32000.

PC_MINTDC_CUT

real (kind=R4), public :: PC_MINTDC_CUT = -32000.

TGTPC_MAXTDC_CUT

real (kind=R4), public :: TGTPC_MAXTDC_CUT = 300.

TGTPC_MINTDC_CUT

real (kind=R4), public :: TGTPC_MINTDC_CUT = -32000.

PC_MAXWTDC_CUT

real (kind=R4), public :: PC_MAXWTDC_CUT = 32000.

PC_MINWTDC_CUT

real (kind=R4), public :: PC_MINWTDC_CUT = -1.

PC_NOISE_WCUT

real (kind=R4), public :: PC_NOISE_WCUT = -1.

RF_MIN_TDC

real (kind=R4), public :: RF_MIN_TDC = -1.

RF_MAX_TDC

real (kind=R4), public :: RF_MAX_TDC = -1.

patrec_print

logical, public :: patrec_print = .false.

print_whits_output

logical, public :: print_whits_output = .false.

raw_out

integer (kind=i4), public :: raw_out = 0

print_tdc

logical, public :: print_tdc = .false.

print_hits

logical, public :: print_hits = .false.

print_DC

logical, public :: print_DC = .true.

print_PC

logical, public :: print_PC = .true.

print_PC_ADC

logical, public :: print_PC_ADC = .true.

print_SC

logical, public :: print_SC = .true.

print_SC_ADC

logical, public :: print_SC_ADC = .true.

print_PU

logical, public :: print_PU = .true.

print_TC

logical, public :: print_TC = .true.

BeamMomentum

real, public :: BeamMomentum = 27.9

BeamType

character (len=10), public :: BeamType = ""

trigger

character (len=2), public :: trigger = "DS"

UnpackMC

logical, public :: UnpackMC = .false.

IgnoreMcBFLD

logical, public :: IgnoreMcBFLD = .false.

enableFilters

logical, public :: enableFilters = .FALSE.

PC_Emin

real, public :: PC_Emin = 0

PC_Emax

real, public :: PC_Emax = 0

SC_Emin

real, public :: SC_Emin = 0

SC_Emax

real, public :: SC_Emax = 0

qod_buffer_length

integer (kind=i4), public :: qod_buffer_length = 10000

n_qod_buffers

integer (kind=i4), public :: n_qod_buffers = 4

WMult_DC

integer (kind=i4), public :: WMult_DC = 0

message_prob

real (kind=r4), public :: message_prob = .001

drift_message

real (kind=r4), public :: drift_message = 0.0001

hw_ratio

real (kind=r4), public :: hw_ratio = 5

rdevshapetol

real (kind=r4), public :: rdevshapetol = .05

rdevwiretol

real (kind=r4), public :: rdevwiretol = .4

qodfile

character (len=132), public :: qodfile = " "

enableqodmon

logical, public :: enableqodmon = .false.

use_cos_increments

logical, public :: use_cos_increments = .false.

str_angle_inc

real (kind=r4), public :: str_angle_inc = 1.0

str_upper_angle_limit

real (kind=r4), public :: str_upper_angle_limit = 80.0

DriftTimeMin

real (kind=r4), public :: DriftTimeMin = -10000.

DriftTimeMax

real (kind=r4), public :: DriftTimeMax = 10000.

DriftTimeShift

real (kind=r4), public :: DriftTimeShift = 0.

T0Source

integer (kind=i4), public :: T0Source = 0

ChiDiffCluster

real (kind=r4), public :: ChiDiffCluster = 1.E-02

ChiDiffTime

real (kind=r4), public :: ChiDiffTime = 1.E-04

Chi2sCutCluster

real (kind=r4), public :: Chi2sCutCluster = 1.E05

Chi2sCutTime

real (kind=r4), public :: Chi2sCutTime = 1.E05

SigmaFactor

real (kind=r4), public :: SigmaFactor = 5.

ThetaMS

real (kind=r4), public :: ThetaMS = 0.0005

MaxIterateCluster

integer (kind=i4), public :: MaxIterateCluster = 5

MaxIterateTime

integer (kind=i4), public :: MaxIterateTime = 10

NoiseExcludeMax

integer (kind=i4), public :: NoiseExcludeMax = 1

enableKalman

logical, public :: enableKalman = .false.

SwitchLR

logical, public :: SwitchLR = .false.

WindowMin

integer (kind=i4), public :: WindowMin = 2

WindowMax

integer (kind=i4), public :: WindowMax = 10

WindowStep

integer (kind=i4), public :: WindowStep = 2

nEventsPlane

integer (kind=i4), public :: nEventsPlane = 10000

nEventsWire

integer (kind=i4), public :: nEventsWire = 100000

AlignAngleU

real (kind=r4), public :: AlignAngleU = 0.

AlignAngleV

real (kind=r4), public :: AlignAngleV = 0.

AlignMinTheta

real (kind=r4), public :: AlignMinTheta = -360.

AlignMaxTheta

real (kind=r4), public :: AlignMaxTheta = 360.

RadiusInCut

real (kind=r4), public :: RadiusInCut = 20.0

RadiusOutCut

real (kind=r4), public :: RadiusOutCut = 20.0

FixPlanes

logical, public :: FixPlanes = .FALSE.

FindAlignment

logical, public :: FindAlignment = .FALSE.

FixedPlane1

integer (kind=i4), public :: FixedPlane1 = 1

FixedPlane2

integer (kind=i4), public :: FixedPlane2 = 2

FixedPlane3

integer (kind=i4), public :: FixedPlane3 = 7

FixedPlane4

integer (kind=i4), public :: FixedPlane4 = 8

SLFASCIIOutput

logical, public :: SLFASCIIOutput = .FALSE.
 Straight Line Fit ASCII output for Shirvel's alignment Procedure

AntRadiusInCut

real (kind=r4), public :: AntRadiusInCut = 3
 (cm) Cut to select the tracks inside the radius AntRadiusInCut in the center of the detector

AntRadiusOutCut

real (kind=r4), public :: AntRadiusOutCut = 6
 (cm) Cut to select the tracks outside the radius AntRadiusOutCut in the center of the detector

EnableWindowing

logical, public :: EnableWindowing = .true.

EnablewindowingBJ

logical, public :: EnablewindowingBJ = .true.

WindowVerbose

logical, public :: WindowVerbose = .false.

EnableClustering

logical, public :: EnableClustering = .true.

EnableFirstGuess

logical, public :: EnableFirstGuess = .true.

EnableFirstGuessJim

logical, public :: EnableFirstGuessJim = .false.

EnableFirstGuessArt

logical, public :: EnableFirstGuessArt = .false.

EnableFirstGuessKO

logical, public :: EnableFirstGuessKO = .true.

EnableFirstGuessMuon

logical, public :: EnableFirstGuessMuon = .false.

EnableFirstGuessNtuple

logical, public :: EnableFirstGuessNtuple = .false.

firstGuessPCplaneEnable

logical, public, dimension (100) :: firstGuessPCplaneEnable = .true.
 enable PC planes

firstGuessDCplaneEnable

logical, public, dimension (100) :: firstGuessDCplaneEnable = .true.
 enable DC planes

FitHalvesSeparately

logical, public :: FitHalvesSeparately = .false.

RemoveDeltas

logical, public :: RemoveDeltas = .false.

UndoOverlaps

logical, public :: UndoOverlaps = .false.

UndoComplex

logical, public :: UndoComplex = .false.

UseDenseStart

logical, public :: UseDenseStart = .true.

UseClusterSize

logical, public :: UseClusterSize = .true.

UseSparseOmega

logical, public :: UseSparseOmega = .true.

UseVarNormCut

integer, public :: UseVarNormCut = 4

MinPairs

integer, public :: MinPairs = 7

MaxAmbiguous

integer, public :: MaxAmbiguous = 2

TrackingVerbose

logical, public :: TrackingVerbose = .false.

FirstGuessVerbose

integer, public :: FirstGuessVerbose = 0

FirstGuessTestMode

integer, public :: FirstGuessTestMode = 0

LineRes

real (kind=R4), public :: LineRes = 1.4
 DC wire spacing used by TestOnline

winPCthreshold

real (kind=R4), public :: winPCthreshold = 100.0
 separation between windows, ns

winDCstart

real (kind=R4), public :: winDCstart = -50.0
 DC time window start, ns

winDCend

real (kind=R4), public :: winDCend = 1000.0
 DC time window end, ns

WinMinHitPCs

integer (kind=I4), public :: WinMinHitPCs = 2
 Minimum number of hit PC planes to construct a window.

MaxClusterSize

real (kind=R4), public :: MaxClusterSize = 5.0
 Maximum cluster size for tracks

MinClCosTheta

real (kind=R4), public :: MinClCosTheta = 0.5
 Minimum ABS(cos(theta)) considered

MaxMissedPlanes

integer (kind=I4), public :: MaxMissedPlanes = 2
 Maximum number of DC planes

TanThetaCut

real (kind=R4), public :: TanThetaCut = 1000.
 Maximum difference between

FitStraightHalves

logical, public :: FitStraightHalves = .false.
 Flag to fit thru particle by halves

FitStraightWhole

logical, public :: FitStraightWhole = .true.
 Flag to fit thru particle using

OmegaEstimator

integer (kind=I4), public :: OmegaEstimator = 2
 Index for estimator to use, see FG

nSubSets

integer (kind=I4), public :: nSubSets = 7
 Setting for ClusterOmega

VaryPhiOrOmega

character, public :: VaryPhiOrOmega = "O"
 Flag denoting whether FG 

MaxDelOmega

real (kind=R8), public :: MaxDelOmega = 0.1
 Maximum difference between omega

PCOverlapTime

real (kind=r4), public :: PCOverlapTime = 100.

PCOverlapTsig

real (kind=r4), public :: PCOverlapTsig = 30.

PCOverlapSuspiciousTsig

real (kind=r4), public :: PCOverlapSuspiciousTsig = 15.

DCOverlapTime

real (kind=r4), public :: DCOverlapTime = 1000.

DCConfusionTime

real (kind=r4), public :: DCConfusionTime = 900.

TooEarlyTime

real (kind=r4), public :: TooEarlyTime = -5800.

TooLateTime

real (kind=r4), public :: TooLateTime = 9800.

Win_EarlyGateT

real (kind=r4), public :: Win_EarlyGateT = -6000.

Win_LateGateT

real (kind=r4), public :: Win_LateGateT = 10000.

WIN_NTIMEBINS

integer (kind=i4), public :: WIN_NTIMEBINS = 321

Win_TimeBinSize

real (kind=r4), public :: Win_TimeBinSize = 50.

Win_TBinsGapNewWin

integer (kind=i4), public :: Win_TBinsGapNewWin = 3

LgRadiusNoiseCutR

real (kind=r4), public :: LgRadiusNoiseCutR = 5.

LgRadiusNoiseMaxHits

integer (kind=i4), public :: LgRadiusNoiseMaxHits = 6

enableLgRadiusNoise

logical, public :: enableLgRadiusNoise = .true.

enableSecondHits

logical, public :: enableSecondHits = .false.

enableRemoveCosmicNoise

logical, public :: enableRemoveCosmicNoise = .true.

MaxDeltaRsig

real (kind=r4), public :: MaxDeltaRsig = 0.5

MaxDeltaRsigCut

real (kind=r4), public :: MaxDeltaRsigCut = 1.5

MinDeltaRsigCut

real (kind=r4), public :: MinDeltaRsigCut = 0.15

NDeltaSigmasAway

integer (kind=i4), public :: NDeltaSigmasAway = 2

enableExtractDelta

logical, public :: enableExtractDelta = .false.

ExtractBeameResid

real (kind=r4), public :: ExtractBeameResid = 1.0

enableExtractBeame

logical, public :: enableExtractBeame = .false.

HitsPPlowthres

real (kind=r4), public :: HitsPPlowthres = 3.5

HitsPPmedthres

real (kind=r4), public :: HitsPPmedthres = 4.0

HitsPPhithres

real (kind=r4), public :: HitsPPhithres = 15.

MinHitsSlideScatter

integer (kind=i4), public :: MinHitsSlideScatter = 80

MinHitsPlaneScatter

integer (kind=i4), public :: MinHitsPlaneScatter = 15

MuonMinPCWidth

real (kind=r4), public :: MuonMinPCWidth = 200.

MuonMinM12Width

real (kind=r4), public :: MuonMinM12Width = 0.

MuonStartPlaneMax

integer (kind=i4), public :: MuonStartPlaneMax = 6

MuonStopPlaneMax

integer (kind=i4), public :: MuonStopPlaneMax = 52

PionCPmin

real (kind=r4), public :: PionCPmin = 68.

PionCPmax

real (kind=r4), public :: PionCPmax = 73.

PionMinM12Width

real (kind=r4), public :: PionMinM12Width = 32000.

PionStartPlaneMax

integer (kind=i4), public :: PionStartPlaneMax = 4

PionStopPlaneMax

integer (kind=i4), public :: PionStopPlaneMax = 4

TriggerTimeSlop

real (kind=r4), public :: TriggerTimeSlop = 100.

LaserLikeMinPlSep

integer (kind=i4), public :: LaserLikeMinPlSep = 2

LaserLikeMinRSep

real (kind=r4), public :: LaserLikeMinRSep = 5.

LaserLikeMaxRsig

real (kind=r4), public :: LaserLikeMaxRsig = 0.5

enableJimsOverlapWin

logical, public :: enableJimsOverlapWin = .false.

HiAngClusterAreaCut

real (kind=r4), public :: HiAngClusterAreaCut = 12.5

HiAngHitsPPCut

real (kind=r4), public :: HiAngHitsPPCut = 3.5

EnableKOPCOverlapWindows

logical, public :: EnableKOPCOverlapWindows = .true.

EnableKODCOverlapWindows

logical, public :: EnableKODCOverlapWindows = .false.

enableHelixFit

logical, public :: enableHelixFit = .true.

enableKOntuple

logical, public :: enableKOntuple = .false.

enableHelixSkim

logical, public :: enableHelixSkim = .false.

HelixFitAll

logical, public :: HelixFitAll = .false.

HelixFitDecay

logical, public :: HelixFitDecay = .true.

HelixFitBeamPos

logical, public :: HelixFitBeamPos = .false.

HelixFitBeamPosAll

logical, public :: HelixFitBeamPosAll = .false.

HelixFitMuon

logical, public :: HelixFitMuon = .false.

FillHelixHists

logical, public :: FillHelixHists = .true.

HelixFitVerbose

integer, public :: HelixFitVerbose = 0
 see comments on helixfit_mod

HelixFitRadLenHe

real, public :: HelixFitRadLenHe = 2.57E-6
 radiation length per cm of He gas, 1/cm

HelixFitRadLenFoil

real, public :: HelixFitRadLenFoil = 2.07E-5
 radiation length per foil, 1/1

HelixFitRadLenDC

real, public :: HelixFitRadLenDC = 4.81E-5
 radiation length per cm of DC gas, 1/cm

HelixFitMinIonHe

real, public :: HelixFitMinIonHe = 3.68E-4
 min. ionizing per cm of He gas, MeV/c/cm

HelixFitMinIonFoil

real, public :: HelixFitMinIonFoil = 1.52E-3
 min. ionizing per foil, MeV/c/1

HelixFitMinIonDC

real, public :: HelixFitMinIonDC = 3.86E-3
 min. ionizing per cm of DC gas, MeV/c/cm

HelixFitFldOffPmag

real, public :: HelixFitFldOffPmag = 40.0
 assumed momentum for magnet-off tracks

HelixFitBeta

real, public :: HelixFitBeta = 1.0
 set particle velocity (beta)

HelixFitAssumeTrDir

integer, public :: HelixFitAssumeTrDir = 0
 0: guess for each track; +1: all tracks go DS; -1: all tracks go US

HelixFitDoLoss

logical, public :: HelixFitDoLoss = .true.
 enable energy loss

HelixFitDoWC

logical, public :: HelixFitDoWC = .true.
 fit wire-centers

HelixFitDoDrift

logical, public :: HelixFitDoDrift = .true.
 fit drift distances

HelixFitDoTime

logical, public :: HelixFitDoTime = .false.
 fit drift times

HelixFitDoKinksWC

logical, public :: HelixFitDoKinksWC = .true.
 enable kinks for wire-center fits

HelixFitDoKinksDT

logical, public :: HelixFitDoKinksDT = .true.
 enable kinks for drift fits

HelixFitDoKinksTarget

logical, public :: HelixFitDoKinksTarget = .true.
 enable kinks at the target

HelixFitDoVarResolution

integer, public :: HelixFitDoVarResolution = 16
 enable variable resolution

HelixFitKinkFudgeWC

real, public :: HelixFitKinkFudgeWC = 2.0
 fudge factor for kink weights in wire-center fits

HelixFitKinkFudgeDT

real, public :: HelixFitKinkFudgeDT = 1.0
 fudge factor for kink weights in drift fits

HelixFitLossFudgeIon

real, public :: HelixFitLossFudgeIon = 1.0
 fudge factor for "ionization" energy loss

HelixFitLossFudgeRadlen

real, public :: HelixFitLossFudgeRadlen = 0.0
 fudge factor for "radlen" energy loss

HelixFitStartFG

logical, public :: HelixFitStartFG = .true.
 use First Guess as starting point

HelixFitStartMC

logical, public :: HelixFitStartMC = .false.
 use MC as starting point

MCStartFirstDC

logical, public :: MCStartFirstDC = .true.
 use MC start from first DC

HelixFitMCOffset

logical, public :: HelixFitMCOffset = .false.
 create offsets from MC start

HelixFitHitsInput

integer, public :: HelixFitHitsInput = 0
 select the hits source.

HelixFitStrtInput

integer, public :: HelixFitStrtInput = 0
 select the starting point source.

HelixFitTrefInput

integer, public :: HelixFitTrefInput = 0
 select the tref source.

HelixFitAmbigMode

integer, public :: HelixFitAmbigMode = 0
 select the ambiguity resolution mode (kAmbigMode)

HelixFitTref

logical, public :: HelixFitTref = .true.
 enable tref fits

HelixFitStopChebyshev

logical, public :: HelixFitStopChebyshev = .false.
 stop fit iterations if Chebyshev norm is zero

HelixFitStopCL

logical, public :: HelixFitStopCL = .false.
 stop fit iterations if conf.level gets worse

HelixFitStopResNorm

logical, public :: HelixFitStopResNorm = .false.
 stop fit iterations if resudial normalization gets worse

HelixFitStopCostRms

logical, public :: HelixFitStopCostRms = .true.
 stop fit iterations if cos(theta) stops changing

HelixFitCostRmsLimit2

real, public :: HelixFitCostRmsLimit2 = 0.0100
 when to flag ierror == 10

HelixFitCostRmsLimit1

real, public :: HelixFitCostRmsLimit1 = 0.00005
 when to stop

HelixFitAmbigCutoff

real, public :: HelixFitAmbigCutoff = 0.1000
 cutoff for resolving L-R ambiguity

HelixFitNarrowCutoff

real, public :: HelixFitNarrowCutoff = 0.0400
 cutoff for narrow windows

HelixFitMinIter

integer, public :: HelixFitMinIter = 2
 minimum number of iterations

HelixFitMaxIterWC

integer, public :: HelixFitMaxIterWC = 10
 maximum number of wire-center iterations

HelixFitMaxIterDT

integer, public :: HelixFitMaxIterDT = 20
 maximum number of drift-time iterations

HelixFitMaxPlanesWC

integer, public :: HelixFitMaxPlanesWC = -1
 maximum number of planes for wire-center fits

HelixFitMaxPlanesDT

integer, public :: HelixFitMaxPlanesDT = -1
 maximum number of planes for drift-time fits

HelixFitMaxDrift

real, public :: HelixFitMaxDrift = 3.0
 reject hits with larger drift distances

HelixFitMaxChiSqr

real, public :: HelixFitMaxChiSqr = 1000.0
 Maximum allowed chi-squared per degree of freedom

HelixFitMaxTime

real, public :: HelixFitMaxTime = 1000.0
 Maximum drift time used for drift fits

HelixFitPlaneEnable

logical, public, dimension (100) :: HelixFitPlaneEnable = .true.
 enable individual planes

HelixFitWeightsWC

real, public, dimension (100) :: HelixFitWeightsWC = 1.
 extra plane weights for Wire-center fits (set to 0 to disable plane)

HelixFitWeightsDD

real, public, dimension (100) :: HelixFitWeightsDD = 1.
 extra plane weights for Drift-distance fits (set to 0 to disable plane)

HelixFitWeightsDT

real, public, dimension (100) :: HelixFitWeightsDT = 1.
 extra plane weights for Drift-time fits (set to 0 to disable plane)

HelixFitStrDenScaling

real, public :: HelixFitStrDenScaling = 1.5
 scaling of drift times for density variations

HelixFitWireRes

real, public :: HelixFitWireRes = 0.1155
 nominal resolutions
 wire-center resolution, cm

HelixFitDriftRes

real, public :: HelixFitDriftRes = 0.0100
 drift distance resolution, cm

HelixFitTimeRes

real, public :: HelixFitTimeRes = 12.0
 drift time resolution, ns

HelixFitCutTref

real, public :: HelixFitCutTref = 0.05
 confidence level cuts
 conf level cut on Tref  residuals

HelixFitCutRes

real, public :: HelixFitCutRes = 0.01
 conf level cut on fit residuals

HelixFitCutFit

real, public :: HelixFitCutFit = 0.01
 conf level cut on fits

HelixFitSmearInput

integer, public :: HelixFitSmearInput = 0
 starting point smearing
 smear the fit starting point. 0=no smear

HelixFitSmearP

real, public :: HelixFitSmearP = 0
 smear momentum, MeV/c

HelixFitSmearCosT

real, public :: HelixFitSmearCosT = 0
 smear cos(theta)

HelixFitSmearTref

real, public :: HelixFitSmearTref = 0
 smear tref, ns

HelixFitSmearPhi

real, public :: HelixFitSmearPhi = 0
 smear phi, rad

HelixFitSmearU

real, public :: HelixFitSmearU = 0
 smear starting point u, cm

HelixFitSmearV

real, public :: HelixFitSmearV = 0
 smear starting point v, cm

HelixFitUpstream

logical, public :: HelixFitUpstream = .true.
 fiducial cuts
 fit upstream tracks

HelixFitDownstream

logical, public :: HelixFitDownstream = .true.
 fit downstream tracks

HelixFitCosTmin

real, public :: HelixFitCosTmin = 0.0100
 minimum abs(cos(theta))

HelixFitCosTmax

real, public :: HelixFitCosTmax = 1.1
 maximum abs(cos(theta))

HelixFitMomMin

real, public :: HelixFitMomMin = 0.0
 minimum momentum (MeV)

HelixFitMomMax

real, public :: HelixFitMomMax = 100.0
 maximum momentum (MeV)

HelixFitPtMin

real, public :: HelixFitPtMin = 0.0
 minimum transverse momentum (MeV)

HelixFitPtMax

real, public :: HelixFitPtMax = 100.0
 maximum transverse momentum (MeV)

HelixFitTrefMin

real, public :: HelixFitTrefMin = -999999
 minimum track time, ns

HelixFitTrefMax

real, public :: HelixFitTrefMax = +999999
 maximum track time, ns

HelixFitZtrkMin

real, public :: HelixFitZtrkMin = -999999
 minimum track starting z, cm

HelixFitZtrkMax

real, public :: HelixFitZtrkMax = +999999
 maximum track starting z, cm

HelixFitProbeChiSqr

integer, public :: HelixFitProbeChiSqr = 0
 Probe the shape of the ChiSqr function
 enable probing the ChiSqr

HelixFitProbeChiSqrIpar

integer, public :: HelixFitProbeChiSqrIpar = 1
 parameter number

HelixFitProbeChiSqrStep1

real, public :: HelixFitProbeChiSqrStep1 = 0
 step1

HelixFitProbeChiSqrStep2

real, public :: HelixFitProbeChiSqrStep2 = 0
 step2

HelixFitDebugGotoHitPlane

integer, public :: HelixFitDebugGotoHitPlane = 0
 Debug gotoHit
 debug gotoHit() for this DC plane

HelixFitKinksUS

integer, public, dimension (100) :: HelixFitKinksUS
 Kink patterns, see documentation in helixfit_mod::SetupKinks()

 Upstream kink pattern

HelixFitKinksDS

integer, public, dimension (100) :: HelixFitKinksDS
 Downstream kink pattern

T0_TDC_MIN

real, public :: T0_TDC_MIN = 3000.

T0_TDC_MAX

real, public :: T0_TDC_MAX = 3080.

TDCnsPerBin

real, public :: TDCnsPerBin = 0.5
 tdc resolution in ns

FitT0

logical, public :: FitT0 = .FALSE.

TimeBackwards

logical, public :: TimeBackwards = .TRUE.

t0Pulser

logical, public :: t0Pulser = .FALSE.

T0_TCAP_LOW

real, public :: T0_TCAP_LOW = -1.

T0_TCAP_HIGH

real, public :: T0_TCAP_HIGH = -1.

t0_cost_min

real, public :: t0_cost_min = 0.5

nEventsMax

integer (kind=i4), public :: nEventsMax = 5000

MinHistFitEntries

integer (kind=i4), public :: MinHistFitEntries = 1000

nResidualBins

integer (kind=i4), public :: nResidualBins = 300

MinResidualValue

real (kind=r4), public :: MinResidualValue = -0.3

MaxResidualValue

real (kind=r4), public :: MaxResidualValue = 0.3

calcResidualMethod

integer (kind=i4), public :: calcResidualMethod = 3

peakTOL

real (kind=r4), public :: peakTOL = 0.10

DCRadiusCutDense

real (kind=r4), public :: DCRadiusCutDense = 15.0

DCRadiusCutSparse

real (kind=r4), public :: DCRadiusCutSparse = 15.0

PCRadiusCutDense

real (kind=r4), public :: PCRadiusCutDense = 4.4

PCRadiusCutSparse

real (kind=r4), public :: PCRadiusCutSparse = 12

EffDCCellCut

integer (kind=i4), public :: EffDCCellCut = 6

EffPCCellCut

integer (kind=i4), public :: EffPCCellCut = 12

nHitPlanesCut

integer (kind=i4), public :: nHitPlanesCut = 0

EffPCouterHits

integer (kind=i4), public :: EffPCouterHits = 0

EffDCoutmostAdjCells

integer (kind=i4), public :: EffDCoutmostAdjCells = 2

FindEff

logical, public :: FindEff = .FALSE.

EffFillHist

logical, public :: EffFillHist = .TRUE.

EffPrint

logical, public :: EffPrint = .TRUE.

EffDebug

logical, public :: EffDebug = .FALSE.

EffUseWindowing

logical, public :: EffUseWindowing = .TRUE.

fixChan

logical, public :: fixChan = .TRUE.

iflagReject

logical, public :: iflagReject = .FALSE.

EnableDeadWires

logical, public :: EnableDeadWires = .TRUE.

EffHelixChiSqrCut

real (kind=r4), public :: EffHelixChiSqrCut = 1.0

SkimVerbose

logical, public :: SkimVerbose = .false.

SkimOnCode

logical, public, dimension (MAX_SKMOD) :: SkimOnCode = .FALSE.

SkimEvTypeToChan

integer, public, dimension (MAXFAIL) :: SkimEvTypeToChan = 0

SkimOnMCEventType

logical, public :: SkimOnMCEventType = .TRUE.

SkimNumEvents

integer, public :: SkimNumEvents = -1

SkimSimpleClean

logical, public :: SkimSimpleClean = .FALSE.

SkimTimeClean

logical, public :: SkimTimeClean = .FALSE.

SkimOverlapDirty

logical, public :: SkimOverlapDirty = .FALSE.

SkimComplexDirty

logical, public :: SkimComplexDirty = .FALSE.

SkimBeamPositron

logical, public :: SkimBeamPositron = .FALSE.

SkimNoBeamPositron

logical, public :: SkimNoBeamPositron = .FALSE.

SkimDeltas

logical, public :: SkimDeltas = .FALSE.

SkimOverlaps

logical, public :: SkimOverlaps = .FALSE.

SkimFailCode

logical, public :: SkimFailCode = .FALSE.

SkimFitFailures

logical, public :: SkimFitFailures = .FALSE.

SkimIerror

logical, public :: SkimIerror = .FALSE.

nIerrorSkim

integer, public :: nIerrorSkim = 0

IerrorSkim

integer, public, dimension (9) :: IerrorSkim = 0

IerrorMatch

logical, public, dimension (9) :: IerrorMatch = .TRUE.

PreScaleFraction

real (kind=r4), public :: PreScaleFraction = 0.1

SkimMuFarStop

integer, public :: SkimMuFarStop = -1

SkimMuShortStop

integer, public :: SkimMuShortStop = -1

EnableClassify

logical, public :: EnableClassify = .TRUE.

enableSelectEventByTypeNumber

logical, public :: enableSelectEventByTypeNumber = .FALSE.

SelectEventbyTypeNumber

logical, public, dimension (MAXFAIL) :: SelectEventbyTypeNumber = .FALSE.

SelectEvent

integer (kind=I4), public :: SelectEvent = 1

ClassifyVerbose

logical, public :: ClassifyVerbose = .FALSE.

EnableIdentifyPositrons

logical, public :: EnableIdentifyPositrons = .FALSE.

EnableEvalTwoHits

logical, public :: EnableEvalTwoHits = .FALSE.

SelectSimpleClean

logical, public :: SelectSimpleClean = .FALSE.

SelectTimeClean

logical, public :: SelectTimeClean = .FALSE.

SelectOverlapDirty

logical, public :: SelectOverlapDirty = .FALSE.

SelectComplexDirty

logical, public :: SelectComplexDirty = .FALSE.

SelectBeamPositron

logical, public :: SelectBeamPositron = .FALSE.

SelectByWinTimeAfterTrig

integer (kind=I4), public :: SelectByWinTimeAfterTrig = 400.

SelectDelta

logical, public :: SelectDelta = .FALSE.

SelectTrigParticle

logical, public :: SelectTrigParticle = .FALSE.

SelectTCAPmin

real (kind=R4), public :: SelectTCAPmin = 25.

SelectTCAPmax

real (kind=R4), public :: SelectTCAPmax = 30.

SelectM12min

real (kind=R4), public :: SelectM12min = 0.

SelectM12max

real (kind=R4), public :: SelectM12max = 5300.

DetectorTOFcut

real (kind=R4), public :: DetectorTOFcut = 5.0

SelectFailCode

integer (kind=I4), public :: SelectFailCode = -1

enableMuStopGuess

logical, public :: enableMuStopGuess = .true.

muonTDCwidavgmin

real (kind=R4), public :: muonTDCwidavgmin = 0.

enableTargetClean

logical, public :: enableTargetClean = .false.

TrackMinDCuCl

integer (kind=I4), public :: TrackMinDCuCl = 3

TrackMinDCvCl

integer (kind=I4), public :: TrackMinDCvCl = 3

TrackMinPairs

integer (kind=I4), public :: TrackMinPairs = 5

PCWidthCutU_V

real (kind=R4), public :: PCWidthCutU_V = 40.0

DCWidthCutU_V

real (kind=R4), public :: DCWidthCutU_V = 40.0

ClLogging

logical, public :: ClLogging = .FALSE.

WinLogging

logical, public :: WinLogging = .FALSE.

FGResultLogging

logical, public :: FGResultLogging = .FALSE.

Z1Project

real (kind=R4), public :: Z1Project = -1

Z2Project

real (kind=R4), public :: Z2Project = -1

Z3Project

real (kind=R4), public :: Z3Project = -1

Z4Project

real (kind=R4), public :: Z4Project = -1

Z5Project

real (kind=R4), public :: Z5Project = -1

Z6Project

real (kind=R4), public :: Z6Project = -1

Zproj_CP_MIN

real (kind=R4), public :: Zproj_CP_MIN = -1

Zproj_CP_MAX

real (kind=R4), public :: Zproj_CP_MAX = -1

enableRootTree

logical, public :: enableRootTree = .true.

RootTreeType

integer (kind=i4), public :: RootTreeType = 0

RootTreeEnableUser

logical, public :: RootTreeEnableUser = .false.

RootTreeEnableMicheldOutput

logical, public :: RootTreeEnableMicheldOutput = .false.

RootTreeEnableMCBankOutput

logical, public :: RootTreeEnableMCBankOutput = .false.

RootTreeMCSelectedEventsOnly

logical, public :: RootTreeMCSelectedEventsOnly = .false.

RootTreeEnableFGOutput

logical, public :: RootTreeEnableFGOutput = .false.

RootTreeEnableMHitsOutput

logical, public :: RootTreeEnableMHitsOutput = .false.

RootTreeEnablePactOutput

logical, public :: RootTreeEnablePactOutput = .false.

RootTreeEnablePseudoPact

logical, public :: RootTreeEnablePseudoPact = .true.

RootTreeEnablePseudoPactTest

logical, public :: RootTreeEnablePseudoPactTest = .false.

RootTreeEnableWinStatOutput

logical, public :: RootTreeEnableWinStatOutput = .false.

RootTreeEnableHeFitNHitsOutput

logical, public :: RootTreeEnableHeFitNHitsOutput = .false.

RootTreeEnableHeFitLastHitOutput

logical, public :: RootTreeEnableHeFitLastHitOutput = .false.

RootTreeEnableFgFitNHitsOutput

logical, public :: RootTreeEnableFgFitNHitsOutput = .false.

RootTreeMuonDecayFitOnly

logical, public :: RootTreeMuonDecayFitOnly = .false.

RootTreeMuonDecayWinOnly

logical, public :: RootTreeMuonDecayWinOnly = .false.

RootTreeSelectedEventsOnly

logical, public :: RootTreeSelectedEventsOnly = .false.

RootTreeEnableAlStudy

logical, public :: RootTreeEnableAlStudy = .false.

RootTreeEnableFirstLastDC

logical, public :: RootTreeEnableFirstLastDC = .false.

RootTreeEnableTECFit

logical, public :: RootTreeEnableTECFit = .false.

RootTreeEnableTECVis

logical, public :: RootTreeEnableTECVis = .false.

RootTreeEnableTECHits

logical, public :: RootTreeEnableTECHits = .false.

RootTreeEnableTECExtras

logical, public :: RootTreeEnableTECExtras = .false.

RootTreeFilename

character (len=255), public :: RootTreeFilename = ""

RootTreeName

character (len=255), public :: RootTreeName = "T"

Description of Subroutines and Functions

real_namelist_c

public subroutine real_namelist_c ()
    ! Calls: kerror, kerror2, list_namelists, readcomfile, rite
end subroutine real_namelist_c
-----------------------------------------------------------------------
  NAMELIST_C : process namelist command


  initializing variables. The legacy KOFIA namelists BATCH, KFLAGS,
  and KPUNITS are retained unchanged. The f90 routines (eg filters_mod)
  access their namelists through USE.

  The NAMELIST command allows the user to interactively modify
  certain internal variables in KOFIA.  These variables are grouped
  according to function in Fortran namelists, and are modified using
  namelist-directed I/O.

  NAMELIST command syntax:

  NAMELIST [nlname] [variable=setting]

  "Nlname" is the name of one of the supported namelists (listed
  below).  If not given, the names are listed on the terminal and
  log file.  "Variable=setting" is the desired variable assignment.
  If not given, the namelist editor is invoked to allow interactive
  input.  Multiple comma-separated variable assignments are allowed.

  The namelist editor accepts any number of "variable=setting" lines,
  with multiple comma-separated settings per line.  Other editor
  commands (which should be the only text on their line) are:
	&  exit namelist editor
       ? or =? list namelist variables and values

  Procedures:
	REAL_NAMELIST_C -- executes the NAMELIST command
	SHOW_NAMELIST -- executes the SHOW NAMELIST command
	LIST_NAMELISTS -- internal routine lists all defined namelists
-----------------------------------------------------------------------

Author: 1997-Jul-28 (RP) Adapted for E614, 1999-Nov-1 (AO f90 mods to simplify adding namelists and

REAL_SHOW_NAMELIST

public subroutine REAL_SHOW_NAMELIST ()
    ! Calls: kerror2, list_namelists
end subroutine REAL_SHOW_NAMELIST

LIST_NAMELISTS

public subroutine LIST_NAMELISTS ()
end subroutine LIST_NAMELISTS