Project

General

Profile

Task #14048

Milestone #14047: Data product review ("phase II")

Provide a uniform recommendation for physic vector data structures in LArSoft data products

Added by Gianluca Petrillo almost 3 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Category:
Architecture
Target version:
Start date:
10/04/2016
Due date:
% Done:

100%

Estimated time:
80.00 h
Spent time:
Duration:

Description

LArSoft currently uses a wide number of representations for the same concepts of Euclidean 2D and 3D vectors.
The most popular one, TVector3 from ROOT, is feature-rich but affected by numerous design flaws. TLorentzVector also suffers from the same flaws (doubled).
Candidates have already been identified for a recommendation:

The purpose is to identify which is best suited for LArSoft use in data products.


Related issues

Blocks LArSoft - Support #11257: recob::PCAxis uses nested vector to represent 3x3 matrixAssigned2015-12-18

History

#1 Updated by Gianluca Petrillo almost 3 years ago

  • Tracker changed from Feature to Task

#2 Updated by Gianluca Petrillo almost 3 years ago

  • Blocks Support #11257: recob::PCAxis uses nested vector to represent 3x3 matrix added

#3 Updated by Gianluca Petrillo almost 3 years ago

Today a discussion with Kazuhiro Terao reminded me that a very desirable feature is to be able to use different base types for the representation of the coordinates.
This allows to halve the space of vectors when single precision is enough, which is typically the case for measured momenta.
CHHEP does not support this feature, while ROOT does.
This leaves us only one full-featured candidate.

#4 Updated by Katherine Lato over 2 years ago

  • % Done changed from 0 to 80
  • Estimated time set to 80.00 h

#5 Updated by Gianluca Petrillo over 2 years ago

  • Status changed from Assigned to Work in progress

Tests with ROOT libraries (GenVector) is done.
I received the request to test also alternative libraries (Blaze, Eigen, Armadillo).

#6 Updated by Katherine Lato about 2 years ago

  • Due date deleted (11/15/2016)

#7 Updated by Gianluca Petrillo almost 2 years ago

  • Status changed from Work in progress to Resolved
  • % Done changed from 80 to 100

Physics vectors (2D, 3D and 4D) from ROOT GenVector library and matrices from ROOT SMatrix libraries have been adopted in the implementation of recob::Track and a tracking algorithm1, and in some internals of LArSoft geometry description, with satisfactory results.
These are now offered as the recommended data structures to represent vector and linear algebra quantities.
Hints on the newly recommended structures are in LArSoft wiki page From ROOT vectors (TVector3) to ROOT GenVector.

1 A new version of Kalman fitter by Giuseppe Cerati.

#8 Updated by Gianluca Petrillo almost 2 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF