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
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. TDC limits for histogramming
real, public :: TDC_MAX = 12000. TDC limits for histogramming
real, public :: PC_ADC_MIN = 0. ADC limits for histogramming
real, public :: PC_ADC_MAX = 500. ADC limits for histogramming
real, public :: SC_ADC_MIN = 0. SC ADC limits for histogramming
real, public :: SC_ADC_MAX = 14000. SC ADC limits for histogramming
real, public :: SCTDC_MIN = -100. SCTDC limits for histogramming
real, public :: SCTDC_MAX = 100. SCTDC limits for histogramming
real, public :: RF_TDC_MIN = -80. Min TDC for RFTOF histogram
real, public :: CP_TDC_MIN = -80. Min TDC for CPTOF histogram
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 Modulus on which PC Ratio hists are filled
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. Straight Line Fit ASCII output for Shirvel's alignment Procedure
real (kind=r4), public :: AntRadiusInCut = 3 (cm) Cut to select the tracks inside the radius AntRadiusInCut in the center of the detector
real (kind=r4), public :: AntRadiusOutCut = 6 (cm) Cut to select the tracks outside the radius AntRadiusOutCut in the center of the detector
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. enable PC planes
logical, public, dimension (100) :: firstGuessDCplaneEnable = .true. enable DC planes
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 DC wire spacing used by TestOnline
real (kind=R4), public :: winPCthreshold = 100.0 separation between windows, ns
real (kind=R4), public :: winDCstart = -50.0 DC time window start, ns
real (kind=R4), public :: winDCend = 1000.0 DC time window end, ns
integer (kind=I4), public :: WinMinHitPCs = 2 Minimum number of hit PC planes to construct a window.
real (kind=R4), public :: MaxClusterSize = 5.0 Maximum cluster size for tracks
real (kind=R4), public :: MinClCosTheta = 0.5 Minimum ABS(cos(theta)) considered
integer (kind=I4), public :: MaxMissedPlanes = 2 Maximum number of DC planes
real (kind=R4), public :: TanThetaCut = 1000. Maximum difference between
logical, public :: FitStraightHalves = .false. Flag to fit thru particle by halves
logical, public :: FitStraightWhole = .true. Flag to fit thru particle using
integer (kind=I4), public :: OmegaEstimator = 2 Index for estimator to use, see FG
integer (kind=I4), public :: nSubSets = 7 Setting for ClusterOmega
character, public :: VaryPhiOrOmega = "O" Flag denoting whether FG
real (kind=R8), public :: MaxDelOmega = 0.1 Maximum difference between omega
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 see comments on helixfit_mod
real, public :: HelixFitRadLenHe = 2.57E-6 radiation length per cm of He gas, 1/cm
real, public :: HelixFitRadLenFoil = 2.07E-5 radiation length per foil, 1/1
real, public :: HelixFitRadLenDC = 4.81E-5 radiation length per cm of DC gas, 1/cm
real, public :: HelixFitMinIonHe = 3.68E-4 min. ionizing per cm of He gas, MeV/c/cm
real, public :: HelixFitMinIonFoil = 1.52E-3 min. ionizing per foil, MeV/c/1
real, public :: HelixFitMinIonDC = 3.86E-3 min. ionizing per cm of DC gas, MeV/c/cm
real, public :: HelixFitFldOffPmag = 40.0 assumed momentum for magnet-off tracks
real, public :: HelixFitBeta = 1.0 set particle velocity (beta)
integer, public :: HelixFitAssumeTrDir = 0 0: guess for each track; +1: all tracks go DS; -1: all tracks go US
logical, public :: HelixFitDoLoss = .true. enable energy loss
logical, public :: HelixFitDoWC = .true. fit wire-centers
logical, public :: HelixFitDoDrift = .true. fit drift distances
logical, public :: HelixFitDoTime = .false. fit drift times
logical, public :: HelixFitDoKinksWC = .true. enable kinks for wire-center fits
logical, public :: HelixFitDoKinksDT = .true. enable kinks for drift fits
logical, public :: HelixFitDoKinksTarget = .true. enable kinks at the target
integer, public :: HelixFitDoVarResolution = 16 enable variable resolution
real, public :: HelixFitKinkFudgeWC = 2.0 fudge factor for kink weights in wire-center fits
real, public :: HelixFitKinkFudgeDT = 1.0 fudge factor for kink weights in drift fits
real, public :: HelixFitLossFudgeIon = 1.0 fudge factor for "ionization" energy loss
real, public :: HelixFitLossFudgeRadlen = 0.0 fudge factor for "radlen" energy loss
logical, public :: HelixFitStartFG = .true. use First Guess as starting point
logical, public :: HelixFitStartMC = .false. use MC as starting point
logical, public :: MCStartFirstDC = .true. use MC start from first DC
logical, public :: HelixFitMCOffset = .false. create offsets from MC start
integer, public :: HelixFitHitsInput = 0 select the hits source.
integer, public :: HelixFitStrtInput = 0 select the starting point source.
integer, public :: HelixFitTrefInput = 0 select the tref source.
integer, public :: HelixFitAmbigMode = 0 select the ambiguity resolution mode (kAmbigMode)
logical, public :: HelixFitTref = .true. enable tref fits
logical, public :: HelixFitStopChebyshev = .false. stop fit iterations if Chebyshev norm is zero
logical, public :: HelixFitStopCL = .false. stop fit iterations if conf.level gets worse
logical, public :: HelixFitStopResNorm = .false. stop fit iterations if resudial normalization gets worse
logical, public :: HelixFitStopCostRms = .true. stop fit iterations if cos(theta) stops changing
real, public :: HelixFitCostRmsLimit2 = 0.0100 when to flag ierror == 10
real, public :: HelixFitCostRmsLimit1 = 0.00005 when to stop
real, public :: HelixFitAmbigCutoff = 0.1000 cutoff for resolving L-R ambiguity
real, public :: HelixFitNarrowCutoff = 0.0400 cutoff for narrow windows
integer, public :: HelixFitMinIter = 2 minimum number of iterations
integer, public :: HelixFitMaxIterWC = 10 maximum number of wire-center iterations
integer, public :: HelixFitMaxIterDT = 20 maximum number of drift-time iterations
integer, public :: HelixFitMaxPlanesWC = -1 maximum number of planes for wire-center fits
integer, public :: HelixFitMaxPlanesDT = -1 maximum number of planes for drift-time fits
real, public :: HelixFitMaxDrift = 3.0 reject hits with larger drift distances
real, public :: HelixFitMaxChiSqr = 1000.0 Maximum allowed chi-squared per degree of freedom
real, public :: HelixFitMaxTime = 1000.0 Maximum drift time used for drift fits
logical, public, dimension (100) :: HelixFitPlaneEnable = .true. enable individual planes
real, public, dimension (100) :: HelixFitWeightsWC = 1. extra plane weights for Wire-center fits (set to 0 to disable plane)
real, public, dimension (100) :: HelixFitWeightsDD = 1. extra plane weights for Drift-distance fits (set to 0 to disable plane)
real, public, dimension (100) :: HelixFitWeightsDT = 1. extra plane weights for Drift-time fits (set to 0 to disable plane)
real, public :: HelixFitStrDenScaling = 1.5 scaling of drift times for density variations
real, public :: HelixFitWireRes = 0.1155 nominal resolutions wire-center resolution, cm
real, public :: HelixFitDriftRes = 0.0100 drift distance resolution, cm
real, public :: HelixFitTimeRes = 12.0 drift time resolution, ns
real, public :: HelixFitCutTref = 0.05 confidence level cuts conf level cut on Tref residuals
real, public :: HelixFitCutRes = 0.01 conf level cut on fit residuals
real, public :: HelixFitCutFit = 0.01 conf level cut on fits
integer, public :: HelixFitSmearInput = 0 starting point smearing smear the fit starting point. 0=no smear
real, public :: HelixFitSmearP = 0 smear momentum, MeV/c
real, public :: HelixFitSmearCosT = 0 smear cos(theta)
real, public :: HelixFitSmearTref = 0 smear tref, ns
real, public :: HelixFitSmearPhi = 0 smear phi, rad
real, public :: HelixFitSmearU = 0 smear starting point u, cm
real, public :: HelixFitSmearV = 0 smear starting point v, cm
logical, public :: HelixFitUpstream = .true. fiducial cuts fit upstream tracks
logical, public :: HelixFitDownstream = .true. fit downstream tracks
real, public :: HelixFitCosTmin = 0.0100 minimum abs(cos(theta))
real, public :: HelixFitCosTmax = 1.1 maximum abs(cos(theta))
real, public :: HelixFitMomMin = 0.0 minimum momentum (MeV)
real, public :: HelixFitMomMax = 100.0 maximum momentum (MeV)
real, public :: HelixFitPtMin = 0.0 minimum transverse momentum (MeV)
real, public :: HelixFitPtMax = 100.0 maximum transverse momentum (MeV)
real, public :: HelixFitTrefMin = -999999 minimum track time, ns
real, public :: HelixFitTrefMax = +999999 maximum track time, ns
real, public :: HelixFitZtrkMin = -999999 minimum track starting z, cm
real, public :: HelixFitZtrkMax = +999999 maximum track starting z, cm
integer, public :: HelixFitProbeChiSqr = 0 Probe the shape of the ChiSqr function enable probing the ChiSqr
integer, public :: HelixFitProbeChiSqrIpar = 1 parameter number
real, public :: HelixFitProbeChiSqrStep1 = 0 step1
real, public :: HelixFitProbeChiSqrStep2 = 0 step2
integer, public :: HelixFitDebugGotoHitPlane = 0 Debug gotoHit debug gotoHit() for this DC plane
integer, public, dimension (100) :: HelixFitKinksUS Kink patterns, see documentation in helixfit_mod::SetupKinks() Upstream kink pattern
integer, public, dimension (100) :: HelixFitKinksDS Downstream kink pattern
real, public :: T0_TDC_MIN = 3000.
real, public :: T0_TDC_MAX = 3080.
real, public :: TDCnsPerBin = 0.5 tdc resolution in ns
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"
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
public subroutine REAL_SHOW_NAMELIST () ! Calls: kerror2, list_namelists end subroutine REAL_SHOW_NAMELIST
public subroutine LIST_NAMELISTS () end subroutine LIST_NAMELISTS