#include #include #include "G4ThreeVector.hh" class FileReader { public: FileReader( G4String filename ); ~FileReader(); // Define Primary class within FileReader class Primary; FileReader::Primary* GetPrimary(); void SetBufferSize( G4int bufferSize ) { fBufferSize = bufferSize; } private: std::ifstream fInputFile; std::list fPrimaryList; G4int fBufferSize; }; class FileReader::Primary { public: Primary(); ~Primary(); void SetName( G4String name ) { fName = name; } G4String GetName() { return fName; } void SetPosition( G4ThreeVector position ) { fPosition = position; } G4ThreeVector GetPosition() { return fPosition; } void SetMomentum( G4ThreeVector momentum ) { fMomentum = momentum; } G4ThreeVector GetMomentum() { return fMomentum; } void SetEnergy( G4double energy ) { fEnergy = energy; } G4double GetEnergy() { return fEnergy; } private: G4String fName; G4ThreeVector fPosition; G4ThreeVector fMomentum; G4double fEnergy; };