Skip to content

Commit 2abbcf4

Browse files
wpierozakwpierozak
authored andcommitted
Implemented side-wise amplitude condition check in FDD reco
1 parent 79c8499 commit 2abbcf4

3 files changed

Lines changed: 13 additions & 16 deletions

File tree

‎DataFormats/Detectors/FIT/FDD/include/DataFormatsFDD/FDDRecoConfig.h‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
namespace o2::fdd
1919
{
2020
struct FDDRecoConfig : o2::conf::ConfigurableParamHelper<FDDRecoConfig> {
21-
enum DetectorSide {SideA = 0, SideC = 1}
21+
enum DetectorSide { SideA = 0,
22+
SideC = 1 };
2223
int16_t ChannelAmplitudeUpper[2] = {4096, 4096};
2324
int16_t ChannelAmplitudeLower[2] = {6, 0};
2425

@@ -39,7 +40,7 @@ struct FDDRecoConfig : o2::conf::ConfigurableParamHelper<FDDRecoConfig> {
3940
return (flags & TriggerBitsValidationMask) == TriggerBitsValid;
4041
}
4142

42-
int16_t CollisionTimeAmpltudeUpper[2]= {4096, 4096};
43+
int16_t CollisionTimeAmpltudeUpper[2] = {4096, 4096};
4344
int16_t CollisionTimeAmplitudeLower[2] = {6, 0};
4445
int16_t CollisionTimeTimeLower = -500;
4546
int16_t CollisionTimeTimeUpper = 500;

‎Detectors/FIT/FDD/reconstruction/include/FDDReconstruction/Reconstructor.h‎

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ class Reconstructor
4444
private:
4545
static constexpr uint8_t coincidencePairs[Nchannels] = {4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, 8, 9, 10, 11};
4646

47-
bool isInAmplitudeWindow(int16_t amplitude)
47+
bool isInAmplitudeWindow(int16_t amplitude, FDDRecoConfig::DetectorSide side)
4848
{
49-
return amplitude > FDDRecoConfig::Instance().ChannelAmplitudeLower && amplitude < FDDRecoConfig::Instance().ChannelAmplitudeUpper;
49+
return amplitude > FDDRecoConfig::Instance().ChannelAmplitudeLower[side] && amplitude < FDDRecoConfig::Instance().ChannelAmplitudeUpper[side];
5050
}
5151
bool isInTimeWindow(int16_t time)
5252
{
@@ -57,9 +57,9 @@ class Reconstructor
5757
return FDDRecoConfig::Instance().isChannelDataGood(channelBits);
5858
}
5959

60-
bool isInCollisionTimeAmplitudeWindow(int16_t amplitude)
60+
bool isInCollisionTimeAmplitudeWindow(int16_t amplitude, FDDRecoConfig::DetectorSide side)
6161
{
62-
return amplitude > FDDRecoConfig::Instance().CollisionTimeAmplitudeLower && amplitude < FDDRecoConfig::Instance().CollisionTimeAmpltudeUpper;
62+
return amplitude > FDDRecoConfig::Instance().CollisionTimeAmplitudeLower[side] && amplitude < FDDRecoConfig::Instance().CollisionTimeAmpltudeUpper[side];
6363
}
6464
bool isInCollisionTimeTimeWindow(int16_t time)
6565
{
@@ -70,14 +70,9 @@ class Reconstructor
7070
return FDDRecoConfig::Instance().isChannelDataGoodForCollisionTime(channelBits);
7171
}
7272

73-
bool checkSwOrGateConditions(const ChannelData& channelData)
73+
bool checkSwOrGateConditions(const ChannelData& channelData, FDDRecoConfig::DetectorSide side)
7474
{
75-
bool isAmplitudeInRange = false;
76-
if (channelData.mPMNumber >= sSideAStartId) {
77-
isAmplitudeInRange = channelData.mChargeADC > FDDRecoConfig::Instance().SwOrTriggerAmplitudeLowThresholdSideA && channelData.mChargeADC < FDDRecoConfig::Instance().SwOrTriggerAmplitudeHighThresholdSideA;
78-
} else {
79-
isAmplitudeInRange = channelData.mChargeADC > FDDRecoConfig::Instance().SwOrTriggerAmplitudeLowThresholdSideC && channelData.mChargeADC < FDDRecoConfig::Instance().SwOrTriggerAmplitudeHighThresholdSideC;
80-
}
75+
bool isAmplitudeInRange = channelData.mChargeADC > FDDRecoConfig::Instance().SwOrTriggerAmplitudeLowThreshold[side] && channelData.mChargeADC < FDDRecoConfig::Instance().SwOrTriggerAmplitudeHighThreshold[side];
8176
bool isInTimeWindow = std::abs(channelData.mTime) < FDDRecoConfig::Instance().SwOrGate;
8277
return isAmplitudeInRange && isInTimeWindow && FDDRecoConfig::Instance().isChannelDataGoodForSwTrigger(channelData.mFEEBits);
8378
}

‎Detectors/FIT/FDD/reconstruction/src/Reconstructor.cxx‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ void Reconstructor::process(o2::fdd::Digit const& digitBC, gsl::span<const o2::f
5353
LOG(debug) << "Channel " << channelData.mPMNumber << " is dead - discarding data";
5454
continue;
5555
}
56-
if (!isInAmplitudeWindow(channelData.mChargeADC) || !isInTimeWindow(channelData.mTime) || !isChannelDataGood(channelData.mFEEBits)) {
56+
const auto side = channelData.mPMNumber >= sSideAStartId ? FDDRecoConfig::SideA : FDDRecoConfig::SideC;
57+
if (!isInAmplitudeWindow(channelData.mChargeADC, side) || !isInTimeWindow(channelData.mTime) || !isChannelDataGood(channelData.mFEEBits)) {
5758
continue;
5859
}
5960
const auto& chNum = channelData.mPMNumber;
@@ -63,7 +64,7 @@ void Reconstructor::process(o2::fdd::Digit const& digitBC, gsl::span<const o2::f
6364
storedEntries++;
6465

6566
if (FDDRecoConfig::Instance().SwTriggerEnabled) {
66-
coincidencePairsOrTrg[chNum] |= checkSwOrGateConditions(channelData);
67+
coincidencePairsOrTrg[chNum] |= checkSwOrGateConditions(channelData, side);
6768
coincidencePairsTime[chNum] = channelData.mTime;
6869
if (FDDRecoConfig::Instance().SwTriggerCoincidenceMode && coincidencePairsOrTrg[chNum] && coincidencePairsOrTrg[coincidencePairs[chNum]]) {
6970
if (chNum >= sSideAStartId) {
@@ -88,7 +89,7 @@ void Reconstructor::process(o2::fdd::Digit const& digitBC, gsl::span<const o2::f
8889
}
8990
}
9091

91-
if (!isChannelDataGoodForCollisionTime(channelData.mFEEBits) || !isInCollisionTimeAmplitudeWindow(channelData.mChargeADC) || !isInCollisionTimeTimeWindow(channelData.mTime)) {
92+
if (!isChannelDataGoodForCollisionTime(channelData.mFEEBits) || !isInCollisionTimeAmplitudeWindow(channelData.mChargeADC, side) || !isInCollisionTimeTimeWindow(channelData.mTime)) {
9293
continue;
9394
}
9495

0 commit comments

Comments
 (0)