TrkAna
Overview
Updated: 2024-06-21
TrkAna is an event-based ROOT TTree that can be used for analysis. Each entry in the TTree corresponds to a single Mu2e event and contains reconstructed information from the tracker, calorimeter and CRV. There is also the option to write out Monte Carlo truth information and hit-level information.
How to Get Help
Updated: 2024-06-21
Feel free to send any questions to the #trkana or #is_it_me_or_a_bug Slack channels
There is a tutorial hosted in the GitHub respository.
For Analyzers
How to Analyze a TrkAna Tree
Updated: 2024-06-21
See the tutorials on GitHub here: https://github.com/Mu2e/TrkAna/blob/main/tutorial/README.md for exercises that analyze TrkAna trees with both ROOT and python
How To Create a TrkAna Tree
Updated: 2024-06-21
You can use the TrkAna Musing like so:
mu2einit muse setup TrkAna mu2e -c TrkAna/fcl/TrkAnaReco.fcl -s mcs.art --TFileName trkana.root
where mcs.art contains the result of the Mu2e reconstruction.
In the trkana.root file, you will find the TrkAna TTree in
TrkAna/trkana
.
TrkAna is designed to have some flexibility. There are fcl parameters that can be changed and there are a few examples available here: https://github.com/Mu2e/TrkAna/tree/main/fcl and are given in the table below in #TrkAna Fcl Examples. Also, you can always ask for help on the #trkana channel on Slack
For Developers
Updated: 2024-06-17
If you will be contributing to the development of TrkAna, then you should fork TrkAna on GitHub into your GitHub account, and then set up your development area like so:
Once you log in:
mu2einit cd /your/working/directory muse backing HEAD git clone git@github.com:<Your GitHub Username>/TrkAna.git cd TrkAna git remote -f add mu2e https://github.com/Mu2e/TrkAna # add the main Mu2e/TrkAna repository as a remote git fetch mu2e main # grab the current HEAD of Mu2e/TrkAna git checkout --no-track -b <name-of-your-dev-branch> mu2e/main # create a branch from the HEAD of Mu2e/TrkAna muse setup muse build -j4 --mu2eCompactPrint
Then you can make your developments (git commit, git push etc.) and then put in a pull request on GitHub.
Version History / TrkAna Musings
Updated: 2024-08-09
This is the list of TrkAna Musings. The top row corresponds to the "current" version.
TrkAna Musing | TrkAna tag | muse backings | muse stub | notes |
---|---|---|---|---|
v05_05_00 | v05_05_00 | SimJob MDC2020ah --> Production v00_24_00, mu2e_trig_config v3_04_00 --> Offline v10_32_00 | al9-prof-e28-p057 | |
v05_04_00 | v05_04_00 | SimJob MDC2020ag --> Production v00_23_00, mu2e_trig_config v3_03_00 --> Offline v10_31_00 | al9-e28-prof-p057 | |
v05_03_00 | v05_03_00 | SimJob MDC2020af --> Production v00_22_00, mu2e_trig_config v3_02_00 --> Offline v10_30_00 | al9-e28-prof-p057 | |
(not built) | v05_02_00 | N/A | N/A | use with datasets that are from MDC2020ae and later |
(not built) | v05_01_00 | N/A | N/A | use with datasets earlier than MDC2020ae |
v05_00_00 | v05_00_00 | SimJob MDC2020ac --> Production v00_19_00, mu2e_trig_config v1_1_0 --> Offline v10_28_00 | sl7-prof-e28-p055 | new major version |
(not built) | v04_04_00 | N/A | N/A | final tag before v05 release |
(not built) | v04_03_00 | N/A | N/A | for TutorialBacking test |
v04_02_00 | v04_02_00 | SimJob MDC2020ab --> Offline v10_26_00 | sl7-prof-e28-p051 | |
v04_01_00 | v04_01_00 | SimJob MDC2020z1 --> Offline v10_23_02 | sl7-prof-e28-p049 | CRV branch filling moved from Offline to TrkAna |
v04_00_00 | v04_00_00 | SimJob MDC2020z --> Offline v10_23_01 | sl7-prof-e28-p049 | breaking changes: demfit[] branch, new genealogy branches |
(not built) | v03_00_01 | N/A | N/A | tag before major breaking change, just code tidying so no associated musing |
v03_00_00 | v03_00_00 | SimJob MDC2020y --> Offline v10_22_01 | sl7-prof-e20-p040 | breaking changes: branch names now three characters; uses KinKal fits |
v02_03_00 | v02_03_00 | SimJob MDC2020w --> Offline v10_21_00 | sl7-prof-e20-p039 | |
v02_02_00 | v02_02_00 | SimJob MDC2020v --> Offline v10_20_00 | sl7-prof-e20-p035 | |
v02_01_00 | v02_01_00 | SimJob MDC2020u --> Production v00_10_00 --> Offline v10_18_00 | sl7-prof-e20-p033 | |
v02_00_01 | v02_00_01 | SimJob MDC2020t --> Production v00_09_11 --> Offline v10_17_00 | sl7-prof-e20-p026 | |
(not built) | v02_00_00 | N/A | N/A | failed build due to incompatible KinKal version |
v01_01_00 | v01_01_00 | SimJob MDC2020r --> Production v00_09_02 --> Offline v10_15_01 | sl7-prof-e20-p023 | adds TrkAnaUtils |
(not built) | v01_00_01 | N/A | N/A | resolves MDC2020r incompatibility |
v01_00_00a | v01_00_00 | Production v00_07_00 --> Offline v10_11_00 | sl7-prof-e20-p021 | updated for muse 1-path/2-path change |
v01_00_00 | v01_00_00 | Production v00_06_00 --> Offline v10_10_01 | sl7-prof-e20-p018 | uses deprecated "muse link" |
Tree Structure
The TrkAna tree structure is documented in google sheet (spreadsheet). There are separate sheets for different major version numbers. Links to the existing sheets are below. These are viewable by anyone; if you would like to comment or edit these sheets please send a message to the #TrkAna slack channel. Note that the sheets have multiple tabs, at the bottom of the page. The main tab lists the branches, while the other tabs list the detailed content (leafs) of the individual branches, by name.
Hit Level Information
By setting the diagLevel
to 2 when running TrkAna, you will fill hit level information branches.
If you are processing Monte Carlo information, hit level Monte Carlo truth branches will also be added.
Adding these increases the size of the output file by an order of magnitude.
Future Developments
We're always looking for input from developers and analyzers to keep TrkAna up-to-date! Get in touch on the #trkana Slack channel, or with Andy Edmonds directly with any thoughts / comments you have
TrkAna Fcl Examples
fcl file | module label | candidate | supplements | notes |
---|---|---|---|---|
TrkAnaReco.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | |
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus | ||
CrvExpert.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | adds crvinfo , crvinfomc , crvsummary , crvsummarymc , and crvinfomcplane branches
|
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus | ||
TrkAnaReco_Upstream.fcl | TrkAnaNeg | upstream e-minus | downstream e-minus, upstream mu-minus | |
TrkAnaPos | upstream e-plus | downstream e-plus, upstream mu-plus | ||
TrkAnaReco_ceSimReco.fcl | TrkAnaNeg | downstream e-minus | none | for use with reco files generated with ceSimReco.fcl |
fcl files below are flagged for updating / removal | ||||
TrkAnaRecoEnsemble-MC.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | for use with MDC2018 Ensemble datasets |
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus | ||
TrkAnaRecoEnsemble-Data.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | for use with MDC2018 Ensemble datasets, no MC information |
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus | ||
TrkAnaReco_wTrkQualFilter.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | an art filter module is run before creating the TrkAna tree |
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus | ||
TrkAnaReco_MultipleTrkQual.fcl | TrkAnaNeg | downstream e-minus | upstream e-minus, downstream mu-minus | an additional TrkQual algorithm is used for each track |
TrkAnaPos | downstream e-plus | upstream e-plus, downstream mu-plus |