Project

General

Profile

Replay Output Variables » History » Revision 30

Revision 29 (Sean Jeffas, 05/11/2023 09:54 AM) → Revision 30/52 (Sean Jeffas, 05/11/2023 09:55 AM)

h1. Replay Output Variables 

 {{toc}} 

 h1. Description 

 * One can search any working build of SBS-offline or Podd for “rVarDef” to find the location of these definitions. 
 * From the build src directory: grep -nr “rvardef*” . 
 * All definitions below are recorded in the following order: { <variable extension>, <Definition>, <SBS-offline designation> } 

 h1. Tracking Definition 

 * These definitions are defined in Podd. See github [https://github.com/JeffersonLab/analyzer]. 
 ** THaSpectrometer.cxx 
 * All definitions below are accesed from the tree with the prepend *bb.tr*. 
 ** Ex. *bb.tr.vz* 

 h3. Track Variables 

 <pre> 
  { "tr.n",      "Number of tracks",               "GetNTracks()" }, 
  { "tr.x",      "Track x coordinate (m)",         "fTracks.THaTrack.fX" }, 
  { "tr.y",      "Track x coordinate (m)",         "fTracks.THaTrack.fY" }, 
  { "tr.th",     "Tangent of track theta angle", "fTracks.THaTrack.fTheta" }, 
  { "tr.ph",     "Tangent of track phi angle",     "fTracks.THaTrack.fPhi" }, 
  { "tr.p",      "Track momentum (GeV)",           "fTracks.THaTrack.fP" }, 
  { "tr.flag", "Track status flag",              "fTracks.THaTrack.fFlag" }, 
  { "tr.chi2", "Track's chi2 from hits",         "fTracks.THaTrack.fChi2" }, 
  { "tr.ndof", "Track's NDoF",                   "fTracks.THaTrack.fNDoF" }, 
  { "tr.d_x",    "Detector x coordinate (m)",      "fTracks.THaTrack.fDX" }, 
  { "tr.d_y",    "Detector y coordinate (m)",      "fTracks.THaTrack.fDY" }, 
  { "tr.d_th", "Detector tangent of theta",      "fTracks.THaTrack.fDTheta" }, 
  { "tr.d_ph", "Detector tangent of phi",        "fTracks.THaTrack.fDPhi" }, 
  { "tr.r_x",    "Rotated x coordinate (m)",       "fTracks.THaTrack.fRX" }, 
  { "tr.r_y",    "Rotated y coordinate (m)",       "fTracks.THaTrack.fRY" }, 
  { "tr.r_th", "Rotated tangent of theta",       "fTracks.THaTrack.fRTheta" }, 
  { "tr.r_ph", "Rotated tangent of phi",         "fTracks.THaTrack.fRPhi" }, 
  { "tr.tg_y", "Target y coordinate",            "fTracks.THaTrack.fTY"}, 
  { "tr.tg_th", "Tangent of target theta angle", "fTracks.THaTrack.fTTheta"}, 
  { "tr.tg_ph", "Tangent of target phi angle",     "fTracks.THaTrack.fTPhi"},     
  { "tr.tg_dp", "Target delta",                  "fTracks.THaTrack.fDp"}, 
  { "tr.px",      "Lab momentum x (GeV)",          "fTracks.THaTrack.GetLabPx()"}, 
  { "tr.py",      "Lab momentum y (GeV)",          "fTracks.THaTrack.GetLabPy()"}, 
  { "tr.pz",      "Lab momentum z (GeV)",          "fTracks.THaTrack.GetLabPz()"}, 
  { "tr.vx",      "Vertex x (m)",                  "fTracks.THaTrack.GetVertexX()"}, 
  { "tr.vy",      "Vertex y (m)",                  "fTracks.THaTrack.GetVertexY()"}, 
  { "tr.vz",      "Vertex z (m)",                  "fTracks.THaTrack.GetVertexZ()"}, 
  { "tr.pathl", "Pathlength from tg to fp (m)","fTracks.THaTrack.GetPathLen()"}, 
  { "tr.time",    "Time of track@Ref Plane (s)", "fTracks.THaTrack.GetTime()"}, 
  { "tr.dtime", "uncer of time (s)",             "fTracks.THaTrack.GetdTime()"}, 
  { "tr.beta",    "Beta of track",                 "fTracks.THaTrack.GetBeta()"}, 
  { "tr.dbeta", "uncertainty of beta",           "fTracks.THaTrack.GetdBeta()"}, 
  { "status",     "Bits of completed analysis stages", "fStagesDone" } 
 </code></pre> 

 h1. Calorimeters, HCal and BBCal 

 * HCal and BBCal share the same class so their variable definitions are the same, but with a different prefix. 
 ** HCal variables have the prefix *sbs.hcal.* 
 ** BBCal variables have the prefix *bb.* 
 * These definitions from the following source files defined in SBS-offline. See github for more information. 
 ** SBSCalorimeter.cxx 
 ** SBSGenericDetector.cxx 

 h3. HCal Variable Definitions 

 * All definitions below are accessed from the tree with the prepend *sbs.hcal*. 
 ** Ex. *sbs.hcal.clus_blk.atime* 

 h3. BBCal (Shower + PreShower) Variable Definitions 

 * All definitions below are accessed from the tree with the prepend *bb.sh.* for Shower and *bb.ps.* for PreShower 
 ** Ex. *bb.sh.e* 

 h3. ADC Variables 


 <pre> 
  { "adcrow", "Row for block in data vectors",    "fGood.ADCrow" }), 
  { "adccol", "Col for block in data vectors",    "fGood.ADCcol" }), 
  { "adcelemID", "Element ID for block in data vectors",    "fGood.ADCelemID" }), 
  { "adclayer", "Layer for block in data vectors",    "fGood.ADClayer" }), 
  { "ped", "Pedestal for block in data vectors",    "fGood.ped" }), 
  { "a","ADC integral", "fGood.a"} ); 
  { "a_mult","ADC # hits in channel", "fGood.a_mult"} ); 
  { "a_p","ADC integral - ped", "fGood.a_p"} ); 
  { "a_c","(ADC integral - ped)*gain", "fGood.a_c"} ); 
  { "a_amp","ADC pulse amplitude", "fGood.a_amp"} ); 
  { "a_amp_p","ADC pulse amplitude -ped", "fGood.a_amp_p"} ); 
  { "a_amp_c","(ADC pulse amplitude -ped)*gain*AmpToIntRatio", "fGood.a_amp_p"} ); 
  { "a_amptrig_p","(ADC pulse amplitude -ped)*AmpToIntRatio", "fGood.a_amp_p"} ); 
  { "a_amptrig_c","(ADC pulse amplitude -ped)*gain*AmpToIntRatio", "fGood.a_amp_p"} ); 
  { "a_time","ADC pulse time", "fGood.a_time"} ); 
  { "hits.a",     "All ADC inntegrals",    "fRaw.a" }); 
  { "hits.a_amp",     "All ADC amplitudes",    "fRaw.a_amp" }); 
  { "hits.a_time",     "All ADC pulse times",    "fRaw.a_time" }); 
 </code></pre> 

 h3. ADC Waveform Variables 

 <pre> 
  { "samps_idx", "Index in samples vector for given row-col module", "fGood.sidx" }); 
  { "nsamps" , "Number of samples for given row-col", "fGood.nsamps"}); 
  { "samps", "Calibrated ADC samples",    "fGood.samps" }); 
  { "samps_elemID", "Calibrated ADC samples",    "fGood.samps_elemID" }); 
 </code></pre> 

 h3. TDC Variables 

 <pre> 
  { "tdcrow", "Row for block in data vectors",    "fGood.TDCrow" }), 
  { "tdccol", "Col for block in data vectors",    "fGood.TDCcol" }), 
  { "tdcelemID", "Element ID for block in data vectors",    "fGood.TDCelemID" }), 
  { "tdclayer", "Layer for block in data vectors",    "fGood.TDClayer" }), 
  { "tdc", "Calibrated TDC value", "fGood.t" }); 
  { "tdc_mult", "TDC # of hits per channel", "fGood.t_mult" }); 
  { "tdc_te", "Calibrated TDC trailing info", "fGood.t_te" }); 
  { "tdc_tot", "Time Over Threshold", "fGood.t_ToT" }); 
  { "hits.TDCelemID",     "All TDC Element ID",    "fRaw.TDCelemID" }); 
  { "hits.t",     "All TDC leading edge times",    "fRaw.t" }); 
  { "hits.t_te",     "All TDC trailing edge times",    "fRaw.t_te" }); 
  { "hits.t_tot",    "All TDC Time-over-threshold",    "fRaw.t_ToT" }); 
 </code></pre> 

 h3. Cluster Variables 

 <pre> 
  { "nclus", "Number of clusters meeting threshold", "fNclus" }, 
  { "e",        "Energy (MeV) of largest cluster",      "GetE()" }, 
  { "e_c",      "Corrected Energy (MeV) of largest cluster",      "GetECorrected()" }, 
  { "atimeblk", "ADC time of highest energy block in the largest cluster", "GetAtime()" }, 
  { "tdctimeblk", "TDC time of highest energy block in the largest cluster", "GetTDCtime()" }, 
  { "eblk",     "Energy (MeV) of highest energy block in the largest cluster",      "GetEBlk()" }, 
  { "eblk_c", "Corrected Energy (MeV) of highest energy block in the largest cluster",      "GetEBlkCorrected()" }, 
  { "rowblk", "Row of block with highest energy in the largest cluster",      "GetRow()" }, 
  { "colblk", "Col of block with highest energy in the largest cluster",      "GetCol()" }, 
  { "x",        "x-position (mm) of largest cluster", "GetX()" }, 
  { "y",        "y-position (mm) of largest cluster", "GetY()" }, 
  { "nblk",     "Number of blocks in the largest cluster",      "GetNblk()" }, 
  { "idblk",    "Logic number of block with highest energy in cluster",      "GetBlkID()" }, 
 </code></pre> 

 h3. Cluster Member Variables 

 <pre> 
  { "clus.e", "Energy of cluster", "fOutclus.e"}, 
  { "clus.atime", "ADC time of cluster", "fOutclus.atime"}, 
  { "clus.tdctime", "TDC time of cluster", "fOutclus.tdctime"}, 
  { "clus.e_c","Energy calibrated of cluster", "fOutclus.e_c"}, 
  { "clus.x", "x-position of cluster", "fOutclus.x"}, 
  { "clus.y", "y-position of cluster", "fOutclus.y"}, 
  { "clus.row","block row in cluster with highest energy",      "fOutclus.row" }, 
  { "clus.col","block col in cluster with highest energy",      "fOutclus.col" }, 
  { "clus.id","block number in cluster",      "fOutclus.id" }, 
  { "clus.nblk","number of blocks in cluster",      "fOutclus.n" }, 
  { "clus.eblk", "Energy of block with highest energy in cluster", "fOutclus.blk_e"}, 
  { "clus.eblk_c","Energy calibrated of block with highest energy in cluster", "fOutclus.blk_e_c"}, 
 </code></pre> 

 h3. "Good" Block Variables 

 <pre> 
  { "goodblock.e", "Energy of good blocks", "fGoodBlocks.e"}, 
  { "goodblock.atime", "Energy of good blocks", "fGoodBlocks.ADCTime"}, 
  { "goodblock.tdctime", "Energy of good blocks", "fGoodBlocks.TDCTime"}, 
  { "goodblock.row", "Row of good blocks", "fGoodBlocks.row"}, 
  { "goodblock.col", "Col of good blocks", "fGoodBlocks.col"}, 
  { "goodblock.x", "x pos (m) of good blocks", "fGoodBlocks.x"}, 
  { "goodblock.y", "y pos (m) of good blocks", "fGoodBlocks.y"}, 
  { "goodblock.id", "Element ID of good blocks", "fGoodBlocks.id"}, 
 </code></pre> 

 



 h1. GEM Definitions 

 * All definitions below are accessed from the tree with the prepend *bb.gem.*