00001 #ifndef BDSOutputBase_h
00002 #define BDSOutputBase_h
00003
00004 #include "BDSSamplerHit.hh"
00005 #include "BDSEnergyCounterHit.hh"
00006 #include "BDSTrajectory.hh"
00007 #include "BDSHistogram.hh"
00008
00009 #include "G4Trajectory.hh"
00010 #include <vector>
00011
00012
00013
00014 class BDSOutputBase {
00015
00016 public:
00017
00018 BDSOutputBase();
00019
00020 virtual ~BDSOutputBase(){};
00021
00023 virtual void WriteHits(BDSSamplerHitsCollection*) = 0;
00025 virtual void WriteEnergyLoss(BDSEnergyCounterHitsCollection*) = 0;
00027 virtual void WritePrimaryLoss(BDSEnergyCounterHit*) = 0;
00029 virtual void WritePrimaryHit(BDSEnergyCounterHit*) = 0;
00031 virtual void WriteTrajectory(std::vector<BDSTrajectory*> &TrajVec) = 0;
00033 virtual void WritePrimary(G4String samplerName,
00034 G4double E,
00035 G4double x0,
00036 G4double y0,
00037 G4double z0,
00038 G4double xp,
00039 G4double yp,
00040 G4double zp,
00041 G4double t,
00042 G4double weight,
00043 G4int PDGType,
00044 G4int nEvent,
00045 G4int TurnsTaken) = 0;
00046
00048 virtual void WriteHistogram(BDSHistogram1D* histogramIn) = 0;
00050 virtual void Commit()=0;
00052 virtual void Write()=0;
00053
00054 protected:
00056 int eventNumber;
00058 int numberEventPerFile;
00060 int outputFileNumber;
00062 G4String filename;
00063 };
00064
00065 extern BDSOutputBase* bdsOutput;
00066 #endif