@@ -147,9 +147,9 @@ struct lambdajetpolarizationions {
147147
148148 // struct : ProducesGroup {
149149 // } products;
150- Produces<aod::RingLambdaLikeV0s > tableV0s;
151- Produces<aod::RingJets> tableJets;
152- Produces<aod::RingCollisions> tableCollisions;
150+ Produces<o2:: aod::RingLaV0s > tableV0s;
151+ Produces<o2:: aod::RingJets> tableJets;
152+ Produces<o2:: aod::RingCollisions> tableCollisions;
153153
154154 // Define histogram registries:
155155 HistogramRegistry histos{" Histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -184,16 +184,11 @@ struct lambdajetpolarizationions {
184184 // Configurable<bool> doCollisionAssociationQA{"doCollisionAssociationQA", true, "check collision association"};
185185 // /////////////////////////////////////////////
186186
187- // ////////////////////////////////////////////
188- // Manual slice by: (TODO)
189- // SliceCache cache;
190- // Preslice<aod::V0Datas> V0perCollision = o2::aod::v0data::collisionId;
191- // Preslice<aod::CascDatas> CascperCollision = o2::aod::cascdata::collisionId;
192- // Preslice<aod::KFCascDatas> KFCascperCollision = o2::aod::cascdata::collisionId;
193- // Preslice<aod::TraCascDatas> TraCascperCollision = o2::aod::cascdata::collisionId;
194- // Preslice<aod::McParticles> mcParticlePerMcCollision = o2::aod::mcparticle::mcCollisionId;
195- // Preslice<UDCollisionsFull> udCollisionsPerCollision = o2::aod::udcollision::collisionId;
196- // ///////////////////////////////////////////
187+ // TODO: COMPLEMENTARY ANALYSES TO STUDY SPURIOUS POLARIZATION SOURCES!
188+ // TODO: add an event plane selection procedure to get an angle between the global polarization axis and the jet axis to uncouple polarizations?
189+ // TODO: (related to previous comment) if we already have event plane, also estimate v_2-caused polarization. Hydro papers indicate observable is unsensitive to this spurious polarization, but this is a perfect consistency check.
190+ // TODO: add a longitudinal polarization block of code to estimate other sources of polarization (and possibly study their differential dependence on the angle wrlt the jets and their rings)?
191+ // TODO: add a block of code that calculates polarization from Lambda fragmentation to estimate the contamination of this third source of polarization
197192
198193
199194 // Configurable groups:
@@ -235,7 +230,8 @@ struct lambdajetpolarizationions {
235230
236231 // Selection criteria: acceptance
237232 Configurable<float > rapidityCut{" rapidityCut" , 1 .0f , " rapidity" };
238- Configurable<float > daughterEtaCut{" daughterEtaCut" , 0.9 , " max eta for daughters" }; // Default is 0.8. Changed to 0.9 to agree with jet selection. TODO: test the impact/biasing of this!
233+ Configurable<float > v0EtaCut{" v0EtaCut" , 0 .9f , " eta cut for v0" };
234+ Configurable<float > daughterEtaCut{" daughterEtaCut" , 0 .9f , " max eta for daughters" }; // Default is 0.8. Changed to 0.9 to agree with jet selection. TODO: test the impact/biasing of this!
239235
240236 // Standard 5 topological criteria -- Closed a bit more for the Lambda analysis
241237 Configurable<float > v0cospa{" v0cospa" , 0.995 , " min V0 CosPA" }; // Default is 0.97
@@ -462,7 +458,6 @@ struct lambdajetpolarizationions {
462458 }
463459 }
464460
465-
466461 // Track analysis parameters -- A specific group that is different from the v0Selections. In jet analyses we need to control our PseudoJet candidates!
467462 // (TODO: include minimal selection criteria for electrons, muons and photons)
468463 // Notice you do NOT need any PID for the PseudoJet candidates! Only need is to know the 4-momentum appropriately. Thus removed nsigma checks on PID
@@ -490,35 +485,8 @@ struct lambdajetpolarizationions {
490485 Configurable<float > dcaxyMaxTrackPar2{" dcaxyMaxTrackPar2" , 1 .1f , " Exponent of pt dependence of DCA resolution" };
491486 } pseudoJetCandidateTrackSelections;
492487
493- // struct : ConfigurableGroup {
494- // std::string prefix = "jetQAConfigurations"; // JSON group name
495- // Configurable
496- // } jetQAConfigurations; // (TODO)
497-
498- // Instantiate utility class for jet background subtraction
499488 JetBkgSubUtils backgroundSub;
500489
501- // // Lambda Ring Polarization axes configurable group:
502- // struct : ConfigurableGroup {
503- // std::string prefix = "ringPolConfigurations"; // JSON group name
504-
505- // } ringPolConfigurations; // (TODO)
506-
507-
508- // Define per-collision preslices for V0s, MC particles, and daughter tracks:
509- Preslice<aod::V0Datas> V0perCollision = o2::aod::v0data::collisionId;
510- // Preslice<aod::McParticles> perMCCollision = o2::aod::mcparticle::mcCollisionId;
511- Preslice<DauTracks> perCollisionTrk = o2::aod::track::collisionId;
512-
513- // Service<o2::framework::O2DatabasePDG> pdg;
514-
515- // std::vector<uint32_t> genLambda;
516- // std::vector<uint32_t> genAntiLambda;
517- // std::vector<uint32_t> genXiMinus;
518- // std::vector<uint32_t> genXiPlus;
519- // std::vector<uint32_t> genOmegaMinus;
520- // std::vector<uint32_t> genOmegaPlus;
521-
522490 void init (InitContext const &){ // (TODO: add all useful histograms here! Add flags for QA plots and the such too)
523491 // setting CCDB service
524492 ccdb->setURL (ccdbConfigurations.ccdbUrl );
@@ -657,7 +625,7 @@ struct lambdajetpolarizationions {
657625 });
658626 };
659627 constexpr bool Lambda = true ; // Some constexpr to make it more readable (works at compile level)
660- constexpr bool AntiLambda = false ;
628+ constexpr bool AntiLambda = false ; // "false" is just a flag for this addHypothesis function! It just means fill "AntiLambda" labels
661629 addHypothesis (Lambda, analyseLambda);
662630 addHypothesis (AntiLambda, analyseAntiLambda);
663631
@@ -1152,6 +1120,7 @@ struct lambdajetpolarizationions {
11521120
11531121 // pseudorapidity cuts:
11541122 if (std::fabs (v0.yLambda ()) > v0Selections.rapidityCut ) return false ;
1123+ // if (std::fabs(v0.eta()) > v0Selections.v0EtaCut) return false;
11551124 V0SelCounter.fill ();
11561125 // if (std::fabs(v0.eta()) > v0Selections.daughterEtaCut) return false; // (TODO: properly consider this in daughter selection!)
11571126
@@ -1595,6 +1564,21 @@ struct lambdajetpolarizationions {
15951564
15961565 // Saving the Lambdas into a derived data column:
15971566 auto const v0pt = v0.pt ();
1567+ // LOG(INFO) << "Filling tableV0s";
1568+ // LOG(INFO) << collIdx;
1569+ // LOG(INFO) << v0pt;
1570+ // LOG(INFO) << v0.eta();
1571+ // LOG(INFO) << v0.phi();
1572+ // LOG(INFO) << isLambda;
1573+ // LOG(INFO) << isAntiLambda;
1574+ // LOG(INFO) << v0.mLambda();
1575+ // LOG(INFO) << v0.mAntiLambda();
1576+ // LOG(INFO) << v0.positivept();
1577+ // LOG(INFO) << v0.positiveeta();
1578+ // LOG(INFO) << v0.positivephi();
1579+ // LOG(INFO) << v0.negativept();
1580+ // LOG(INFO) << v0.negativeeta();
1581+ // LOG(INFO) << v0.negativephi();
15981582 tableV0s (collIdx,
15991583 v0pt,
16001584 v0.eta (), // Using eta instead of rapidity
@@ -1649,6 +1633,15 @@ struct lambdajetpolarizationions {
16491633 // Remaking these variables outside of the passesLambdaLambdaBarHypothesis. Loses performance, but that should be OK for QA
16501634 const auto posTrackExtra = v0.template posTrack_as <DauTracks>();
16511635 const auto negTrackExtra = v0.template negTrack_as <DauTracks>();
1636+ histos.fill (HIST (" hPosDCAToPV" ), v0.dcapostopv ());
1637+ histos.fill (HIST (" hNegDCAToPV" ), v0.dcanegtopv ());
1638+ histos.fill (HIST (" hDCADaughters" ), v0.dcaV0daughters ());
1639+ histos.fill (HIST (" hPointingAngle" ), std::acos (v0.v0cosPA ()));
1640+ histos.fill (HIST (" hV0Radius" ), v0.v0radius ());
1641+ histos.fill (HIST (" h2dPositiveITSvsTPCpts" ), posTrackExtra.tpcNClsCrossedRows (), posTrackExtra.itsNCls ());
1642+ histos.fill (HIST (" h2dNegativeITSvsTPCpts" ), negTrackExtra.tpcNClsCrossedRows (), negTrackExtra.itsNCls ());
1643+ histos.fill (HIST (" h2dPositivePtVsPhi" ), v0.positivept (), computePhiMod (v0.positivephi (), 1 ));
1644+ histos.fill (HIST (" h2dNegativePtVsPhi" ), v0.negativept (), computePhiMod (v0.negativephi (), -1 ));
16521645 if (isLambda && analyseLambda) {
16531646 histos.fill (HIST (" h3dMassLambda" ), centrality, v0pt, v0.mLambda ());
16541647 histos.fill (HIST (" hMassLambda" ), v0.mLambda ());
@@ -1696,8 +1689,10 @@ struct lambdajetpolarizationions {
16961689 }
16971690 }
16981691 if (isAntiLambda && analyseAntiLambda) {
1692+ // histos.add("h2dNbrOfAntiLambdaVsCentrality", "h2dNbrOfAntiLambdaVsCentrality", kTH2D, {axisConfigurations.axisCentrality, {10, -0.5f, 9.5f}});
1693+ // histos.fill(HIST("h2dNbrOfAntiLambdaVsCentrality"), centrality, v0pt, v0.mAntiLambda()); // (TODO: add the proper call to this fill)
16991694 histos.fill (HIST (" h3dMassAntiLambda" ), centrality, v0pt, v0.mAntiLambda ());
1700- histos.fill (HIST (" hMassAntiLambda" ), v0.mAntiLambda ());
1695+ histos.fill (HIST (" hMassAntiLambda" ), v0.mAntiLambda ());
17011696 histos.fill (HIST (" AntiLambda/hPosDCAToPV" ), v0.dcapostopv ());
17021697 histos.fill (HIST (" AntiLambda/hNegDCAToPV" ), v0.dcanegtopv ());
17031698 histos.fill (HIST (" AntiLambda/hDCADaughters" ), v0.dcaV0daughters ());
@@ -1742,14 +1737,15 @@ struct lambdajetpolarizationions {
17421737 }
17431738 }
17441739 } // end CompleteTopoQA
1745- }
1740+ } // end V0s loop
1741+ // Only fills collision when there is a valid V0 in it: (TODO: could probably do the same for the jets table)
17461742 if (hasValidV0){
1747- tableCollisions (collIdx,
1748- centrality); // (TODO: add InteractionRate info and other useful cuts for later on in the analysis!)
1743+ // LOG(INFO) << "Filling tableCollisions";
1744+ tableCollisions (collIdx, centrality); // (TODO: add InteractionRate info and other useful cuts for later on in the analysis!)
17491745 }
17501746 }
17511747
1752- PROCESS_SWITCH (lambdajetpolarizationions, processJetsData, " Process jets and produced derived data in Run 3 Data" , true );
1748+ PROCESS_SWITCH (lambdajetpolarizationions, processJetsData, " Process jets and produce derived data in Run 3 Data" , true );
17531749 PROCESS_SWITCH (lambdajetpolarizationions, processV0sData, " Process V0s and produce derived data in Run 3 Data" , true );
17541750 // PROCESS_SWITCH(lambdajetpolarizationions, processJetsMC, "Process jets and produced derived data in Run 3 MC", true);
17551751 // PROCESS_SWITCH(lambdajetpolarizationions, processV0sMC, "Process V0s and produce derived data in Run 3 MC", true);
0 commit comments