Skip to content

05. Splines

Kamil edited this page May 19, 2024 · 1 revision

Description of Splines and how to read them in.

MaCh3 supports both event-by-event and binned splines:

Binned splines

TODO!!

Event-by-event splines

Format to initlaise event-by-event std::vector< std::vector<TSpline3_red*> > MasterSpline with size [NEvents][NSplineParams]. If the given event doesn't have a spline then it should be set to NULL.

SplineMonolith Fast Load File

To speed up the process of loading files there is a function PrepareSplineFile() which will dump spline information into a prepossed file with only relevant information. Then there is the prepared constructor SMonolith::SMonolith(std::string FileName).

GPU

Since the calcuatalion of event by event spline is quite often the bottleneck there is GPU support for these calculations. From developer and user point of view code works the same. If GPU support is enabled MaCh3 will copy spline information to GPU and perform calcaution there.

image

TF1

There is the possibility to use TF1 rather than cubic interpolation. Which helps significantly reduce RAM. However, it may not work for every spline. Therefore it is advised to check the LLH scan before making an analysis choice. image

Available spline interpolation

At MaCh3 following interpolation are available for cubic splines:

  1. TSpline3
  2. Linear
  3. Monotonic
  4. Akima
  5. image