Project

General

Profile

PMA module code analysis » History » Version 3

Erica Snider, 05/11/2016 01:08 AM

1 1 Ruth Pordes
h1. PMA module code analysis
2 1 Ruth Pordes
3 1 Ruth Pordes
PMA Code  and Documentation Links
4 1 Ruth Pordes
5 1 Ruth Pordes
https://indico.fnal.gov/getFile.py/access?contribId=62&sessionId=40&resId=1&materialId=slides&confId=10276
6 1 Ruth Pordes
7 1 Ruth Pordes
Aaron Higuera is maintaining systematic efficiency tests and writes code for it. Here is the last development, for the proton decay / atmospheric neutrino events:
8 1 Ruth Pordes
https://indico.fnal.gov/getFile.py/access?contribId=2&resId=0&materialId=slides&confId=12005 (note that PMA here is used together with Cluster Crawler for 2D clusters reconstruction)
9 1 Ruth Pordes
10 1 Ruth Pordes
Similar test are done for beam neutrinos, I expect that soon we'll have update on this using recent releases of reconstruction algorithms.
11 1 Ruth Pordes
12 1 Ruth Pordes
Redmine links for code:
13 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/entry/larreco/TrackFinder/PMAlgTrackMaker_module.cc
14 1 Ruth Pordes
15 1 Ruth Pordes
Vertexing functionality is collected here:
16 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/entry/larreco/RecoAlg/PMAlgVertexing.h
17 1 Ruth Pordes
18 1 Ruth Pordes
The most basic functions for building, testing, extending tracks are here:
19 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/entry/larreco/RecoAlg/ProjectionMatchingAlg.h
20 1 Ruth Pordes
21 1 Ruth Pordes
And all the building blocks for the track and vertex optimization are in the directory:
22 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/show/larreco/RecoAlg/PMAlg
23 1 Ruth Pordes
24 1 Ruth Pordes
The cost of computations is mostly due to trajectory node optimization, done with finite-difference calculations of the gradient of the objective function with respect to the node position. If you'd like to have a look, the code is here:
25 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/entry/larreco/RecoAlg/PMAlg/PmaNode3D.h#L92
26 1 Ruth Pordes
27 1 Ruth Pordes
void Optimize(float penaltyValue, float endSegWeight);
28 1 Ruth Pordes
29 1 Ruth Pordes
and functions:
30 1 Ruth Pordes
31 1 Ruth Pordes
double Pi(float endSegWeight, bool doAsymm) const;
32 1 Ruth Pordes
double Penalty(float endSegWeight) const;
33 1 Ruth Pordes
double Mse(void) const;
34 1 Ruth Pordes
double MakeGradient(float penaltyValue, float endSegWeight);
35 1 Ruth Pordes
double StepWithGradient(float alfa, float tol, float penalty, float weight);
36 1 Ruth Pordes
37 1 Ruth Pordes
The complexity on the higher level comes from scoring the tracks made of various (possible) matching of clusters in complementary 2D projections, this is done more or less here:
38 1 Ruth Pordes
https://cdcvs.fnal.gov/redmine/projects/larreco/repository/revisions/develop/entry/larreco/TrackFinder/PMAlgTrackMaker_module.cc#L1851
39 2 Erica Snider
40 2 Erica Snider
41 2 Erica Snider
h2. Working session materials
42 2 Erica Snider
43 3 Erica Snider
Valgrind callgraph output attached to this page
44 3 Erica Snider
45 3 Erica Snider
46 3 Erica Snider
Sample jobs
47 3 Erica Snider
* Configuration:  /pnfs/dune/persistent/users/rnd/pma_code_review/test_input/fcl/
48 3 Erica Snider
** protoDUNE_pmtrack_reco.fcl
49 3 Erica Snider
50 3 Erica Snider
* Data:  /pnfs/dune/persistent/users/rnd/pma_code_review/test_input/data
51 3 Erica Snider
**  protoDune_kaon_1GeV_mono_linecluster.root  
52 3 Erica Snider
**  protoDune_proton_1GeV_mono_linecluster.root
53 3 Erica Snider
54 3 Erica Snider
# Check out dunetpc
55 3 Erica Snider
# Run lar -c fcl/protoDUNE_pmtrack_reco.fcl <input> -o output.root
56 3 Erica Snider
# lar -c evd_protoDUNE.fcl reconstructed.root
57 3 Erica Snider
58 3 Erica Snider
59 3 Erica Snider
"The two files in data dir are 1GeV protons and kaons from the recent MCC6. I usually use for tests 2GeV pions, since they are producing moderately complicated topologies and are of the interest for many analyses we are preparing. I'll add such file before our session, I just need to prepare it in the same way as two other files, which is:
60 3 Erica Snider
61 3 Erica Snider
"single particle gun -> g4 propagation in LAr -> detsim making raw digits on readout channels -> partial reconstruction (deconvolution, hit finding, linecluster) that is in the reco chain before PMA"