@@ -200,6 +200,14 @@ struct strangenesstofpid {
200200 kHasTOF ,
201201 kNEnums };
202202
203+ // bookkeep propagation failures and successes
204+ enum typesOfPropagation { kPropagPosV0 = 0 ,
205+ kPropagNegV0 ,
206+ kPropagPosCasc ,
207+ kPropagNegCasc ,
208+ kPropagBachCasc ,
209+ kPropagTypes };
210+
203211 // / function to calculate track length of this track up to a certain segment of a detector
204212 // / to be used internally in another function that calculates length until it finds the proper one
205213 // / warning: this could be optimised further for speed
@@ -406,6 +414,11 @@ struct strangenesstofpid {
406414
407415 // measured vs expected total time QA
408416 if (doQA) {
417+ // if in mode 1, bookkeep the failures of propagation
418+ if (calculationMethod.value == 1 ){
419+ histos.add (" hPropagationBookkeeping" , " hPropagationBookkeeping" , kTProfile , {{5 , -0 .5f , 4 .5f }});
420+ }
421+
409422 // standard deltaTime values
410423 if (calculateV0s.value > 0 ) {
411424 histos.add (" h2dDeltaTimePositiveLambdaPi" , " h2dDeltaTimePositiveLambdaPi" , {HistType::kTH3F , {axisP, axisEta, axisDeltaTime}});
@@ -777,6 +790,7 @@ struct strangenesstofpid {
777790 const o2::math_utils::Point3D<float > trackVertex{trackCollision.posX (), trackCollision.posY (), trackCollision.posZ ()};
778791 o2::track::TrackLTIntegral ltIntegral;
779792 bool successPropag = o2::base::Propagator::Instance ()->propagateToDCA (trackVertex, posTrack, d_bz, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE, nullptr , <Integral);
793+ histos.fill (HIST (" hPropagationBookkeeping" ), kPropagPosV0 , static_cast <float >(successPropag));
780794 if (successPropag) {
781795 lengthPositive = pTof.length - ltIntegral.getL ();
782796 v0tof.timePositivePr = o2::framework::pid::tof::MassToExpTime (pTof.tofExpMom , lengthPositive, o2::constants::physics::MassProton * o2::constants::physics::MassProton);
@@ -807,16 +821,25 @@ struct strangenesstofpid {
807821 histos.fill (HIST (" h2dDeltaTimePositiveLambdaPr" ), v0.p (), v0.eta (), v0tof.deltaTimePositiveLambdaPr );
808822 histos.fill (HIST (" h2dCorrectAssocPositiveLambdaPr" ), v0.p (), static_cast <float >(collisionId == pTof.collisionId ));
809823 histos.fill (HIST (" h2dDiffFromPrimCalcPositiveLambdaPr" ), v0.p (), (pTof.tofSignal - pTof.tofEvTime ) - v0tof.timeAsPrimaryPositivePr );
824+ if (doQANSigma && std::fabs (v0tof.nSigmaPositiveLambdaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
825+ histos.fill (HIST (" h2dNSigmaPositiveLambdaPr" ), v0.pt (), v0tof.nSigmaPositiveLambdaPr );
826+ }
810827 }
811828 if (antiLambdaCandidate) {
812829 histos.fill (HIST (" h2dDeltaTimePositiveLambdaPi" ), v0.p (), v0.eta (), v0tof.deltaTimePositiveLambdaPi );
813830 histos.fill (HIST (" h2dCorrectAssocPositiveLambdaPi" ), v0.p (), static_cast <float >(collisionId == pTof.collisionId ));
814831 histos.fill (HIST (" h2dDiffFromPrimCalcPositiveLambdaPi" ), v0.p (), (pTof.tofSignal - pTof.tofEvTime ) - v0tof.timeAsPrimaryPositivePi );
832+ if (doQANSigma && std::fabs (v0tof.nSigmaPositiveLambdaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
833+ histos.fill (HIST (" h2dNSigmaPositiveLambdaPi" ), v0.pt (), v0tof.nSigmaPositiveLambdaPi );
834+ }
815835 }
816836 if (k0ShortCandidate) {
817837 histos.fill (HIST (" h2dDeltaTimePositiveK0ShortPi" ), v0.p (), v0.eta (), v0tof.deltaTimePositiveK0ShortPi );
818838 histos.fill (HIST (" h2dCorrectAssocPositiveK0ShortPi" ), v0.p (), static_cast <float >(collisionId == pTof.collisionId ));
819839 histos.fill (HIST (" h2dDiffFromPrimCalcPositiveK0ShortPi" ), v0.p (), (pTof.tofSignal - pTof.tofEvTime ) - v0tof.timeAsPrimaryPositivePi );
840+ if (doQANSigma && std::fabs (v0tof.nSigmaPositiveK0ShortPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
841+ histos.fill (HIST (" h2dNSigmaPositiveK0ShortPi" ), v0.pt (), v0tof.nSigmaPositiveK0ShortPi );
842+ }
820843 }
821844 }
822845 }
@@ -843,6 +866,7 @@ struct strangenesstofpid {
843866 const o2::math_utils::Point3D<float > trackVertex{trackCollision.posX (), trackCollision.posY (), trackCollision.posZ ()};
844867 o2::track::TrackLTIntegral ltIntegral;
845868 bool successPropag = o2::base::Propagator::Instance ()->propagateToDCA (trackVertex, negTrack, d_bz, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE, nullptr , <Integral);
869+ histos.fill (HIST (" hPropagationBookkeeping" ), kPropagNegV0 , static_cast <float >(successPropag));
846870 if (successPropag) {
847871 lengthNegative = nTof.length - ltIntegral.getL ();
848872 v0tof.timeNegativePr = o2::framework::pid::tof::MassToExpTime (nTof.tofExpMom , lengthNegative, o2::constants::physics::MassProton * o2::constants::physics::MassProton);
@@ -873,16 +897,25 @@ struct strangenesstofpid {
873897 histos.fill (HIST (" h2dDeltaTimeNegativeLambdaPi" ), v0.p (), v0.eta (), v0tof.deltaTimeNegativeLambdaPi );
874898 histos.fill (HIST (" h2dCorrectAssocNegativeLambdaPi" ), v0.p (), static_cast <float >(collisionId == nTof.collisionId ));
875899 histos.fill (HIST (" h2dDiffFromPrimCalcNegativeLambdaPi" ), v0.p (), (nTof.tofSignal - nTof.tofEvTime ) - v0tof.timeAsPrimaryNegativePi );
900+ if (doQANSigma && std::fabs (v0tof.nSigmaNegativeLambdaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
901+ histos.fill (HIST (" h2dNSigmaNegativeLambdaPi" ), v0.pt (), v0tof.nSigmaNegativeLambdaPi );
902+ }
876903 }
877904 if (antiLambdaCandidate) {
878905 histos.fill (HIST (" h2dDeltaTimeNegativeLambdaPr" ), v0.p (), v0.eta (), v0tof.deltaTimeNegativeLambdaPr );
879906 histos.fill (HIST (" h2dCorrectAssocNegativeLambdaPr" ), v0.p (), static_cast <float >(collisionId == nTof.collisionId ));
880907 histos.fill (HIST (" h2dDiffFromPrimCalcNegativeLambdaPr" ), v0.p (), (nTof.tofSignal - nTof.tofEvTime ) - v0tof.timeAsPrimaryNegativePr );
908+ if (doQANSigma && std::fabs (v0tof.nSigmaNegativeLambdaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
909+ histos.fill (HIST (" h2dNSigmaNegativeLambdaPr" ), v0.pt (), v0tof.nSigmaNegativeLambdaPr );
910+ }
881911 }
882912 if (k0ShortCandidate) {
883913 histos.fill (HIST (" h2dDeltaTimeNegativeK0ShortPi" ), v0.p (), v0.eta (), v0tof.deltaTimeNegativeK0ShortPi );
884914 histos.fill (HIST (" h2dCorrectAssocNegativeK0ShortPi" ), v0.p (), static_cast <float >(collisionId == nTof.collisionId ));
885915 histos.fill (HIST (" h2dDiffFromPrimCalcNegativeK0ShortPi" ), v0.p (), (nTof.tofSignal - nTof.tofEvTime ) - v0tof.timeAsPrimaryNegativePi );
916+ if (doQANSigma && std::fabs (v0tof.nSigmaNegativeK0ShortPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ){
917+ histos.fill (HIST (" h2dNSigmaNegativeK0ShortPi" ), v0.pt (), v0tof.nSigmaNegativeK0ShortPi );
918+ }
886919 }
887920 }
888921 }
@@ -1005,6 +1038,7 @@ struct strangenesstofpid {
10051038 const o2::math_utils::Point3D<float > trackVertex{trackCollision.posX (), trackCollision.posY (), trackCollision.posZ ()};
10061039 o2::track::TrackLTIntegral ltIntegral;
10071040 bool successPropag = o2::base::Propagator::Instance ()->propagateToDCA (trackVertex, posTrack, d_bz, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE, nullptr , <Integral);
1041+ histos.fill (HIST (" hPropagationBookkeeping" ), kPropagPosCasc , static_cast <float >(successPropag));
10081042 if (successPropag) {
10091043 lengthPositive = pTof.length - ltIntegral.getL ();
10101044 casctof.posFlightPr = o2::framework::pid::tof::MassToExpTime (pTof.tofExpMom , pTof.length - ltIntegral.getL (), o2::constants::physics::MassProton * o2::constants::physics::MassProton);
@@ -1040,21 +1074,33 @@ struct strangenesstofpid {
10401074 histos.fill (HIST (" h2dposDeltaTimeAsXiPr" ), cascade.p (), cascade.eta (), casctof.posDeltaTimeAsXiPr );
10411075 histos.fill (HIST (" h2dposCorrectAssocAsXiPr" ), cascade.p (), static_cast <float >(collisionId == pTof.collisionId ));
10421076 histos.fill (HIST (" h2dposDiffFromPrimCalcAsXiPr" ), cascade.p (), (pTof.tofSignal - pTof.tofEvTime ) - casctof.posFlightAsPrimaryPr );
1077+ if (doQANSigma && std::fabs (casctof.nSigmaXiLaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1078+ histos.fill (HIST (" h2dNSigmaXiLaPr" ), cascade.pt (), casctof.nSigmaXiLaPr );
1079+ }
10431080 }
10441081 if (xiPlusCandidate) {
10451082 histos.fill (HIST (" h2dposDeltaTimeAsXiPi" ), cascade.p (), cascade.eta (), casctof.posDeltaTimeAsXiPi );
10461083 histos.fill (HIST (" h2dposCorrectAssocAsXiPi" ), cascade.p (), static_cast <float >(collisionId == pTof.collisionId ));
10471084 histos.fill (HIST (" h2dposDiffFromPrimCalcAsXiPi" ), cascade.p (), (pTof.tofSignal - pTof.tofEvTime ) - casctof.posFlightAsPrimaryPi );
1085+ if (doQANSigma && std::fabs (casctof.nSigmaXiLaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1086+ histos.fill (HIST (" h2dNSigmaXiLaPi" ), cascade.pt (), casctof.nSigmaXiLaPi );
1087+ }
10481088 }
10491089 if (omegaMinusCandidate) {
10501090 histos.fill (HIST (" h2dposDeltaTimeAsOmPr" ), cascade.p (), cascade.eta (), casctof.posDeltaTimeAsOmPr );
10511091 histos.fill (HIST (" h2dposCorrectAssocAsOmPr" ), cascade.p (), static_cast <float >(collisionId == pTof.collisionId ));
10521092 histos.fill (HIST (" h2dposDiffFromPrimCalcAsOmPr" ), cascade.p (), (pTof.tofSignal - pTof.tofEvTime ) - casctof.posFlightAsPrimaryPr );
1093+ if (doQANSigma && std::fabs (casctof.nSigmaOmLaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1094+ histos.fill (HIST (" h2dNSigmaOmLaPr" ), cascade.pt (), casctof.nSigmaOmLaPr );
1095+ }
10531096 }
10541097 if (omegaPlusCandidate) {
10551098 histos.fill (HIST (" h2dposDeltaTimeAsOmPi" ), cascade.p (), cascade.eta (), casctof.posDeltaTimeAsOmPi );
10561099 histos.fill (HIST (" h2dposCorrectAssocAsOmPi" ), cascade.p (), static_cast <float >(collisionId == pTof.collisionId ));
10571100 histos.fill (HIST (" h2dposDiffFromPrimCalcAsOmPi" ), cascade.p (), (pTof.tofSignal - pTof.tofEvTime ) - casctof.posFlightAsPrimaryPi );
1101+ if (doQANSigma && std::fabs (casctof.nSigmaOmLaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1102+ histos.fill (HIST (" h2dNSigmaOmLaPi" ), cascade.pt (), casctof.nSigmaOmLaPi );
1103+ }
10581104 }
10591105 }
10601106 }
@@ -1082,6 +1128,7 @@ struct strangenesstofpid {
10821128 const o2::math_utils::Point3D<float > trackVertex{trackCollision.posX (), trackCollision.posY (), trackCollision.posZ ()};
10831129 o2::track::TrackLTIntegral ltIntegral;
10841130 bool successPropag = o2::base::Propagator::Instance ()->propagateToDCA (trackVertex, negTrack, d_bz, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE, nullptr , <Integral);
1131+ histos.fill (HIST (" hPropagationBookkeeping" ), kPropagNegCasc , static_cast <float >(successPropag));
10851132 if (successPropag) {
10861133 lengthNegative = nTof.length - ltIntegral.getL ();
10871134 casctof.negFlightPr = o2::framework::pid::tof::MassToExpTime (nTof.tofExpMom , nTof.length - ltIntegral.getL (), o2::constants::physics::MassProton * o2::constants::physics::MassProton);
@@ -1117,21 +1164,33 @@ struct strangenesstofpid {
11171164 histos.fill (HIST (" h2dnegDeltaTimeAsXiPi" ), cascade.p (), cascade.eta (), casctof.negDeltaTimeAsXiPi );
11181165 histos.fill (HIST (" h2dnegCorrectAssocAsXiPi" ), cascade.p (), static_cast <float >(collisionId == nTof.collisionId ));
11191166 histos.fill (HIST (" h2dnegDiffFromPrimCalcAsXiPi" ), cascade.p (), (nTof.tofSignal - nTof.tofEvTime ) - casctof.negFlightAsPrimaryPi );
1167+ if (doQANSigma && std::fabs (casctof.nSigmaXiLaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1168+ histos.fill (HIST (" h2dNSigmaXiLaPi" ), cascade.pt (), casctof.nSigmaXiLaPi );
1169+ }
11201170 }
11211171 if (xiPlusCandidate) {
11221172 histos.fill (HIST (" h2dnegDeltaTimeAsXiPr" ), cascade.p (), cascade.eta (), casctof.negDeltaTimeAsXiPr );
11231173 histos.fill (HIST (" h2dnegCorrectAssocAsXiPr" ), cascade.p (), static_cast <float >(collisionId == nTof.collisionId ));
11241174 histos.fill (HIST (" h2dnegDiffFromPrimCalcAsXiPr" ), cascade.p (), (nTof.tofSignal - nTof.tofEvTime ) - casctof.negFlightAsPrimaryPr );
1175+ if (doQANSigma && std::fabs (casctof.nSigmaXiLaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1176+ histos.fill (HIST (" h2dNSigmaXiLaPr" ), cascade.pt (), casctof.nSigmaXiLaPr );
1177+ }
11251178 }
11261179 if (omegaMinusCandidate) {
11271180 histos.fill (HIST (" h2dnegDeltaTimeAsOmPi" ), cascade.p (), cascade.eta (), casctof.negDeltaTimeAsOmPi );
11281181 histos.fill (HIST (" h2dnegCorrectAssocAsOmPi" ), cascade.p (), static_cast <float >(collisionId == nTof.collisionId ));
11291182 histos.fill (HIST (" h2dnegDiffFromPrimCalcAsOmPi" ), cascade.p (), (nTof.tofSignal - nTof.tofEvTime ) - casctof.negFlightAsPrimaryPi );
1183+ if (doQANSigma && std::fabs (casctof.nSigmaOmLaPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1184+ histos.fill (HIST (" h2dNSigmaOmLaPi" ), cascade.pt (), casctof.nSigmaOmLaPi );
1185+ }
11301186 }
11311187 if (omegaPlusCandidate) {
11321188 histos.fill (HIST (" h2dnegDeltaTimeAsOmPr" ), cascade.p (), cascade.eta (), casctof.negDeltaTimeAsOmPr );
11331189 histos.fill (HIST (" h2dnegCorrectAssocAsOmPr" ), cascade.p (), static_cast <float >(collisionId == nTof.collisionId ));
11341190 histos.fill (HIST (" h2dnegDiffFromPrimCalcAsOmPr" ), cascade.p (), (nTof.tofSignal - nTof.tofEvTime ) - casctof.negFlightAsPrimaryPr );
1191+ if (doQANSigma && std::fabs (casctof.nSigmaOmLaPr -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1192+ histos.fill (HIST (" h2dNSigmaOmLaPr" ), cascade.pt (), casctof.nSigmaOmLaPr );
1193+ }
11351194 }
11361195 }
11371196 }
@@ -1159,6 +1218,7 @@ struct strangenesstofpid {
11591218 const o2::math_utils::Point3D<float > trackVertex{trackCollision.posX (), trackCollision.posY (), trackCollision.posZ ()};
11601219 o2::track::TrackLTIntegral ltIntegral;
11611220 bool successPropag = o2::base::Propagator::Instance ()->propagateToDCA (trackVertex, bachTrack, d_bz, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE, nullptr , <Integral);
1221+ histos.fill (HIST (" hPropagationBookkeeping" ), kPropagBachCasc , static_cast <float >(successPropag));
11621222 if (successPropag) {
11631223 lengthBachelor = bTof.length - ltIntegral.getL ();
11641224 casctof.bachFlightPi = o2::framework::pid::tof::MassToExpTime (bTof.tofExpMom , bTof.length - ltIntegral.getL (), o2::constants::physics::MassPionCharged * o2::constants::physics::MassPionCharged);
@@ -1192,21 +1252,33 @@ struct strangenesstofpid {
11921252 histos.fill (HIST (" h2dbachDeltaTimeAsXiPi" ), cascade.p (), cascade.eta (), casctof.bachDeltaTimeAsXiPi );
11931253 histos.fill (HIST (" h2dbachCorrectAssocAsXiPi" ), cascade.p (), static_cast <float >(collisionId == bTof.collisionId ));
11941254 histos.fill (HIST (" h2dbachDiffFromPrimCalcAsXiPi" ), cascade.p (), (bTof.tofSignal - bTof.tofEvTime ) - casctof.bachFlightAsPrimaryPi );
1255+ if (doQANSigma && std::fabs (casctof.nSigmaXiPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1256+ histos.fill (HIST (" h2dNSigmaXiPi" ), cascade.pt (), casctof.nSigmaXiPi );
1257+ }
11951258 }
11961259 if (xiPlusCandidate) {
11971260 histos.fill (HIST (" h2dbachDeltaTimeAsXiPi" ), cascade.p (), cascade.eta (), casctof.bachDeltaTimeAsXiPi );
11981261 histos.fill (HIST (" h2dbachCorrectAssocAsXiPi" ), cascade.p (), static_cast <float >(collisionId == bTof.collisionId ));
11991262 histos.fill (HIST (" h2dbachDiffFromPrimCalcAsXiPi" ), cascade.p (), (bTof.tofSignal - bTof.tofEvTime ) - casctof.bachFlightAsPrimaryPi );
1263+ if (doQANSigma && std::fabs (casctof.nSigmaXiPi -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1264+ histos.fill (HIST (" h2dNSigmaXiPi" ), cascade.pt (), casctof.nSigmaXiPi );
1265+ }
12001266 }
12011267 if (omegaMinusCandidate) {
12021268 histos.fill (HIST (" h2dbachDeltaTimeAsOmKa" ), cascade.p (), cascade.eta (), casctof.bachDeltaTimeAsOmKa );
12031269 histos.fill (HIST (" h2dbachCorrectAssocAsOmKa" ), cascade.p (), static_cast <float >(collisionId == bTof.collisionId ));
12041270 histos.fill (HIST (" h2dbachDiffFromPrimCalcAsOmKa" ), cascade.p (), (bTof.tofSignal - bTof.tofEvTime ) - casctof.bachFlightAsPrimaryKa );
1271+ if (doQANSigma && std::fabs (casctof.nSigmaOmKa -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1272+ histos.fill (HIST (" h2dNSigmaOmKa" ), cascade.pt (), casctof.nSigmaOmKa );
1273+ }
12051274 }
12061275 if (omegaPlusCandidate) {
12071276 histos.fill (HIST (" h2dbachDeltaTimeAsOmKa" ), cascade.p (), cascade.eta (), casctof.bachDeltaTimeAsOmKa );
12081277 histos.fill (HIST (" h2dbachCorrectAssocAsOmKa" ), cascade.p (), static_cast <float >(collisionId == bTof.collisionId ));
12091278 histos.fill (HIST (" h2dbachDiffFromPrimCalcAsOmKa" ), cascade.p (), (bTof.tofSignal - bTof.tofEvTime ) - casctof.bachFlightAsPrimaryKa );
1279+ if (doQANSigma && std::fabs (casctof.nSigmaOmKa -o2::aod::v0data::kNoTOFValue ) > o2::aod::v0data::kEpsilon ) {
1280+ histos.fill (HIST (" h2dNSigmaOmKa" ), cascade.pt (), casctof.nSigmaOmKa );
1281+ }
12101282 }
12111283 }
12121284 }
0 commit comments