00001 #include "BDSOutputVector.hh" 00002 00003 BDSOutputVector::BDSOutputVector(){} 00004 00005 BDSOutputVector::~BDSOutputVector(){ 00006 for (unsigned int i=0; i<output.size(); i++) { 00007 delete output[i]; 00008 } 00009 } 00010 00011 void BDSOutputVector::Add(BDSOutputBase* derived) { 00012 output.push_back(derived); 00013 } 00014 00015 void BDSOutputVector::WriteHits(BDSSamplerHitsCollection* a){ 00016 for (unsigned int i=0; i<output.size(); i++) { 00017 output[i]->WriteHits(a); 00018 } 00019 } 00020 00021 void BDSOutputVector::WriteEnergyLoss(BDSEnergyCounterHitsCollection* a){ 00022 for (unsigned int i=0; i<output.size(); i++) { 00023 output[i]->WriteEnergyLoss(a); 00024 } 00025 } 00026 00027 void BDSOutputVector::WritePrimaryLoss(BDSEnergyCounterHit* a){ 00028 for (unsigned int i=0; i<output.size(); i++) { 00029 output[i]->WritePrimaryLoss(a); 00030 } 00031 } 00032 00033 void BDSOutputVector::WritePrimaryHit(BDSEnergyCounterHit* a){ 00034 for (unsigned int i=0; i<output.size(); i++) { 00035 output[i]->WritePrimaryHit(a); 00036 } 00037 } 00038 00039 void BDSOutputVector::WriteTrajectory(std::vector<BDSTrajectory*> &TrajVec){ 00040 for (unsigned int i=0; i<output.size(); i++) { 00041 output[i]->WriteTrajectory(TrajVec); 00042 } 00043 } 00044 00045 void BDSOutputVector::WritePrimary(G4String samplerName, 00046 G4double E, 00047 G4double x0, 00048 G4double y0, 00049 G4double z0, 00050 G4double xp, 00051 G4double yp, 00052 G4double zp, 00053 G4double t, 00054 G4double weight, 00055 G4int PDGType, 00056 G4int nEvent, 00057 G4int TurnsTaken) 00058 { 00059 for (unsigned int i=0; i<output.size(); i++) { 00060 output[i]->WritePrimary(samplerName,E,x0,y0,z0,xp,yp,zp,t,weight,PDGType,nEvent,TurnsTaken); 00061 } 00062 } 00063 00064 void BDSOutputVector::WriteHistogram(BDSHistogram1D* histogramIn) { 00065 for (unsigned int i=0; i<output.size(); i++) { 00066 output[i]->WriteHistogram(histogramIn); 00067 } 00068 } 00069 00070 void BDSOutputVector::Commit(){ 00071 for (unsigned int i=0; i<output.size(); i++) { 00072 output[i]->Commit(); 00073 } 00074 } 00075 00076 void BDSOutputVector::Write(){ 00077 for (unsigned int i=0; i<output.size(); i++) { 00078 output[i]->Write(); 00079 } 00080 }