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