LDMX-Software / ldmx-sw

The Light Dark Matter eXperiment simulation and reconstruction framework.
https://ldmx-software.github.io
GNU General Public License v3.0
22 stars 21 forks source link

Update tracking to use Acts v36.0 #1454

Closed bloodyyugo closed 2 months ago

bloodyyugo commented 2 months ago

Pull request addresses issue 1356, upgrading tracking to use ACTs version 36.0.

The development branch is actsv36.0 and compiles, builds and runs. Comparisons between tracking using the previous ACTs version (19.X ... something) are shown on the issue page linked above.

There is one outstanding problem in that we see fewer hits-on-track for tagger tracks with this update. We don't see this in the recoil for some reason. We are investigating but this issue can be closed without it.

tvami commented 2 months ago

hey @bloodyyugo we'll have to rebase this due to the fact that my other PR was touching on the same files

bloodyyugo commented 2 months ago

Yeah, I'll redo now.

bloodyyugo commented 2 months ago

@tvami I think I resolved all of the issues

tvami commented 2 months ago

Thanks Matt! I ran it on the ecal_pn + tracking config and I get the following error

Unrecognized Exception: vector::_M_range_check: __n (which is 16) >= this->size() (which is 14)

I thought this might be because of the default now in tracking geo is the no-cal geom. So I added

from LDMX.Tracking.geo import TrackersTrackingGeometryProvider as trackgeo
trackgeo.get_instance().setDetector('ldmx-det-v14-8gev')

to the https://github.com/LDMX-Software/ldmx-sw/blob/trunk/.github/validation_samples/ecal_pn/config.py and ran that. It leads to the same exception.

This could be connected to the loss of hits in the tagger, given that the 14 sounds like the number of tagger layers. OTOH I dont know what the 16 is coming from. Anyway, I confirm that the reco.py works out of the box, but we should make sure it works with any geometry (that contains the trackers)

tvami commented 2 months ago

Nvm, I found the source of it, it's the fact that measurement_collection has to be passed in the config, so adding

recoil_dqm.measurement_collection=digiRecoil.out_collection

fixes it. But this means the CI fails with the current config, so @bloodyyugo can you please propagate the changes in the reco.py to .github/validation_samples/ecal_pn/config.py as well? Thanks!