SST code : tests

pass 1
  1. offline code is at : /offline/users/bouchet/SST
  2. there is no calibration applied (on gain , chip masking nor correction factor) --> the tables that the code is using are the default ones
  3. StSstMonMaker is used to make QA histograms
  4. run over run 14 : /star/data03/daq/2014/166/15166010/st_physics_15166010_raw_4500019.daq
1) General QA histograms



Definitions of histograms are (from left to right, top to bottom)
  1. # of reconstructed points per wafer
  2. global points coordinates
  3. r/phi vs. Z of points
  4. charge matching (all packages)
  5. charge matching (for 1p-1n package)
  6. points package (numbers are the %age over all points)
comments :
  • 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 :
  1. with a threshold =0, the # of clusters on P vs. N side is very asymmetric
  2. most of the clusters may be noise because of their very low <ADC> (~<10ADc)
  3. applying a threshold =10 really clean both P and N side
  4. As a result, the <ADC> and # of clusters for both P and N side is similar
pass 2
  1. test of ssdChipcorrect tables
  2. tuning
Initial tuning of threshold was done without applying the ssdChipCorrect tables. There may be some overlap between the threshold (at the StSstWafer level) and the application of the chipCorrect tables (at the StSstDaqMaker level)

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 :
  1. ADC distibution of raw and matched clusters is quite different
  2. ADC distribution for matched clusters is quite clean even w/o threshold

pass 4
(occupancy)
Occupancy is determined based on histograms that saved :
  1. # of fired strips per chip (max = 128) over N events
  2. (# of fired strips /128) per chip normalized by N events
  3. Distribution of (# of fired strips /128) per chip normalized by N events

Slide are there  (top are P-side, bottom are N-side)

Comments :
  1. the goal of running over few events was to check how many events is needed to get a reasonable estimation
  2. it seems that for 43, 423 and 2615 events analzyed (in this file), results are sensibly the same
    1. <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)
  3. Results are however different when applying the chipCorrect table
    1. with this table, only strips for which data - correctFactor are kept
    2. an occupancy 10 times smaller is observed

pass 5
(Overall improvements)
There are 2 improvements :
  1. 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
  2. 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
Tests :
  1. run w/o chipCorrect table
  2. run with chipCorrect table
  3. run with chipCorrect table + only saved the strips for which data >0
Plots are here  
  1. # of fired strips (entries in spa_strip, before the cluster reco.) vs. event Id
  2. # 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 :
  1. 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
  2. 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
global positions of matchHits : here
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 plots
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
  1. there are no dependence of the residuals (dU) wafer/ladder
    1. these plots shows the distribution of wafers for |dU|>0.5 cm and |dU|<0.5 cm
    2. the same behavior is observed (as expected less entries for wafers on the edge ( = larger eta)
  2. there is a slight dependence (as expected) with the Pt of tracks but cannot explain the residual shape : here 
  3. 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  
  4. there is no dependence of dU vs. dV ( = zL = zLP) : here
  5. 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