File indexing completed on 2025-08-05 08:18:03
0001 #include "G4RootRawTowerContainer.h"
0002
0003 #include "G4RootRawTower.h"
0004
0005 #include <TClonesArray.h>
0006
0007 #include <limits>
0008 #include <ostream> // for basic_ostream::operator<<, operator<<, endl
0009
0010 static const int NMAX = 1000;
0011
0012 G4RootRawTowerContainer::G4RootRawTowerContainer()
0013 {
0014 SnglG4RootRawTowers = new TClonesArray("G4RootRawTower", NMAX);
0015 }
0016
0017 G4RootRawTowerContainer::~G4RootRawTowerContainer()
0018 {
0019 SnglG4RootRawTowers->Clear();
0020 delete SnglG4RootRawTowers;
0021 }
0022
0023 void G4RootRawTowerContainer::Reset()
0024 {
0025 etotal = std::numeric_limits<float>::quiet_NaN();
0026 event = 0;
0027 SnglG4RootRawTowers->Clear();
0028 if (SnglG4RootRawTowers->GetSize() > NMAX)
0029 {
0030 SnglG4RootRawTowers->Expand(NMAX);
0031 }
0032 return;
0033 }
0034
0035 G4RootRawTower *
0036 G4RootRawTowerContainer::AddG4RootRawTower(const G4RootRawTower &g4tower)
0037 {
0038 TClonesArray &cl = *SnglG4RootRawTowers;
0039 int nextindex = SnglG4RootRawTowers->GetLast() + 1;
0040 if (nextindex == SnglG4RootRawTowers->GetSize())
0041 {
0042 SnglG4RootRawTowers->Expand(SnglG4RootRawTowers->GetSize() + 10000);
0043 }
0044 new (cl[nextindex]) G4RootRawTower(g4tower);
0045 return (static_cast<G4RootRawTower *>(cl[nextindex]));
0046 }
0047
0048 void G4RootRawTowerContainer::identify(std::ostream &os) const
0049 {
0050 os << "Number of G4RootRawTowers: " << SnglG4RootRawTowers->GetLast() << std::endl;
0051 return;
0052 }