Skip to content

Commit e4d1882

Browse files
authored
[ALICE3] TF3: add passive edge around each pixel (#15654)
* add passive edge to each pixel * set default to 0 * revert linkdef
1 parent 9c05590 commit e4d1882

4 files changed

Lines changed: 28 additions & 8 deletions

File tree

Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ struct ChipSpecifics {
2828
float PassiveEdgeReadOut = 0.;
2929
float PassiveEdgeTop = 0.;
3030
float PassiveEdgeSide = 0.;
31+
float PixelPassiveEdgeX = 0.;
32+
float PixelPassiveEdgeZ = 0.;
3133
float SensorLayerThicknessEff = 0.;
3234
float SensorLayerThickness = 0.;
3335

@@ -45,6 +47,11 @@ struct ITOFChipSpecifics : ChipSpecifics {
4547
NRows = 271;
4648
PitchCol = 250.00e-4;
4749
PitchRow = 100.00e-4;
50+
PassiveEdgeReadOut = 0.;
51+
PassiveEdgeTop = 0.;
52+
PassiveEdgeSide = 0.;
53+
PixelPassiveEdgeX = 0.;
54+
PixelPassiveEdgeZ = 0.;
4855
SensorLayerThicknessEff = 50.e-4;
4956
SensorLayerThickness = 50.e-4;
5057
}
@@ -59,6 +66,9 @@ struct OTOFChipSpecifics : ChipSpecifics {
5966
PitchRow = 100.00e-4;
6067
PassiveEdgeTop = 50.e-4;
6168
PassiveEdgeSide = 115.8e-4;
69+
PassiveEdgeReadOut = 50.e-4;
70+
PixelPassiveEdgeX = 0.;
71+
PixelPassiveEdgeZ = 0.;
6272
SensorLayerThicknessEff = 50.e-4;
6373
SensorLayerThickness = 50.e-4;
6474
}

Detectors/Upgrades/ALICE3/IOTOF/base/src/IOTOFBaseLinkDef.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
#pragma link off all classes;
1616
#pragma link off all functions;
1717

18-
#pragma link C++ class o2::iotof::GeometryTGeo +
18+
#pragma link C++ class o2::iotof::GeometryTGeo + ;
1919
#pragma link C++ class o2::iotof::IOTOFBaseParam + ;
2020
#pragma link C++ class o2::conf::ConfigurableParamHelper < o2::iotof::IOTOFBaseParam> + ;
2121

22-
#endif
22+
#endif

Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Segmentation.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Segmentation
4242
~Segmentation() = default;
4343

4444
void configChip(const int nCols, const int nRows, const float pitchCol, const float pitchRow, const float passiveEdgeReadOut, const float passiveEdgeTop,
45-
const float passiveEdgeSide, const float sensorLayerThicknessEff, const float sensorLayerThickness, const int subDetectorID);
45+
const float passiveEdgeSide, const float PixelPassiveEdgeX, const float PixelPassiveEdgeZ, const float sensorLayerThicknessEff, const float sensorLayerThickness, const int subDetectorID);
4646
void configChip(const ChipSpecifics& specsConfig, const int subDetectorID);
4747

4848
/// Transformation from Geant detector centered local coordinates (cm) to
@@ -181,6 +181,11 @@ inline void Segmentation::localToDetectorUnchecked(float xRow, float zCol, int&
181181
zCol += 0.5 * specsConfig.ActiveMatrixSizeCols(); // coordinate wrt left edge of Active matrix
182182
iRow = int(xRow / specsConfig.PitchRow);
183183
iCol = int(zCol / specsConfig.PitchCol);
184+
// check pixel passive region
185+
if (std::abs(xRow - (iRow + 0.5) * specsConfig.PitchRow) > (0.5 * specsConfig.PitchRow - specsConfig.PixelPassiveEdgeX) || std::abs(zCol - (iCol + 0.5) * specsConfig.PitchCol) > (0.5 * specsConfig.PitchCol - specsConfig.PixelPassiveEdgeZ)) {
186+
iRow = iCol = -1;
187+
return;
188+
}
184189
if (xRow < 0) {
185190
iRow -= 1;
186191
}
@@ -206,6 +211,11 @@ inline bool Segmentation::localToDetector(float xRow, float zCol, int& iRow, int
206211
}
207212
iRow = int(xRow / specsConfig.PitchRow);
208213
iCol = int(zCol / specsConfig.PitchCol);
214+
// check pixel passive region
215+
if (std::abs(xRow - (iRow + 0.5) * specsConfig.PitchRow) > (0.5 * specsConfig.PitchRow - specsConfig.PixelPassiveEdgeX) || std::abs(zCol - (iCol + 0.5) * specsConfig.PitchCol) > (0.5 * specsConfig.PitchCol - specsConfig.PixelPassiveEdgeZ)) {
216+
iRow = iCol = -1;
217+
return false;
218+
}
209219
return true;
210220
}
211221

Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Segmentation.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,21 @@ Segmentation::Segmentation()
3939
} else {
4040
auto& itofPars = ITOFChipSpecificParam::Instance();
4141
auto& otofPars = OTOFChipSpecificParam::Instance();
42-
const ChipSpecifics mITofChipPars(itofPars.NCols, itofPars.NRows, itofPars.PitchCol, itofPars.PitchRow, itofPars.PassiveEdgeReadOut, itofPars.PassiveEdgeTop, itofPars.PassiveEdgeSide, itofPars.SensorLayerThicknessEff, itofPars.SensorLayerThickness);
43-
const ChipSpecifics mOTofChipPars(otofPars.NCols, otofPars.NRows, otofPars.PitchCol, otofPars.PitchRow, otofPars.PassiveEdgeReadOut, otofPars.PassiveEdgeTop, otofPars.PassiveEdgeSide, otofPars.SensorLayerThicknessEff, otofPars.SensorLayerThickness);
42+
const ChipSpecifics mITofChipPars(itofPars.NCols, itofPars.NRows, itofPars.PitchCol, itofPars.PitchRow, itofPars.PassiveEdgeReadOut, itofPars.PassiveEdgeTop, itofPars.PassiveEdgeSide, itofPars.PixelPassiveEdgeX, itofPars.PixelPassiveEdgeZ, itofPars.SensorLayerThicknessEff, itofPars.SensorLayerThickness);
43+
const ChipSpecifics mOTofChipPars(otofPars.NCols, otofPars.NRows, otofPars.PitchCol, otofPars.PitchRow, otofPars.PassiveEdgeReadOut, otofPars.PassiveEdgeTop, otofPars.PassiveEdgeSide, otofPars.PixelPassiveEdgeX, otofPars.PixelPassiveEdgeZ, otofPars.SensorLayerThicknessEff, otofPars.SensorLayerThickness);
4444

4545
configChip(mITofChipPars, 0 /* subDetectorID for iTOF */);
4646
configChip(mOTofChipPars, 1 /* subDetectorID for oTOF */);
4747
}
4848
}
4949

5050
void Segmentation::configChip(const int nCols, const int nRows, const float pitchCol, const float pitchRow, const float passiveEdgeReadOut,
51-
const float passiveEdgeTop, const float passiveEdgeSide, const float sensorLayerThicknessEff, const float sensorLayerThickness, const int subDetectorID)
51+
const float passiveEdgeTop, const float passiveEdgeSide, const float pixelPassiveEdgeX, const float pixelPassiveEdgeZ, const float sensorLayerThicknessEff, const float sensorLayerThickness, const int subDetectorID)
5252
{
5353
if (subDetectorID == 0) {
54-
mITofSpecsConfig = ChipSpecifics(nCols, nRows, pitchCol, pitchRow, passiveEdgeReadOut, passiveEdgeTop, passiveEdgeSide, sensorLayerThicknessEff, sensorLayerThickness);
54+
mITofSpecsConfig = ChipSpecifics(nCols, nRows, pitchCol, pitchRow, passiveEdgeReadOut, passiveEdgeTop, passiveEdgeSide, pixelPassiveEdgeX, pixelPassiveEdgeZ, sensorLayerThicknessEff, sensorLayerThickness);
5555
} else if (subDetectorID == 1) {
56-
mOTofSpecsConfig = ChipSpecifics(nCols, nRows, pitchCol, pitchRow, passiveEdgeReadOut, passiveEdgeTop, passiveEdgeSide, sensorLayerThicknessEff, sensorLayerThickness);
56+
mOTofSpecsConfig = ChipSpecifics(nCols, nRows, pitchCol, pitchRow, passiveEdgeReadOut, passiveEdgeTop, passiveEdgeSide, pixelPassiveEdgeX, pixelPassiveEdgeZ, sensorLayerThicknessEff, sensorLayerThickness);
5757
} else {
5858
printf("Invalid subDetectorID %d. Must be 0 (iTOF) or 1 (oTOF). No configuration applied.\n", subDetectorID);
5959
}

0 commit comments

Comments
 (0)