@@ -322,6 +322,13 @@ struct TrackedHypertritonRecoTask {
322322 zorroEvents->GetXaxis ()->SetBinLabel (2 , " fTracked3Body" );
323323 zorroEvents->GetYaxis ()->SetBinLabel (1 , " before sel8" );
324324 zorroEvents->GetYaxis ()->SetBinLabel (2 , " after sel8" );
325+
326+ registry.add (" hTrackProtonTPCSignal" , " hTrackProtonTPCSignal" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
327+ registry.add (" hTrackPionTPCSignal" , " hTrackPionTPCSignal" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
328+ registry.add (" hTrackDeuteronTPCSignal" , " hTrackDeuteronTPCSignal" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
329+ registry.add (" hTrackProtonTPCSignalSelected" , " hTrackProtonTPCSignalSelected" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
330+ registry.add (" hTrackPionTPCSignalSelected" , " hTrackPionTPCSignalSelected" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
331+ registry.add (" hTrackDeuteronTPCSignalSelected" , " hTrackDeuteronTPCSignalSelected" , HistType::kTH2F , {{100 , -10 .0f , 10 .0f , " p/z (GeV/c)" }, {2000 , 0 .0f , 2000 .0f , " d#it{E}/d#it{x}" }});
325332 }
326333
327334 void initCCDB (aod::BCsWithTimestamps::iterator const & bc)
@@ -801,6 +808,7 @@ struct TrackedHypertritonRecoTask {
801808 candidate.daughterDCAtoSV [0 ], candidate.daughterDCAtoSV [1 ], candidate.daughterDCAtoSV [2 ],
802809 candidate.daughterDCAtoSVaverage , candidate.cosPA , candidate.ctau ,
803810 candidate.tpcNsigma [0 ], candidate.tpcNsigma [1 ], candidate.tpcNsigma [2 ], candidate.tpcNsigma [3 ],
811+ candidate.tpcSignal [0 ], candidate.tpcSignal [1 ], candidate.tpcSignal [2 ],
804812 static_cast <float >(candidate.tofNsigmaDeuteron ),
805813 candidate.averageITSClSize [0 ], candidate.averageITSClSize [1 ], candidate.averageITSClSize [2 ],
806814 static_cast <int >(candidate.tpcNCl [0 ]), static_cast <int >(candidate.tpcNCl [1 ]), static_cast <int >(candidate.tpcNCl [2 ]),
@@ -828,6 +836,7 @@ struct TrackedHypertritonRecoTask {
828836 candidate.daughterDCAtoSV [0 ], candidate.daughterDCAtoSV [1 ], candidate.daughterDCAtoSV [2 ],
829837 candidate.daughterDCAtoSVaverage , candidate.cosPA , candidate.ctau ,
830838 candidate.tpcNsigma [0 ], candidate.tpcNsigma [1 ], candidate.tpcNsigma [2 ], candidate.tpcNsigma [3 ],
839+ candidate.tpcSignal [0 ], candidate.tpcSignal [1 ], candidate.tpcSignal [2 ],
831840 static_cast <float >(candidate.tofNsigmaDeuteron ),
832841 candidate.averageITSClSize [0 ], candidate.averageITSClSize [1 ], candidate.averageITSClSize [2 ],
833842 static_cast <int >(candidate.tpcNCl [0 ]), static_cast <int >(candidate.tpcNCl [1 ]), static_cast <int >(candidate.tpcNCl [2 ]),
@@ -846,24 +855,25 @@ struct TrackedHypertritonRecoTask {
846855
847856 void fillGeneratedThreeBodyMCTable (ThreeBodyMCInfo const & info)
848857 {
849- mcVtx3BodyDatas (-1 .f ,
850- -1 .f , -1 .f , // mass, massV0
851- -1 .f , -1 .f , -1 .f , // position
852- -1 .f , -1 .f , -1 .f , // momentum
853- -1 .f , -1 .f , // chi2, trackedClSize
854- -1 .f , -1 .f , -1 .f , // proton momentum
855- -1 .f , -1 .f , -1 .f , // pion momentum
856- -1 .f , -1 .f , -1 .f , // deuteron momentum
857- -1 .f , -1 .f , -1 .f , // daughter x at inner update
858- -1 .f , -1 .f , -1 .f , // track DCAxy to PV
859- -1 .f , -1 .f , -1 .f , // track DCA to PV
860- -1 .f , -1 .f , -1 .f , // propagated track DCAxy to PV
861- -1 .f , -1 .f , -1 .f , // propagated track DCA to PV
862- -1 .f , -1 .f , -1 .f , // daughter DCA to SV
863- -1 .f , -1 .f , -1 .f , // average daughter DCA, cosPA, ctau
864- -1 .f , -1 .f , -1 .f , -1 .f ,
865- -1 .f ,
866- -1 .f , -1 .f , -1 .f ,
858+ mcVtx3BodyDatas (-1 .f , // sign
859+ -1 .f , -1 .f , // mass, massV0
860+ -1 .f , -1 .f , -1 .f , // position
861+ -1 .f , -1 .f , -1 .f , // momentum
862+ -1 .f , -1 .f , // chi2, trackedClSize
863+ -1 .f , -1 .f , -1 .f , // proton momentum
864+ -1 .f , -1 .f , -1 .f , // pion momentum
865+ -1 .f , -1 .f , -1 .f , // deuteron momentum
866+ -1 .f , -1 .f , -1 .f , // daughter x at inner update
867+ -1 .f , -1 .f , -1 .f , // track DCAxy to PV
868+ -1 .f , -1 .f , -1 .f , // track DCA to PV
869+ -1 .f , -1 .f , -1 .f , // propagated track DCAxy to PV
870+ -1 .f , -1 .f , -1 .f , // propagated track DCA to PV
871+ -1 .f , -1 .f , -1 .f , // daughter DCA to SV
872+ -1 .f , -1 .f , -1 .f , // average daughter DCA, cosPA, ctau
873+ -1 .f , -1 .f , -1 .f , -1 .f , // TPC nSigmas
874+ -1 .f , 1 .f , -1 .f , // TPC signals
875+ -1 .f , // TOF nSigma deuteron
876+ -1 .f , -1 .f , -1 .f , // average cluster sizes
867877 -1 , -1 , -1 , std::numeric_limits<uint32_t >::max (),
868878 info.genMomentum [0 ], info.genMomentum [1 ], info.genMomentum [2 ],
869879 info.genDecayVertex [0 ], info.genDecayVertex [1 ], info.genDecayVertex [2 ],
@@ -875,6 +885,20 @@ struct TrackedHypertritonRecoTask {
875885 info.isDeuteronPrimary , static_cast <int >(info.survivedEventSelection ));
876886 }
877887
888+ template <typename TTrack>
889+ void fillQAHistograms (TTrack const & trackProton, TTrack const & trackPion, TTrack const & trackDeuteron, bool isSelected)
890+ {
891+ if (!isSelected) {
892+ registry.fill (HIST (" hTrackProtonTPCSignal" ), trackProton.sign () * trackProton.tpcInnerParam (), trackProton.tpcSignal ());
893+ registry.fill (HIST (" hTrackPionTPCSignal" ), trackPion.sign () * trackPion.tpcInnerParam (), trackPion.tpcSignal ());
894+ registry.fill (HIST (" hTrackDeuteronTPCSignal" ), trackDeuteron.sign () * trackDeuteron.tpcInnerParam (), trackDeuteron.tpcSignal ());
895+ } else {
896+ registry.fill (HIST (" hTrackProtonTPCSignalSelected" ), trackProton.sign () * trackProton.tpcInnerParam (), trackProton.tpcSignal ());
897+ registry.fill (HIST (" hTrackPionTPCSignalSelected" ), trackPion.sign () * trackPion.tpcInnerParam (), trackPion.tpcSignal ());
898+ registry.fill (HIST (" hTrackDeuteronTPCSignalSelected" ), trackDeuteron.sign () * trackDeuteron.tpcInnerParam (), trackDeuteron.tpcSignal ());
899+ }
900+ }
901+
878902 void processData (Collisions const & collisions,
879903 aod::V0s const & /* v0s*/ ,
880904 aod::Decay3Bodys const & /* decay3Bodys*/ ,
@@ -931,6 +955,8 @@ struct TrackedHypertritonRecoTask {
931955 const auto trackProton = trackDeuteron.sign () > 0 ? trackPositive : trackNegative;
932956 const auto trackPion = trackDeuteron.sign () > 0 ? trackNegative : trackPositive;
933957
958+ fillQAHistograms (trackProton, trackPion, trackDeuteron, false );
959+
934960 if (builder3Body.buildDecay3BodyCandidate (collision, trackProton, trackPion, trackDeuteron,
935961 decay3Body.globalIndex (), deuteronTOFNSigma (collision, trackDeuteron), tracked3Body.itsClsSize (),
936962 threeBody.useKFParticle , threeBody.setTopologicalConstraint ,
@@ -944,6 +970,7 @@ struct TrackedHypertritonRecoTask {
944970 continue ;
945971 }
946972
973+ fillQAHistograms (trackProton, trackPion, trackDeuteron, true );
947974 fillThreeBodyTables ();
948975 }
949976 }
@@ -1022,13 +1049,19 @@ struct TrackedHypertritonRecoTask {
10221049 const auto trackDeuteron = decay3Body.track2_as <TracksMC>();
10231050 const auto trackProton = trackDeuteron.sign () > 0 ? trackPositive : trackNegative;
10241051 const auto trackPion = trackDeuteron.sign () > 0 ? trackNegative : trackPositive;
1052+
1053+ fillQAHistograms (trackProton, trackPion, trackDeuteron, false );
1054+
10251055 if (!builder3Body.buildDecay3BodyCandidate (collision, trackProton, trackPion, trackDeuteron,
10261056 decay3Body.globalIndex (), deuteronTOFNSigmaMC (collision, trackDeuteron), tracked3Body.itsClsSize (),
10271057 threeBody.useKFParticle , threeBody.setTopologicalConstraint ,
10281058 threeBody.useSelections , threeBody.useChi2Selection , threeBody.useTPCforPion ,
10291059 threeBody.acceptTPCOnly , threeBody.askOnlyITSMatch , threeBody.calculateCovariance )) {
1060+
10301061 continue ;
10311062 }
1063+
1064+ fillQAHistograms (trackProton, trackPion, trackDeuteron, true );
10321065 const auto mcInfo = getThreeBodyMCInfo (trackProton, trackPion, trackDeuteron, collision, mcParticles);
10331066 if (mcInfo.motherLabel < 0 && !mc.storeBackground ) {
10341067 continue ;
0 commit comments