ssdChipCorrect table
1) new table format should be in StDb/idl
2) compile StDb
3) a new entry of the table should be placed in the local StarDb/Calibrations/ssd
4) the table is included offline (in any maker) with :
#include "tables/St_ssdChipCorrect_Table.h"
5) the size of the ssdChipCorrect is 20*16*6*2 = 3840 rows
I have changed the format of the table to include 'side' field
/*ssdChipCorrect.idl * * Table: ssdChipCorrect * * Describtion: ssd chip correction factor.once per run */ struct ssdChipCorrect { octet nLadder; //0 to 19 octet nWafer; //0 to 15 octet nChip; //0 to 96 octet side; //0,1 unsigned short nCorrect; //375 to 1024 };
As an exmaple, the first 6 rows coded in the table (for the 6 chips side P of ladder 1 wafer 1) look like :
TDataSet *CreateTable() { //
if (!gROOT->GetClass("St_ssdChipCorrect")) return 0;
ssdChipCorrect_st row[3840]={
{0,0,0,0,400},
{0,0,1,0,400},
{0,0,2,0,400},
{0,0,3,0,400},
{0,0,4,0,400},
{0,0,5,0,400}
6) the table is retrieved as shown below :
mCorrect = (St_ssdChipCorrect*)GetDataBase("Calibrations/ssd/ssdChipCorrect");
if(mCorrect){
ssdChipCorrect_st *g = mCorrect->GetTable() ;
Int_t size = mCorrect->GetNRows();
LOG_INFO<<Form("Size of gain table = %d",mCorrect->GetNRows())<<endm;
for(Int_t i=0; i<size;i++){
LOG_DEBUG<<Form(" Print entry %d : ladder=%d chip=%d side=%d correction=%f",i,g[i].nLadder,,g[i].nWafer,g[i].nChip,g[i].side,g[i].nCorrect)<<endm;
}
}
7) there is a macro at :
/star/institutions/ksu/bouchet/4Long/macros/writeCalibFile.C
that writes a table entry with only default value of noise = 400
8) The table is read in :
StRoot/StSsdPointMaker::FillChipNoiseTable()
The part of the offline code looks for any table ssdChipCorrect in the local directory StarDb/Calibrations/ssd
For now I just read all the entries but we have to implement how to use the values later in the offline reconstruction
Code location : /star/institutions/ksu/bouchet/4Long
StRoot has :
- StSsdPointMaker slightly modified to include StSstDbMaker
- StBFChain modified with option sstCalDb (which calls sstDb) and sst_daq (to use StSstDaqMaker)
- StSstDaqMaker is taken from /offline/hft/StRoot/StSstDaqMaker
There are also 2 scripts to run the BFC chain for the SSD reconstruction only (no tracking, PXL, etc ...)
- bouchet's blog
- Login or register to post comments