File indexing completed on 2025-08-06 08:18:16
0001 #ifndef TRACKINFOCONTAINERV1_H
0002 #define TRACKINFOCONTAINERV1_H
0003
0004 #include "TrackInfoContainer.h"
0005
0006 #include "SvtxTrackInfo.h"
0007 #include "SvtxTrackInfo_v1.h"
0008
0009 #include <phool/PHObject.h>
0010
0011 #include <TClonesArray.h>
0012 #include <climits>
0013 #include <cstdint>
0014
0015 class TrackInfoContainer_v1 : public TrackInfoContainer
0016 {
0017 public:
0018 TrackInfoContainer_v1();
0019 ~TrackInfoContainer_v1() override;
0020 void identify(std::ostream &os = std::cout) const override;
0021 void Reset() override;
0022
0023 size_t size() const override { return _clones->GetEntries(); }
0024
0025 SvtxTrackInfo *get_trackinfo(int pos) override
0026 {
0027 return (SvtxTrackInfo *) _clones->At(pos);
0028 }
0029
0030 void add_trackinfo(int pos, SvtxTrackInfo trackinfo) override
0031 {
0032 new ((*_clones)[pos]) SvtxTrackInfo_v1;
0033 SvtxTrackInfo_v1 *info = (SvtxTrackInfo_v1 *) _clones->ConstructedAt(pos);
0034 info->CopyFrom(trackinfo);
0035 }
0036
0037 void add_trackinfo(int pos, SvtxTrackInfo *trackinfo) override
0038 {
0039 new ((*_clones)[pos]) SvtxTrackInfo_v1;
0040 SvtxTrackInfo_v1 *info = (SvtxTrackInfo_v1 *) _clones->ConstructedAt(pos);
0041 info->CopyFrom(trackinfo);
0042 }
0043
0044 protected:
0045 TClonesArray *_clones = nullptr;
0046
0047 private:
0048 ClassDefOverride(TrackInfoContainer_v1, 1);
0049 };
0050
0051 #endif