File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -43,14 +43,15 @@ struct FT0DigParam : o2::conf::ConfigurableParamHelper<FT0DigParam> {
4343 float mNoiseVar = 0.1 ; // noise level
4444 float mNoisePeriod = 1 / 0.9 ; // GHz low frequency noise period;
4545 short mTime_trg_gate = 153 ; // #channels as in TCM as in Pilot beams ('OR gate' setting in TCM tab in ControlServer)
46- short mTime_trg_vertex_gate = 100 ; // #channels as in TCM as in Pilot beams ('OR gate' setting in TCM tab in ControlServer)
46+ short mTime_trg_vertex_gate = 100 ; // #channels as in TCM for VTX trigger
4747 float mAmpThresholdForReco = 5 ; // only channels with amplitude higher will participate in calibration and collision time: 0.3 MIP
4848 short mTimeThresholdForReco = 1000 ; // only channels with time below will participate in calibration and collision time
4949
5050 float mMV_2_Nchannels = 2 .; // amplitude channel 7 mV ->14channels
5151 float mMV_2_NchannelsInverse = 0.5 ; // inverse amplitude channel 7 mV ->14channels (nowhere used)
5252
53- float Cross_Talk_Frac = 0 .05f ; // Crosstalk between channels
53+ float Cross_Talk_Frac = 0 .10f ; // Crosstalk between channels
54+ float mAmpThresholdForCrossTalkDigit = 5 .f; // Treshold for low crosstalk signals
5455
5556 O2ParamDef (FT0DigParam, " FT0DigParam" );
5657};
Original file line number Diff line number Diff line change @@ -489,17 +489,24 @@ void Digitizer::storeBC(BCCache& bc,
489489 finalAmp[nb2] += directXtalk;
490490 finalAmp[diag] += diagXtalk;
491491
492- auto propagateIfEmpty = [&](int dst) {
493- if (!chValid[dst]) {
494- chValid[dst] = true ;
495- chTime[dst] = chTime[src];
496- chChain[dst] = chChain[src];
497- }
498- };
492+ if (!chValid[nb1] && directXtalk >= params.mAmpThresholdForCrossTalkDigit ) {
493+ chValid[nb1] = true ;
494+ chTime[nb1] = chTime[src];
495+ chChain[nb1] = chChain[src];
496+ }
497+
498+ if (!chValid[nb2] && directXtalk >= params.mAmpThresholdForCrossTalkDigit ) {
499+ chValid[nb2] = true ;
500+ chTime[nb2] = chTime[src];
501+ chChain[nb2] = chChain[src];
502+ }
503+
504+ if (!chValid[diag] && diagXtalk >= params.mAmpThresholdForCrossTalkDigit ) {
505+ chValid[diag] = true ;
506+ chTime[diag] = chTime[src];
507+ chChain[diag] = chChain[src];
508+ }
499509
500- propagateIfEmpty (nb1);
501- propagateIfEmpty (nb2);
502- propagateIfEmpty (diag);
503510 }
504511 }
505512
@@ -512,6 +519,12 @@ void Digitizer::storeBC(BCCache& bc,
512519 if (amp > 4095 .f ) {
513520 amp = 4095 .f ;
514521 }
522+ const bool hasPrimarySignal = (baseAmp[ipmt] > 0 .f );
523+ const bool isCrossTalkOnly = (!hasPrimarySignal && amp > 0 .f );
524+
525+ if (isCrossTalkOnly && amp < params.mAmpThresholdForCrossTalkDigit ) {
526+ continue ;
527+ }
515528
516529 const int smeared_time = chTime[ipmt];
517530 const int chain = chChain[ipmt];
You can’t perform that action at this time.
0 commit comments