Back to home page

sPhenix code displayed by LXR

 
 

    


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 }