Strangeness tables + strangeness producer, consumer tasks (first commit)#4316
Strangeness tables + strangeness producer, consumer tasks (first commit)#4316jgrosseo merged 18 commits intoAliceO2Group:devfrom ddobrigk:dev
Conversation
|
Could we use the RecoDecay functionality for calculating the quantities? |
|
@jgrosseo, I previously tried but a number of things did not work as I intended. I will give it another shot and try to find out why it did not behave properly before, then. |
|
|
||
| LOGF(debug, "multV0A=%5.0f multV0C=%5.0f multZNA=%6.0f multZNC=%6.0f", multV0A, multV0C, multZNA, multZNC); | ||
| int multTracklets = 0; | ||
| for (auto& tr : tracks) |
There was a problem hiding this comment.
The faster way would be to do a partition and get its size instead of looping over the whole table. Or even add a filter and get directly the size of the table that you get as an argument to process().
| OutputObj<TH2F> h2dMassAntiLambda{TH2F("h2dMassAntiLambda", "", 200, 0, 10, 200, 1.115 - 0.100, 1.115 + 0.100)}; | ||
|
|
||
| //Selection criteria | ||
| Configurable<double> v0cospa{"v0cospa", 0.995, "V0 CosPA"}; |
There was a problem hiding this comment.
Yes to all others but not to this particular one :-)
This is a known problem: the choice of using a cosine of pointing angle means that the relevant number may be exceedingly close to unity and as it turns out we may have a reconstruction precision that's better than the float precision for this variable. That's not because we're great but rather because dcos(x)/dx = 0 when x = 0... So I would keep this one a double but change all others. (note that another way out would be to use the pointing angle instead)
All your other suggestions are almost done, will commit changes soon! Thanks a lot!
There was a problem hiding this comment.
Fair enough, if indeed extra precision is needed double is the better choice.
| void process(aod::Collision const& collision, soa::Join<aod::V0s, aod::V0Data> const& fullV0s) | ||
| { | ||
| for (auto& v0 : fullV0s) { | ||
| if (v0.V0CosPAs() > v0cospa && v0.DCAV0Daughters() < dcav0dau && v0.V0Radii() > v0radius && v0.DCANegToPVs() > dcanegtopv && v0.DCAPosToPVs() > dcapostopv) { |
There was a problem hiding this comment.
All these entries in fullV0s can be used in a filter. Since few days ago configurables work in filters.
|
Okay, this should do it! I am now using RecoDecay and I improved the strangeness tables accordingly. There are still some things I am trying to understand and a few things to fix but this seems to be working just fine for now. @aalkin, @jgrosseo, could you perhaps take a look and approve, if possible? Thanks! |
|
|
||
| /// Cascade builder task: rebuilds cascades | ||
| struct lambdakzeroproducer { | ||
| Produces<aod::V0Data> v0data; |
There was a problem hiding this comment.
lambdakzerofinder.cxx produces the same table, this will not work if these two workflows are intended to run together.
There was a problem hiding this comment.
This, incidentally, was completely intentional! I have now almost finished the finder using a new table with a new index + the v0data table. It is a separate use case that uses the same table... A bit tricky, but it covers something that Ruben is also interested in having.
| DECLARE_SOA_EXTENDED_TABLE_USER(V0DataExt, V0DataOrigin, "V0DATAEXT", | ||
| v0dataext::Px, v0dataext::Py, v0dataext::Pz); | ||
|
|
||
| using V0DataFull = V0DataExt; |
There was a problem hiding this comment.
This extended type does not seem to be used anywhere, is this intentional?
|
Hi @aalkin, this works nicely and uses the expression columns correctly for calculating the CosPA. I've tested and everything does what it's supposed to. There's still work to do but this is ready for deployment and testing with hyperloop, even, so it would be cool to carry on! Thank you very much for your behind-the-scenes help! :-D |
Fix *outrageous* bug
|
@ddobrigk Are we ready to merge this? I think you have to run clang-format on a few files still... |
|
@jgrosseo, re-ran clang-format once more. Should all be fine now! Could you please check? Thank you! |
Includes also minor changes to the multiplicity tables + QA task to create MC calibrations.
Comments are very very welcome!