Back to home page

sPhenix code displayed by LXR

 
 

    


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