@@ -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