00001 #ifndef BDSOutputVector_h
00002 #define BDSOutputVector_h
00003
00004 #include "BDSOutputBase.hh"
00005
00006 #include <vector>
00007
00008
00009
00010 class BDSOutputVector: public BDSOutputBase {
00011
00012 public:
00013
00014 BDSOutputVector();
00015 ~BDSOutputVector();
00016
00018 void Add(BDSOutputBase*);
00019
00021 virtual void WriteHits(BDSSamplerHitsCollection*);
00023 virtual void WriteEnergyLoss(BDSEnergyCounterHitsCollection*);
00025 virtual void WritePrimaryLoss(BDSEnergyCounterHit*);
00027 virtual void WritePrimaryHit(BDSEnergyCounterHit*);
00029 virtual void WriteTrajectory(std::vector<BDSTrajectory*> &TrajVec);
00031 virtual void WritePrimary(G4String samplerName,
00032 G4double E,
00033 G4double x0,
00034 G4double y0,
00035 G4double z0,
00036 G4double xp,
00037 G4double yp,
00038 G4double zp,
00039 G4double t,
00040 G4double weight,
00041 G4int PDGType,
00042 G4int nEvent,
00043 G4int TurnsTaken);
00044
00046 virtual void WriteHistogram(BDSHistogram1D* histogramIn);
00048 virtual void Commit();
00050 virtual void Write();
00051
00052 private:
00054 std::vector<BDSOutputBase*> output;
00055 };
00056
00057 #endif