- bouchet's home page
- Posts
- 2016
- 2015
- December (1)
- November (3)
- October (2)
- September (2)
- August (2)
- June (2)
- April (5)
- March (2)
- February (3)
- January (2)
- 2014
- December (2)
- November (2)
- October (3)
- September (2)
- August (3)
- July (1)
- June (3)
- May (6)
- April (6)
- March (1)
- February (2)
- January (1)
- 2013
- December (2)
- November (3)
- October (3)
- September (4)
- August (1)
- July (1)
- May (4)
- April (6)
- March (4)
- February (3)
- 2012
- 2011
- December (2)
- November (2)
- October (4)
- September (1)
- August (2)
- July (6)
- June (2)
- May (3)
- April (3)
- March (2)
- 2010
- 2009
- December (2)
- November (1)
- October (3)
- September (1)
- August (1)
- July (1)
- June (2)
- April (1)
- March (2)
- February (2)
- January (1)
- 2008
- My blog
- Post new blog entry
- All blogs
StPxlRawHitMaker : review
- code is at :
/star/institutions/ksu/bouchet/PXLRAWHITMAKER/offline/hft/StRoot
This blog entry only explains the use of pxlRowColumnStatus and pxlSensorStatus tables used in StPxlRawHitMaker.
Details for these 2 tables can be found here and here, based on Dmitry's proposal
The tables are retrieved in
Int_t StPxlRawHitMaker::InitRun(Int_t runnumber)
2 booleans (doCalibSensor and doCalibRowColumn) are initialized to false :
- if tables are found, they are changed to true (means use the tables for masking sensors and/or rows/column
- if no tables are found, they remain false
void StPxlRawHitMaker::DecodeWord(UInt_ val)and
void StPxlRawhitMaker::DecodeStateN(Int_t val)
In the first method : if doCalibSensor == true and of the flag of sensor is >0 and < 10, pxlRawHitCollection are filled in this sensor.
In doCalibSensor == false (means no table), no selection is done about the sensor's flag --> pxlRawHitCollection is done for all sensors
In the second method, if doCalibRowColumn is true, we retrieve the status of each column and row that make a StPxlRawHit.
If the status is 1, booleans passCol and passRow switch to true (it means good row and good column)
If doCalibRowColumn is false, passCol and passRow are automatically set to true
- Coding of row/column
row_Id = 960 * sensor_Id + current row
with 0 < sensor_Id < 400
0< current column < 960
0< current row < 928
- Instructions to run :
- get the PXL codes from offline/hft
- get the updated StPxlRawHitMaker from /star/institutions/ksu/bouchet/PXLRAWHITMAKER/offline/hft/StRoot/StPxlRawHitMaker
- copy /star/institutions/ksu/bouchet/PXLRAWHITMAKER/offline/hft/StarDb : it contains 2 tables (pxlRowColumnStatus and pxlSensorStatus)
- compile
- copy and run the bfc chain script : /star/institutions/ksu/bouchet/PXLRAWHITMAKER/offline/hft/runBFC.sh
- update : 09/25
const int nPxlSectors = 10;
const int nPxlLaddersPerSector = 4;
const int nPxlSensorsPerLadder = 10;
const int nPxlColumnsOnSensor = 960;
const int nPxlRowsOnSensor = 928;
const float pxlPixelSize = 20.7e-4;
const float pxlCenterOfDiodeZ = 5.5e-4;
const float pxlCenterOfDiodeX = 15.1e-4;
const int pxlSensorGoodStatusMin = 0; const int pxlSensorGoodStatusMax = 10; const int pxlRowColumnGoodStatus =1;
Then the selection of good sensor looks like :
if(((doCalibSensor == true) && (sensorStatus[(m_sector-1)*40 + (m_ladder-1)*10 + (m_sensor-1)] >pxlSensorGoodStatusMin ) && (sensorStatus[(m_sector-1)*40 + (m_ladder-1)*10 + (m_sensor-1)] <pxlSensorGoodStatusMax )) || (doCalibSensor == false)) DecodeStateN(val0);and the selection of good rows/columns :
if ( gotCol == mapCol.end() ) {
passCol=false;
} else {
if(gotCol->second==pxlRowColumnGoodStatus) {passCol = true;}
}
Codes at /star/institutions/ksu/bouchet/PXLRAWHITMAKER/offline/hft/StRoothave been updated with Hao's recent updates
Groups:
- bouchet's blog
- Login or register to post comments