- Nov 21, 2019
-
-
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.
-
- May 31, 2019
-
-
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.
-
- May 12, 2019
-
-
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.
-
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.
-
- May 02, 2019
-
-
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).
-
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
-
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
-
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
-
- Apr 25, 2019
-
-
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.
-
Stephen A. Wood authored
-
- Apr 11, 2019
-
-
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.
-
- Feb 17, 2019
-
-
Mark K Jones authored
-
- Feb 16, 2019
-
-
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
-
- Feb 13, 2019
-
-
Stephen A. Wood authored
-
- Jan 10, 2019
-
-
Stephen A. Wood authored
-
- Jan 07, 2019
-
-
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.
-
Stephen A. Wood authored
-
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 ...)
-
Ole Hansen authored
This includes a particularly nasty leak in the shower code that caused several hundred bytes to be lost _per event_.
-
- Jan 06, 2019
-
-
Ole Hansen authored
-
- Dec 20, 2018
-
-
Stephen A. Wood authored
-
- Dec 19, 2018
-
-
Ole Hansen authored
-
Ole Hansen authored
Currently both CMake and SCons build not only libPodd, but also libHallA, even though it is not required for hcana. hcana is linked only against libPodd, however, so libHallA is simply a spurious byproduct.
-
Whitney Armstrong authored
-
- Nov 28, 2018
-
-
Stephen A. Wood authored
-
- Nov 20, 2018
-
-
Mark Jones authored
Modify THcAerogel::CoarseProcess For each PMT, fGoodPosAdcMult.at(npmt) was being set to the total number of positive PMTs with an adc hit and fGoodNegAdcMult.at(npmt) was being set to the total number of negative PMTs with an adc hit. To be like the other dectectors make fGoodPosAdcMult.at(npmt) and GoodNegAdcMult.at(npmt) be the number of adc hits for that particular PMT.
-
- Nov 19, 2018
-
-
Stephen A. Wood authored
For KaonLT, the kPulsePedestal values being returned for the helicity signal channels was 0 and 16380. For SIDIS, the values for off and on are ~2000 and ~1400. Made the default threshold 8000 instead of 1000. Also added an optional parameter, "helicity_fadcthreshold" so that this threshold can be changed at run time.
-
- Nov 09, 2018
-
-
Stephen A. Wood authored
Undoes delayed helicity reporting by learning seed of pseudo random sequence used by injector helicity electronics. This detector class should be added to the Trigger apparatus. Delivers the global variables "hel" and "helrep". "helrep" is the reported delayed helicity and "hel" is the actual helicity. + and - helicity are reported as +1 and -1. If the event is during a MPS settling period, then the helicity variables are zero. For the first few seconds of a run, the "hel" variable will be zero as the pseudo random sequence seed has not been determined. (If the trigger class is "T" and this detector is called "helicity", then these variables will be T.helicity.hel and T.helicity.helrep. By default, it is assumed that there is delayed reporting of 8 cycles and that Quartets are used. If delayed helicity reporting is not in use, then set the parameter "helicity_delay" to zero.
-
Stephen A. Wood authored
These signals are plus and minus signals, the MPS indicator, and the start of quartet indicator. The time from the TI (with overflow detection) is also retrieved as this is needed when dealing with delayed helicity reporting. The helicity signals are in FADC250 channels. The roc/slot/channel assignments for these signals are currently hardwired into the code.
-
Stephen A. Wood authored
-
- Nov 06, 2018
-
-
Mark Jones authored
Add the tree variable goodAdcMult which is the number of raw ADC pulses in an ADC channel per event for a given shower array block.
-
- Nov 01, 2018
-
-
Eric Pooser authored
Fix problems in THcTrigDet.cxx
-
Eric Pooser authored
-
Mark Jones authored
1) Read-in of the trigger reference time cuts was in ReadDatabase method when it should be in Init method. Moved to the Init method before call to InitHitList where the reference cuts are used. 2) Modified the selection of the good TDC hit for filling the TdcTimeRaw and TdcTime. Previosly used the TdcTime but not picks the TDC hit with the TdcTimeRaw that is within the time min and max windows that can be set by parameters. Default windows are min=0 and max=10000. If two hits in the time window then selects last hit within window. If not hits within time window then TdcTimeRaw=0 and TdcTime=0. The TdcMultiplicity is always filled.
-
Mark Jones authored
1) Read-in of the trigger reference time cuts was in ReadDatabase method when it should be in Init method. Moved to the Init method before call to InitHitList where the reference cuts are used. 2) Modified the selection of the good TDC hit for filling the TdcTimeRaw and TdcTime. Previosly used the TdcTime but not picks the TDC hit with the TdcTimeRaw that is within the time min and max windows that can be set by parameters. Default windows are min=0 and max=10000. If two hits in the time window then selects last hit within window. If not hits within time window then TdcTimeRaw=0 and TdcTime=0. The TdcMultiplicity is always filled.
-
- Oct 22, 2018
-
-
Mark Jones authored
1) THcTrigDet a) Modify code to use string vector fTrigNames to identify which of the trigger trigger detector TDC signals to use for coincidence timing. This replaces the hard-coded names. The integer array fTrigId[4] keeps track of the array ID in the overall fTDcNames vector that goes with the fTrigNames[4] b) The fTrigNames must be in order of SHMS ROC1, HMS ROC1, SHMS ROC2 and HMS ROC2. c) Default names are "pTRIG1_ROC1","pTRIG4_ROC1","pTRIG1_ROC2","pTRIG4_ROC2" The parameter is t_coin_trigNames For example: t_coin_trigNames="pTRIG1_ROC1 pTRIG4_ROC1 pTRIG1_ROC2 pTRIG4_ROC2" This parameter is read-in and the split into a string vector fTrigNames. d) In HcTrigDet::ReadDatabase , all members of fTrigID array are set to -1 then a loop over all Tdc in the trigger detector looks for match between fTdcNames amd fTrigNames to set fTrigId. If match not found the fTrigId = -1. e) In THcTrigDet.h made new method Get_CT_TrigTime(Int_t ii) to be used in in THcCoinTime to get the 4 trigger times: SHMS ROC1 (ii=0), HMS ROC1 (ii=1), SHMS ROC2 (ii=2) and HMS ROC2 (ii=3). If fTrigId[ii]=0 then it returns 0 otherwise returns fTdcTime[fTrigID[ii]]. 2) THcCoinTime a) Previously used the raw trigger times and had a hard-coded 0.1 ns/channel conversion. Now use the trigger times which already are in ns using the ns/channel conversion set in the TrigDet. b) Now use the new TrgiDet method Get_CT_TrigTime(ii) to get the trigger times for SHMS ROC1, HMS ROC1, SHMS ROC2 and HMS ROC2.
-
- Oct 05, 2018
-
-
Mark Jones authored
Added TClonesArray* fRawHits which an array of THcDCHit object for all hits in the drift chamber. This is filled during Process method. Added tree variable raw.wirenum whihc is array of wire numbers for all hits in the drift chamber.
-
- Sep 20, 2018
-
-
Yero1990 authored
* updated mispointing calculations * added TMath::Abs() for HMS angles, since it has a '-' sign in the kin. file
-
Stephen A. Wood authored
Don't confuse index of scalers with slot number See https://github.com/JeffersonLab/analyzer/commit/cd7c26b5b1161115a0e35a4824148b78a189e986 NOTE: This changes the format of the "variable" lines in the db map file that defines the scaler layout. The number after the variable directive is now the slot number instead of the index of which scaler module (starting from zero) is being used. Updated DBASE/db_PScalevt.dat and DBASE/db_HScalevt.dat files which have been generated by an updated MAPS/SCALERS/make_scaler_db.py. This change is made so that the "variable" line format is the same as used in THaScalerEvtHandler.cxx.
-
- Sep 17, 2018
-
-
Stephen A. Wood authored
Determine readout side in THcDriftChamberPlane at initialization time.
-