Skip to content
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

Introduction of CRTT0Tagging module. #774

Open
wants to merge 28 commits into
base: develop
Choose a base branch
from

Conversation

francescopoppi
Copy link
Contributor

This PR introduce a new producer module: CRTT0Tagging
This new module produces an association with tracks and and a T0 object following CRT-TPC association. It also fills a new icarus only data product with some summary information on the result of the match, this product is called CRTTPCMatchingInfo.
Additionally associations of anab::T0 and tracks and CRT and CRTTPCMatchingInfo are stored.
This PR introduces also the CRTMatching class which contains the matching functions. In future, TripleMatching will exploits the same functions, this is why, for example, there is the GetTrackBarycenter function which is not yet used.
A brief story: there is an already existent CRTT0Matching object, but that is very outdated and not mantained anymore. The problem is that that product is widely used around our code. Not to create confusion, I added here the updated version under a new name. The new matching is based on a PCA fit of the track direction and extrapolated to the CRT plane of the CRT hit under test.
At the state of this PR, the module lives on its own and it is not included into any stage0/1/caf definitions. It is there for people to use if needed. I will follow up, once this PR is considered ok, with an additional one which starts to implement the CRTTagging of the TPC tracks in our production and analysis flow.
This module works on both data and MC! The only caveat is that for data there is an additional implementation which re-align the Top CRT modules to the TPCs, following to the alignment campaign which I performed on Run2 data. It is expected that for Run3 a new alignment txt file will be produced, but I do not have yet since we did not reprocess Run3, so using the Run2 one is way better than not using it.
I believe this SBN DocDB summarizes everything that it is introduced here: https://sbn-docdb.fnal.gov/cgi-bin/sso/RetrieveFile?docid=38008&filename=TPCCalibrationWithCRTTPCTaggedTracks.pdf&version=1

@francescopoppi francescopoppi added the enhancement New feature or request label Oct 23, 2024
@francescopoppi francescopoppi self-assigned this Oct 23, 2024
…the data product. Another improvements which is introduced is the access of truth level information for MC. In particular, I set up a variabile which is called TruthMatch which address whether at truth level the CRT hit and the Tracks are generated by the same Geant4 ID particle. So far, this variable is only stored in the tree, but I am planning to include it in the icart::CRTTPCMatchingInfo object
Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

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

I have left std::numeric_limits<std::int8_t>::max() comments.
The most relevant is that I am confused about the new data product compared to the old one: same name, completely different content, deceiving schema evolution.
It may be that you had already explained that, if so I can't find where.

I am of course available for helping with the resolution of the comments.

icaruscode/CRT/CRTT0Tagging_module.cc Outdated Show resolved Hide resolved
icaruscode/CRT/CRTT0Tagging_module.cc Outdated Show resolved Hide resolved
icaruscode/CRT/CRTT0Tagging_module.cc Outdated Show resolved Hide resolved
icaruscode/CRT/CRTT0Tagging_module.cc Outdated Show resolved Hide resolved
icaruscode/CRT/crtt0tagging_icarus.fcl Outdated Show resolved Hide resolved
icaruscode/CRT/crtt0tagging_icarus.fcl Outdated Show resolved Hide resolved
icaruscode/CRT/crtt0tagging_icarus.fcl Outdated Show resolved Hide resolved
icaruscode/CRT/crtt0tagging_icarus.fcl Outdated Show resolved Hide resolved
icaruscode/CRT/crtt0taggingmc_icarus.fcl Outdated Show resolved Hide resolved
Francesco Poppi added 9 commits January 10, 2025 15:45
…mportant things: structs have been changed quite a bit, in addition I am now willingly saving information of the full PCA analysis and I am saving also second and third eigenValues/Vectors.
…nluca. In particular, software related to CRT Hit transformation has beend moved from the namespace dedicated to the matching, to a new one dedicated to data related tools
…few things are left to deal with: icarus_data and addressing legacy code.
…e information which were need have been added to an SBNObj (CRTT0TaggingInfo). In this way this object is not changed wrt legacy CRTTagging code. Additionally in this commit In the CRTT0TaggingInfo also the way the track was fitted is stored.
… the Stage1 definitions and included the new CRTT0Tagging one
…Ps, association of Tracks/PFP with CRTT0TaggingInfo
@PetrilloAtWork PetrilloAtWork self-requested a review January 31, 2025 22:32
… specifically for the MC truth has been created.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants