@@ -71,6 +71,14 @@ struct sigma0builder {
7171 Preslice<V0DerivedMCDatas> perCollisionMCDerived = o2::aod::v0data::straCollisionId;
7272 Preslice<V0StandardDerivedDatas> perCollisionSTDDerived = o2::aod::v0data::straCollisionId;
7373
74+ // pack track quality but separte also afterburner
75+ // dynamic range: 0-31
76+ enum selection : int { hasTPC = 0 ,
77+ hasITSTracker,
78+ hasITSAfterburner,
79+ hasTRD,
80+ hasTOF };
81+
7482 // Histogram registry
7583 HistogramRegistry histos{" Histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
7684
@@ -678,6 +686,18 @@ struct sigma0builder {
678686 float fPhotonNegITSChi2PerNcl = negTrackGamma.itsChi2PerNcl ();
679687 uint8_t fPhotonV0Type = gamma.v0Type ();
680688
689+ uint8_t fPhotonPosTrackCode = ((uint8_t (posTrackGamma.hasTPC ()) << hasTPC) |
690+ (uint8_t (posTrackGamma.hasITSTracker ()) << hasITSTracker) |
691+ (uint8_t (posTrackGamma.hasITSAfterburner ()) << hasITSAfterburner) |
692+ (uint8_t (posTrackGamma.hasTRD ()) << hasTRD) |
693+ (uint8_t (posTrackGamma.hasTOF ()) << hasTOF));
694+
695+ uint8_t fPhotonNegTrackCode = ((uint8_t (negTrackGamma.hasTPC ()) << hasTPC) |
696+ (uint8_t (negTrackGamma.hasITSTracker ()) << hasITSTracker) |
697+ (uint8_t (negTrackGamma.hasITSAfterburner ()) << hasITSAfterburner) |
698+ (uint8_t (negTrackGamma.hasTRD ()) << hasTRD) |
699+ (uint8_t (negTrackGamma.hasTOF ()) << hasTOF));
700+
681701 // Lambda
682702 auto posTrackLambda = lambda.template posTrackExtra_as <dauTracks>();
683703 auto negTrackLambda = lambda.template negTrackExtra_as <dauTracks>();
@@ -722,6 +742,18 @@ struct sigma0builder {
722742 float fLambdaNegITSChi2PerNcl = negTrackLambda.itsChi2PerNcl ();
723743 uint8_t fLambdaV0Type = lambda.v0Type ();
724744
745+ uint8_t fLambdaPosTrackCode = ((uint8_t (posTrackLambda.hasTPC ()) << hasTPC) |
746+ (uint8_t (posTrackLambda.hasITSTracker ()) << hasITSTracker) |
747+ (uint8_t (posTrackLambda.hasITSAfterburner ()) << hasITSAfterburner) |
748+ (uint8_t (posTrackLambda.hasTRD ()) << hasTRD) |
749+ (uint8_t (posTrackLambda.hasTOF ()) << hasTOF));
750+
751+ uint8_t fLambdaNegTrackCode = ((uint8_t (negTrackLambda.hasTPC ()) << hasTPC) |
752+ (uint8_t (negTrackLambda.hasITSTracker ()) << hasITSTracker) |
753+ (uint8_t (negTrackLambda.hasITSAfterburner ()) << hasITSAfterburner) |
754+ (uint8_t (negTrackLambda.hasTRD ()) << hasTRD) |
755+ (uint8_t (negTrackLambda.hasTOF ()) << hasTOF));
756+
725757 // Sigma0 candidate properties
726758 std::array<float , 3 > pVecPhotons{gamma.px (), gamma.py (), gamma.pz ()};
727759 std::array<float , 3 > pVecLambda{lambda.px (), lambda.py (), lambda.pz ()};
@@ -746,7 +778,7 @@ struct sigma0builder {
746778 fPhotonEta , fPhotonY , fPhotonPhi , fPhotonPosTPCNSigmaEl , fPhotonNegTPCNSigmaEl , fPhotonPosTPCNSigmaPi , fPhotonNegTPCNSigmaPi , fPhotonPosTPCCrossedRows ,
747779 fPhotonNegTPCCrossedRows , fPhotonPosPt , fPhotonNegPt , fPhotonPosEta ,
748780 fPhotonNegEta , fPhotonPosY , fPhotonNegY , fPhotonPsiPair ,
749- fPhotonPosITSCls , fPhotonNegITSCls , fPhotonPosITSChi2PerNcl , fPhotonNegITSChi2PerNcl ,
781+ fPhotonPosITSCls , fPhotonNegITSCls , fPhotonPosITSChi2PerNcl , fPhotonNegITSChi2PerNcl , fPhotonPosTrackCode , fPhotonNegTrackCode ,
750782 fPhotonV0Type , GammaBDTScore);
751783
752784 sigmaLambdaExtras (fLambdaPt , fLambdaMass , fAntiLambdaMass , fLambdaQt , fLambdaAlpha , fLambdaLifeTime ,
@@ -756,7 +788,7 @@ struct sigma0builder {
756788 fLambdaPrTOFNSigma , fLambdaPiTOFNSigma , fALambdaPrTOFNSigma , fALambdaPiTOFNSigma ,
757789 fLambdaPosTPCCrossedRows , fLambdaNegTPCCrossedRows , fLambdaPosPt , fLambdaNegPt , fLambdaPosEta ,
758790 fLambdaNegEta , fLambdaPosPrY , fLambdaPosPiY , fLambdaNegPrY , fLambdaNegPiY ,
759- fLambdaPosITSCls , fLambdaNegITSCls , fLambdaPosITSChi2PerNcl , fLambdaNegITSChi2PerNcl ,
791+ fLambdaPosITSCls , fLambdaNegITSCls , fLambdaPosITSChi2PerNcl , fLambdaNegITSChi2PerNcl , fLambdaPosTrackCode , fLambdaNegTrackCode ,
760792 fLambdaV0Type , LambdaBDTScore, AntiLambdaBDTScore);
761793 }
762794
0 commit comments