Skip to content

refactor: Switch Examples digitization to DirectedProtoAxis#5421

Draft
andiwand wants to merge 5 commits into
acts-project:mainfrom
andiwand:ex-refactor-directedprotoaxis-for-digi
Draft

refactor: Switch Examples digitization to DirectedProtoAxis#5421
andiwand wants to merge 5 commits into
acts-project:mainfrom
andiwand:ex-refactor-directedprotoaxis-for-digi

Conversation

@andiwand

@andiwand andiwand commented May 8, 2026

Copy link
Copy Markdown
Contributor

Moves our Examples digitization from BinUtility to DirectedProtoAxis. This gets us one step further to get rid of BinUtility

--- END COMMIT MESSAGE ---

blocked by

@andiwand andiwand added this to the next milestone May 8, 2026
@github-actions github-actions Bot added Component - Core Affects the Core module Component - Fatras Affects the Fatras module Component - Examples Affects the Examples module labels May 8, 2026
@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

📊: Physics performance monitoring for b53732c

Full contents

physmon summary

@benjaminhuth benjaminhuth left a comment

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.

Looks good to me overall! As discussed, a deprecation of ProtoAxis and IAxis::createXXX seems desirable to me...

}
j["indices"] = indices;
j["segmentation"] = nlohmann::json(gdc.segmentation);
Acts::BinUtility segmentation;

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.

just as a question: How big is the overlap here actually? Can we implement a json serialization from vector<axis> that is json compatible with the binutility? so that one could in practice do binutility <-> json <-> vector?
That would make moving forward easier maybe?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actually, what I would suggest is:

  • when reading old files (for a bit), we should be doing binUnitlity -> json (old) -> vector (new), i.e. support reading old files
  • I would not spend time in writing old format, so only have it one way.

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.

I don't think we version these files and I fear there is no good way to detect old way new way other than trying to parse it and falling back or detecting it by inspecting what properties are present.

in any case I don't think we want to have multiple formats in flight so the easiest way forward IMO is to just stick with the old format as long as we can. out of convenience I did this right now through reading/writing BinUtilities and then converting. but we would also switch over to a different type but still reading from the existing json format

@asalzburger asalzburger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For me almost good to go, we should just clarify what we do with backward compatibility,

}
j["indices"] = indices;
j["segmentation"] = nlohmann::json(gdc.segmentation);
Acts::BinUtility segmentation;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actually, what I would suggest is:

  • when reading old files (for a bit), we should be doing binUnitlity -> json (old) -> vector (new), i.e. support reading old files
  • I would not spend time in writing old format, so only have it one way.

@asalzburger

asalzburger commented May 19, 2026

Copy link
Copy Markdown
Contributor

I marks this ready for review, I think it's practically there, and I guess we should make a move.

@asalzburger asalzburger marked this pull request as ready for review May 19, 2026 07:16
@sonarqubecloud

Copy link
Copy Markdown

@andiwand andiwand added the 🛑 blocked This item is blocked by another item label Jun 8, 2026
@andiwand andiwand marked this pull request as draft June 8, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component - Core Affects the Core module Component - Examples Affects the Examples module Component - Fatras Affects the Fatras module 🛑 blocked This item is blocked by another item

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants