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