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
17 changes: 9 additions & 8 deletions PWGLF/DataModel/LFSigmaTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -1452,7 +1452,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(Xi0Mass, xi0Mass,
std::array<float, 3> pVecPi0{photon1Px + photon2Px, photon1Py + photon2Py, photon1Pz + photon2Pz};
std::array<float, 3> pVecLambda{lambdaPx, lambdaPy, lambdaPz};
auto arrMom = std::array{pVecPi0, pVecLambda};
return RecoDecay::m(arrMom, std::array{o2::constants::physics::MassPi0, o2::constants::physics::MassXi0});
return RecoDecay::m(arrMom, std::array{o2::constants::physics::MassPi0, o2::constants::physics::MassLambda0});
});

DECLARE_SOA_DYNAMIC_COLUMN(PxPi0, pxPi0, //! Pi0 px
Expand Down Expand Up @@ -1607,11 +1607,12 @@ DECLARE_SOA_TABLE(Xi0Cores, "AOD", "XI0CORES",
Xi0Core::Pz<Xi0Core::Photon1Pz, Xi0Core::Photon2Pz, Xi0Core::LambdaPz>,
Xi0Core::Pt<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::LambdaPx, Xi0Core::LambdaPy>,
Xi0Core::P<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz, Xi0Core::LambdaPx, Xi0Core::LambdaPy, Xi0Core::LambdaPz>,
Xi0Core::Xi0Mass<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz, Xi0Core::LambdaPx, Xi0Core::LambdaPy, Xi0Core::LambdaPz>,
Xi0Core::Rapidity<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz, Xi0Core::LambdaPx, Xi0Core::LambdaPy, Xi0Core::LambdaPz>,
Xi0Core::Phi<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::LambdaPx, Xi0Core::LambdaPy>,
Xi0Core::Eta<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz, Xi0Core::LambdaPx, Xi0Core::LambdaPy, Xi0Core::LambdaPz>,
Xi0Core::Radius<Xi0Core::X, Xi0Core::Y>,
Xi0Core::CascCosPA<Xi0Core::X, Xi0Core::Y, Xi0Core::Z, Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz, Xi0Core::LambdaPx, Xi0Core::LambdaPy, Xi0Core::LambdaPz>,
Xi0Core::CascCosPA<Xi0Core::X, Xi0Core::Y, Xi0Core::Z, Xi0Core::Photon1Px, Xi0Core::Photon2Px, Xi0Core::LambdaPx, Xi0Core::Photon1Py, Xi0Core::Photon2Py, Xi0Core::LambdaPy, Xi0Core::Photon1Pz, Xi0Core::Photon2Pz, Xi0Core::LambdaPz>,

// Dynamic columns for pi0
Xi0Core::PxPi0<Xi0Core::Photon1Px, Xi0Core::Photon2Px>,
Expand All @@ -1620,7 +1621,7 @@ DECLARE_SOA_TABLE(Xi0Cores, "AOD", "XI0CORES",
Xi0Core::Pi0Mass<Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz>,
Xi0Core::RadiusPi0<Xi0Core::XPi0, Xi0Core::YPi0>,
Xi0Core::Pi0CosPA<Xi0Core::XPi0, Xi0Core::YPi0, Xi0Core::ZPi0, Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz>,
Xi0Core::DCAPi0ToPV<Xi0Core::XLambda, Xi0Core::YLambda, Xi0Core::ZLambda, Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz>,
Xi0Core::DCAPi0ToPV<Xi0Core::XPi0, Xi0Core::YPi0, Xi0Core::ZPi0, Xi0Core::Photon1Px, Xi0Core::Photon1Py, Xi0Core::Photon1Pz, Xi0Core::Photon2Px, Xi0Core::Photon2Py, Xi0Core::Photon2Pz>,

// Dynamic columns for Lambda
Xi0Core::RadiusLambda<Xi0Core::XLambda, Xi0Core::YLambda>,
Expand Down Expand Up @@ -1884,11 +1885,11 @@ DECLARE_SOA_TABLE(Xi0MCCores, "AOD", "XI0MCCORES",
Xi0MCCore::MCRadius<Xi0MCCore::MCx, Xi0MCCore::MCy>,
Xi0MCCore::MCRadiusPi0<Xi0MCCore::Pi0MCx, Xi0MCCore::Pi0MCy>,

Xi0MCCore::MCPx<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon2MCPx>,
Xi0MCCore::MCPy<Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon2MCPy>,
Xi0MCCore::MCPz<Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::MCPt<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy>,
Xi0MCCore::MCP<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::Pi0MCPx<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon2MCPx>,
Xi0MCCore::Pi0MCPy<Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon2MCPy>,
Xi0MCCore::Pi0MCPz<Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::Pi0MCPt<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy>,
Xi0MCCore::Pi0MCP<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::Pi0MCMass<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::Pi0RapidityMC<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon1MCPz, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
Xi0MCCore::Pi0MCPhi<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon1MCPy, Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy>,
Expand Down
13 changes: 10 additions & 3 deletions PWGLF/TableProducer/Strangeness/sigma0builder.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include <Framework/InitContext.h>
#include <Framework/OutputObjHeader.h>
#include <Framework/runDataProcessing.h>
#include <ReconstructionDataFormats/Track.h>
#include <ReconstructionDataFormats/TrackParametrizationWithError.h>

#include <Math/Vector3D.h> // IWYU pragma: keep (do not replace with Math/Vector3Dfwd.h)
Expand Down Expand Up @@ -1511,7 +1512,7 @@ struct sigma0builder {
if (MCMother_pi0.globalIndex() == MCMother_lambda.globalIndex()) { // check that lambda and pi0 have the same mother.
MCinfo.xi0PDGCode = MCMother_pi0.pdgCode();
MCinfo.xi0MCProcess = MCMother_pi0.getProcess();
MCinfo.pi0IsPhysicalPrimary = MCMother_pi0.isPhysicalPrimary();
MCinfo.xi0IsPhysicalPrimary = MCMother_pi0.isPhysicalPrimary();
MCinfo.xi0X = MCMother_pi0.vx();
MCinfo.xi0Y = MCMother_pi0.vy();
MCinfo.xi0Z = MCMother_pi0.vz();
Expand Down Expand Up @@ -2703,7 +2704,7 @@ struct sigma0builder {
//_______________________________________________
// Build Xi0 candidate for analysis
template <typename TV0Object, typename TCollision, typename TMCParticles>
bool buildXi0(TV0Object const& gamma1, TV0Object const& gamma2, TV0Object const& lambda, TCollision const& collision, TMCParticles const& mcparticles)
bool buildXi0(TV0Object const& gamma1, TV0Object const& gamma2, TV0Object const& lambda, V0PairTopoInfo& pi0Info, TCollision const& collision, TMCParticles const& mcparticles)
{
Xi0Info cascade;
//_______________________________________________
Expand Down Expand Up @@ -2764,6 +2765,8 @@ struct sigma0builder {
return false;
}

cascade.pi0DaughterDCA = pi0Info.daughterDCA;

lGamma1Track.getPxPyPzGlo(cascade.gamma1Momentum);
lGamma2Track.getPxPyPzGlo(cascade.gamma2Momentum);
lLambdaTrack.getPxPyPzGlo(cascade.lambdaMomentum);
Expand All @@ -2776,6 +2779,10 @@ struct sigma0builder {
return false;
}

cascade.pi0Position[0] = pi0Info.position[0];
cascade.pi0Position[1] = pi0Info.position[1];
cascade.pi0Position[2] = pi0Info.position[2];

double cosPA = RecoDecay::cpa(
std::array{collision.posX(), collision.posY(), collision.posZ()},
std::array{cascade.cascadePosition[0], cascade.cascadePosition[1], cascade.cascadePosition[2]},
Expand Down Expand Up @@ -3418,7 +3425,7 @@ struct sigma0builder {
auto gamma1 = fullV0s.rawIteratorAt(pi0Candidates[j].v01Index);
auto gamma2 = fullV0s.rawIteratorAt(pi0Candidates[j].v02Index);
// Building pi0 candidate & filling tables
if (!buildXi0(gamma1, gamma2, lambda, coll, mcparticles))
if (!buildXi0(gamma1, gamma2, lambda, pi0Candidates[j], coll, mcparticles))
continue;
}
}
Expand Down
5 changes: 5 additions & 0 deletions PWGLF/Tasks/Strangeness/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ o2physics_add_dpl_workflow(derivedcascadeanalysis
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::MLCore O2Physics::AnalysisCCDB
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(derivedxi0analysis
SOURCES derivedXi0analysis.cxx
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::AnalysisCCDB
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(cascpostprocessing
SOURCES cascpostprocessing.cxx
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
Expand Down
Loading
Loading