[PWGJE] Add Lund jet plane task#15536
Conversation
Please consider the following formatting changes to AliceO2Group#15536
Please consider the following formatting changes to AliceO2Group#15536
nzardosh
left a comment
There was a problem hiding this comment.
Thanks for the PR Zoltan. I havent checked the logic of your splitting and matching operations but I left some more O2 related comments for you.
In addition you could consider using the already inbuilt Lund plane infrastructure and matching we have. Essentially you can fill this table (
O2Physics/PWGJE/DataModel/JetSubstructure.h
Line 107 in a3c63b5
Which then gives you the matched tables. The downside is you need to have two tasks, one to fill your splittings and another to save the output but the upside is that we then have a common framework which we can keep an eye on. However this is in no way mandatory and the common framework for splittings is untested so you can do what you feel is best, but just wanted to point out the alternatives here. Let me know if it would be useful to discuss it on zoom at some point
| // Mini-AOD (tables) | ||
| namespace o2::aod | ||
| { | ||
| DECLARE_SOA_COLUMN(MiniCollId, miniCollId, uint64_t); // collision global index |
There was a problem hiding this comment.
These should be index coloumns (this and the one below)
| { | ||
| DECLARE_SOA_COLUMN(MiniCollId, miniCollId, uint64_t); // collision global index | ||
| DECLARE_SOA_COLUMN(MiniJetId, miniJetId, uint64_t); // jet global index (within its table) | ||
| DECLARE_SOA_COLUMN(Level, level, uint8_t); // 0=reco(det), 1=truth(part) |
| DECLARE_SOA_COLUMN(JetPhi, jetPhi, float); | ||
|
|
||
| // Per-splitting observables (primary branch) | ||
| DECLARE_SOA_COLUMN(SplitId, splitId, uint16_t); |
There was a problem hiding this comment.
also should be an index coloumn
| DECLARE_SOA_COLUMN(SoftPhi, softPhi, float); | ||
|
|
||
| // Jet-jet matching (MC) | ||
| DECLARE_SOA_COLUMN(DetJetId, detJetId, uint64_t); |
| DECLARE_SOA_COLUMN(MatchRelPt, matchRelPt, float); | ||
|
|
||
| DECLARE_SOA_TABLE(MiniJets, "AOD", "MINIJET", | ||
| MiniCollId, MiniJetId, Level, JetRint, JetPt, JetEta, JetPhi); |
There was a problem hiding this comment.
the MiniColl table hasnt been defined?
| template <typename JetRowT, typename ConstituentTableT> | ||
| std::vector<SplittingObs> getPrimarySplittings(JetRowT const& jet, ConstituentTableT const&) | ||
| { | ||
| auto fjInputs = buildFastJetInputs(jet.template tracks_as<ConstituentTableT>(), trackPtMin.value); |
There was a problem hiding this comment.
for this you can also use the prebult jetFinder task like here
O2Physics/PWGJE/Tasks/jetSubstructure.cxx
Line 87 in a3c63b5
| soa::Filtered<RecoJets> const& jets, | ||
| aod::JetTracks const& tracks) | ||
| { | ||
| if (!doData.value) { |
There was a problem hiding this comment.
you dont need this since you can just enable or disable the process function directly in the configuration of the task. so doData becomes redundant
| if (writeMiniAOD.value) { | ||
| const uint64_t collId = collision.globalIndex(); | ||
| const uint64_t jetId = jet.globalIndex(); | ||
| outMiniJets(collId, jetId, /*level*/ (uint8_t)0, jet.r(), jet.pt(), jet.eta(), jet.phi()); |
There was a problem hiding this comment.
currently the collId just stores a number that will not be useful later, since hyperloop will merge many timeframes which contain the same collIds. Therefore you should write out your own collision table and store an indexcoloumn here which is then respected by the merger
There was a problem hiding this comment.
Essentially the globalIndex is only unqiue in a dateframe, not accross a whole dataset
| outMiniJets(collId, jetId, /*level*/ (uint8_t)0, jet.r(), jet.pt(), jet.eta(), jet.phi()); | ||
| uint16_t sid = 0; | ||
| for (auto const& s : spl) { | ||
| outMiniSplittings(collId, jetId, /*level*/ (uint8_t)0, sid++, s.deltaR, s.ptSoft, s.ptHard, s.softEta, s.softPhi, jet.pt()); |
There was a problem hiding this comment.
same with the jet Id, it should point to the outMiniJets table index
| aod::JetTracks const& tracks, | ||
| aod::JetParticles const& particles) | ||
| { | ||
| if (!doMC.value) { |
This PR adds a Lund plane analysis task to [PWG-JE].
Main changes:
Details: