SST code : tests
Updated on Fri, 2015-07-03 12:19. Originally created by bouchet on 2015-04-30 13:37.
pass 1
Definitions of histograms are (from left to right, top to bottom)
2) Comparison of reconstructed clusters with a) threshold =0 b) threshold =10 (see above for explanation) for a few selected wafers : here
comments :
The following slides show that applying the sstChipCorrect alone is not enough (last 2 slides). A combination of the chipCorrect table + threshold is needed to fully clean the low ADC strips.
pass 3
These slides show the difference in the MPV (landau fit) of clusters of P-side with clusters of N-side that are geometrically matched.
To recap, clusters are first formed then to form a point, geometrical criteria between their <strip> is applied.
Note : for the 3 cases studied (threshold = 0,5,10), the chipCorrect is applied
Based on the stereo-angle, the condition is |mean_sideP - mean_sideN| < 8 strips
From these slides we see that :
pass 4
(occupancy)
Occupancy is determined based on histograms that saved :
pass 5
(Overall improvements)
There are 2 improvements :
BFC chain over 1000 events :
no chipCorrect
Summary and comments :
pass6
after Thomas' update for StSstHit (in CVS)
pass7
residuals with TPC track
dU residuals : 2D, 1D
dV residuals : 2D, 1D
pass75
correlation PXL, IST, SST hits vs. global Tracks : here
correlation IST vs. SST hits : here
note : # of hits , tracks are taken from StAnalysisMaker ; there is no cut on |ZVertex|
Occupancy : occupancy is the average of (# of channels/128) per chip : here
comments :
Residuals :
all wafers : 1D, 2D
for wafers of ladder 1,2 (but not enough statistic, will rerun later) : here
pass76
- rerun the BFC chain and only keep the SST hits from package 1P-1N ( = association of only 1 cluster on P-side with only 1 clusters on N-side)
- look at the residuals ;
- some observations below
dU = xL - xLP for all wafers : here
bla blah
- offline code is at : /offline/users/bouchet/SST
- there is no calibration applied (on gain , chip masking nor correction factor) --> the tables that the code is using are the default ones
- StSstMonMaker is used to make QA histograms
- run over run 14 : /star/data03/daq/2014/166/15166010/st_physics_15166010_raw_4500019.daq
Definitions of histograms are (from left to right, top to bottom)
- # of reconstructed points per wafer
- global points coordinates
- r/phi vs. Z of points
- charge matching (all packages)
- charge matching (for 1p-1n package)
- points package (numbers are the %age over all points)
- as there are no strips rms data for run 14, the cluster seed condition (signal/rms)>5 cannot be used anymore
- instead, I used a condition signal > threshold (with threshold =10 ADC for both P and N side strips)
- this cut is symetric right now but the possibility for later tuning is done in the code (StRoot/StSstUtil/StSstWafer.cc)
- I also plan to propagate the correctFactor values (done on a chip basis) for a better cut, like signal > correctFactor*N
- BFC is run over 500 events, but only 207 events have SST data
2) Comparison of reconstructed clusters with a) threshold =0 b) threshold =10 (see above for explanation) for a few selected wafers : here
comments :
- with a threshold =0, the # of clusters on P vs. N side is very asymmetric
- most of the clusters may be noise because of their very low <ADC> (~<10ADc)
- applying a threshold =10 really clean both P and N side
- As a result, the <ADC> and # of clusters for both P and N side is similar
- test of ssdChipcorrect tables
- tuning
The following slides show that applying the sstChipCorrect alone is not enough (last 2 slides). A combination of the chipCorrect table + threshold is needed to fully clean the low ADC strips.
pass 3
These slides show the difference in the MPV (landau fit) of clusters of P-side with clusters of N-side that are geometrically matched.
To recap, clusters are first formed then to form a point, geometrical criteria between their <strip> is applied.
Note : for the 3 cases studied (threshold = 0,5,10), the chipCorrect is applied
Based on the stereo-angle, the condition is |mean_sideP - mean_sideN| < 8 strips
From these slides we see that :
- ADC distibution of raw and matched clusters is quite different
- ADC distribution for matched clusters is quite clean even w/o threshold
pass 4
(occupancy)
Occupancy is determined based on histograms that saved :
- # of fired strips per chip (max = 128) over N events
- (# of fired strips /128) per chip normalized by N events
- Distribution of (# of fired strips /128) per chip normalized by N events
Slide are there (top are P-side, bottom are N-side)
Comments :- the goal of running over few events was to check how many events is needed to get a reasonable estimation
- it seems that for 43, 423 and 2615 events analzyed (in this file), results are sensibly the same
- <side P> ~ 0.04 (4% of the chip --> ~5 strips/perchip/event) and <side N> ~0.03 (4% of the chips --> ~4 strips/chip/event)
- Results are however different when applying the chipCorrect table
- with this table, only strips for which data - correctFactor are kept
- an occupancy 10 times smaller is observed
pass 5
(Overall improvements)
There are 2 improvements :
- when using the sstChipCorrect, it removes strips with very low ADC signal (likely pure noise) --> improvement in data quality, meaning reconstructed clusters are more clean
- There is a condition in StSstDaqMaker that sets to signal=0 when the data read from the daqFile is below the value from the sstChipCorrect. However, this strip is still written to spa_strip table. As a result, we may have a lot of strips with signal =0 . While it does not affect the reconstruction, it affects the CPU/timing in StSstPointMaker/StSstDaqMaker
- run w/o chipCorrect table
- run with chipCorrect table
- run with chipCorrect table + only saved the strips for which data >0
- # of fired strips (entries in spa_strip, before the cluster reco.) vs. event Id
- # of clusters sideP vs # of clusters side N
BFC chain over 1000 events :
no chipCorrect
QA :INFO - QAInfo: Done with Event [no. 1000/run 15166010/evt. 372774/Date.Time 20140615.84249/sta 0] Real Time = 0.01 seconds Cpu Time = 0.01 seconds QA :INFO - QAInfo:EventLoop completed code 0 Sat May 9 12:36:20 EDT 2015 QA :INFO - QAInfo:Run is finished at Date/Time 20150509/123620; Total events processed :1000 and not completed: 0 QA :INFO - Run completed root4star [1] .q QA :INFO - ================================================================================= QA :INFO - QAInfo:Chain StBFChain::bfc Ast =478.09 Cpu =460.76 QA :INFO - QAInfo:Maker StRtsReaderMaker::rts_reader Ast = 0.01( 0.0%) Cpu = 0.00( 0.0%) QA :INFO - QAInfo:Maker StSstTupleMaker::SstTuple Ast = 16.48( 3.4%) Cpu = 16.41( 3.6%) QA :INFO - QAInfo:Maker StSstPointMaker::SstPoint Ast =437.89(91.6%) Cpu =437.08(94.9%) QA :INFO - QAInfo:Maker StSstDaqMaker::sst_raw Ast = 2.51( 0.5%) Cpu = 2.50( 0.5%) QA :INFO - QAInfo:Maker StEventMaker::0Event Ast = 1.29( 0.3%) Cpu = 0.66( 0.1%) QA :INFO - QAInfo:Maker St_geant_Maker::geant Ast = 0.19( 0.0%) Cpu = 0.25( 0.1%) QA :INFO - QAInfo:Maker StSstDbMaker::sstDb Ast = 0.24( 0.1%) Cpu = 0.19( 0.0%) QA :INFO - QAInfo:Maker StTpcDbMaker::tpcDB Ast = 14.24( 3.0%) Cpu = 0.39( 0.1%) QA :INFO - QAInfo:Maker StDetectorDbMaker::detDb Ast = 0.32( 0.1%) Cpu = 0.31( 0.1%) QA :INFO - QAInfo:Maker StMagFMaker::MagField Ast = 0.24( 0.1%) Cpu = 0.27( 0.1%) QA :INFO - QAInfo:Maker St_db_Maker::db Ast = 2.45( 0.5%) Cpu = 1.49( 0.3%) QA :INFO - QAInfo:Maker StIOMaker::inputStream Ast = 2.21( 0.5%) Cpu = 1.21( 0.3%) StSstTupleMaker:INFO - StSstTupleMaker::Finish() Processed 1000 events. StSstPointMaker:INFO - StSstPointMaker : Finish() with 423 processed
with chipCorrect
QA :INFO - QAInfo:Run is finished at Date/Time 20150509/122022; Total events processed :1000 and not completed: 0 QA :INFO - Run completed root4star [2] .q QA :INFO - ================================================================================= QA :INFO - QAInfo:Chain StBFChain::bfc Ast =454.36 Cpu =450.45 QA :INFO - QAInfo:Maker StRtsReaderMaker::rts_reader Ast = 0.01( 0.0%) Cpu = 0.01( 0.0%) QA :INFO - QAInfo:Maker StSstTupleMaker::SstTuple Ast = 14.54( 3.2%) Cpu = 14.65( 3.3%) QA :INFO - QAInfo:Maker StSstPointMaker::SstPoint Ast =428.77(94.4%) Cpu =427.78(95.0%) QA :INFO - QAInfo:Maker StSstDaqMaker::sst_raw Ast = 2.60( 0.6%) Cpu = 2.62( 0.6%) QA :INFO - QAInfo:Maker StEventMaker::0Event Ast = 1.10( 0.2%) Cpu = 0.83( 0.2%) QA :INFO - QAInfo:Maker St_geant_Maker::geant Ast = 0.20( 0.0%) Cpu = 0.11( 0.0%) QA :INFO - QAInfo:Maker StSstDbMaker::sstDb Ast = 0.27( 0.1%) Cpu = 0.34( 0.1%) QA :INFO - QAInfo:Maker StTpcDbMaker::tpcDB Ast = 0.48( 0.1%) Cpu = 0.39( 0.1%) QA :INFO - QAInfo:Maker StDetectorDbMaker::detDb Ast = 0.35( 0.1%) Cpu = 0.24( 0.1%) QA :INFO - QAInfo:Maker StMagFMaker::MagField Ast = 0.27( 0.1%) Cpu = 0.26( 0.1%) QA :INFO - QAInfo:Maker St_db_Maker::db Ast = 2.00( 0.4%) Cpu = 1.40( 0.3%) QA :INFO - QAInfo:Maker StIOMaker::inputStream Ast = 3.76( 0.8%) Cpu = 1.82( 0.4%) StSstTupleMaker:INFO - StSstTupleMaker::Finish() Processed 1000 events. StSstPointMaker:INFO - StSstPointMaker : Finish() with 423 processed
with chipCorrect + data>0
QA :INFO - QAInfo:Run is finished at Date/Time 20150509/124742; Total events processed :1000 and not completed: 0
QA :INFO - Run completed
root4star [1] .q
QA :INFO - =================================================================================
QA :INFO - QAInfo:Chain StBFChain::bfc Ast = 43.96 Cpu = 26.97
QA :INFO - QAInfo:Maker StRtsReaderMaker::rts_reader Ast = 0.01( 0.0%) Cpu = 0.00( 0.0%)
QA :INFO - QAInfo:Maker StSstTupleMaker::SstTuple Ast = 4.10( 9.3%) Cpu = 4.09(15.2%)
QA :INFO - QAInfo:Maker StSstPointMaker::SstPoint Ast = 17.42(39.6%) Cpu = 17.33(64.3%) QA :INFO - QAInfo:Maker StSstDaqMaker::sst_raw Ast = 1.71( 3.9%) Cpu = 1.74( 6.5%)
QA :INFO - QAInfo:Maker StEventMaker::0Event Ast = 1.18( 2.7%) Cpu = 0.61( 2.3%)
QA :INFO - QAInfo:Maker St_geant_Maker::geant Ast = 0.11( 0.3%) Cpu = 0.09( 0.3%)
QA :INFO - QAInfo:Maker StSstDbMaker::sstDb Ast = 0.15( 0.3%) Cpu = 0.10( 0.4%)
QA :INFO - QAInfo:Maker StTpcDbMaker::tpcDB Ast = 13.67(31.1%) Cpu = 0.28( 1.0%)
QA :INFO - QAInfo:Maker StDetectorDbMaker::detDb Ast = 0.23( 0.5%) Cpu = 0.21( 0.8%)
QA :INFO - QAInfo:Maker StMagFMaker::MagField Ast = 0.15( 0.3%) Cpu = 0.13( 0.5%)
QA :INFO - QAInfo:Maker St_db_Maker::db Ast = 2.29( 5.2%) Cpu = 1.27( 4.7%)
QA :INFO - QAInfo:Maker StIOMaker::inputStream Ast = 2.93( 6.7%) Cpu = 1.12( 4.2%)
StSstTupleMaker:INFO - StSstTupleMaker::Finish() Processed 1000 events.
StSstPointMaker:INFO - StSstPointMaker : Finish() with 423 processed
Summary and comments :
- from the plots we see that using sstChipCorrect improves the data quality (correlation # of clusters P-side vs. # of clusters N-side. However it does not improved ( =decrease) the CPU time of StSstDaqMaker and StSstPointMaker
- from the log file, we see that keeping only strips for which data >0 does not change the data quality but does improve considerably the CPU time of StSstDaqMaker (x1.5) and StSstPointMaker (x20)
pass6
after Thomas' update for StSstHit (in CVS)
pass7
residuals with TPC track
- StSstHit and other related classes from CVSROOT
- other sst codes from /offline/user/bouchet/SST
- bfc chain : DbV20150316 P2014a pxlHit istHit sst_daq sptt btof mtd mtdCalib BEmcChkStat CorrX OSpaceZ2 OGridLeak3D -hitfilt HftMatTree
- 20 events of /star/data03/daq/2014/166/15166010/st_physics_15166010_raw_4500019.daq
dU residuals : 2D, 1D
dV residuals : 2D, 1D
pass75
- bfc chain : DbV20150316 P2014a pxlHit istHit sstHit btof mtd mtdCalib BEmcChkStat CorrX OSpaceZ2 OGridLeak3D -hitfilt HftMatTree
- 500 events of /star/data03/daq/2014/166/15166010/st_physics_15166010_raw_4500019.daq
- masking chip table
correlation PXL, IST, SST hits vs. global Tracks : here
correlation IST vs. SST hits : here
note : # of hits , tracks are taken from StAnalysisMaker ; there is no cut on |ZVertex|
Occupancy : occupancy is the average of (# of channels/128) per chip : here
comments :
- correlation # of SST hits vs. Global tracks
- correlation with IST not 1:1
- from occupancy plot : <occupancy> 1% means 12.8 per chip per event
- also need to consider the final matching PN side
Residuals :
all wafers : 1D, 2D
for wafers of ladder 1,2 (but not enough statistic, will rerun later) : here
pass76
- rerun the BFC chain and only keep the SST hits from package 1P-1N ( = association of only 1 cluster on P-side with only 1 clusters on N-side)
- look at the residuals ;
- some observations below
dU = xL - xLP for all wafers : here
- there are no dependence of the residuals (dU) wafer/ladder
- these plots shows the distribution of wafers for |dU|>0.5 cm and |dU|<0.5 cm
- the same behavior is observed (as expected less entries for wafers on the edge ( = larger eta)
- there is a slight dependence (as expected) with the Pt of tracks but cannot explain the residual shape : here
- there is no dependence with the hits charge deviation : here (note that the charge deviation is the difference of ADC between clusters sideP and side N
- there is no dependence of dU vs. dV ( = zL = zLP) : here
- there is a slight dependence ( = cleaning) when requiring that the track has 1 IST fitted (BFC was run with PXL and IST in tracking) : here
bla blah
»
- bouchet's blog
- Login or register to post comments