Skip to content

Commit cd43870

Browse files
committed
Fixing V0s table name to within maximum size to save in Derived Data. Added some missing fills to histograms
1 parent 5a6c37b commit cd43870

File tree

2 files changed

+47
-51
lines changed

2 files changed

+47
-51
lines changed

PWGLF/DataModel/lambdaJetPolarizationIons.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace o2::aod
2828
namespace lambdajetpol
2929
{
3030

31-
DECLARE_SOA_COLUMN(CollIdx, collIdx, uint64_t);
31+
DECLARE_SOA_COLUMN(CollIdx, collIdx, uint64_t); // Using a regular SOA column instead of an index column for convenience
3232
DECLARE_SOA_COLUMN(Centrality, centrality, float);
3333

3434
DECLARE_SOA_COLUMN(JetPt, jetPt, float);
@@ -63,7 +63,7 @@ DECLARE_SOA_TABLE(RingJets, "AOD", "RINGJETS", // Renamed to follow convention o
6363
lambdajetpol::JetPhi,
6464
lambdajetpol::JetNConstituents);
6565

66-
DECLARE_SOA_TABLE(RingLambdaLikeV0s, "AOD", "RINGLAMBDALIKEV0S",
66+
DECLARE_SOA_TABLE(RingLaV0s, "AOD", "RINGLAV0S",
6767
lambdajetpol::CollIdx,
6868
lambdajetpol::V0Pt,
6969
lambdajetpol::V0Eta,
@@ -84,4 +84,4 @@ DECLARE_SOA_TABLE(RingCollisions, "AOD", "RINGCOLLISIONS",
8484
lambdajetpol::Centrality);
8585
} // namespace o2::aod
8686

87-
#endif // PWGLF_DATAMODEL_lambdajetpol_H_
87+
#endif // PWGLF_DATAMODEL_LAMBDAJETPOL_H_

PWGLF/Tasks/Strangeness/lambdaJetPolarizationIons.cxx

Lines changed: 44 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)