Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions PWGLF/TableProducer/cascadepid.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ using namespace o2::framework::expressions;
using std::array;

// Cores with references and TOF pid
using CascFullCores = soa::Join<aod::CascCores, aod::CascTOFs, aod::CascCollRefs>;
using dauTracks = soa::Join<aod::DauTrackExtras, aod::DauTrackTPCPIDs>;
using CascFullCores = soa::Join<aod::CascCores, aod::CascTOFs, aod::CascExtras, aod::CascCollRefs>;

struct cascadepid {
// TOF pid for strangeness (recalculated with topology)
Expand All @@ -81,6 +82,7 @@ struct cascadepid {
Configurable<float> qaV0CosPA{"qaV0CosPA", 0.995, "CosPA for QA plots"};
Configurable<float> qaCascCosPA{"qaCascCosPA", 0.995, "CosPA for QA plots"};
Configurable<float> qaMassWindow{"qaMassWindow", 0.005, "Mass window around expected (in GeV/c2) for QA plots"};
Configurable<float> qaTPCNSigma{"qaTPCNSigma", 5, "TPC N-sigma to apply for qa plots"};

// CCDB options
Configurable<std::string> ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Expand Down Expand Up @@ -304,7 +306,7 @@ struct cascadepid {
return 0.0299792458 * TMath::Sqrt(lA / (1 + lA));
}

void process(soa::Join<aod::StraCollisions, aod::StraStamps> const& collisions, CascFullCores const& Cascades)
void process(soa::Join<aod::StraCollisions, aod::StraStamps> const& collisions, CascFullCores const& Cascades, dauTracks const&)
{
for (const auto& collision : collisions) {
// Fire up CCDB - based on StraCollisions for derived analysis
Expand Down Expand Up @@ -405,28 +407,32 @@ struct cascadepid {
);

if (doQA) {
auto pTra = cascade.posTrackExtra_as<dauTracks>();
auto nTra = cascade.negTrackExtra_as<dauTracks>();
auto bTra = cascade.negTrackExtra_as<dauTracks>();

// fill QA histograms for cross-checking
histos.fill(HIST("hArcDebug"), cascade.pt(), lengthCascade - d3d); // for debugging purposes

if (cascade.dcaV0daughters() < qaV0DCADau && cascade.dcacascdaughters() < qaCascDCADau && cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ()) > qaV0CosPA && cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ()) > qaCascCosPA) {
if (cascade.sign() < 0) {
if (std::abs(cascade.mXi() - 1.32171) < qaMassWindow) {
if (std::abs(cascade.mXi() - 1.32171) < qaMassWindow && fabs(pTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(bTra.tpcNSigmaPi()) < qaTPCNSigma) {
histos.fill(HIST("h2dposDeltaTimeAsXiPr"), cascade.pt(), cascade.eta(), posDeltaTimeAsXiPr);
histos.fill(HIST("h2dnegDeltaTimeAsXiPi"), cascade.pt(), cascade.eta(), negDeltaTimeAsXiPi);
histos.fill(HIST("h2dbachDeltaTimeAsXiPi"), cascade.pt(), cascade.eta(), bachDeltaTimeAsXiPi);
}
if (std::abs(cascade.mOmega() - 1.67245) < qaMassWindow) {
if (std::abs(cascade.mOmega() - 1.67245) < qaMassWindow && fabs(pTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(bTra.tpcNSigmaKa()) < qaTPCNSigma) {
histos.fill(HIST("h2dposDeltaTimeAsOmPr"), cascade.pt(), cascade.eta(), posDeltaTimeAsOmPr);
histos.fill(HIST("h2dnegDeltaTimeAsOmPi"), cascade.pt(), cascade.eta(), negDeltaTimeAsOmPi);
histos.fill(HIST("h2dbachDeltaTimeAsOmKa"), cascade.pt(), cascade.eta(), bachDeltaTimeAsOmKa);
}
} else {
if (std::abs(cascade.mXi() - 1.32171) < qaMassWindow) {
if (std::abs(cascade.mXi() - 1.32171) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(bTra.tpcNSigmaPi()) < qaTPCNSigma) {
histos.fill(HIST("h2dposDeltaTimeAsXiPi"), cascade.pt(), cascade.eta(), posDeltaTimeAsXiPi);
histos.fill(HIST("h2dnegDeltaTimeAsXiPr"), cascade.pt(), cascade.eta(), negDeltaTimeAsXiPr);
histos.fill(HIST("h2dbachDeltaTimeAsXiPi"), cascade.pt(), cascade.eta(), bachDeltaTimeAsXiPi);
}
if (std::abs(cascade.mOmega() - 1.67245) < qaMassWindow) {
if (std::abs(cascade.mOmega() - 1.67245) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(bTra.tpcNSigmaKa()) < qaTPCNSigma) {
histos.fill(HIST("h2dposDeltaTimeAsOmPi"), cascade.pt(), cascade.eta(), posDeltaTimeAsOmPi);
histos.fill(HIST("h2dnegDeltaTimeAsOmPr"), cascade.pt(), cascade.eta(), negDeltaTimeAsOmPr);
histos.fill(HIST("h2dbachDeltaTimeAsOmKa"), cascade.pt(), cascade.eta(), bachDeltaTimeAsOmKa);
Expand Down
21 changes: 13 additions & 8 deletions PWGLF/TableProducer/lambdakzeropid.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ using namespace o2::framework::expressions;
using std::array;

// Cores with references and TOF pid
using V0FullCores = soa::Join<aod::V0Cores, aod::V0TOFs, aod::V0CollRefs>;
using dauTracks = soa::Join<aod::DauTrackExtras, aod::DauTrackTPCPIDs>;
using V0FullCores = soa::Join<aod::V0Cores, aod::V0TOFs, aod::V0Extras, aod::V0CollRefs>;

struct lambdakzeropid {
// TOF pid for strangeness (recalculated with topology)
Expand All @@ -81,6 +82,7 @@ struct lambdakzeropid {
Configurable<float> qaDCADau{"qaDCADau", 0.5, "DCA daughters (cm) for QA plots"};
Configurable<float> qaCosPA{"qaCosPA", 0.999, "CosPA for QA plots"};
Configurable<float> qaMassWindow{"qaMassWindow", 0.005, "Mass window around expected (in GeV/c2) for QA plots"};
Configurable<float> qaTPCNSigma{"qaTPCNSigma", 5, "TPC N-sigma to apply for qa plots"};

// CCDB options
Configurable<std::string> ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Expand Down Expand Up @@ -307,7 +309,7 @@ struct lambdakzeropid {
return 0.0299792458 * TMath::Sqrt(lA / (1 + lA));
}

void process(soa::Join<aod::StraCollisions, aod::StraStamps> const& collisions, V0FullCores const& V0s)
void process(soa::Join<aod::StraCollisions, aod::StraStamps> const& collisions, V0FullCores const& V0s, dauTracks const&)
{
for (const auto& collision : collisions) {
// Fire up CCDB - based on StraCollisions for derived analysis
Expand Down Expand Up @@ -393,16 +395,19 @@ struct lambdakzeropid {
v0tofdebugs(timeLambda, timeK0Short, timePositivePr, timePositivePi, timeNegativePr, timeNegativePi);

if (doQA) {
auto pTra = v0.posTrackExtra_as<dauTracks>();
auto nTra = v0.negTrackExtra_as<dauTracks>();

if (v0.posTOFSignal() > 0 && v0.posTOFEventTime() > 0) {
histos.fill(HIST("h2dProtonMeasuredVsExpected"),
(timeLambda + timePositivePr),
(v0.posTOFSignal() - v0.posTOFEventTime()));
if (v0.v0cosPA() > qaCosPA && v0.dcaV0daughters() < qaDCADau) {
if (std::abs(v0.mLambda() - 1.115683) < qaMassWindow)
if (std::abs(v0.mLambda() - 1.115683) < qaMassWindow && fabs(pTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimePositiveLambdaPr"), v0.pt(), v0.eta(), deltaTimePositiveLambdaPr);
if (std::abs(v0.mAntiLambda() - 1.115683) < qaMassWindow)
if (std::abs(v0.mAntiLambda() - 1.115683) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPr()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimePositiveLambdaPi"), v0.pt(), v0.eta(), deltaTimePositiveLambdaPi);
if (std::abs(v0.mK0Short() - 0.497) < qaMassWindow)
if (std::abs(v0.mK0Short() - 0.497) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimePositiveK0ShortPi"), v0.pt(), v0.eta(), deltaTimePositiveK0ShortPi);
}
}
Expand All @@ -412,11 +417,11 @@ struct lambdakzeropid {
(timeLambda + timeNegativePi),
(v0.negTOFSignal() - v0.negTOFEventTime()));
if (v0.v0cosPA() > qaCosPA && v0.dcaV0daughters() < qaDCADau) {
if (std::abs(v0.mLambda() - 1.115683) < qaMassWindow)
if (std::abs(v0.mLambda() - 1.115683) < qaMassWindow && fabs(pTra.tpcNSigmaPr()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimeNegativeLambdaPi"), v0.pt(), v0.eta(), deltaTimeNegativeLambdaPi);
if (std::abs(v0.mAntiLambda() - 1.115683) < qaMassWindow)
if (std::abs(v0.mAntiLambda() - 1.115683) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPr()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimeNegativeLambdaPr"), v0.pt(), v0.eta(), deltaTimeNegativeLambdaPr);
if (std::abs(v0.mK0Short() - 0.497) < qaMassWindow)
if (std::abs(v0.mK0Short() - 0.497) < qaMassWindow && fabs(pTra.tpcNSigmaPi()) < qaTPCNSigma && fabs(nTra.tpcNSigmaPi()) < qaTPCNSigma)
histos.fill(HIST("h2dDeltaTimeNegativeK0ShortPi"), v0.pt(), v0.eta(), deltaTimeNegativeK0ShortPi);
}
}
Expand Down
1 change: 0 additions & 1 deletion PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -917,7 +917,6 @@ struct derivedlambdakzeroanalysis {
if (gVec.generatedK0Short().size() != hK0Short->GetNcells())
LOGF(fatal, "K0Short: Number of elements in generated array and number of cells in receiving histogram differ: %i vs %i!", gVec.generatedK0Short().size(), hK0Short->GetNcells());
for (uint32_t iv = 0; iv < hK0Short->GetNcells(); iv++) {
LOGF(info, "processing element %i with content: %i", iv, gVec.generatedK0Short()[iv]);
hK0Short->SetBinContent(iv, hK0Short->GetBinContent(iv) + gVec.generatedK0Short()[iv]);
}
}
Expand Down