@@ -148,60 +148,39 @@ DECLARE_SOA_TABLE(LambdaMcGenTracks, "AOD", "LMCGENTRACKS", o2::soa::Index<>,
148148 lambdatrack::CorrFact);
149149using 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
207186enum CollisionLabels {
@@ -1540,6 +1519,9 @@ struct LambdaTracksExtProducer {
15401519};
15411520
15421521struct 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