Project
Loading...
Searching...
No Matches
PIDBase.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
15
16#ifndef O2_TRD_PIDBASE_H
17#define O2_TRD_PIDBASE_H
18
19#include "Rtypes.h"
20#include "DataFormatsTRD/PID.h"
28
29#include <gsl/span>
30#include <memory>
31
32namespace o2
33{
34namespace trd
35{
36
49{
50 public:
51 virtual ~PIDBase() = default;
52 PIDBase(PIDPolicy policy) : mPolicy(policy) {}
53
56
58 virtual float process(const TrackTRD& trk, const o2::globaltracking::RecoContainer& input, bool isTPCTRD) const = 0;
59
61 void setLocalGainFactors(const LocalGainFactor* localGain) { mLocalGain = localGain; }
62
63 protected:
68 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;
69
72
73 private:
75 std::array<float, constants::NCHARGES> correctCharges(const Tracklet64& trklt, float snp, float tgl) const noexcept;
76
77 // correction factors
78 const LocalGainFactor* mLocalGain;
79
80 ClassDef(PIDBase, 1);
81};
82
84std::unique_ptr<PIDBase> getTRDPIDPolicy(PIDPolicy policy);
85
86} // namespace trd
87} // namespace o2
88
89#endif
Wrapper container for different reconstructed object types.
Global TRD definitions and constants.
Aliases for calibration values stored on a per-pad basis.
const PIDPolicy mPolicy
policy
Definition PIDBase.h:71
virtual ~PIDBase()=default
virtual float process(const TrackTRD &trk, const o2::globaltracking::RecoContainer &input, bool isTPCTRD) const =0
Calculate a PID for a given track.
PIDBase(PIDPolicy policy)
Definition PIDBase.h:52
void setLocalGainFactors(const LocalGainFactor *localGain)
Set krypton calibration.
Definition PIDBase.h:61
const TRDPIDParams & mParams
parameters
Definition PIDBase.h:70
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
Definition PIDBase.cxx:30
virtual void init(o2::framework::ProcessingContext &pc)=0
Initialize the policy.
GLenum GLuint GLint GLint layer
Definition glcorearb.h:1310
std::unique_ptr< PIDBase > getTRDPIDPolicy(PIDPolicy policy)
Factory function to create a PID policy.
Definition PIDBase.cxx:63
PIDPolicy
Option for available PID policies.
Definition PID.h:29
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
PID parameters.