Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrackInfoContainer_v1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TrackInfoContainer_v1.h
1 #ifndef TRACKINFOCONTAINERV1_H
2 #define TRACKINFOCONTAINERV1_H
3 
4 #include "TrackInfoContainer.h"
5 #include "SvtxTrackInfo_v1.h"
6 #include "SvtxTrackInfo.h"
7 #include <phool/PHObject.h>
8 
9 #include <climits>
10 #include <map>
11 #include <TClonesArray.h>
12 #include <cstdint>
13 
15 {
16  public:
17 
19  ~TrackInfoContainer_v1() override;
20  void identify(std::ostream& os = std::cout) const override;
21 
22  void Reset() override;
23  //virtual SvtxTrackInfo* get_trackinfo(int /*index*/) override { return nullptr; }
24  //virtual TrackInfo* get_tower_at_key(int /*key*/) { return nullptr; }
25  //virtual size_t size() const { return 0; }
26 
27  size_t size() const override { return _clones->GetEntries(); }
28 
30  return (SvtxTrackInfo*) _clones->At(pos);
31  }
32 
33  // void TrackInfoContainer_v1::add_trackinfo(int, SvtxTrackInfo_v1 ) {}
34  void add_trackinfo(int pos, SvtxTrackInfo trackinfo) override{
35  new((*_clones)[pos]) SvtxTrackInfo;
36  SvtxTrackInfo *info = (SvtxTrackInfo *)_clones->ConstructedAt(pos);
37  info->CopyFrom(trackinfo);
38 
39  }
40 
41  void add_trackinfo(int pos, SvtxTrackInfo* trackinfo) override{
42  new((*_clones)[pos]) SvtxTrackInfo;
43  SvtxTrackInfo *info = (SvtxTrackInfo *)_clones->ConstructedAt(pos);
44  info->CopyFrom(trackinfo);
45 
46  }
47 
48 
49  protected:
50  TClonesArray *_clones = nullptr;
51 
52  private:
54 };
55 
56 #endif