Code Monkey home page Code Monkey logo

rest-for-physics / tracklib Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 2.0 493 KB

It defines a track event type allowing to define inheritance relations between tracks that contain groups of hits. A process connecting to the detector library allows for hit clustering to create a first set of tracks using a distance relation. Graph theory processes are included in this library in order to identify and reconstruct a physical track, and execute topological algorithms.

License: GNU General Public License v3.0

CMake 0.06% C++ 39.63% C 58.20% Shell 1.43% Python 0.68%
topology-graph physics particle-physics library rest-framework

tracklib's Introduction

The track library

DOI website api forum

This library defines a track event type allowing to define inheritance relations between tracks that contain groups of hits. A process connecting to the detector library allows for hit clustering to create a first set of tracks using a distance relation. Graph theory processes are included in this library in order to identify and reconstruct a physical track, and execute topological algorithms.

Please have a look to this library contribution guide before pushing changes to this repository.

tracklib's People

Contributors

cmargalejo avatar daviddiezib avatar jgalan avatar jporron avatar juanangp avatar konradaltenmueller avatar lobis avatar nkx111 avatar oscar-pl avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

megmev

tracklib's Issues

Independent track analysis for pure 3D tracks with XYZ hits

Recently there was some issues with XYZ tracks reported by @DavidDiezIb , and addressed also in #39.

It is a bit strange for me that in the following code lines

auto hitsBoth = {hitsXZ, hitsYZ};

the XZ and YZ hits are combined to produce XYZ observables.

Indeed, this is likely producing XYZ observables out of XZ and YZ hits. However, the pure XYZ hits might require dedicated attention. Also, the TrackAnalysis process is becoming too wide.

I think we should favor smaller and more atomic processes that target a reduced problem.

We could for instance have TRestTrack3DAnalysisProcess that will target only pure XYZ tracks produced with pixel readouts or pure MC simulation output. This process would serve only for those events that contain pure XYZ tracks, so there should be some error output in case we find other track types inside the input event.

Also, we may think to split into TRestTrackBasicAnalysisProcess and TRestTrack2DAnalysisProcess, etc.

I think atomic processes should be favored.

TRestTrackReconnection not properly identifying end-tracks

This issue is created to follow up a problem discussed on the following forum post

http://rest-forum.unizar.es/t/pandaxiii-mc-pipeline-at-development-v2-3/410/15

The problem is that normally TRestTrackReconnectionProcess should shift the order of hits so that the longer edge is suppressed (minimising the total track length). In other words, just re-ordering in the array so that hit_0 and hit_N correspond with the long edge.

Also the reconnection routine, such as breaking tracks and find an optimum reconnection should solve the problem observed on the track observed at the forum post. This last, fixing reconnection through sub-tracks, might just need optimisation of fNSigmas parameter.

New structure for TRestTrackAnalysisProcess

TRestTrackAnalysisProcess is huge and it has too many observables to maintain (76). The idea is to split this process according to the type of track (XYZ or XZ-YZ) keeping all observables but segmented into several processes. Also naming convention will be homogenised.

  • TRestTrack3DAnalysisProcess -> For XYZ tracks. In case XZ-YZ tracks are provided, they will be merged.
  • TRestTrack2DAnalysisProcess -> For XZ-YZ tracks
  • TRestTrackBasicAnalysisProcess -> Most elemental observables taking into account all tracks
  • Max track and second max track analysis. Could be inside previous processes or in dedicated ones (I tend to prefer the second option)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.