22#ifndef TPC_CalibLaserTracks_H_
23#define TPC_CalibLaserTracks_H_
59 mDriftV{
other.mDriftV},
60 mZbinWidth{
other.mZbinWidth},
61 mTFstart{
other.mTFstart},
63 mCalibDataTF{
other.mCalibDataTF},
64 mCalibData{
other.mCalibData},
65 mZmatchPairsTFA{
other.mZmatchPairsTFA},
66 mZmatchPairsTFC{
other.mZmatchPairsTFC},
67 mZmatchPairsA{
other.mZmatchPairsA},
68 mZmatchPairsC{
other.mZmatchPairsC},
69 mWriteDebugTree{
other.mWriteDebugTree},
70 mFinalized{
other.mFinalized}
77 void fill(
const gsl::span<const TrackTPC> tracks);
80 void fill(std::vector<TrackTPC>
const& tracks);
144 TimePair fit(
const std::vector<TimePair>& trackMatches, std::string_view info)
const;
147 void sort(std::vector<TimePair>& trackMatches);
164 float mTOffsetMUS{0};
166 uint64_t mTFstart{0};
168 LtrCalibData mCalibDataTF{};
169 LtrCalibData mCalibData{};
170 std::vector<TimePair> mZmatchPairsTFA;
171 std::vector<TimePair> mZmatchPairsTFC;
172 std::vector<TimePair> mZmatchPairsA;
173 std::vector<TimePair> mZmatchPairsC;
174 bool mWriteDebugTree{
false};
175 bool mFinalized{
false};
176 std::string mDebugOutputName{
"CalibLaserTracks_debug.root"};
178 LaserTrackContainer mLaserTracks;
179 std::unique_ptr<o2::utils::TreeStreamRedirector> mDebugStream;
182 void updateParameters();
185 void fillCalibData(LtrCalibData& calibData,
const std::vector<TimePair>& pairsA,
const std::vector<TimePair>& pairsC);
calibration data from laser track calibration
void finalize()
Finalize full processing.
const LtrCalibData & getCalibDataTF()
drift velocity fit information for presently processed time frame
void setVDriftRef(float v)
static float getPhiNearbyLaserRod(const TrackPar ¶m, int side)
calculate phi of nearest laser rod
void endTF()
End processing of this TF.
size_t getMatchedPairs() const
number of associated laser tracks on both sides for all processed TFs
size_t getMatchedPairsC() const
number of associated laser tracks for all processed TFs on the C-Side
~CalibLaserTracks()=default
bool hasEnoughData(size_t numTFs=1) const
static constexpr size_t MinTrackPerSidePerTF
void fill(const gsl::span< const TrackTPC > tracks)
process all tracks of one TF
CalibLaserTracks(const CalibLaserTracks &other)
static bool hasNearbyLaserRod(const TrackPar ¶m, int side)
check if param is closer to a laser rod than 1/4 of a sector width
void setTriggerPos(int triggerPos)
trigger position for track z position correction
uint64_t getTFstart() const
void processTrack(const TrackTPC &track)
process single track
bool getWriteDebugTree() const
void setWriteDebugTree(bool write)
size_t getMatchedPairsTFC() const
number of associated laser tracks presently processed TFs on the C-Side
void setDebugOutputName(std::string_view name)
name of the debug output tree
void print() const
print information
void merge(const CalibLaserTracks *other)
merge data with other calibration object
size_t getMatchedPairsA() const
number of associated laser tracks for all processed TFs on the A-Side
void setTFtimes(uint64_t tfStart, uint64_t tfEnd=0)
const LtrCalibData & getCalibData()
drift velocity fit information for full data set
uint64_t getTFend() const
void sort(std::vector< TimePair > &trackMatches)
sort TimePoint vectors
int findLaserTrackID(TrackPar track, int side=-1)
size_t getMatchedPairsTFA() const
number of associated laser tracks presently processed TFs on the A-Side
void loadTracksFromFile()
load laser tracks from file
GLuint GLfloat GLfloat GLfloat x1
GLuint const GLchar * name
Global TPC definitions and constants.
size_t processedTFs
number of processed TFs with laser track candidates
VectorOfTObjectPtrs other