Skip to content

Commit 0391f17

Browse files
[PWGCF] Add option to remap dead FT0 channels (#14427)
1 parent 050a2d0 commit 0391f17

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

PWGCF/TwoParticleCorrelations/Tasks/longRangeDihadronCor.cxx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ struct LongRangeDihadronCor {
111111
O2_DEFINE_CONFIGURABLE(cfgRejectFT0AOutside, bool, false, "Rejection of outer ring channels of the FT0A detector")
112112
O2_DEFINE_CONFIGURABLE(cfgRejectFT0CInside, bool, false, "Rejection of inner ring channels of the FT0C detector")
113113
O2_DEFINE_CONFIGURABLE(cfgRejectFT0COutside, bool, false, "Rejection of outer ring channels of the FT0C detector")
114+
O2_DEFINE_CONFIGURABLE(cfgRemapFT0ADeadChannels, bool, false, "If true, remap FT0A channels 60-63 to amplitudes from 92-95 respectively")
115+
O2_DEFINE_CONFIGURABLE(cfgRemapFT0CDeadChannels, bool, false, "If true, remap FT0C channels 177->145, 176->144, 178->146, 179->147, 139->115")
114116
struct : ConfigurableGroup {
115117
O2_DEFINE_CONFIGURABLE(cfgMultCentHighCutFunction, std::string, "[0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x + 10.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)", "Functional for multiplicity correlation cut");
116118
O2_DEFINE_CONFIGURABLE(cfgMultCentLowCutFunction, std::string, "[0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x - 3.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)", "Functional for multiplicity correlation cut");
@@ -250,6 +252,19 @@ struct LongRangeDihadronCor {
250252
kFT0COuterRingMin = 144,
251253
kFT0COuterRingMax = 207
252254
};
255+
enum MirroringConstants {
256+
kFT0AOuterMirror = 32,
257+
kFT0AInnerMirror = 16,
258+
kFT0COuterMirror = 32,
259+
kFT0CInnerMirror = 24
260+
};
261+
enum DeadChannels {
262+
kFT0ARemapChannelStart = 92,
263+
kFT0ARemapChannelEnd = 95,
264+
kFT0CRemapChannelStart = 144,
265+
kFT0CRemapChannelEnd = 147,
266+
kFT0CRemapChannelInnerRing = 115
267+
};
253268
std::array<float, 6> tofNsigmaCut;
254269
std::array<float, 6> itsNsigmaCut;
255270
std::array<float, 6> tpcNsigmaCut;
@@ -653,6 +668,19 @@ struct LongRangeDihadronCor {
653668
id = ft0.channelC()[iCh];
654669
id = id + Ft0IndexA;
655670
ampl = ft0.amplitudeC()[iCh];
671+
if (cfgRemapFT0CDeadChannels) {
672+
if (id == kFT0CRemapChannelInnerRing) {
673+
int dead_id = id + kFT0CInnerMirror;
674+
registry.fill(HIST("FT0Amp"), dead_id, ampl);
675+
ampl = ampl / cstFT0RelGain[iCh];
676+
registry.fill(HIST("FT0AmpCorrect"), dead_id, ampl);
677+
} else if (id >= kFT0CRemapChannelStart && id <= kFT0CRemapChannelEnd) {
678+
int dead_id = id + kFT0COuterMirror;
679+
registry.fill(HIST("FT0Amp"), dead_id, ampl);
680+
ampl = ampl / cstFT0RelGain[iCh];
681+
registry.fill(HIST("FT0AmpCorrect"), dead_id, ampl);
682+
}
683+
}
656684
if ((cfgRejectFT0CInside && (id >= kFT0CInnerRingMin && id <= kFT0CInnerRingMax)) || (cfgRejectFT0COutside && (id >= kFT0COuterRingMin && id <= kFT0COuterRingMax)))
657685
ampl = 0.;
658686
registry.fill(HIST("FT0Amp"), id, ampl);
@@ -661,6 +689,14 @@ struct LongRangeDihadronCor {
661689
} else if (fitType == kFT0A) {
662690
id = ft0.channelA()[iCh];
663691
ampl = ft0.amplitudeA()[iCh];
692+
if (cfgRemapFT0ADeadChannels) {
693+
if (id >= kFT0ARemapChannelStart && id <= kFT0ARemapChannelEnd) {
694+
int dead_id = id - kFT0AOuterMirror;
695+
registry.fill(HIST("FT0Amp"), dead_id, ampl);
696+
ampl = ampl / cstFT0RelGain[iCh];
697+
registry.fill(HIST("FT0AmpCorrect"), dead_id, ampl);
698+
}
699+
}
664700
if ((cfgRejectFT0AInside && (id >= kFT0AInnerRingMin && id <= kFT0AInnerRingMax)) || (cfgRejectFT0AOutside && (id >= kFT0AOuterRingMin && id <= kFT0AOuterRingMax)))
665701
ampl = 0.;
666702
registry.fill(HIST("FT0Amp"), id, ampl);

0 commit comments

Comments
 (0)