CbmRoot
Loading...
Searching...
No Matches
CbmL1.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Ivan Kisel, Sergey Gorbunov, Maksym Zyzak, Valentina Akishina, Igor Kulakov, Denis Bertini [committer], Sergei Zharko */
4
5/*
6 *====================================================================
7 *
8 * CBM Level 1 Reconstruction
9 *
10 * Authors: I.Kisel, S.Gorbunov
11 *
12 * e-mail : ikisel@kip.uni-heidelberg.de
13 *
14 *====================================================================
15 *
16 * CbmL1 header file
17 *
18 *====================================================================
19 */
20
21#ifndef _CbmL1_h_
22#define _CbmL1_h_
23
24#include "CaDataManager.h"
25#include "CaFramework.h"
26#include "CaInitManager.h"
27#include "CaMonitor.h"
28#include "CaVector.h"
29#include "CbmCaMCModule.h"
31#include "CbmL1DetectorID.h"
32#include "CbmL1Hit.h"
33#include "CbmL1MCPoint.h"
34#include "CbmL1MCTrack.h"
35#include "CbmL1Track.h"
36#include "FairDetector.h"
37#include "FairRootManager.h"
38#include "FairTask.h"
39#include "KfMaterialMonitor.h"
40#include "KfTrackParam.h"
41#include "TClonesArray.h"
42#include "TH1.h"
43
44#include <Logger.h>
45
46#include <boost/functional/hash.hpp>
47
48#include <algorithm>
49#include <fstream>
50#include <iostream>
51#include <map>
52#include <set>
53#include <string_view>
54#include <unordered_map>
55#include <utility>
56
57class CbmL1MCTrack;
58class CbmMCDataObject;
59class CbmEvent;
60class TProfile2D;
61class TNtuple;
62class TGeoNode;
63
64
65namespace
66{
67 namespace ca = cbm::algo::ca;
68 namespace kf = cbm::algo::kf;
69}
70
74 CbmL1LinkKey(int32_t index, int32_t entry, int32_t file) : fIndex(index), fEntry(entry), fFile(file) {}
75 bool operator==(const CbmL1LinkKey& other) const
76 {
77 return fFile == other.fFile && fEntry == other.fEntry && fIndex == other.fIndex;
78 }
79
80 int32_t fIndex = -1;
81 int32_t fEntry = -1;
82 int32_t fFile = -1;
83};
84
86namespace std
87{
88 template<>
89 struct hash<CbmL1LinkKey> {
90 std::size_t operator()(const CbmL1LinkKey& key) const
91 {
92 std::size_t res = 0;
93 boost::hash_combine(res, key.fFile);
94 boost::hash_combine(res, key.fEntry);
95 boost::hash_combine(res, key.fIndex);
96 return res;
97 }
98 };
99} // namespace std
100
101
102// TODO: insert documentation! (S.Zh.)
103//
109class CbmL1 : public FairTask {
110 public:
111 // **********************
112 // ** Types definition **
113 // **********************
114
115 using DFSET = std::set<std::pair<int, int>>;
116
117 // **************************
118 // ** Friends classes list **
119 // **************************
120
121 friend class L1AlgoDraw;
122 friend class L1AlgoPulls;
123
124 template<int NHits>
126
127 friend class CbmL1MCTrack;
128 friend class CbmL1PFFitter;
129
130 enum class EInitMode
131 {
132 Full,
133 Param
134 };
135
136 // **********************************
137 // ** Member functions declaration **
138 // **********************************
139
140 // ** Constructors and destructor **
141
143 CbmL1();
144
153 CbmL1(const char* name, Int_t verbose = 1, Int_t performance = 0);
154
156 CbmL1(const CbmL1&) = delete;
157
159 CbmL1(CbmL1&&) = delete;
160
162 CbmL1& operator=(const CbmL1&) = delete;
163
165 CbmL1& operator=(CbmL1&&) = delete;
166
168 ~CbmL1();
169
171 static CbmL1* Instance() { return fpInstance; }
172
173 // ** Member functions override from FairTask **
174
176 virtual InitStatus Init();
177
179 virtual InitStatus ReInit();
180
182 void Finish();
183
185 const cbm::ca::tools::MCData& GetMCData() const { return fMCData; }
186
187 // ** Specific member functions **
188
194 void DisableTrackingStation(ca::EDetectorID detID, int iSt);
195
198 void SetInitMode(EInitMode mode) { fInitMode = mode; }
199
203
205 void SetMaterialBudgetNbins(int nBinsPerDimension) { fMatBudgetNbins = nBinsPerDimension; }
206
208 void SetMaterialBudgetNrays(int nRaysPerDimension) { fMatBudgetNrays = nRaysPerDimension; }
209
211 void SetMaterialBudgetPitch(double pitchCm) { fMatBudgetPitch = pitchCm; }
212
216
219 void SetConfigUser(const char* path) { fInitManager.SetConfigUser(path); }
220
225 void SetInputSearchWindowFilename(const char* filename) { fsInputSearchWindowsFilename = filename; }
226
229 void SetOutputConfigName(const char* filename) { fInitManager.SetOutputConfigName(std::string(filename)); }
230
233 void SetParameterFilename(const char* filename) { fSTAPParamFile = TString(filename); }
234
238 void SetOutputMcTripletsTreeFilename(const char* filename) { fsMcTripletsOutputFilename = std::string(filename); }
239
242 const auto& GetQaHits() const { return fvHitDebugInfo; }
243
245 static constexpr const char* GetDetectorName(ca::EDetectorID detectorID)
246 {
247 switch (detectorID) {
248 case ca::EDetectorID::kMvd: return "MVD";
249 case ca::EDetectorID::kSts: return "STS";
250 case ca::EDetectorID::kMuch: return "MuCh";
251 case ca::EDetectorID::kTrd: return "TRD";
252 case ca::EDetectorID::kTof: return "TOF";
253 case ca::EDetectorID::END: break;
254 }
255 return "";
256 }
257
259 void SetStsOnlyMode() { fTrackingMode = ca::TrackingMode::kSts; }
260 void SetMcbmMode() { fTrackingMode = ca::TrackingMode::kMcbm; }
261 void SetGlobalMode() { fTrackingMode = ca::TrackingMode::kGlobal; }
262
264
265 // void SetTrackingLevel( Int_t iLevel ){ fTrackingLevel = iLevel; }
266 // void MomentumCutOff( Double_t cut ){ fMomentumCutOff = cut; }
267 // void SetDetectorEfficiency( Double_t eff ){ fDetectorEfficiency = eff; }
268
271 void Reconstruct(CbmEvent* event = nullptr);
272
273 static double boundedGaus(double sigma);
274
276
278 void SetMvdMaterialBudgetFileName(const TString&)
279 {
280 LOG(warning) << "CbmL1::SetMvdMaterialBudgetFileName() is obsolete and will be deleted soon, don't call it\n"
281 << " ! The material budget files are not used anymore !";
282 }
283
285 void SetStsMaterialBudgetFileName(const TString&)
286 {
287 LOG(warning) << "CbmL1::SetStsMaterialBudgetFileName() is obsolete and will be deleted soon, don't call it\n"
288 << " ! The material budget files are not used anymore !";
289 }
290
292 void SetMuchMaterialBudgetFileName(const TString&)
293 {
294 LOG(warning) << "CbmL1::SetMuchMaterialBudgetFileName() is obsolete and will be deleted soon, don't call it\n"
295 << " ! The material budget files are not used anymore !";
296 }
297
299 void SetTrdMaterialBudgetFileName(const TString&)
300 {
301 LOG(warning) << "CbmL1::SetTrdMaterialBudgetFileName() is obsolete and will be deleted soon, don't call it\n"
302 << " ! The material budget files are not used anymore !";
303 }
304
306 void SetTofMaterialBudgetFileName(const TString&)
307 {
308 LOG(warning) << "CbmL1::SetTofMaterialBudgetFileName() is obsolete and will be deleted soon, don't call it\n"
309 << " ! The material budget files are not used anymore !";
310 }
311
312 private:
314 TString name, title;
315 int nbins;
316 float xMin, xMax;
317 };
318
320 void IdealTrackFinder();
321
324
325 /*
326 * Input Performance
327 */
328
333 template<ca::EDetectorID DetId>
334 std::tuple<int, std::vector<int>> MatchHitWithMc(int iHit) const;
335
336 void FieldApproxCheck(); // Build histograms with difference between Field map and approximated field
337 void FieldIntegralCheck(); // Build 2D histogram: dependence of the field integral on phi and theta
338 void TimeHist();
339
340 // ********************************
341 // ** Reconstruction Performance **
342 // ********************************
343
346 void SetRandomSeed(unsigned int seed) { fInitManager.SetRandomSeed(seed); }
347
349 void EfficienciesPerformance(bool doFinish = kFALSE);
350
353 void TrackFitPerformance();
354
355 void FillFitHistos(cbm::algo::kf::TrackParamV& tr, const cbm::ca::tools::MCPoint& mc, bool isTimeFitted, TH1F* h[]);
356
358 void HistoPerformance();
359
363
364
365 // ** STandAlone Package service-functions **
366
376 void DefineSTAPNames(const char* dirName);
377
380
384 void WriteSTAPAlgoInputData(int iJob = 0);
385
387
391 void ReadSTAPParamObject();
392
393 void ReadSTAPAlgoInputData(int iJob = 0);
394
396
399
400 void WriteHistosCurFile(TObject* obj);
401
402 static std::istream& eatwhite(std::istream& is); // skip spaces
403 static void writedir2current(TObject* obj); // help procedure
404
405 void DumpMaterialToFile(TString fileName);
406
407 private:
408 // ***************************
409 // ** Member variables list **
410 // ***************************
411
412 std::string fInputDataFilename = "";
414
415 std::unique_ptr<cbm::ca::TimeSliceReader> fpTSReader = nullptr;
416 std::unique_ptr<cbm::ca::MCModule> fpMCModule = nullptr;
418
420 std::shared_ptr<ca::DataManager> fpIODataManager = nullptr;
421
422 public:
423 // ** Basic data members **
424
426
427 ca::TrackingMode fTrackingMode = ca::TrackingMode::kSts;
428
429 ca::Vector<CbmL1Track> fvRecoTracks = {"CbmL1::fvRecoTracks"};
430
431 private:
433
436
437 double fTargetX{1.e10};
438 double fTargetY{1.e10};
439 double fTargetZ{1.e10};
440
441 int fNStations = 0;
442
443 Int_t fPerformance = 0;
444 double fTrackingTime = 0.;
445
454
455 TString fSTAPDataDir = ".";
456 TString fSTAPDataPrefix = "test";
457 TString fSTAPParamFile = "";
458
460 static constexpr std::string_view kSTAPParamSuffix = "ca.par";
461 static constexpr std::string_view kSTAPSetupSuffix = "kf.setup";
462
469 static constexpr std::string_view kSTAPAlgoIDataSuffix = "job%d.ca.input.dat";
470
472 static constexpr std::string_view kSTAPAlgoIDataDir = "input_hits";
473
474
475 Int_t fTrackingLevel = 2; // currently not used
476 Double_t fMomentumCutOff = 0.1; // currently not used
477
478 int fEventNo = 0;
480
481 public:
482 // ** Repacked input data **
483
484 ca::Vector<CbmL1HitId> fvExternalHits = {"CbmL1::fvExternalHits"};
485
486 private:
488 "CbmL1::fvHitDebugInfo"};
489 // indices of MCPoints in fvMCPoints, indexed by index of hit in algo->vHits array. According to StsMatch. Used for IdealResponce
490 // ca::Vector<int> vHitMCRef1;
491 // CbmMatch HitMatch;
492
494
495 // *****************************
496 // ** Tracking performance QA **
497 // *****************************
498 // TODO: move to a separate class (S.Zharko)
499 TFile* fPerfFile{nullptr};
500 TDirectory* fHistoDir{nullptr};
501 TDirectory* fTableDir{nullptr};
502
503 static const int fNTimeHistos = 22;
504 TH1F* fTimeHisto[fNTimeHistos]{nullptr};
505
506 static const int fNGhostHistos = 9;
507 TH1F* fGhostHisto[fNGhostHistos]{nullptr};
508
509 TFile* fpMcTripletsOutFile = nullptr;
510 TTree* fpMcTripletsTree = nullptr;
511 std::string fsMcTripletsOutputFilename = "";
512
515 double fMatBudgetPitch{0.1};
516
518
521
523
524 std::vector<cbm::algo::kf::MaterialMonitor> fMaterialMonitor{};
525
527};
528
529
530#endif //_CbmL1_h_
Input-output data manager for L1 tracking algorithm.
Input data management class for the CA tracking algorithm (header)
CA Tracking monitor class.
CA Tracking performance interface for CBM (header)
Time-slice/event reader for CA tracker in CBM (header)
Implementation of L1DetectorID enum class for CBM.
A class to collect statistics for kf::MaterialMap.
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
Definition CbmL1.h:109
EInitMode
Definition CbmL1.h:131
@ Param
Parameter initialization (when algorithm execution is not required)
@ Full
Full initialization (default)
ClassDef(CbmL1, 0)
std::shared_ptr< ca::DataManager > fpIODataManager
Input-output data manager.
Definition CbmL1.h:420
bool fMatBudgetParallelProjection
Definition CbmL1.h:519
int fNStations
number of total active detector stations
Definition CbmL1.h:441
void SetMvdMaterialBudgetFileName(const TString &)
Obsolete setters to be removed.
Definition CbmL1.h:278
void SetInitMode(EInitMode mode)
Sets initialization mode.
Definition CbmL1.h:198
void SetMaterialBudgetNrays(int nRaysPerDimension)
Sets material budget n rays per dimansion in each bin.
Definition CbmL1.h:208
static CbmL1 * Instance()
Pointer to CbmL1 instance.
Definition CbmL1.h:171
TH1F * fTimeHisto[fNTimeHistos]
Definition CbmL1.h:504
TDirectory * fHistoDir
Definition CbmL1.h:500
friend class L1AlgoEfficiencyPerformance
Definition CbmL1.h:125
void Reconstruct(CbmEvent *event=nullptr)
Definition CbmL1.cxx:581
double fTrackingTime
time of track finding procedure
Definition CbmL1.h:444
std::string fInputDataFilename
File name to read/write input hits.
Definition CbmL1.h:412
std::vector< cbm::algo::kf::MaterialMonitor > fMaterialMonitor
Material monitors for each material budget map.
Definition CbmL1.h:524
static const int fNGhostHistos
Definition CbmL1.h:506
void SetMcbmMode()
Definition CbmL1.h:260
void WriteHistosCurFile(TObject *obj)
const auto & GetQaHits() const
Definition CbmL1.h:242
void EfficienciesPerformance(bool doFinish=kFALSE)
Calculates tracking efficiencies (counters)
double fTargetX
target position X
Definition CbmL1.h:437
std::tuple< int, std::vector< int > > MatchHitWithMc(int iHit) const
Matches hit with MC point.
void SetMaterialBudgetNbins(int nBinsPerDimension)
Sets material budget binning.
Definition CbmL1.h:205
TTree * fpMcTripletsTree
Tree to save MC-triplets.
Definition CbmL1.h:510
void SetTrdMaterialBudgetFileName(const TString &)
Sets material budget file name for TRD.
Definition CbmL1.h:299
void SetTofMaterialBudgetFileName(const TString &)
Sets material budget file name for TOF.
Definition CbmL1.h:306
std::string fsMcTripletsOutputFilename
Name of file to save MC-triplets tree.
Definition CbmL1.h:511
static std::istream & eatwhite(std::istream &is)
void DumpMaterialToFile(TString fileName)
Definition CbmL1.cxx:930
cbm::ca::tools::MCData fMCData
MC Data object.
Definition CbmL1.h:417
void Fill_vMCTracks()
Fills the fvMCTracks vector and the fmMCTracksMap.
double fMatBudgetPitch
material budget minimal bin size in cm
Definition CbmL1.h:515
void WriteSTAPParamObject()
Writes initialized L1Parameters object to file "".
Definition CbmL1.cxx:876
void ReadSTAPPerfInputData()
Definition CbmL1.cxx:923
void SetConfigUser(const char *path)
Sets user configuration filename.
Definition CbmL1.h:219
static CbmL1 * fpInstance
Instance of CbmL1.
Definition CbmL1.h:432
virtual InitStatus Init()
Defines action in the beginning of the run (initialization)
Definition CbmL1.cxx:138
cbm::ca::DetIdArr_t< std::set< int > > fvmDisabledStationIDs
Definition CbmL1.h:493
CbmL1()
Default constructor.
Definition CbmL1.cxx:87
void WriteSTAPAlgoInputData(int iJob=0)
Definition CbmL1.cxx:886
void DisableTrackingStation(ca::EDetectorID detID, int iSt)
Disables tracking station for a given detector subsystem.
Definition CbmL1.cxx:121
std::unique_ptr< cbm::ca::MCModule > fpMCModule
MC module.
Definition CbmL1.h:416
void ReadSTAPAlgoInputData(int iJob=0)
Definition CbmL1.cxx:912
ca::InitManager * GetInitManager()
Gets a pointer to L1InitManager (for an access in run_reco.C)
Definition CbmL1.h:398
int fSTAPDataMode
Option to work with files for the standalone mode.
Definition CbmL1.h:453
ca::Vector< CbmL1HitId > fvExternalHits
Array of hits.
Definition CbmL1.h:484
ca::InitManager fInitManager
Tracking parameters data manager.
Definition CbmL1.h:419
double fTargetZ
target position Z
Definition CbmL1.h:439
Int_t fPerformance
performance mode: 0 - w\o perf. 1 - L1-Efficiency definition. 2 - QA-Eff.definition
Definition CbmL1.h:443
int fEventNo
Current number of event/TS.
Definition CbmL1.h:478
ca::Framework * fpAlgo
Pointer to the L1 track finder algorithm.
Definition CbmL1.h:425
std::string fsInputSearchWindowsFilename
File name to read search windows.
Definition CbmL1.h:413
void SetInputSearchWindowFilename(const char *filename)
Sets a name for the input search window file If the filename is not defined, a default track finder w...
Definition CbmL1.h:225
CbmL1(const CbmL1 &)=delete
Copy constructor.
TDirectory * fTableDir
Definition CbmL1.h:501
ca::TrackingMonitor fMonitor
Tracking monitor.
Definition CbmL1.h:263
void FieldIntegralCheck()
void WriteSTAPPerfInputData()
Definition CbmL1.cxx:897
static constexpr std::string_view kSTAPParamSuffix
Extension for IO of the L1Parameters object.
Definition CbmL1.h:460
EInitMode fInitMode
Initialization mode.
Definition CbmL1.h:517
ca::Vector< CbmL1Track > fvRecoTracks
Reconstructed tracks container.
Definition CbmL1.h:429
static constexpr std::string_view kSTAPAlgoIDataDir
Name of subdirectory for handling ca::InputData objects.
Definition CbmL1.h:472
bool fDoSafeMaterialInitialization
Definition CbmL1.h:434
void FillFitHistos(cbm::algo::kf::TrackParamV &tr, const cbm::ca::tools::MCPoint &mc, bool isTimeFitted, TH1F *h[])
friend class L1AlgoPulls
Definition CbmL1.h:122
void IdealTrackFinder()
Runs ideal track finder: copies all MC-tracks into reconstructed tracks.
Definition CbmL1.cxx:770
void SetParameterFilename(const char *filename)
Sets a name for the ca-parameter file.
Definition CbmL1.h:233
void SetOutputMcTripletsTreeFilename(const char *filename)
Sets output file for MC triplets tree If the filename is empty string, tree is not filled.
Definition CbmL1.h:238
void TrackFitPerformance()
double fTargetY
target position Y
Definition CbmL1.h:438
TString fSTAPParamFile
Name of the parameter file (generated automatically, if not provided manually)
Definition CbmL1.h:457
TFile * fPerfFile
Array of local indices of disabled tracking stations.
Definition CbmL1.h:499
Double_t fMomentumCutOff
Definition CbmL1.h:476
void Finish()
Defines action in the end of the run (saves results)
Definition CbmL1.cxx:678
CbmL1 & operator=(CbmL1 &&)=delete
Move assignment operator.
TString fSTAPDataPrefix
Name of input/output file prefix. The prefix is defined by output TTree file.
Definition CbmL1.h:456
friend class L1AlgoDraw
Definition CbmL1.h:121
CbmL1 & operator=(const CbmL1 &)=delete
Copy assignment operator.
CbmL1(CbmL1 &&)=delete
Move constructor.
bool fExtrapolateToTheEndOfSTS
Definition CbmL1.h:522
ca::Vector< CbmL1HitDebugInfo > fvHitDebugInfo
Container of hits with extended information.
Definition CbmL1.h:487
Int_t fTrackingLevel
Definition CbmL1.h:475
int fMatBudgetNbins
n bins in mat budget maps (fMatBudgetNbins x fMatBudgetNbins)
Definition CbmL1.h:513
ca::TrackingMode fTrackingMode
Tracking mode.
Definition CbmL1.h:427
void SetSafeMaterialInitialization(bool val=true)
Definition CbmL1.h:202
void SetStsOnlyMode()
Definition CbmL1.h:259
void SetGlobalMode()
Definition CbmL1.h:261
void DumpMCTripletsToTree()
std::unique_ptr< cbm::ca::TimeSliceReader > fpTSReader
event/TS reader
Definition CbmL1.h:415
void TimeHist()
void DefineSTAPNames(const char *dirName)
Defines names for output in STAP mode.
Definition CbmL1.cxx:826
static constexpr const char * GetDetectorName(ca::EDetectorID detectorID)
Utility to map the L1DetectorID items into detector names.
Definition CbmL1.h:245
std::set< std::pair< int, int > > DFSET
Definition CbmL1.h:115
~CbmL1()
Destructor.
Definition CbmL1.cxx:114
void SetMaterialBudgetParallelProjection()
Definition CbmL1.h:215
static constexpr std::string_view kSTAPSetupSuffix
Definition CbmL1.h:461
void SetOutputConfigName(const char *filename)
Sets a name for the output configuration file.
Definition CbmL1.h:229
int fMatBudgetNrays
material budget n rays per dimansion in each bin
Definition CbmL1.h:514
void HistoPerformance()
Fills performance histograms.
void SetMaterialBudgetPitch(double pitchCm)
Sets material budget minimal bin size in cm.
Definition CbmL1.h:211
void ReadSTAPParamObject()
Definition CbmL1.cxx:904
void SetRandomSeed(unsigned int seed)
Sets random seed to CA internal random generator.
Definition CbmL1.h:346
const cbm::ca::tools::MCData & GetMCData() const
Gets reference to MC data object.
Definition CbmL1.h:185
TString fSTAPDataDir
Name of input/output directory for running in a STAP mode.
Definition CbmL1.h:455
void FieldApproxCheck()
TH1F * fGhostHisto[fNGhostHistos]
Definition CbmL1.h:507
void SetExtrapolateToTheEndOfSTS(bool b)
Definition CbmL1.h:258
void SetMuchMaterialBudgetFileName(const TString &)
Sets material budget file name for MuCh.
Definition CbmL1.h:292
static void writedir2current(TObject *obj)
Definition CbmL1.cxx:752
static constexpr std::string_view kSTAPAlgoIDataSuffix
Definition CbmL1.h:469
int fNofRecoTracks
Total number of reconstructed tracks.
Definition CbmL1.h:479
static const int fNTimeHistos
Definition CbmL1.h:503
void SetStsMaterialBudgetFileName(const TString &)
Sets material budget file name for STS.
Definition CbmL1.h:285
static double boundedGaus(double sigma)
virtual InitStatus ReInit()
Reruns the initialization.
Definition CbmL1.cxx:130
TFile * fpMcTripletsOutFile
File to save MC-triplets tree.
Definition CbmL1.h:509
Access to a MC data branch for time-based analysis.
Data class with information on a STS local track.
A CA Parameters object initialization class.
void SetConfigUser(const std::string &userConfig)
Sets user configuration file.
void SetRandomSeed(unsigned int seed)
Sets pseudo-random numbers generator seed.
void SetOutputConfigName(const std::string &filename)
Sets a name of the output configuration file.
A monitor specialization for cbm::algo::ca::Framework class.
This class represents a package for tracking-related data.
Class describes a unified MC-point, used in CA tracking QA analysis.
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
EDetectorID
Enumeration for the tracking detector subsystems in CBM-CA.
Definition CbmDefs.h:176
Hash for CbmL1LinkKey.
Internal structure to handle link keys.
Definition CbmL1.h:72
int32_t fFile
index of link file
Definition CbmL1.h:82
int32_t fEntry
index of link entry
Definition CbmL1.h:81
int32_t fIndex
index of point/track, saved to link
Definition CbmL1.h:80
CbmL1LinkKey(int32_t index, int32_t entry, int32_t file)
Constructor from links.
Definition CbmL1.h:74
bool operator==(const CbmL1LinkKey &other) const
Definition CbmL1.h:75
std::size_t operator()(const CbmL1LinkKey &key) const
Definition CbmL1.h:90