Skip to content
Snippets Groups Projects
  1. Apr 23, 2020
  2. Mar 04, 2020
    • Mark Jones's avatar
      Updated THcScalerEvtHandler · e5b40a34
      Mark Jones authored
      Dave Mack introduced two new variables to the
      calculation of beam current to described correction for
      the nonlinearity above 60uA in BCM1 and BCM2
      seen in the Fall 18, Spring 19 and Summer 19running.
      See for example summer 2019
      hallcweb.jlab.org/doc-private/ShowDocument?docid=1037
      Fall 18/Spring 19
      hallcweb.jlab.org/doc-private/ShowDocument?docid=1042
      
      For a BCM scaler read the difference, Dcounts, from the
      previous scaler and get the time difference, Dtime.
      Original calculation is:
      I = (Dcounts/Dtime-fBCMOffset)/BCM_Gain
      Now add an non-linearity correction
      I = I + fBCM_SatQuadratic*Max(I-fBCM_SatOffset,0.0)^2
      
      Add parameters fBCM_SatOffset and fBCM_SatQuadratic
      that can be optional read-in. If parameters are
      not read-in the parameters are set to zero, so
      there is no correction.
      
      Add the non-linearity correction to all BCM current
      calculations.
      e5b40a34
  3. Jan 17, 2020
    • Stephen A. Wood's avatar
      Helicity decoding improvements: · 59652700
      Stephen A. Wood authored
      1.  If THcHelicity is told about the THcHelicityScaler object with
          the SetHelicityScaler method, it will use helicity scaler events
          to jump start generating the seed
      2.  When beam off, helicity decoding can get lost if the helicity_freq
          parameter is not very close to the actual helicity reversal frequency
          (which seems to drift).  THcHelicity now calculates a recommended value
          of helicity_freq.
      59652700
  4. Dec 21, 2019
    • Stephen A. Wood's avatar
      Compute beam charge asymmetry using helicity gated scalers. · fc053e72
      Stephen A. Wood authored
      Add parameters to hold helicity scaler results:
        g%s_hscaler_plus[%d]
        g%s_hscaler_minus[%d]
        g%s_hscaler_sum[%d]
        g%s_hscaler_asy[%d]
        g%s_hscaler_asyerr[%d]
        g%s_hscaler_time (Time with defined helicity)
        g%s_hscaler_time_asy
        g%s_hscaler_triggers	(All triggers including where helicity not decoded)
        g%s_hscaler_triggers_plus
        g%s_hscaler_triggers_minus  (plus+minus is slightly less than triggers)
        g%s_hscaler_trigger_asy
      
      %s is name assigned to THcHelicityScaler object
      %d is scaler channel #.  0-31
      fc053e72
  5. Dec 16, 2019
  6. Dec 15, 2019
  7. Dec 09, 2019
  8. Dec 05, 2019
    • Stephen A. Wood's avatar
      THcHelicty fix and improvement · 4aa3fdaa
      Stephen A. Wood authored
        Fix case where fActualHelicity doesn't get defined (even as unknown)
        Report when helicity pattern from helcity scaler does not agree
          with pattern found from physics events
      4aa3fdaa
  9. Dec 02, 2019
    • Stephen A. Wood's avatar
      Helicity decoding improvements · 77b91616
      Stephen A. Wood authored
        Use qrt signal to identify quartets, find pattern if it doesn't.
        Fail over to HMS helicity signals if SHMS not found
        Add pcheck and cycle global vars (for fine tuning frequency)
        Start a helicity scaler class.  Just compares seeds for now.
      77b91616
  10. Nov 25, 2019
  11. Nov 22, 2019
  12. Nov 21, 2019
    • Cdaq User's avatar
      Modify THcTrigDet.cxx · d47bd72b
      Cdaq User authored
      THcTrigDet::Decode change the ADC/TDC window limits to be ">="
      instead of ">".
      
      THcTrigDet::ReadDatabase change default upper ADC/TDC window
      limit to 100000 so that the DC are not cut by default setting.
      d47bd72b
  13. May 31, 2019
    • Mark Jones's avatar
      Modify THcDC and THcHallCSpectrometer · b043a0c8
      Mark Jones authored
      1) THcDC
      a) Add variable to tree called dc.InsideDipoleExit
      which is a Bool_t flag that is kTRUE if golden track is inside the
      dipole exit. Uses THcHallCSpectrometer::InsideDipoleExitWindow
      in THcDC::SetFocalPlaneBestTrack to set variable.
      
      2) THcHallCSpectrometer
      a) Add method Bool_t InsideDipoleExitWindow which checks whether
      the track is within the dipole exit window. Checks
      prefix used for database to set flag
      fUseSHMSDipoleExitWindow or fUseHMSDipoleExitWindow
      to be true which is used in InsideDipoleExitWindow
      to select either SHMSDipoleExitWindow or
      HMSDipoleExitWindow method to be used as the test.
      b) Hardcoded z distance from spectrometer focal plane to
      dipole exit window.
      c) Methods Bool_t SHMSDipoleExitWindow and
      Bool_t HMSDipoleExitWindow return true/false if
      the track was inside/outside the dipole exit window.
      d) Added dipole exit window test to the BestTrackUsingPrune
      method. Need to set parameter hprune_DipoleExit=1 or
      pprune_DipoleExit=1 to use the test in the method.
      By default it is turned off.
      b043a0c8
  14. May 12, 2019
    • Mark Jones's avatar
      Update ThcDriftChamber::LeftRight · e0e3dbcc
      Mark Jones authored
      The LeftRight method determines the sign of the wire
      distance for each hit in the spacepoint by looping
      through all combinations of wire signs and fitting each
      combination with a line  and selecting
      the combination with the lowest chi-squared.
      The fit to the line is known as the "stub" which
      is an array of the x,dx/dz, y and dy/dz of the fit
      and is associated each spacepoint. The stubs are
      used later in LinkStubs method
      to match spacepoints between two chambers to give a
      possible tracks.
      
      Previously the LeftRight method would only fit a
      stub for a spacepoint with 4 hits in the chamber if the
      parameter flag  HMSStyleChamber was true.
      HMSStyleChamber refers to the 6 GeV HMS chambers
      and we do not have them anymore.
      But not fitting the spacepoint, the stub
      was filled with zeros for x,dx/dz,y and dy/dz
      and these spacepoints would never be matched with
      other spacepoints to form a possible track.
      e0e3dbcc
    • Mark Jones's avatar
      Updated THcHallCSpectrometer.cxx · 7815f151
      Mark Jones authored
      In method TrackCalc get the proper THcDCTrack array index
      from the golden track by using method GetTrkNum
      for use in the THcDC method
      SetFocalPlaneBestTrack.
      
      When creating the THaTrack array in THcDC::CoarseTrack
      the array index between THaTrack and THcDCTrack arrays
       match. The THaTrack is also associated with the THcDCTrack
      array index with the call SetTrkNum(index+1)
      
      When selecting best track by lowest chi-squared the
      THaTrack are sorted from lowest to highest chi-squared
      The code made a mistake in the index used in
       SetFocalPlaneBestTrack. It used the array index of the
      THaTrack which is now not in sync with the THcDCTrack.
      Fixed problem by using the THaTrack method GetTrkNum
      which gets the proper THcDCTrack array index.
      
      
      This did NOT effect reconstructed target variables or
      physics variables. It only effected the focal plane
      varaiables that were selected as the "best" or "golden"
      to be used for the tree for dc.x_fp , dc.xp_fp,
      dc.y_fp , dc.yp_fp and for the residuals.
      7815f151
  15. May 02, 2019
    • Mark Jones's avatar
      Add THcScintPlaneClust, Modify THcHodoscope and THcScintillatorPlane · 42bc7a0d
      Mark Jones authored
      THcScintPlaneCluster is a new class to hold information
      about scintillator plane clusters of paddle hits.
      The clusters of paddles for each plane are formed in
      THcHodoscope::TrackEffTest which is used in the tracking
      efficiency.
      
      Modify THcScintillatorPlane so that the cluster information
      (number of clusters, size,pos, flag if cluster used)
      is in the tree.
      
      Modify THcHodoscope::TrackEffTest so position
      difference  are taken for all clusters in X1 (or Y1)
      with all clusters in X2 (Y2).
      42bc7a0d
    • Mark Jones's avatar
      Modify THcDC · 0015a43c
      Mark Jones authored
      In THcDC.h change MAXTRACKS from 10 to 50. The maximum
      number of tracks is set by parameter ntracks_max_fp
      
      Previously the LinkStubs method would not create
      a track if the total number of spacepoints in
      the two chambers was larger than 10.
      
      Now LinkStubs will create a vector of THcSpacePoints
      of up to 100 spacepoints with no more than
      50 spacepoints from chamber 1 and use that
      to find possible tracks.
      
      I
      0015a43c
    • Mark Jones's avatar
      Modify HallCSpectrometer · 47654018
      Mark Jones authored
          Add variable fPruneSelect which is a flag for which prune
          test selected the good track.
      
          Put into tree as tr.PruneSelect
          PruneSelect = -1 if no track found
          PruneSelect = 0 if only one track found
          PruneSelect > 0 when more then one track found.
      
          Method BestTrackUsingPrune goes through the tests in order and
           if a track fails the test then it is flagged as bad and not
           tested in the subsequent tests.
           When only one track is left then fPruneSelect is set to the number of
           the test.
      
      
        fPruneSelect = 1  if xptar
        fPruneSelect = 2  if yptar
        fPruneSelect = 3  if ytar
        fPruneSelect = 4  if delta
        fPruneSelect = 5  if track beta
        fPruneSelect = 6  if track reduced degrees of freedom (NHits-4)
        fPruneSelect = 7  if Number of PMT
        fPruneSelect = 8  if track beta chi2
        fPruneSelect = 9  if track focal plane time
        fPruneSelect = 10 if track hit S2Y plane
        fPruneSelect = 11 if track hit S2X plane
        fPruneSelect = 12 if track chisq
      47654018
    • Mark Jones's avatar
      Update THcCoinTime · eca27468
      Mark Jones authored
          Add variable fTRIG1_RAW_CoinTime for raw cointime calculated by
          difference in SHMS trigger (TRIG1) in ROC1 minus
          SHMS trigger in ROC2.
      
          Add variable fTRIG4_RAW_CoinTime for raw cointime calculated by
          difference in HMS trigger (TRIG4) in ROC1 minus
          HMS trigger in ROC2.
      
          Add new variables using these raw time differences
          fTRIG1_epCoinTime
          fTRIG4_epCoinTime
          fTRIG1_eKCoinTime
          fTRIG4_eKCoinTime
          fTRIG1_ePiCoinTime
          fTRIG4_ePiCoinTime
          fTRIG1_ePosCoinTime
          fTRIG4_ePosCoinTime
      eca27468
  16. Apr 25, 2019
    • Stephen A. Wood's avatar
      Improve THcHelicity · 76bbcc81
      Stephen A. Wood authored
        Previously the helicity code was not always setting the actual
        helicity.  It would then just use the helicity from the last event.
        This was almost always OK.  With this change, the helicity (T.helicity.hel)
        should be always defined.
        It is now sufficient to use just this variable when sorting events into
        plus and minus helicity.  The helicity value will be zero if the event
        occured during the settle period, or if the helicity decoder has not
        got enough data to have a seed.
      76bbcc81
    • Stephen A. Wood's avatar
  17. Apr 11, 2019
    • Mark Jones's avatar
      Fix mistake in THcCoinTime.h · 0e9c9872
      Mark Jones authored
      The pTRIG1_TdcTime_ROC1, pTRIG4_TdcTime_ROC1
      and pTRIG1_TdcTime_ROC2, pTRIG4_TdcTime_ROC2
      
      should have been Double_t instead of Int_t
      since the THcTrigDet.h function Get_CT_Trigtime
      returns a Double_t which is the time convert to ns.
      0e9c9872
  18. Feb 17, 2019
  19. Feb 16, 2019
    • Mark K Jones's avatar
      Updated THcCoinTime.cxx (#435) · 2df665ae
      Mark K Jones authored
      Do HMS pathlength correction using xptar and delta instead
      of the focal plane quantities.
      
      Fixed sign typo in fROC1_ePosCoinTime and fROC2_ePosCoinTime
      
      Fix sign error in DeltaSHMSpathLength and DeltaHMSpathLength
      
      Add tree variables
      DeltaSHMSPathLength
      DeltaHMSPathLength
      had_coinCorr_Positron
      elec_coinCorr
      2df665ae
  20. Feb 13, 2019
  21. Jan 10, 2019
  22. Jan 07, 2019
    • Mark Jones's avatar
      Fix to THcScalerEvtHandler.cxx · de986a69
      Mark Jones authored
      In THcScalerEvtHandler::AnalyzeBuffer there is a loop over
      the scalers to keep track of scalers with a cut on the current.
      There was a mistake in using scal_prev_read[nscal-1] instead of
      dvars_prev_read[ivar] in the IF statement.
      de986a69
    • Stephen A. Wood's avatar
      6f9aa533
    • Ole Hansen's avatar
      THcHodoscope: clear fGoodFlags for each event. Add bugchecks. · 178fd5d8
      Ole Hansen authored
      fGoodFlags holds event-by-event data, but was never cleared,
      eventually growing to several hundred megabytes in a long analysis.
      The effciency calculations in THcHodoEff that rely on the contents
      of fGoodFlags have been most certainly garbage up to now.
      
      I've replaced the event-by-event ClearEvent() method with the
      standard virtual function Clear() and have added fGoodFlags.clear()
      there.
      
      Also, I've added assertions to the hodoscope code to check
      the validity of some non-obvious array indices. Nothing triggers;
      the index logic appears sound (despite its appearance ...)
      178fd5d8
    • Ole Hansen's avatar
      Correct a large number of memory leaks reported by valgrind · e1f461e0
      Ole Hansen authored
      This includes a particularly nasty leak in the shower code that caused
      several hundred bytes to be lost _per event_.
      e1f461e0
  23. Jan 06, 2019
  24. Dec 20, 2018
  25. Dec 19, 2018
  26. Nov 28, 2018
Loading