Skip to content

Commit 69a94be

Browse files
committed
Add extras for QA
1 parent 7a8ba82 commit 69a94be

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

PWGLF/TableProducer/Strangeness/strangenesstofpid.cxx

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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, &ltIntegral);
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, &ltIntegral);
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, &ltIntegral);
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, &ltIntegral);
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, &ltIntegral);
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

Comments
 (0)