![]() |
Project
|
#include <PIDBase.h>
Inherited by o2::trd::Dummy, o2::trd::LQND< nDim >, and o2::trd::ML.
Public Member Functions | |
virtual | ~PIDBase ()=default |
PIDBase (PIDPolicy policy) | |
virtual void | init (o2::framework::ProcessingContext &pc)=0 |
Initialize the policy. | |
virtual float | process (const TrackTRD &trk, const o2::globaltracking::RecoContainer &input, bool isTPCTRD) const =0 |
Calculate a PID for a given track. | |
void | setLocalGainFactors (const LocalGainFactor *localGain) |
Set krypton calibration. | |
Protected Member Functions | |
std::array< float, constants::NCHARGES > | getCharges (const Tracklet64 &tracklet, const int layer, const TrackTRD &trk, const o2::globaltracking::RecoContainer &input, float snp, float tgl) const noexcept |
Protected Attributes | |
const TRDPIDParams & | mParams {TRDPIDParams::Instance()} |
parameters | |
const PIDPolicy | mPolicy |
policy | |
This is the PID Base class which defines the interface all other models must provide.
A 'policy' describes how a PID value (float) should be calculated. For the classical algorithms there is no initialization needed since these work off LUTs. However, for ML models some initialization is needed, e.g. creating the ONNXRuntime Session.
Afterwards, a PID value can be calculated via the given policy for each TrackTRD.
|
virtualdefault |
|
protectednoexcept |
Getter for pid information, applies Z-Row merging of tracklets and gain correction. Some tracklets due to their inclination cross over two pads in z-row, where MCMs do not share ADC lanes. This can be recovered in software, by taking the attached tracklets and looking for nearby tracklets. Only modifies the tracklet if the flag is set.
Definition at line 30 of file PIDBase.cxx.
|
pure virtual |
Initialize the policy.
Implemented in o2::trd::Dummy, o2::trd::LQND< nDim >, and o2::trd::ML.
|
pure virtual |
Calculate a PID for a given track.
Implemented in o2::trd::Dummy, o2::trd::ML, and o2::trd::LQND< nDim >.
|
inline |
|
protected |