Skip to content

Strangeness tables + strangeness producer, consumer tasks (first commit)#4316

Merged
jgrosseo merged 18 commits intoAliceO2Group:devfrom
ddobrigk:dev
Sep 16, 2020
Merged

Strangeness tables + strangeness producer, consumer tasks (first commit)#4316
jgrosseo merged 18 commits intoAliceO2Group:devfrom
ddobrigk:dev

Conversation

@ddobrigk
Copy link
Copy Markdown
Contributor

@ddobrigk ddobrigk commented Sep 9, 2020

Includes also minor changes to the multiplicity tables + QA task to create MC calibrations.

Comments are very very welcome!

@ddobrigk ddobrigk requested a review from jgrosseo as a code owner September 9, 2020 09:11
@jgrosseo
Copy link
Copy Markdown
Collaborator

jgrosseo commented Sep 9, 2020

Could we use the RecoDecay functionality for calculating the quantities?

@ddobrigk
Copy link
Copy Markdown
Contributor Author

ddobrigk commented Sep 9, 2020

@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)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"};
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These can be floats

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All these entries in fullV0s can be used in a filter. Since few days ago configurables work in filters.

@ddobrigk
Copy link
Copy Markdown
Contributor Author

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;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lambdakzerofinder.cxx produces the same table, this will not work if these two workflows are intended to run together.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This extended type does not seem to be used anywhere, is this intentional?

@ddobrigk
Copy link
Copy Markdown
Contributor Author

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
@jgrosseo
Copy link
Copy Markdown
Collaborator

@ddobrigk Are we ready to merge this? I think you have to run clang-format on a few files still...

@ddobrigk
Copy link
Copy Markdown
Contributor Author

@jgrosseo, re-ran clang-format once more. Should all be fine now! Could you please check? Thank you!

@jgrosseo jgrosseo merged commit ba1b721 into AliceO2Group:dev Sep 16, 2020
EmilGorm pushed a commit to EmilGorm/AliceO2 that referenced this pull request Nov 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants