Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:22

0001 #ifndef TOWERINFOCONTAINERV2_H
0002 #define TOWERINFOCONTAINERV2_H
0003 
0004 #include "TowerInfoContainer.h"
0005 #include "TowerInfov2.h"
0006 
0007 #include <TClonesArray.h>
0008 
0009 #include <iostream>
0010 
0011 class PHObject;
0012 
0013 // this is basically a copy of TowerInfoContainerv1.h, but with TowerInfov2...
0014 class TowerInfoContainerv2 : public TowerInfoContainer
0015 {
0016  public:
0017   TowerInfoContainerv2(DETECTOR detec);
0018 
0019   // default constructor for ROOT IO
0020   TowerInfoContainerv2() {}
0021   PHObject *CloneMe() const override { return new TowerInfoContainerv2(*this); }
0022   TowerInfoContainerv2(const TowerInfoContainerv2 &);
0023 
0024   ~TowerInfoContainerv2() override;
0025 
0026   void identify(std::ostream &os = std::cout) const override;
0027 
0028   void Reset() override;
0029   TowerInfov2 *get_tower_at_channel(int pos) override;
0030   TowerInfov2 *get_tower_at_key(int pos) override;
0031 
0032   unsigned int encode_key(unsigned int towerIndex) override;
0033   unsigned int decode_key(unsigned int tower_key) override;
0034 
0035   size_t size() const override { return _clones->GetEntries(); }
0036   DETECTOR get_detectorid() const override { return _detector; }
0037 
0038  protected:
0039   TClonesArray *_clones = nullptr;
0040   DETECTOR _detector = DETECTOR_INVALID;
0041 
0042  private:
0043   ClassDefOverride(TowerInfoContainerv2, 1);
0044 };
0045 
0046 #endif