@@ -544,9 +544,27 @@ struct HadronNucleiCorrelation {
544544 bool isTPCElRejection = rejectionEl && track.beta () < betahasTOFthr && track.pt () < pTthrdeTPCEl && track.tpcNSigmaEl () >= nsigmaElDe;
545545 bool isITSPID = track.itsNSigmaDe () > nsigmaITSDe;
546546
547- if (isTPCPID) {
548- if (track.pt () < pTthrdeTOF) {
549- if (!doITSPID || isITSPID) {
547+ bool isQuadraticPID = TMath::Sqrt (track.tpcNSigmaDe () * track.tpcNSigmaDe () + track.tofNSigmaDe () * track.tofNSigmaDe ()) < nsigmaTPC;
548+
549+ if (!doQuadraticPID) {
550+ if (isTPCPID) {
551+ if (track.pt () < pTthrdeTOF) {
552+ if (!doITSPID || isITSPID) {
553+ if (sign > 0 ) {
554+ if (track.sign () > 0 ) {
555+ isDeuteron = true ;
556+ } else if (track.sign () < 0 ) {
557+ isDeuteron = false ;
558+ }
559+ } else if (sign < 0 ) {
560+ if (track.sign () > 0 ) {
561+ isDeuteron = false ;
562+ } else if (track.sign () < 0 ) {
563+ isDeuteron = true ;
564+ }
565+ }
566+ }
567+ } else if (isTPCElRejection) {
550568 if (sign > 0 ) {
551569 if (track.sign () > 0 ) {
552570 isDeuteron = true ;
@@ -560,22 +578,42 @@ struct HadronNucleiCorrelation {
560578 isDeuteron = true ;
561579 }
562580 }
563- }
564- } else if (isTPCElRejection) {
565- if (sign > 0 ) {
566- if (track.sign () > 0 ) {
567- isDeuteron = true ;
568- } else if (track.sign () < 0 ) {
569- isDeuteron = false ;
581+ } else if (isTOFPID) {
582+ if (sign > 0 ) {
583+ if (track.sign () > 0 ) {
584+ isDeuteron = true ;
585+ } else if (track.sign () < 0 ) {
586+ isDeuteron = false ;
587+ }
588+ } else if (sign < 0 ) {
589+ if (track.sign () > 0 ) {
590+ isDeuteron = false ;
591+ } else if (track.sign () < 0 ) {
592+ isDeuteron = true ;
593+ }
570594 }
571- } else if (sign < 0 ) {
572- if (track.sign () > 0 ) {
573- isDeuteron = false ;
574- } else if (track.sign () < 0 ) {
575- isDeuteron = true ;
595+ }
596+ }
597+ } else {
598+ if (track.pt () < pTthrprTOF) {
599+ if (isTPCPID) {
600+ if (!doITSPID || isITSPID) {
601+ if (sign > 0 ) {
602+ if (track.sign () > 0 ) {
603+ isDeuteron = true ;
604+ } else if (track.sign () < 0 ) {
605+ isDeuteron = false ;
606+ }
607+ } else if (sign < 0 ) {
608+ if (track.sign () > 0 ) {
609+ isDeuteron = false ;
610+ } else if (track.sign () < 0 ) {
611+ isDeuteron = true ;
612+ }
613+ }
576614 }
577615 }
578- } else if (isTOFPID ) {
616+ } else if (isQuadraticPID ) {
579617 if (sign > 0 ) {
580618 if (track.sign () > 0 ) {
581619 isDeuteron = true ;
0 commit comments