-
Notifications
You must be signed in to change notification settings - Fork 484
add ITS sensors to parallel world #13163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
Please consider the following formatting changes to AliceO2Group#13163
Co-authored-by: Matteo Concas <mconcas@cern.ch>
|
Error while checking build/O2/fullCI for d6bf6b5 at 2024-08-10 06:05: Full log here. |
|
This PR did not have any update in the last 30 days. Is it still needed? Unless further action in will be closed in 5 days. |
|
Error while checking build/O2/fullCI for 1b3d7e0 at 2024-08-15 14:01: Full log here. |
|
Error while checking build/O2/fullCI for ebe61e9 at 2024-08-24 06:52: Full log here. |
|
|
||
| /// apply object to geoemetry | ||
| bool applyToGeometry() const; | ||
| bool applyToGeometry(bool usePW = false, bool addSensorPW = false, bool addMetalPW = false, bool addChipPW = false) const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In principle this function has nothing to do with ITS. Yet, we pass several ITS specific arguments to it.
Could we think of a cleaner structure? Something like passing a AlignGeomOptions struct (which is then extensible)? The struct could contain ITS specific members.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been changed in the latest version. Now the ITS-specific configuration is handled by the ITS implementation of the o2::Detector::fillParallelWorld function
| std::string pathStr; | ||
| if (path) { | ||
| pathStr.append(path); | ||
| if (getDetFromSymName(getSymName()) == "ITS" && (pathStr.find("ITSUChip") != std::string::npos) && usePW) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from a framework point of view, this looks is a bit unfortunate. We go from something generic to something that contains ITS specific code. Could we think of alternatives, in which we call detector spefific routines adjustments (callback, virtual function, etc.)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in the new implementation the volumes are added to the parallel world in a second step after the alignment. As in the other comment, the ITS code is now handling the filling of ITS volumes
|
Nice progress... and sorry for my late comments. I just realized that the adjustments are not done within ITS geometry code but in the global alignment framework. Not sure if there are alternatives ... but it might make sense to shortly think about if we can do it slightly better. |
Now that you pointed this out, I realize that we can definitely do it in a more generic way. |
Please consider the following formatting changes to AliceO2Group#13163
|
Dear @sawenzel I factorized the code so that the parallel world is now filled after the alignment. This way there is no issue in the export of the geometry to file + the filling of the parallel world is handled separately by each detector (only ITS as of now) avoiding the previous clashes with the alignment framework. This required to add a new function in the base Detector class, which is overridden only for ITS. Could you please have a look to the latest version? Thank you!! |
|
I will take a look at the latest restructuring soon. For now, I would like to suggest trying out the new improvements in ROOT, available in tag v6-32-04-alice2 of our ROOT (https://github.com/alisw/root/releases/tag/v6-32-04-alice2). You need to enable these features like so: I would be good to get an update on hit improvements, CPU runtime, memory. I personally found that adding just the ITS sensor gave the best improvements in hit numbers. |
|
Dear @sawenzel thanks for the updates and for the work on the ROOT side! We will update you soon on the simulation performance using the latest version. |
sawenzel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good to me apart from some minor cleanup requests (see inline comments)
@mconcas Adding ITS sensors to parallel world to prioritize navigation of sensitive elements in case of overlapping volumes