quality of hits
New calculation of quality of hits
presentation at the S&C meeting (10/08) summarizing the new formula : here
- StSsdUtil/StSsdStrip.cc : propagate idTruth to spa_strip ; it was only written in sls_strip
- StSsdUtil/StSsdListStrip.cc : write only one idTruth for each strip (the one given the biggest signal contribution), the same for idHit and idMcHit(previously we allow to write up to 5 idTruth)
- StSsdPointMaker/StSsdPointMaker : change to use the new writePointToContainer() method where the quality is calculated
In this part of the code, we don't fill anymore 5 possibles IdMcHit,IdHit and IdMcTrack.
During the hit GEANT to adc strip conversion, if 2 or more GEANT hit fired the same strip :
- the adc of the strip is still the sum of the different contributions from the hits
- We keep only the idMcHit,IdHit and IdMcTrack from the biggest contribution : ie, we compare for each GEANT hit that fired this strip the resulting adc it produces and keep the IdMcHit,IdMcTrack and IdHit from this GEANT hit
before change :
for wafer 8215, we have 3 GEANT hits :
ladder=14 wafer=11 charge=0.000175 id = 150 volume id =8215 parentTrack=427
xl =-1.9065 yl =-1.0925 zl =0.00049252
ladder=14 wafer=11 charge=0.000121 id = 151 volume id =8215 parentTrack=1385
xl =-1.9235 yl =-0.8555 zl =-0.0015069
ladder=14 wafer=11 charge=0.001000 id = 152 volume id =8215 parentTrack=1385
xl =0.029499 yl =-0.2715 zl =0.00049263
StSsdPointMaker:DEBUG - PrintStripDetails() - Wafer 8215
StSsdPointMaker:DEBUG - PrintStripDetails() - 6 strip(s) on the P-side of this wafer
StSsdPointMaker:DEBUG - PrintStripDetails() - Strip/Adc/Ped/Noise/Analog
StSsdPointMaker:DEBUG - PrintStripDetails() - 317 447 116 5.5625 0
e=0 idMcHit=153 idMcTrack=1975
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 318 20 111 5.6875 0
e=0 idMcHit=153 idMcTrack=1975
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 379 614 119 5.8125 0
e=0 idMcHit=152 idMcTrack=1385
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 584 98 116 6 0
e=0 idMcHit=150 idMcTrack=427
e=1 idMcHit=151 idMcTrack=1385
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 585 21 121 6 0
e=0 idMcHit=150 idMcTrack=427
e=1 idMcHit=151 idMcTrack=1385
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 586 70 116 6 0
e=0 idMcHit=150 idMcTrack=427
e=1 idMcHit=151 idMcTrack=1385
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
After the change :
StSsdPointMaker:DEBUG - PrintStripDetails() - Wafer 8215
StSsdPointMaker:DEBUG - PrintStripDetails() - 6 strip(s) on the P-side of this wafer
StSsdPointMaker:DEBUG - PrintStripDetails() - Strip/Adc/Ped/Noise/Analog
StSsdPointMaker:DEBUG - PrintStripDetails() - 317 447 116 5.5625 0
e=0 idMcHit=153 idMcTrack=1975
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 318 20 111 5.6875 0
e=0 idMcHit=153 idMcTrack=1975
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 379 614 119 5.8125 0
e=0 idMcHit=152 idMcTrack=1385
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 584 98 116 6 0
e=0 idMcHit=150 idMcTrack=427
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 585 21 121 6 0
e=0 idMcHit=150 idMcTrack=427
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
StSsdPointMaker:DEBUG - PrintStripDetails() - 586 70 116 6 0
e=0 idMcHit=151 idMcTrack=1385
e=1 idMcHit=0 idMcTrack=0
e=2 idMcHit=0 idMcTrack=0
e=3 idMcHit=0 idMcTrack=0
e=4 idMcHit=0 idMcTrack=0
Following are the details of the charge sharing over these strips (p-side)
ladder = 14 wafer = 11
side = 0 st =0 id =584 tabDe(0)=0.000155 charge=0.000175 NId=150 McHit=150 MvTrack=427
side = 0 st =1 id =585 tabDe(1)=0.000023 charge=0.000175 NId=150 McHit=150 MvTrack=427
side = 0 st =2 id =583 tabDe(2)=0.000002 charge=0.000175 NId=150 McHit=150 MvTrack=427
side = 0 st =3 id =586 tabDe(3)=0.000000 charge=0.000175 NId=150 McHit=150 MvTrack=427
side = 0 st =0 id =585 tabDe(0)=0.000011 charge=0.000121 NId=151 McHit=151 MvTrack=1385
side = 0 st =1 id =586 tabDe(1)=0.000111 charge=0.000121 NId=151 McHit=151 MvTrack=1385
side = 0 st =2 id =584 tabDe(2)=0.000000 charge=0.000121 NId=151 McHit=151 MvTrack=1385
side = 0 st =3 id =587 tabDe(3)=0.000002 charge=0.000121 NId=151 McHit=151 MvTrack=1385
side = 0 st =0 id =379 tabDe(0)=0.001000 charge=0.001000 NId=152 McHit=152 MvTrack=1385
side = 0 st =1 id =380 tabDe(1)=0.000021 charge=0.001000 NId=152 McHit=152 MvTrack=1385
side = 0 st =2 id =378 tabDe(2)=0.000013 charge=0.001000 NId=152 McHit=152 MvTrack=1385
side = 0 st =3 id =381 tabDe(3)=0.000000 charge=0.001000 NId=152 McHit=152 MvTrack=1385
---> For example, strip 585 which had 2 contributions from hit 150 and 151, we see that :
1) contribution from hit 150 : 0.000023 MeV
2) contribution from hit 151 : 0.000011 MeV
Then it is the IdMctrack from hit 150 (ie 427) that is kept.
- Code that have to be changed : StSsdUtil/StSsdStripList.cc
Case of splitted clusters:
Result of Valgrind :
the test I did with the embedding chain failed.
But it works whenever I remove Ssd or svt from the embedding chain, or if I decreased the multiplicity.
I used Valgrind with the following chain :
void bfcMixer_TpcSvtSsd(const Int_t Nevents=1,Int_t isSvtIn=1, Int_t isSsdIn=1,
const Char_t *daqfile="/star/rcf/test/daq/2005/051/st_physics_adc_6051006_raw_1050001.daq",
const Char_t *tagfile="/star/rcf/test/embedding/cuProductionMinBias/FullField/P07ic/2005/051/st_physics_adc_6051006_raw_1050001.tags.root",
const Double_t pt_low=0.1,
const Double_t pt_high=5.0,
const Double_t eta_low=-1.0,
const Double_t eta_high=1.0,
const Int_t pid=9,
const Double_t mult = 0.1) {
- Another test :
- ssd alone, by putting isSvtIn==0 in the bfcMixer macro (and also options -srs and -SvtIn)
- svt alone, by putting isSsdIn==0 in the bfcMixer macro (and also options -srs and -SvtIn)
Results :
for ssd alone :
Fig 1 : hit quality vs energy
Fig 2 : track quality for
h1 : no ssd hit requirement (black)
h11 : mFitSsd ==0 in mMatchedpairs tree (red)
h111 : mFitSsd ==1 in mMatchedpairs tree (green)
for all histograms : mMatchedPairs.mFitPts>15 && mMatchedPairs.mPtPr>0.1 && TMath::Abs(mMatchedPairs.mEtaPr)<1
for svt alone :
the chain breaks at event 96 :
St_trg_Maker:: Daq2003 : Event has been accepted
StMaker:INFO - *** StMaker::Make() == StOK(0) ***
St_tpcdaq_Maker::Make() method called in Mode=1 DAQ=1
Pixel count = 1650297
Got through St_tpcdaq_Maker OK.
QA :INFO - QAInfo:StRTSClientFCFMaker built Sep 10 2008 23:18:43 from Tag $Name: $Id:
StRTSClientFCFMaker:INFO - <FCFMaker::Make> Making event 96, annotation 0...
StRTSClientFCFMaker:INFO - <FCFMaker::Make> StEvent exists. Not filling tphit table
StRTSClientFCFMaker:INFO - <FCFMaker::Make> Merged 2300 of 39796 calculated clusters
StRTSClientFCFMaker:INFO - <FCFMaker::Make> Only raw data available. No daq file clusters
StTpcHitMover:INFO - StTpcHitMover::Make use StEvent
StMaker:INFO - *** StMaker::Make() == StOK(0) ***
StSvtDaqMaker:INFO - *** StSvtDaqMaker::Make() == StOK(0) ***
mNumOfGeantHits = 125
*** Break *** Segmentation violation
Traceq lun = 0, level = 99
TRACEQ. In-line trace-back still not available.
Signal 11 caught without longjmp target
The valgrind report after commit (10/21) for the SSD and SVT is here
- bouchet's blog
- Login or register to post comments