Skip to content

Commit 13f10de

Browse files
authored
[PWGCF] Refactor lambda spin polarization and mixing structures (#14102)
1 parent 90ab5fe commit 13f10de

File tree

1 file changed

+43
-86
lines changed

1 file changed

+43
-86
lines changed

PWGCF/TwoParticleCorrelations/Tasks/lambdaSpinPolarization.cxx

Lines changed: 43 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -148,60 +148,39 @@ DECLARE_SOA_TABLE(LambdaMcGenTracks, "AOD", "LMCGENTRACKS", o2::soa::Index<>,
148148
lambdatrack::CorrFact);
149149
using LambdaMcGenTrack = LambdaMcGenTracks::iterator;
150150

151-
// collisions: cent, posZ
152-
namespace lambdamixcollision
151+
namespace lambdamixeventcollision
153152
{
154-
DECLARE_SOA_COLUMN(Cent, cent, float);
155-
DECLARE_SOA_COLUMN(PosZ, posZ, float);
156-
} // namespace lambdamixcollision
153+
DECLARE_SOA_COLUMN(CollisionIndex, collisionIndex, int);
154+
} // namespace lambdamixeventcollision
157155

158-
DECLARE_SOA_TABLE(LambdaMixCollisions, "AOD", "LAMBDAMIXCOLS",
159-
lambdamixcollision::Cent,
160-
lambdamixcollision::PosZ);
161-
using LambdaMixCollision = LambdaMixCollisions::iterator;
156+
DECLARE_SOA_TABLE(LambdaMixEventCollisions, "AOD", "LAMBDAMIXCOLS", o2::soa::Index<>,
157+
lambdamixeventcollision::CollisionIndex,
158+
lambdacollision::Cent,
159+
aod::collision::PosZ);
162160

163-
// per-Lambda record for mixing
164-
namespace lambdamixtrk
165-
{
166-
DECLARE_SOA_INDEX_COLUMN(LambdaCollision, lambdaCollision);
161+
using LambdaMixEventCollision = LambdaMixEventCollisions::iterator;
167162

168-
DECLARE_SOA_COLUMN(Px, px, float);
169-
DECLARE_SOA_COLUMN(Py, py, float);
170-
DECLARE_SOA_COLUMN(Pz, pz, float);
171-
DECLARE_SOA_COLUMN(Pt, pt, float);
172-
DECLARE_SOA_COLUMN(Rap, rap, float);
173-
DECLARE_SOA_COLUMN(Eta, eta, float);
174-
DECLARE_SOA_COLUMN(Phi, phi, float);
175-
DECLARE_SOA_COLUMN(Mass, mass, float);
176-
177-
DECLARE_SOA_COLUMN(PrPx, prPx, float);
178-
DECLARE_SOA_COLUMN(PrPy, prPy, float);
179-
DECLARE_SOA_COLUMN(PrPz, prPz, float);
163+
namespace lambdamixeventtracks
164+
{
165+
// DECLARE_SOA_INDEX_COLUMN(LambdaMixEventCollision, lambdaMixEventCollision);
166+
DECLARE_SOA_COLUMN(LambdaMixEventCollisionIdx, lambdaMixEventCollisionIdx, int);
167+
DECLARE_SOA_COLUMN(LambdaMixEventTrackIdx, lambdaMixEventTrackIdx, int);
168+
} // namespace lambdamixeventtracks
169+
170+
DECLARE_SOA_TABLE(LambdaMixEventTracks, "AOD", "LAMBDAMIXTRKS", o2::soa::Index<>,
171+
// lambdamixeventtracks::LambdaMixEventCollisionId,
172+
lambdamixeventtracks::LambdaMixEventCollisionIdx,
173+
lambdamixeventtracks::LambdaMixEventTrackIdx,
174+
lambdatrack::Px,
175+
lambdatrack::Py,
176+
lambdatrack::Pz,
177+
lambdatrack::Mass,
178+
lambdatrack::PrPx,
179+
lambdatrack::PrPy,
180+
lambdatrack::PrPz,
181+
lambdatrack::V0Type);
180182

181-
DECLARE_SOA_COLUMN(V0Type, v0Type, int8_t);
182-
DECLARE_SOA_COLUMN(V0PrmScd, v0PrmScd, int8_t);
183-
DECLARE_SOA_COLUMN(PosTrackId, posTrackId, int64_t);
184-
DECLARE_SOA_COLUMN(NegTrackId, negTrackId, int64_t);
185-
} // namespace lambdamixtrk
186-
187-
DECLARE_SOA_TABLE(LambdaMixTracks, "AOD", "LAMBDAMIXTRKS",
188-
lambdamixtrk::LambdaCollisionId,
189-
lambdamixtrk::Px,
190-
lambdamixtrk::Py,
191-
lambdamixtrk::Pz,
192-
lambdamixtrk::Pt,
193-
lambdamixtrk::Rap,
194-
lambdamixtrk::Eta,
195-
lambdamixtrk::Phi,
196-
lambdamixtrk::Mass,
197-
lambdamixtrk::PrPx,
198-
lambdamixtrk::PrPy,
199-
lambdamixtrk::PrPz,
200-
lambdamixtrk::V0Type,
201-
lambdamixtrk::V0PrmScd,
202-
lambdamixtrk::PosTrackId,
203-
lambdamixtrk::NegTrackId);
204-
using LambdaMixTrack = LambdaMixTracks::iterator;
183+
using LambdaMixEventTrack = LambdaMixEventTracks::iterator;
205184
} // namespace o2::aod
206185

207186
enum CollisionLabels {
@@ -1540,6 +1519,9 @@ struct LambdaTracksExtProducer {
15401519
};
15411520

15421521
struct LambdaSpinPolarization {
1522+
// Table producer
1523+
Produces<aod::LambdaMixEventCollisions> lambdaMixEvtCol;
1524+
Produces<aod::LambdaMixEventTracks> lambdaMixEvtTrk;
15431525

15441526
// Global Configurables
15451527
Configurable<int> cNPtBins{"cNPtBins", 30, "N pT Bins"};
@@ -1698,55 +1680,30 @@ struct LambdaSpinPolarization {
16981680
}
16991681

17001682
PROCESS_SWITCH(LambdaSpinPolarization, processDataReco, "Process for Data and MCReco", true);
1701-
};
1702-
1703-
struct LambdaMixWriter {
1704-
1705-
using LambdaCollisions = aod::LambdaCollisions;
1706-
using LambdaTracks = soa::Join<aod::LambdaTracks, aod::LambdaTracksExt>;
17071683

1708-
Produces<o2::aod::LambdaMixCollisions> lambdamixCollisionsTable;
1709-
Produces<o2::aod::LambdaMixTracks> lambdamixTracksTable;
1710-
1711-
void processDataRecoMixTable(LambdaCollisions::iterator const& collision, LambdaTracks const& tracks)
1684+
void processDataRecoMixEvent(LambdaCollisions::iterator const& collision, LambdaTracks const& tracks)
17121685
{
1713-
1686+
// return for no lambdas in a collision
17141687
if (tracks.size() == 0) {
17151688
return;
17161689
}
17171690

1718-
lambdamixCollisionsTable(collision.cent(), collision.posZ());
1691+
// fill collision table
1692+
lambdaMixEvtCol(collision.index(), collision.cent(), collision.posZ());
17191693

17201694
for (auto const& track : tracks) {
1721-
1722-
auto collIndex = track.lambdaCollisionId();
1723-
1724-
lambdamixTracksTable(collIndex,
1725-
track.px(),
1726-
track.py(),
1727-
track.pz(),
1728-
track.pt(),
1729-
track.rap(),
1730-
track.eta(),
1731-
track.phi(),
1732-
track.mass(),
1733-
track.prPx(),
1734-
track.prPy(),
1735-
track.prPz(),
1736-
track.v0Type(),
1737-
track.v0PrmScd(),
1738-
track.posTrackId(),
1739-
track.negTrackId());
1695+
lambdaMixEvtTrk(collision.index(), track.index(), track.px(), track.py(), track.pz(), track.mass(),
1696+
track.prPx(), track.prPy(), track.prPz(), track.v0Type());
17401697
}
17411698
}
1742-
PROCESS_SWITCH(LambdaMixWriter, processDataRecoMixTable, "Process Table for Data and MCReco Mix Event", false);
1699+
1700+
PROCESS_SWITCH(LambdaSpinPolarization, processDataRecoMixEvent, "Process for Data and MCReco Mix Event", false);
17431701
};
17441702

1745-
WorkflowSpec defineDataProcessing(ConfigContext const& cfg)
1703+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
17461704
{
17471705
return WorkflowSpec{
1748-
adaptAnalysisTask<LambdaTableProducer>(cfg),
1749-
adaptAnalysisTask<LambdaTracksExtProducer>(cfg),
1750-
adaptAnalysisTask<LambdaSpinPolarization>(cfg),
1751-
adaptAnalysisTask<LambdaMixWriter>(cfg)};
1706+
adaptAnalysisTask<LambdaTableProducer>(cfgc),
1707+
adaptAnalysisTask<LambdaTracksExtProducer>(cfgc),
1708+
adaptAnalysisTask<LambdaSpinPolarization>(cfgc)};
17521709
}

0 commit comments

Comments
 (0)