Replay Output Variables » History » Version 33
Sean Jeffas, 05/11/2023 09:57 AM
1 | 1 | Sean Jeffas | h1. Replay Output Variables |
---|---|---|---|
2 | 2 | Sean Jeffas | |
3 | 18 | Sean Jeffas | {{toc}} |
4 | |||
5 | 2 | Sean Jeffas | h1. Description |
6 | |||
7 | * One can search any working build of SBS-offline or Podd for “rVarDef” to find the location of these definitions. |
||
8 | * From the build src directory: grep -nr “rvardef*” . |
||
9 | 3 | Sean Jeffas | * All definitions below are recorded in the following order: { <variable extension>, <Definition>, <SBS-offline designation> } |
10 | |||
11 | h1. Tracking Definition |
||
12 | |||
13 | 5 | Sean Jeffas | * These definitions are defined in Podd. See github [https://github.com/JeffersonLab/analyzer]. |
14 | 3 | Sean Jeffas | ** THaSpectrometer.cxx |
15 | 15 | Sean Jeffas | * All definitions below are accesed from the tree with the prepend *bb.tr*. |
16 | ** Ex. *bb.tr.vz* |
||
17 | 6 | Sean Jeffas | |
18 | 10 | Sean Jeffas | h3. Track Variables |
19 | 6 | Sean Jeffas | |
20 | 11 | Sean Jeffas | <pre> |
21 | 12 | Sean Jeffas | { "tr.n", "Number of tracks", "GetNTracks()" }, |
22 | 8 | Sean Jeffas | { "tr.x", "Track x coordinate (m)", "fTracks.THaTrack.fX" }, |
23 | { "tr.y", "Track x coordinate (m)", "fTracks.THaTrack.fY" }, |
||
24 | { "tr.th", "Tangent of track theta angle", "fTracks.THaTrack.fTheta" }, |
||
25 | { "tr.ph", "Tangent of track phi angle", "fTracks.THaTrack.fPhi" }, |
||
26 | { "tr.p", "Track momentum (GeV)", "fTracks.THaTrack.fP" }, |
||
27 | { "tr.flag", "Track status flag", "fTracks.THaTrack.fFlag" }, |
||
28 | { "tr.chi2", "Track's chi2 from hits", "fTracks.THaTrack.fChi2" }, |
||
29 | { "tr.ndof", "Track's NDoF", "fTracks.THaTrack.fNDoF" }, |
||
30 | { "tr.d_x", "Detector x coordinate (m)", "fTracks.THaTrack.fDX" }, |
||
31 | { "tr.d_y", "Detector y coordinate (m)", "fTracks.THaTrack.fDY" }, |
||
32 | { "tr.d_th", "Detector tangent of theta", "fTracks.THaTrack.fDTheta" }, |
||
33 | { "tr.d_ph", "Detector tangent of phi", "fTracks.THaTrack.fDPhi" }, |
||
34 | { "tr.r_x", "Rotated x coordinate (m)", "fTracks.THaTrack.fRX" }, |
||
35 | { "tr.r_y", "Rotated y coordinate (m)", "fTracks.THaTrack.fRY" }, |
||
36 | { "tr.r_th", "Rotated tangent of theta", "fTracks.THaTrack.fRTheta" }, |
||
37 | { "tr.r_ph", "Rotated tangent of phi", "fTracks.THaTrack.fRPhi" }, |
||
38 | { "tr.tg_y", "Target y coordinate", "fTracks.THaTrack.fTY"}, |
||
39 | { "tr.tg_th", "Tangent of target theta angle", "fTracks.THaTrack.fTTheta"}, |
||
40 | { "tr.tg_ph", "Tangent of target phi angle", "fTracks.THaTrack.fTPhi"}, |
||
41 | { "tr.tg_dp", "Target delta", "fTracks.THaTrack.fDp"}, |
||
42 | { "tr.px", "Lab momentum x (GeV)", "fTracks.THaTrack.GetLabPx()"}, |
||
43 | { "tr.py", "Lab momentum y (GeV)", "fTracks.THaTrack.GetLabPy()"}, |
||
44 | { "tr.pz", "Lab momentum z (GeV)", "fTracks.THaTrack.GetLabPz()"}, |
||
45 | { "tr.vx", "Vertex x (m)", "fTracks.THaTrack.GetVertexX()"}, |
||
46 | { "tr.vy", "Vertex y (m)", "fTracks.THaTrack.GetVertexY()"}, |
||
47 | { "tr.vz", "Vertex z (m)", "fTracks.THaTrack.GetVertexZ()"}, |
||
48 | { "tr.pathl", "Pathlength from tg to fp (m)","fTracks.THaTrack.GetPathLen()"}, |
||
49 | { "tr.time", "Time of track@Ref Plane (s)", "fTracks.THaTrack.GetTime()"}, |
||
50 | { "tr.dtime", "uncer of time (s)", "fTracks.THaTrack.GetdTime()"}, |
||
51 | { "tr.beta", "Beta of track", "fTracks.THaTrack.GetBeta()"}, |
||
52 | { "tr.dbeta", "uncertainty of beta", "fTracks.THaTrack.GetdBeta()"}, |
||
53 | { "status", "Bits of completed analysis stages", "fStagesDone" } |
||
54 | 7 | Sean Jeffas | </code></pre> |
55 | 13 | Sean Jeffas | |
56 | 25 | Sean Jeffas | h1. Calorimeters, HCal and BBCal |
57 | |||
58 | * HCal and BBCal share the same class so their variable definitions are the same, but with a different prefix. |
||
59 | ** HCal variables have the prefix *sbs.hcal.* |
||
60 | ** BBCal variables have the prefix *bb.* |
||
61 | 1 | Sean Jeffas | * These definitions from the following source files defined in SBS-offline. See github for more information. |
62 | ** SBSCalorimeter.cxx |
||
63 | ** SBSGenericDetector.cxx |
||
64 | 27 | Sean Jeffas | |
65 | 28 | Sean Jeffas | h3. HCal Variable Definitions |
66 | 27 | Sean Jeffas | |
67 | 1 | Sean Jeffas | * All definitions below are accessed from the tree with the prepend *sbs.hcal*. |
68 | ** Ex. *sbs.hcal.clus_blk.atime* |
||
69 | |||
70 | 28 | Sean Jeffas | h3. BBCal (Shower + PreShower) Variable Definitions |
71 | 27 | Sean Jeffas | |
72 | * All definitions below are accessed from the tree with the prepend *bb.sh.* for Shower and *bb.ps.* for PreShower |
||
73 | ** Ex. *bb.sh.e* |
||
74 | |||
75 | 16 | Sean Jeffas | h3. ADC Variables |
76 | |||
77 | |||
78 | <pre> |
||
79 | { "adcrow", "Row for block in data vectors", "fGood.ADCrow" }), |
||
80 | { "adccol", "Col for block in data vectors", "fGood.ADCcol" }), |
||
81 | { "adcelemID", "Element ID for block in data vectors", "fGood.ADCelemID" }), |
||
82 | { "adclayer", "Layer for block in data vectors", "fGood.ADClayer" }), |
||
83 | { "ped", "Pedestal for block in data vectors", "fGood.ped" }), |
||
84 | { "a","ADC integral", "fGood.a"} ); |
||
85 | { "a_mult","ADC # hits in channel", "fGood.a_mult"} ); |
||
86 | { "a_p","ADC integral - ped", "fGood.a_p"} ); |
||
87 | { "a_c","(ADC integral - ped)*gain", "fGood.a_c"} ); |
||
88 | { "a_amp","ADC pulse amplitude", "fGood.a_amp"} ); |
||
89 | { "a_amp_p","ADC pulse amplitude -ped", "fGood.a_amp_p"} ); |
||
90 | { "a_amp_c","(ADC pulse amplitude -ped)*gain*AmpToIntRatio", "fGood.a_amp_p"} ); |
||
91 | { "a_amptrig_p","(ADC pulse amplitude -ped)*AmpToIntRatio", "fGood.a_amp_p"} ); |
||
92 | { "a_amptrig_c","(ADC pulse amplitude -ped)*gain*AmpToIntRatio", "fGood.a_amp_p"} ); |
||
93 | { "a_time","ADC pulse time", "fGood.a_time"} ); |
||
94 | { "hits.a", "All ADC inntegrals", "fRaw.a" }); |
||
95 | { "hits.a_amp", "All ADC amplitudes", "fRaw.a_amp" }); |
||
96 | { "hits.a_time", "All ADC pulse times", "fRaw.a_time" }); |
||
97 | </code></pre> |
||
98 | 17 | Sean Jeffas | |
99 | h3. ADC Waveform Variables |
||
100 | |||
101 | <pre> |
||
102 | { "samps_idx", "Index in samples vector for given row-col module", "fGood.sidx" }); |
||
103 | { "nsamps" , "Number of samples for given row-col", "fGood.nsamps"}); |
||
104 | { "samps", "Calibrated ADC samples", "fGood.samps" }); |
||
105 | { "samps_elemID", "Calibrated ADC samples", "fGood.samps_elemID" }); |
||
106 | </code></pre> |
||
107 | 19 | Sean Jeffas | |
108 | h3. TDC Variables |
||
109 | |||
110 | <pre> |
||
111 | { "tdcrow", "Row for block in data vectors", "fGood.TDCrow" }), |
||
112 | { "tdccol", "Col for block in data vectors", "fGood.TDCcol" }), |
||
113 | { "tdcelemID", "Element ID for block in data vectors", "fGood.TDCelemID" }), |
||
114 | { "tdclayer", "Layer for block in data vectors", "fGood.TDClayer" }), |
||
115 | { "tdc", "Calibrated TDC value", "fGood.t" }); |
||
116 | { "tdc_mult", "TDC # of hits per channel", "fGood.t_mult" }); |
||
117 | { "tdc_te", "Calibrated TDC trailing info", "fGood.t_te" }); |
||
118 | { "tdc_tot", "Time Over Threshold", "fGood.t_ToT" }); |
||
119 | { "hits.TDCelemID", "All TDC Element ID", "fRaw.TDCelemID" }); |
||
120 | { "hits.t", "All TDC leading edge times", "fRaw.t" }); |
||
121 | { "hits.t_te", "All TDC trailing edge times", "fRaw.t_te" }); |
||
122 | { "hits.t_tot", "All TDC Time-over-threshold", "fRaw.t_ToT" }); |
||
123 | </code></pre> |
||
124 | 20 | Sean Jeffas | |
125 | h3. Cluster Variables |
||
126 | |||
127 | <pre> |
||
128 | { "nclus", "Number of clusters meeting threshold", "fNclus" }, |
||
129 | { "e", "Energy (MeV) of largest cluster", "GetE()" }, |
||
130 | { "e_c", "Corrected Energy (MeV) of largest cluster", "GetECorrected()" }, |
||
131 | { "atimeblk", "ADC time of highest energy block in the largest cluster", "GetAtime()" }, |
||
132 | { "tdctimeblk", "TDC time of highest energy block in the largest cluster", "GetTDCtime()" }, |
||
133 | { "eblk", "Energy (MeV) of highest energy block in the largest cluster", "GetEBlk()" }, |
||
134 | { "eblk_c", "Corrected Energy (MeV) of highest energy block in the largest cluster", "GetEBlkCorrected()" }, |
||
135 | { "rowblk", "Row of block with highest energy in the largest cluster", "GetRow()" }, |
||
136 | { "colblk", "Col of block with highest energy in the largest cluster", "GetCol()" }, |
||
137 | { "x", "x-position (mm) of largest cluster", "GetX()" }, |
||
138 | { "y", "y-position (mm) of largest cluster", "GetY()" }, |
||
139 | { "nblk", "Number of blocks in the largest cluster", "GetNblk()" }, |
||
140 | { "idblk", "Logic number of block with highest energy in cluster", "GetBlkID()" }, |
||
141 | </code></pre> |
||
142 | |||
143 | h3. Cluster Member Variables |
||
144 | |||
145 | <pre> |
||
146 | { "clus.e", "Energy of cluster", "fOutclus.e"}, |
||
147 | { "clus.atime", "ADC time of cluster", "fOutclus.atime"}, |
||
148 | { "clus.tdctime", "TDC time of cluster", "fOutclus.tdctime"}, |
||
149 | { "clus.e_c","Energy calibrated of cluster", "fOutclus.e_c"}, |
||
150 | { "clus.x", "x-position of cluster", "fOutclus.x"}, |
||
151 | { "clus.y", "y-position of cluster", "fOutclus.y"}, |
||
152 | { "clus.row","block row in cluster with highest energy", "fOutclus.row" }, |
||
153 | { "clus.col","block col in cluster with highest energy", "fOutclus.col" }, |
||
154 | { "clus.id","block number in cluster", "fOutclus.id" }, |
||
155 | { "clus.nblk","number of blocks in cluster", "fOutclus.n" }, |
||
156 | { "clus.eblk", "Energy of block with highest energy in cluster", "fOutclus.blk_e"}, |
||
157 | { "clus.eblk_c","Energy calibrated of block with highest energy in cluster", "fOutclus.blk_e_c"}, |
||
158 | </code></pre> |
||
159 | |||
160 | h3. "Good" Block Variables |
||
161 | |||
162 | <pre> |
||
163 | { "goodblock.e", "Energy of good blocks", "fGoodBlocks.e"}, |
||
164 | { "goodblock.atime", "Energy of good blocks", "fGoodBlocks.ADCTime"}, |
||
165 | { "goodblock.tdctime", "Energy of good blocks", "fGoodBlocks.TDCTime"}, |
||
166 | 21 | Sean Jeffas | { "goodblock.row", "Row of good blocks", "fGoodBlocks.row"}, |
167 | { "goodblock.col", "Col of good blocks", "fGoodBlocks.col"}, |
||
168 | 23 | Sean Jeffas | { "goodblock.x", "x pos (m) of good blocks", "fGoodBlocks.x"}, |
169 | { "goodblock.y", "y pos (m) of good blocks", "fGoodBlocks.y"}, |
||
170 | { "goodblock.id", "Element ID of good blocks", "fGoodBlocks.id"}, |
||
171 | </code></pre> |
||
172 | |||
173 | 1 | Sean Jeffas | h1. GEM Definitions |
174 | 30 | Sean Jeffas | |
175 | * All definitions below are accessed from the tree with the prepend *bb.gem.* |
||
176 | 31 | Sean Jeffas | |
177 | h3. Track Variables |
||
178 | |||
179 | * These variables come from SBSGEMSpectrometerTracker.cxx |
||
180 | 33 | Sean Jeffas | |
181 | <pre> |
||
182 | { "track.ntrack", "number of tracks found", "fNtracks_found" }, |
||
183 | { "track.nhits", "number of hits on track", "fNhitsOnTrack" }, |
||
184 | { "track.x", "Track X (TRANSPORT)", "fXtrack" }, //might be redundant with spectrometer variables, but probably needed for "non-tracking" version |
||
185 | { "track.y", "Track Y (TRANSPORT)", "fYtrack" }, |
||
186 | { "track.xp", "Track dx/dz (TRANSPORT)", "fXptrack" }, |
||
187 | { "track.yp", "Track dy/dz (TRANSPORT)", "fYptrack" }, |
||
188 | { "track.chi2ndf", "Track Chi2/ndf", "fChi2Track" }, |
||
189 | { "track.besttrack", "Index of 'best' track", "fBestTrackIndex" }, |
||
190 | </code></pre> |
||
191 | |||
192 | h3. Cluster Variables |
||
193 | |||
194 | * These variables come from SBSGEMSpectrometerTracker.cxx |
||
195 | |||
196 | <pre> |
||
197 | { "hit.ngoodhits", "Total number of hits on all found tracks", "fNgoodhits" }, |
||
198 | { "hit.trackindex", "Index of track containing this hit", "fHitTrackIndex" }, |
||
199 | { "hit.module", "Module index of this hit", "fHitModule" }, |
||
200 | { "hit.layer", "Layer index of this hit", "fHitLayer" }, |
||
201 | { "hit.nstripu", "number of U strips on this hit", "fHitNstripsU" }, |
||
202 | { "hit.nstripv", "number of V strips on this hit", "fHitNstripsV" }, |
||
203 | { "hit.ustripmax", "index of u strip with max ADC in this hit", "fHitUstripMax" }, |
||
204 | { "hit.vstripmax", "index of v strip with max ADC in this hit", "fHitVstripMax" }, |
||
205 | { "hit.ustriplo", "index of minimum u strip in this hit", "fHitUstripLo" }, |
||
206 | { "hit.vstriplo", "index of minimum v strip in this hit", "fHitVstripLo" }, |
||
207 | { "hit.ustriphi", "index of maximum u strip in this hit", "fHitUstripHi" }, |
||
208 | { "hit.vstriphi", "index of maximum v strip in this hit", "fHitVstripHi" }, |
||
209 | { "hit.u", "reconstructed hit position along u", "fHitUlocal" }, |
||
210 | { "hit.v", "reconstructed hit position along v", "fHitVlocal" }, |
||
211 | { "hit.xlocal", "reconstructed local x position of hit (internal module coordinates)", "fHitXlocal" }, |
||
212 | { "hit.ylocal", "reconstructed local y position of hit (internal module coordinates)", "fHitYlocal" }, |
||
213 | { "hit.xglobal", "reconstructed global x position of hit", "fHitXglobal" }, |
||
214 | { "hit.yglobal", "reconstructed global y position of hit", "fHitYglobal" }, |
||
215 | { "hit.zglobal", "reconstructed global z position of hit", "fHitZglobal" }, |
||
216 | { "hit.umoment", "U cluster moment (consult source code or A. Puckett for definition)", "fHitUmoment" }, |
||
217 | { "hit.vmoment", "V cluster moment (consult source code or A. Puckett for definition)", "fHitVmoment" }, |
||
218 | { "hit.usigma", "U cluster rms", "fHitUsigma" }, |
||
219 | { "hit.vsigma", "V cluster rms", "fHitVsigma" }, |
||
220 | { "hit.residu", "u hit residual with fitted track (inclusive method)", "fHitResidU" }, |
||
221 | { "hit.residv", "v hit residual with fitted track (inclusive method)", "fHitResidV" }, |
||
222 | { "hit.eresidu", "u hit residual with fitted track (exclusive method)", "fHitEResidU" }, |
||
223 | { "hit.eresidv", "v hit residual with fitted track (exclusive method)", "fHitEResidV" }, |
||
224 | { "hit.ADCU", "cluster ADC sum, U strips", "fHitUADC" }, |
||
225 | { "hit.ADCV", "cluster ADC sum, V strips", "fHitVADC" }, |
||
226 | { "hit.ADCavg", "cluster ADC average", "fHitADCavg" }, |
||
227 | { "hit.ADCmaxstripU", "ADC sum of max U strip", "fHitUADCmaxstrip" }, |
||
228 | { "hit.ADCmaxstripV", "ADC sum of max V strip", "fHitVADCmaxstrip" }, |
||
229 | { "hit.ADCmaxsampU", "max sample of max U strip", "fHitUADCmaxsample" }, |
||
230 | { "hit.ADCmaxsampV", "max sample of max V strip", "fHitVADCmaxsample" }, |
||
231 | { "hit.ADCmaxsampUclust", "max U cluster-summed ADC time sample", "fHitUADCmaxclustsample" }, |
||
232 | { "hit.ADCmaxsampVclust", "max V cluster-summed ADC time sample", "fHitVADCmaxclustsample" }, |
||
233 | { "hit.ADCasym", "Hit ADC asymmetry: (ADCU - ADCV)/(ADCU + ADCV)", "fHitADCasym" }, |
||
234 | { "hit.Utime", "cluster timing based on U strips", "fHitUTime" }, |
||
235 | { "hit.Vtime", "cluster timing based on V strips", "fHitVTime" }, |
||
236 | { "hit.UtimeMaxStrip", "cluster timing based on U strips", "fHitUTimeMaxStrip" }, |
||
237 | { "hit.VtimeMaxStrip", "cluster timing based on V strips", "fHitVTimeMaxStrip" }, |
||
238 | { "hit.deltat", "cluster U time - V time", "fHitDeltaT" }, |
||
239 | { "hit.Tavg", "hit T average", "fHitTavg" }, |
||
240 | { "hit.isampmaxUclust", "peak time sample in cluster-summed U ADC samples", "fHitIsampMaxUclust" }, |
||
241 | { "hit.isampmaxVclust", "peak time sample in cluster-summed V ADC samples", "fHitIsampMaxVclust" }, |
||
242 | { "hit.isampmaxUstrip", "peak time sample in max U strip", "fHitIsampMaxUstrip" }, |
||
243 | { "hit.isampmaxVstrip", "peak time sample in max V strip", "fHitIsampMaxVstrip" }, |
||
244 | { "hit.ccor_clust", "correlation coefficient between cluster-summed U and V samples", "fHitCorrCoeffClust" }, |
||
245 | { "hit.ccor_strip", "correlation coefficient between U and V samples on strips with max ADC", "fHitCorrCoeffMaxStrip" }, |
||
246 | { "hit.ENABLE_CM_U", "Enable CM flag for max U strip in this hit", "fHitU_ENABLE_CM" }, |
||
247 | { "hit.ENABLE_CM_V", "Enable CM flag for max V strip in this hit", "fHitV_ENABLE_CM" }, |
||
248 | { "hit.CM_GOOD_U", "Enable CM flag for max U strip in this hit", "fHitU_CM_GOOD" }, |
||
249 | { "hit.CM_GOOD_V", "Enable CM flag for max V strip in this hit", "fHitV_CM_GOOD" }, |
||
250 | { "hit.BUILD_ALL_SAMPLES_U", "Enable CM flag for max U strip in this hit", "fHitU_BUILD_ALL_SAMPLES" }, |
||
251 | { "hit.BUILD_ALL_SAMPLES_V", "Enable CM flag for max V strip in this hit", "fHitV_BUILD_ALL_SAMPLES" }, |
||
252 | { "hit.ADCfrac0_Umax", "Max U strip ADC0/ADCsum", "fHitADCfrac0_MaxUstrip" }, |
||
253 | { "hit.ADCfrac1_Umax", "Max U strip ADC1/ADCsum", "fHitADCfrac1_MaxUstrip" }, |
||
254 | { "hit.ADCfrac2_Umax", "Max U strip ADC2/ADCsum", "fHitADCfrac2_MaxUstrip" }, |
||
255 | { "hit.ADCfrac3_Umax", "Max U strip ADC3/ADCsum", "fHitADCfrac3_MaxUstrip" }, |
||
256 | { "hit.ADCfrac4_Umax", "Max U strip ADC4/ADCsum", "fHitADCfrac4_MaxUstrip" }, |
||
257 | { "hit.ADCfrac5_Umax", "Max U strip ADC5/ADCsum", "fHitADCfrac5_MaxUstrip" }, |
||
258 | { "hit.ADCfrac0_Vmax", "Max V strip ADC0/ADCsum", "fHitADCfrac0_MaxVstrip" }, |
||
259 | { "hit.ADCfrac1_Vmax", "Max V strip ADC1/ADCsum", "fHitADCfrac1_MaxVstrip" }, |
||
260 | { "hit.ADCfrac2_Vmax", "Max V strip ADC2/ADCsum", "fHitADCfrac2_MaxVstrip" }, |
||
261 | { "hit.ADCfrac3_Vmax", "Max V strip ADC3/ADCsum", "fHitADCfrac3_MaxVstrip" }, |
||
262 | { "hit.ADCfrac4_Vmax", "Max V strip ADC4/ADCsum", "fHitADCfrac4_MaxVstrip" }, |
||
263 | { "hit.ADCfrac5_Vmax", "Max V strip ADC5/ADCsum", "fHitADCfrac5_MaxVstrip" }, |
||
264 | { "nlayershit", "number of layers with any strip fired", "fNlayers_hit" }, |
||
265 | { "nlayershitu", "number of layers with any U strip fired", "fNlayers_hitU" }, |
||
266 | { "nlayershitv", "number of layers with any V strip fired", "fNlayers_hitV" }, |
||
267 | { "nlayershituv", "number of layers with at least one 2D hit", "fNlayers_hitUV" }, |
||
268 | { "nstripsu_layer", "total number of U strips fired by layer", "fNstripsU_layer" }, |
||
269 | { "nstripsv_layer", "total number of V strips fired by layer", "fNstripsV_layer" }, |
||
270 | { "nclustu_layer", "total number of U clusters by layer", "fNclustU_layer" }, |
||
271 | { "nclustv_layer", "total number of V clusters by layer", "fNclustV_layer" }, |
||
272 | { "n2Dhit_layer", "total_number of 2D hits by layer", "fN2Dhit_layer" }, |
||
273 | </code></pre> |