From cec6146baa29b392755d608c2256dd7c12028b3b Mon Sep 17 00:00:00 2001 From: Daiki Sekihata Date: Sat, 26 Jul 2025 18:00:23 +0200 Subject: [PATCH 1/2] PWGEM/Dilepton: update charged track for 2PC --- PWGEM/Dilepton/DataModel/dileptonTables.h | 40 +++++++++++-------- .../TableProducer/createEMEventDilepton.cxx | 2 +- .../TableProducer/skimmerPrimaryTrack.cxx | 18 +++++---- .../TableProducer/createEMEventPhoton.cxx | 13 +++--- 4 files changed, 42 insertions(+), 31 deletions(-) diff --git a/PWGEM/Dilepton/DataModel/dileptonTables.h b/PWGEM/Dilepton/DataModel/dileptonTables.h index 88321541855..142a0560973 100644 --- a/PWGEM/Dilepton/DataModel/dileptonTables.h +++ b/PWGEM/Dilepton/DataModel/dileptonTables.h @@ -690,22 +690,23 @@ using EMGlobalMuonSelfId = EMGlobalMuonSelfIds::iterator; namespace emprimarytrack { -DECLARE_SOA_INDEX_COLUMN(EMEvent, emevent); //! +DECLARE_SOA_INDEX_COLUMN(EMEvent, emevent); //! DECLARE_SOA_COLUMN(CollisionId, collisionId, int); //! -DECLARE_SOA_COLUMN(TrackId, trackId, int); //! -DECLARE_SOA_COLUMN(Sign, sign, int8_t); //! -DECLARE_SOA_COLUMN(TrackBit, trackBit, uint16_t); //! -DECLARE_SOA_DYNAMIC_COLUMN(Signed1Pt, signed1Pt, [](float pt, int8_t sign) -> float { return sign * 1. / pt; }); -DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float pt, float eta) -> float { return pt * std::cosh(eta); }); -DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); }); -DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); }); -DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); }); +DECLARE_SOA_COLUMN(TrackId, trackId, int); //! +// DECLARE_SOA_COLUMN(Sign, sign, int8_t); //! +DECLARE_SOA_COLUMN(TrackBit, trackBit, uint16_t); //! +DECLARE_SOA_COLUMN(PtUINT16, ptuint16, uint16_t); //! +DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, [](uint16_t ptuint16) -> float { return static_cast(ptuint16) * 1e-4; }); +// DECLARE_SOA_DYNAMIC_COLUMN(Signed1Pt, signed1Pt, [](float pt, int8_t sign) -> float { return sign * 1. / pt; }); +// DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float pt, float eta) -> float { return pt * std::cosh(eta); }); +// DECLARE_SOA_DYNAMIC_COLUMN(Px, px, [](float pt, float phi) -> float { return pt * std::cos(phi); }); +// DECLARE_SOA_DYNAMIC_COLUMN(Py, py, [](float pt, float phi) -> float { return pt * std::sin(phi); }); +// DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); }); } // namespace emprimarytrack DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //! - o2::soa::Index<>, emprimarytrack::CollisionId, - emprimarytrack::TrackId, emprimarytrack::Sign, - track::Pt, track::Eta, track::Phi, track::DcaXY, track::DcaZ, emprimarytrack::TrackBit, + o2::soa::Index<>, emprimarytrack::CollisionId, emprimarytrack::TrackId, /* emprimarytrack::Sign,*/ + emprimarytrack::PtUINT16, track::Eta, track::Phi, track::DcaXY, track::DcaZ, emprimarytrack::TrackBit, // track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared, track::TPCChi2NCl, // track::ITSClusterSizes, track::ITSChi2NCl, track::DetectorMap, @@ -719,11 +720,12 @@ DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //! // track::v001::ITSClusterMap, track::v001::ITSNCls, track::v001::ITSNClsInnerBarrel, // track::HasITS, track::HasTPC, track::HasTRD, track::HasTOF, - emprimarytrack::Signed1Pt, - emprimarytrack::P, - emprimarytrack::Px, - emprimarytrack::Py, - emprimarytrack::Pz); + // emprimarytrack::Signed1Pt, + // emprimarytrack::P, + // emprimarytrack::Px, + // emprimarytrack::Py, + // emprimarytrack::Pz + emprimarytrack::Pt); using EMPrimaryTracks = EMPrimaryTracks_000; // iterators @@ -733,6 +735,10 @@ DECLARE_SOA_TABLE(EMPrimaryTrackEMEventIds, "AOD", "PRMTRKEMEVENTID", emprimaryt // iterators using EMPrimaryTrackEMEventId = EMPrimaryTrackEMEventIds::iterator; +// DECLARE_SOA_TABLE(EMPrimaryTrackEMEventIdsTMP, "AOD", "PRMTRKEVIDTMP", track::CollisionId); // To be joined with EMPrimaryTracks in associateDileptonToEMEvent +// // iterators +// using EMPrimaryTrackEMEventIdTMP = EMPrimaryTrackEMEventIdsTMP::iterator; + // Dummy data for MC namespace emdummydata { diff --git a/PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx b/PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx index d56a024de77..a6ab3c9c4c5 100644 --- a/PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx +++ b/PWGEM/Dilepton/TableProducer/createEMEventDilepton.cxx @@ -303,7 +303,7 @@ struct AssociateDileptonToEMEvent { Preslice perCollision_pcm = aod::v0photonkf::collisionId; PresliceUnsorted perCollision_el = aod::emprimaryelectron::collisionId; PresliceUnsorted perCollision_mu = aod::emprimarymuon::collisionId; - PresliceUnsorted perCollision_track = aod::emprimarytrack::collisionId; + Preslice perCollision_track = aod::emprimarytrack::collisionId; void init(o2::framework::InitContext&) {} diff --git a/PWGEM/Dilepton/TableProducer/skimmerPrimaryTrack.cxx b/PWGEM/Dilepton/TableProducer/skimmerPrimaryTrack.cxx index 37bde849360..7e05accb739 100644 --- a/PWGEM/Dilepton/TableProducer/skimmerPrimaryTrack.cxx +++ b/PWGEM/Dilepton/TableProducer/skimmerPrimaryTrack.cxx @@ -13,7 +13,6 @@ /// \author daiki.sekihata@cern.ch #include "PWGEM/Dilepton/DataModel/dileptonTables.h" -// #include "PWGEM/Dilepton/Utils/PairUtilities.h" #include "PWGEM/Dilepton/Utils/EMTrackUtilities.h" #include "Common/Core/TableHelper.h" @@ -59,6 +58,7 @@ struct skimmerPrimaryTrack { SliceCache cache; Preslice perCol = o2::aod::track::collisionId; Produces emprimarytracks; + // Produces prmtrackeventidtmp; // Configurables Configurable ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; @@ -72,11 +72,11 @@ struct skimmerPrimaryTrack { Configurable fillQAHistogram{"fillQAHistogram", false, "flag to fill QA histograms"}; Configurable d_bz_input{"d_bz_input", -999, "bz field in kG, -999 is automatic"}; - Configurable minpt{"minpt", 0.15, "min pt for ITS-TPC track"}; - Configurable maxpt{"maxpt", 5.0, "max pt for ITS-TPC track"}; - Configurable maxeta{"maxeta", 2.0, "eta acceptance"}; - Configurable dca_xy_max{"dca_xy_max", 1.0, "max DCAxy in cm"}; - Configurable dca_z_max{"dca_z_max", 1.0, "max DCAz in cm"}; + Configurable minpt{"minpt", 0.2, "min pt for ITS-TPC track"}; + Configurable maxpt{"maxpt", 3.0, "max pt for ITS-TPC track"}; + Configurable maxeta{"maxeta", 1.4, "eta acceptance"}; + Configurable dca_xy_max{"dca_xy_max", 0.5, "max DCAxy in cm"}; + Configurable dca_z_max{"dca_z_max", 0.5, "max DCAz in cm"}; // Configurable min_ncluster_tpc{"min_ncluster_tpc", 0, "min ncluster tpc"}; // Configurable mincrossedrows{"mincrossedrows", 70, "min. crossed rows"}; @@ -246,6 +246,9 @@ struct skimmerPrimaryTrack { if (std::fabs(trackParCov.getEta()) > maxeta || trackParCov.getPt() < minpt || maxpt < trackParCov.getPt()) { return false; } + if (trackParCov.getPt() > 5.f) { + return false; + } return true; } @@ -311,7 +314,8 @@ struct skimmerPrimaryTrack { trackBit |= static_cast(RefTrackBit::kFracSharedTPC07); } - emprimarytracks(collision.globalIndex(), track.globalIndex(), track.sign(), pt, eta, phi, dcaXY, dcaZ, trackBit); + emprimarytracks(collision.globalIndex(), track.globalIndex(), /*track.sign(),*/ static_cast(pt * 1e+4), eta, phi, dcaXY, dcaZ, trackBit); + // prmtrackeventidtmp(collision.globalIndex()); stored_trackIds.emplace_back(std::pair{collision.globalIndex(), track.globalIndex()}); diff --git a/PWGEM/PhotonMeson/TableProducer/createEMEventPhoton.cxx b/PWGEM/PhotonMeson/TableProducer/createEMEventPhoton.cxx index 9a6d3be2734..871bd62f35d 100644 --- a/PWGEM/PhotonMeson/TableProducer/createEMEventPhoton.cxx +++ b/PWGEM/PhotonMeson/TableProducer/createEMEventPhoton.cxx @@ -341,7 +341,7 @@ struct AssociatePhotonToEMEvent { PresliceUnsorted perCollisionEl = aod::emprimaryelectron::collisionId; Preslice perCollisionPHOS = aod::skimmedcluster::collisionId; Preslice perCollisionEMC = aod::skimmedcluster::collisionId; - PresliceUnsorted perCollisionTrack = aod::emprimarytrack::collisionId; + Preslice perCollision_track = aod::emprimarytrack::collisionId; void init(o2::framework::InitContext&) {} @@ -370,11 +370,6 @@ struct AssociatePhotonToEMEvent { fillEventId(collisions, tracks, prmeleventid, perCollisionEl); } - void processChargedTrack(aod::EMEvents const& collisions, aod::EMPrimaryTracks const& tracks) - { - fillEventId(collisions, tracks, prmtrackeventid, perCollisionTrack); - } - void processPHOS(aod::EMEvents const& collisions, aod::PHOSClusters const& photons) { fillEventId(collisions, photons, phoseventid, perCollisionPHOS); @@ -385,12 +380,18 @@ struct AssociatePhotonToEMEvent { fillEventId(collisions, photons, emceventid, perCollisionEMC); } + void processChargedTrack(aod::EMEvents const& collisions, aod::EMPrimaryTracks const& tracks) + { + fillEventId(collisions, tracks, prmtrackeventid, perCollision_track); + } + void processDummy(aod::EMEvents const&) {} PROCESS_SWITCH(AssociatePhotonToEMEvent, processPCM, "process pcm-event indexing", false); PROCESS_SWITCH(AssociatePhotonToEMEvent, processElectronFromDalitz, "process dalitzee-event indexing", false); PROCESS_SWITCH(AssociatePhotonToEMEvent, processPHOS, "process phos-event indexing", false); PROCESS_SWITCH(AssociatePhotonToEMEvent, processEMC, "process emc-event indexing", false); + PROCESS_SWITCH(AssociatePhotonToEMEvent, processChargedTrack, "process indexing for charged tracks", false); PROCESS_SWITCH(AssociatePhotonToEMEvent, processDummy, "process dummy", true); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) From 3d0f7dc26575880160a76381f4c1abd0e7d77173 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sat, 26 Jul 2025 18:43:39 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGEM/Dilepton/DataModel/dileptonTables.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGEM/Dilepton/DataModel/dileptonTables.h b/PWGEM/Dilepton/DataModel/dileptonTables.h index 142a0560973..a96debb1457 100644 --- a/PWGEM/Dilepton/DataModel/dileptonTables.h +++ b/PWGEM/Dilepton/DataModel/dileptonTables.h @@ -690,9 +690,9 @@ using EMGlobalMuonSelfId = EMGlobalMuonSelfIds::iterator; namespace emprimarytrack { -DECLARE_SOA_INDEX_COLUMN(EMEvent, emevent); //! +DECLARE_SOA_INDEX_COLUMN(EMEvent, emevent); //! DECLARE_SOA_COLUMN(CollisionId, collisionId, int); //! -DECLARE_SOA_COLUMN(TrackId, trackId, int); //! +DECLARE_SOA_COLUMN(TrackId, trackId, int); //! // DECLARE_SOA_COLUMN(Sign, sign, int8_t); //! DECLARE_SOA_COLUMN(TrackBit, trackBit, uint16_t); //! DECLARE_SOA_COLUMN(PtUINT16, ptuint16, uint16_t); //! @@ -704,7 +704,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, [](uint16_t ptuint16) -> float { return stati // DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, [](float pt, float eta) -> float { return pt * std::sinh(eta); }); } // namespace emprimarytrack -DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //! +DECLARE_SOA_TABLE_VERSIONED(EMPrimaryTracks_000, "AOD", "EMPRIMARYTRACK", 0, //! o2::soa::Index<>, emprimarytrack::CollisionId, emprimarytrack::TrackId, /* emprimarytrack::Sign,*/ emprimarytrack::PtUINT16, track::Eta, track::Phi, track::DcaXY, track::DcaZ, emprimarytrack::TrackBit,