add PrTrackerDumper tool to PrMCTools package [dump all VP,UT,FT hit] etc.
Add PrTrackerDumper tool to PrMCTools package [dump all VP,UT,FT hit] and the MCParticle linking information used in PrChecker, enable a wide range of offline studies and algorithm developments
I introduced this tool able to dump all hits in all tracking sub-detectors containing information of the MCParticles to enable offloading tracking developments for non-LHCb software experts. Thanks to the tool, one can produce plot such the one in attachment for a single event and do some global tracking studies handling Velo,UT and SciFI hits at the same time.
As in the description of the file, the tool dump 1 entry per MCParticle and within the entry it dumps a vector or vector for the private members of the base Hit class ( FT_x[size], FT_y[size]) where size is the Nb of hits associated to the MCParticle entry. This is done for UT/SciFi and Velo dumping the proper information which are used in the default tracking algorithms. This allow to associate to each hit the MCParticle it comes from offline and do truth matching offline [maybe need to add also weight from the linker among the branches stored]
For hits non associated to any MCParticles in the event a special entry is dump for each event : p<0 identify the vector of hits from noise and not having any MCParticle attached to it.
The tuple is filtering MCParticles for the dump only if that MCParticle didn't produce any hit in any of the sub-detector. Thus, the re-constructibility criteria needs to be applied offline (use the hasT, hasVelo , hasUT branch to do that). Also, for each entry the MCParticle momentum, eta, pid, vertex and Grand-mother particle ID is stored. This should allow to perform a wide spectrum of studies offline.
I think it explains quite well how to produce a tuple within a functional framework and how to use thenew MCLinkers to get MCParticles from hits.
People that could be interested in this tool: @dovombru , @dcampora , @gligorov , @lohenry , @tszumlak , @decianm , @flazzari , @rcenci
The code has also been tested in TDR branch and very minor changes needs to be applied to have it compatible for the future.