00001 #ifndef BDSOutputASCII_h
00002 #define BDSOutputASCII_h
00003
00004 #include "BDSOutputBase.hh"
00005
00006 #include <fstream>
00007
00018 class BDSOutputASCII : public BDSOutputBase {
00019
00020 public:
00021
00022 BDSOutputASCII();
00023
00024 virtual ~BDSOutputASCII();
00025
00027 virtual void WriteHits(BDSSamplerHitsCollection*);
00029 virtual void WriteEnergyLoss(BDSEnergyCounterHitsCollection*);
00031 virtual void WritePrimaryLoss(BDSEnergyCounterHit*);
00033 virtual void WritePrimaryHit(BDSEnergyCounterHit*);
00035 virtual void WriteTrajectory(std::vector<BDSTrajectory*> &TrajVec);
00037 virtual void WritePrimary(G4String samplerName, G4double E,G4double x0,G4double y0,G4double z0,G4double xp,G4double yp,G4double zp,G4double t,G4double weight,G4int PDGType, G4int nEvent, G4int TurnsTaken);
00039 virtual void WriteHistogram(BDSHistogram1D* histogramIn);
00040 virtual void Commit();
00041 virtual void Write();
00042
00043 private:
00044 G4String basefilename;
00045 G4String timestring;
00046
00048 std::ofstream ofMain;
00050 std::ofstream ofPrimaries;
00052 std::ofstream ofELoss;
00054 std::ofstream ofPLoss;
00055
00056 void WriteAsciiHit(std::ofstream* outfile,
00057 G4int PDGType,
00058 G4double Mom,
00059 G4double X,
00060 G4double Y,
00061 G4double Z,
00062 G4double S,
00063 G4double XPrime,
00064 G4double YPrime,
00065 G4int EventNo,
00066 G4double Weight,
00067 G4int ParentID,
00068 G4int TrackID,
00069 G4int TurnsTaken);
00070 };
00071
00072 extern BDSOutputBase* bdsOutput;
00073 #endif