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
106 changes: 106 additions & 0 deletions PWGLF/DataModel/Vtx3BodyTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
DECLARE_SOA_INDEX_COLUMN_FULL(TrackPi, trackPi, int, Tracks, "_pi"); //!
DECLARE_SOA_INDEX_COLUMN_FULL(TrackDe, trackDe, int, Tracks, "_de"); //!
DECLARE_SOA_INDEX_COLUMN(Collision, collision); //!
DECLARE_SOA_INDEX_COLUMN(Decay3Body, decay3body); //!

Check failure on line 38 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.

// General 3 body Vtx properties
DECLARE_SOA_COLUMN(Mass, mass, float); //! candidate mass (with H3L or Anti-H3L mass hypothesis depending on deuteron charge)
Expand Down Expand Up @@ -64,15 +64,15 @@
DECLARE_SOA_COLUMN(XTrackDe, xTrackDe, float); //! track2 x at IU

// DCAs to PV
DECLARE_SOA_COLUMN(DCAXYTrackPrToPV, dcaXYtrackPrToPv, float); //! DCAXY of proton to PV (computed with KFParticle)

Check failure on line 67 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAXYTrackPiToPV, dcaXYtrackPiToPv, float); //! DCAXY of pion to PV (computed with KFParticle)

Check failure on line 68 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAXYTrackDeToPV, dcaXYtrackDeToPv, float); //! DCAXY of deuteron to PV (computed with KFParticle)

Check failure on line 69 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCATrackPrToPV, dcaTrackPrToPv, float); //! DCA of proton to PV (computed with KFParticle)

Check failure on line 70 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCATrackPiToPV, dcaTrackPiToPv, float); //! DCA of pion to PV (computed with KFParticle)

Check failure on line 71 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCATrackDeToPV, dcaTrackDeToPv, float); //! DCA of deuteron to PV (computed with KFParticle)

Check failure on line 72 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAXYTrackPrToPVProp, dcaXYtrackPrToPvProp, float); //! DCAXY of proton to PV (propagated with O2 Propagator)

Check failure on line 73 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAXYTrackPiToPVProp, dcaXYtrackPiToPvProp, float); //! DCAXY of pion to PV (propagated with O2 Propagator)

Check failure on line 74 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAXYTrackDeToPVProp, dcaXYtrackDeToPvProp, float); //! DCAXY of deuteron to PV (propagated with O2 Propagator)

Check failure on line 75 in PWGLF/DataModel/Vtx3BodyTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCATrackPrToPVProp, dcaTrackPrToPvProp, float); //! DCA of proton to PV (propagated with O2 Propagator)
DECLARE_SOA_COLUMN(DCATrackPiToPVProp, dcaTrackPiToPvProp, float); //! DCA of pion to PV (propagated with O2 Propagator)
DECLARE_SOA_COLUMN(DCATrackDeToPVProp, dcaTrackDeToPvProp, float); //! DCA of deuteron to PV (propagated with O2 Propagator)
Expand Down Expand Up @@ -326,6 +326,112 @@
using Vtx3BodyDatasCovs = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs>;
using Vtx3BodyDatasCovsIndexed = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs, Decay3BodyIndices>;

namespace nuclei3body
{
DECLARE_SOA_INDEX_COLUMN_FULL(Helium3Track, helium3Track, int, Tracks, "_He3"); //!
DECLARE_SOA_INDEX_COLUMN_FULL(Daughter1Track, daughter1Track, int, Tracks, "_D1"); //!
DECLARE_SOA_INDEX_COLUMN_FULL(Daughter2Track, daughter2Track, int, Tracks, "_D2"); //!
DECLARE_SOA_INDEX_COLUMN(Collision, collision); //!

DECLARE_SOA_COLUMN(SignHe3, signHe3, int8_t); //! He3 charge sign
DECLARE_SOA_COLUMN(SignDaughter1, signDaughter1, int8_t); //! daughter 1 charge sign
DECLARE_SOA_COLUMN(SignDaughter2, signDaughter2, int8_t); //! daughter 2 charge sign
DECLARE_SOA_COLUMN(Pt, pt, float); //! candidate transverse momentum
DECLARE_SOA_COLUMN(Eta, eta, float); //! candidate pseudorapidity
DECLARE_SOA_COLUMN(Phi, phi, float); //! candidate azimuth
DECLARE_SOA_COLUMN(PHe3, pHe3, float); //! magnitude of fitted, charge-corrected He3 momentum
DECLARE_SOA_COLUMN(PDaughter1, pDaughter1, float); //! magnitude of fitted daughter 1 momentum
DECLARE_SOA_COLUMN(PDaughter2, pDaughter2, float); //! magnitude of fitted daughter 2 momentum
DECLARE_SOA_COLUMN(Chi2, chi2, float); //! DCA-fitter chi2 at PCA
DECLARE_SOA_COLUMN(DcaDaughters, dcaDaughters, float); //! square root of DCA-fitter chi2 at PCA
DECLARE_SOA_COLUMN(CosPA, cosPA, float); //! cosine of pointing angle
DECLARE_SOA_COLUMN(DecayLength, decayLength, float); //! PV-to-SV distance

DECLARE_SOA_COLUMN(DcaXYHe3ToPv, dcaXYHe3ToPv, float); //! He3 DCAxy to PV
DECLARE_SOA_COLUMN(DcaZHe3ToPv, dcaZHe3ToPv, float); //! He3 DCAz to PV
DECLARE_SOA_COLUMN(DcaXYDaughter1ToPv, dcaXYDaughter1ToPv, float); //! daughter 1 DCAxy to PV
DECLARE_SOA_COLUMN(DcaZDaughter1ToPv, dcaZDaughter1ToPv, float); //! daughter 1 DCAz to PV
DECLARE_SOA_COLUMN(DcaXYDaughter2ToPv, dcaXYDaughter2ToPv, float); //! daughter 2 DCAxy to PV
DECLARE_SOA_COLUMN(DcaZDaughter2ToPv, dcaZDaughter2ToPv, float); //! daughter 2 DCAz to PV

DECLARE_SOA_COLUMN(TpcNSigmaHe3, tpcNSigmaHe3, float); //! custom He3 TPC n-sigma
DECLARE_SOA_COLUMN(TofNSigmaHe3, tofNSigmaHe3, float); //! He3 TOF n-sigma; sentinel without TOF
DECLARE_SOA_COLUMN(TpcNSigmaPiDaughter1, tpcNSigmaPiDaughter1, float);
DECLARE_SOA_COLUMN(TpcNSigmaKaDaughter1, tpcNSigmaKaDaughter1, float);
DECLARE_SOA_COLUMN(TpcNSigmaPrDaughter1, tpcNSigmaPrDaughter1, float);
DECLARE_SOA_COLUMN(TofNSigmaPiDaughter1, tofNSigmaPiDaughter1, float);
DECLARE_SOA_COLUMN(TofNSigmaKaDaughter1, tofNSigmaKaDaughter1, float);
DECLARE_SOA_COLUMN(TofNSigmaPrDaughter1, tofNSigmaPrDaughter1, float);
DECLARE_SOA_COLUMN(TpcNSigmaPiDaughter2, tpcNSigmaPiDaughter2, float);
DECLARE_SOA_COLUMN(TpcNSigmaKaDaughter2, tpcNSigmaKaDaughter2, float);
DECLARE_SOA_COLUMN(TpcNSigmaPrDaughter2, tpcNSigmaPrDaughter2, float);
DECLARE_SOA_COLUMN(TofNSigmaPiDaughter2, tofNSigmaPiDaughter2, float);
DECLARE_SOA_COLUMN(TofNSigmaKaDaughter2, tofNSigmaKaDaughter2, float);
DECLARE_SOA_COLUMN(TofNSigmaPrDaughter2, tofNSigmaPrDaughter2, float);

DECLARE_SOA_COLUMN(TpcNClsHe3, tpcNClsHe3, uint16_t);
DECLARE_SOA_COLUMN(TpcNClsDaughter1, tpcNClsDaughter1, uint16_t);
DECLARE_SOA_COLUMN(TpcNClsDaughter2, tpcNClsDaughter2, uint16_t);
DECLARE_SOA_COLUMN(TpcCrossedRowsHe3, tpcCrossedRowsHe3, uint16_t);
DECLARE_SOA_COLUMN(TpcCrossedRowsDaughter1, tpcCrossedRowsDaughter1, uint16_t);
DECLARE_SOA_COLUMN(TpcCrossedRowsDaughter2, tpcCrossedRowsDaughter2, uint16_t);
DECLARE_SOA_COLUMN(ItsNClsHe3, itsNClsHe3, uint8_t);
DECLARE_SOA_COLUMN(ItsNClsDaughter1, itsNClsDaughter1, uint8_t);
DECLARE_SOA_COLUMN(ItsNClsDaughter2, itsNClsDaughter2, uint8_t);

DECLARE_SOA_COLUMN(McLabelHe3, mcLabelHe3, int);
DECLARE_SOA_COLUMN(McLabelDaughter1, mcLabelDaughter1, int);
DECLARE_SOA_COLUMN(McLabelDaughter2, mcLabelDaughter2, int);
DECLARE_SOA_COLUMN(McPdgHe3, mcPdgHe3, int);
DECLARE_SOA_COLUMN(McPdgDaughter1, mcPdgDaughter1, int);
DECLARE_SOA_COLUMN(McPdgDaughter2, mcPdgDaughter2, int);
DECLARE_SOA_COLUMN(McMatchStatus, mcMatchStatus, uint8_t); //! 0 missing label, 1 no common mother, 2 common mother, 3 configured decay
DECLARE_SOA_COLUMN(McMotherLabel, mcMotherLabel, int);
DECLARE_SOA_COLUMN(McMotherPdg, mcMotherPdg, int);
DECLARE_SOA_COLUMN(GenMotherPt, genMotherPt, float);
DECLARE_SOA_COLUMN(GenMotherEta, genMotherEta, float);
DECLARE_SOA_COLUMN(GenMotherPhi, genMotherPhi, float);
DECLARE_SOA_COLUMN(GenDecayLength, genDecayLength, float);
} // namespace nuclei3body

#define NUCLEI_THREE_BODY_RECO_COLUMNS \
nuclei3body::Helium3TrackId, nuclei3body::Daughter1TrackId, \
nuclei3body::Daughter2TrackId, nuclei3body::CollisionId, \
nuclei3body::SignHe3, nuclei3body::SignDaughter1, nuclei3body::SignDaughter2, \
nuclei3body::Pt, nuclei3body::Eta, nuclei3body::Phi, \
nuclei3body::PHe3, nuclei3body::PDaughter1, nuclei3body::PDaughter2, \
nuclei3body::Chi2, nuclei3body::DcaDaughters, nuclei3body::CosPA, \
nuclei3body::DecayLength, \
nuclei3body::DcaXYHe3ToPv, nuclei3body::DcaZHe3ToPv, \
nuclei3body::DcaXYDaughter1ToPv, nuclei3body::DcaZDaughter1ToPv, \
nuclei3body::DcaXYDaughter2ToPv, nuclei3body::DcaZDaughter2ToPv, \
nuclei3body::TpcNSigmaHe3, nuclei3body::TofNSigmaHe3, \
nuclei3body::TpcNSigmaPiDaughter1, nuclei3body::TpcNSigmaKaDaughter1, \
nuclei3body::TpcNSigmaPrDaughter1, nuclei3body::TofNSigmaPiDaughter1, \
nuclei3body::TofNSigmaKaDaughter1, nuclei3body::TofNSigmaPrDaughter1, \
nuclei3body::TpcNSigmaPiDaughter2, nuclei3body::TpcNSigmaKaDaughter2, \
nuclei3body::TpcNSigmaPrDaughter2, nuclei3body::TofNSigmaPiDaughter2, \
nuclei3body::TofNSigmaKaDaughter2, nuclei3body::TofNSigmaPrDaughter2, \
nuclei3body::TpcNClsHe3, nuclei3body::TpcNClsDaughter1, nuclei3body::TpcNClsDaughter2, \
nuclei3body::TpcCrossedRowsHe3, nuclei3body::TpcCrossedRowsDaughter1, \
nuclei3body::TpcCrossedRowsDaughter2, nuclei3body::ItsNClsHe3, \
nuclei3body::ItsNClsDaughter1, nuclei3body::ItsNClsDaughter2

DECLARE_SOA_TABLE(NucleiThreeBodyDatas, "AOD", "NUC3BODYDATA",
o2::soa::Index<>,
NUCLEI_THREE_BODY_RECO_COLUMNS);

DECLARE_SOA_TABLE(McNucleiThreeBodyDatas, "AOD", "MCNUC3BODY",
o2::soa::Index<>,
NUCLEI_THREE_BODY_RECO_COLUMNS,
nuclei3body::McLabelHe3, nuclei3body::McLabelDaughter1, nuclei3body::McLabelDaughter2,
nuclei3body::McPdgHe3, nuclei3body::McPdgDaughter1, nuclei3body::McPdgDaughter2,
nuclei3body::McMatchStatus, nuclei3body::McMotherLabel, nuclei3body::McMotherPdg,
nuclei3body::GenMotherPt, nuclei3body::GenMotherEta,
nuclei3body::GenMotherPhi, nuclei3body::GenDecayLength);

#undef NUCLEI_THREE_BODY_RECO_COLUMNS

} // namespace o2::aod

#endif // PWGLF_DATAMODEL_VTX3BODYTABLES_H_
5 changes: 5 additions & 0 deletions PWGLF/TableProducer/Nuspex/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ o2physics_add_dpl_workflow(tracked-hypertriton-reco-task
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter KFParticle::KFParticle O2::TOFBase O2::DetectorsVertexing O2Physics::EventFilteringUtils
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(nuclei-three-body-builder
SOURCES nucleiThreeBodyBuilder.cxx
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter O2Physics::EventFilteringUtils
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(lnn-reco-task
SOURCES lnnRecoTask.cxx
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter
Expand Down
Loading
Loading