Project
Loading...
Searching...
No Matches
Tracking.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_TRACKINGQC_H
17#define O2_TRD_TRACKINGQC_H
18
29#include "GPUTRDRecoParam.h"
30
31#include "Rtypes.h"
32#include "TH1.h"
33
34#include <gsl/span>
35#include <bitset>
36
38
39namespace o2
40{
41
42namespace globaltracking
43{
44class RecoContainer;
45}
46
47namespace trd
48{
49
50struct TrackQC {
51
55 float dEdxTotTPC;
56
57 std::array<o2::track::TrackPar, constants::NLAYER> trackProp{};
58 std::array<Tracklet64, constants::NLAYER> trklt64{};
59 std::array<CalibratedTracklet, constants::NLAYER> trkltCalib{};
60
61 std::array<float, constants::NLAYER> trackletY{};
62 std::array<float, constants::NLAYER> trackletZ{};
63 std::array<float, constants::NLAYER> trackletChi2{};
64 std::array<std::array<float, constants::NCHARGES>, constants::NLAYER> trackletCorCharges{};
65
67};
68
70{
72
73 public:
74 Tracking() = default;
75 Tracking(const Tracking&) = delete;
76 ~Tracking() = default;
77
79 void init();
80
83
84 void setApplyShift(bool f) { mApplyShift = f; }
85
87 void run();
88
90 void reset() { mTrackQC.clear(); }
91
93 void checkTrack(const TrackTRD& trk, bool isTPCTRD);
94
96 void disablePID() { mPID = false; }
97
98 // Make output accessible to DPL processor
99 std::vector<TrackQC>& getTrackQC() { return mTrackQC; }
100
101 // Set the local gain factors with values from the ccdb
103 {
104 mLocalGain = localGain;
105 }
106
107 // quantities necessary for pile-up correction
108 void setTriggeredBCFT0(std::vector<int> t) { mTriggeredBCFT0 = t; }
109 void setFirstOrbit(uint32_t o) { mFirstOrbit = o; }
110
111 private:
112 float mMaxSnp{o2::base::Propagator::MAX_SIN_PHI};
113 float mMaxStep{o2::base::Propagator::MAX_STEP};
114 MatCorrType mMatCorr{MatCorrType::USEMatCorrNONE};
115 o2::gpu::GPUTRDRecoParam mRecoParam;
116 bool mPID{true};
117 bool mApplyShift{true};
118
119 // QA results
120 std::vector<TrackQC> mTrackQC;
121
122 // input from DPL
123 gsl::span<const o2::dataformats::TrackTPCITS> mTracksITSTPC;
124 gsl::span<const o2::tpc::TrackTPC> mTracksTPC;
125 gsl::span<const TrackTRD> mTracksITSTPCTRD;
126 gsl::span<const TrackTRD> mTracksTPCTRD;
127 gsl::span<const TrackTriggerRecord> mTrackTriggerRecordsITSTPCTRD;
128 gsl::span<const TrackTriggerRecord> mTrackTriggerRecordsTPCTRD;
129 gsl::span<const Tracklet64> mTrackletsRaw;
130 gsl::span<const CalibratedTracklet> mTrackletsCalib;
131
132 // quantities necessary for pile-up correction
133 std::vector<int> mTriggeredBCFT0;
134 int mCurrentTriggerRecord;
135 uint32_t mFirstOrbit;
136 int mCurrentTrackId;
137
138 // corrections from ccdb, some need to be loaded only once hence an init flag
139 o2::trd::LocalGainFactor mLocalGain;
140
141 ClassDefNV(Tracking, 2);
142};
143
144} // namespace trd
145
146namespace framework
147{
148template <typename T>
149struct is_messageable;
150template <>
151struct is_messageable<o2::trd::TrackQC> : std::true_type {
152};
153} // namespace framework
154
155} // namespace o2
156
157#endif // O2_TRD_TRACKINGQC_H
Global TRD definitions and constants.
Global index for barrel track: provides provenance (detectors combination), index in respective array...
Aliases for calibration values stored on a per-pad basis.
Result of refitting TPC-ITS matched track.
static constexpr float MAX_SIN_PHI
Definition Propagator.h:72
static constexpr float MAX_STEP
Definition Propagator.h:73
void setInput(const o2::globaltracking::RecoContainer &input)
Initialize the input arrays.
Definition Tracking.cxx:32
void run()
Main processing function.
Definition Tracking.cxx:44
void checkTrack(const TrackTRD &trk, bool isTPCTRD)
Check track QC.
Definition Tracking.cxx:60
std::vector< TrackQC > & getTrackQC()
Definition Tracking.h:99
void disablePID()
Disable TPC dEdx information.
Definition Tracking.h:96
void setTriggeredBCFT0(std::vector< int > t)
Definition Tracking.h:108
Tracking()=default
void reset()
Reset the output vector.
Definition Tracking.h:90
Tracking(const Tracking &)=delete
void setLocalGainFactors(const o2::trd::LocalGainFactor &localGain)
Definition Tracking.h:102
void init()
Load geometry and apply magnetic field setting.
Definition Tracking.cxx:27
~Tracking()=default
void setApplyShift(bool f)
Definition Tracking.h:84
void setFirstOrbit(uint32_t o)
Definition Tracking.h:109
GLdouble f
Definition glcorearb.h:310
TrackParCovF TrackParCov
Definition Track.h:33
constexpr int NLAYER
the number of layers
Definition Constants.h:27
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
ClassDefNV(TrackQC, 6)
float dEdxTotTPC
raw total dEdx information for seeding track in TPC
Definition Tracking.h:55
std::array< o2::track::TrackPar, constants::NLAYER > trackProp
the track parameters stored at the radius where the track is updated with TRD info
Definition Tracking.h:57
GTrackID refGlobalTrackId
GlobalTrackID of the seeding track (either ITS-TPC or TPC)
Definition Tracking.h:52
std::array< float, constants::NLAYER > trackletChi2
estimated chi2 for the update of the track with the given tracklet
Definition Tracking.h:63
std::array< CalibratedTracklet, constants::NLAYER > trkltCalib
the TRD space point used for the update (not yet tilt-corrected and z-shift corrected)
Definition Tracking.h:59
TrackTRD trackTRD
the found TRD track
Definition Tracking.h:53
std::array< float, constants::NLAYER > trackletY
y-position of tracklet used for track update (including correction)
Definition Tracking.h:61
std::array< std::array< float, constants::NCHARGES >, constants::NLAYER > trackletCorCharges
corrected charges of tracklets
Definition Tracking.h:64
std::array< Tracklet64, constants::NLAYER > trklt64
the raw tracklet used for the update (includes uncorrected charges)
Definition Tracking.h:58
std::array< float, constants::NLAYER > trackletZ
z-position of tracklet used for track update (including correction)
Definition Tracking.h:62
o2::track::TrackParCov trackSeed
outer param of the seeding track
Definition Tracking.h:54