Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 #include "DicomBeamControlPoint.hh" 26 #include "DicomBeamControlPoint.hh" 27 << 28 #include "DicomBeamDevicePos.hh" 27 #include "DicomBeamDevicePos.hh" 29 #include "dcmtk/dcmrt/seq/drtcps.h" // for Co << 30 28 >> 29 #include "dcmtk/dcmrt/seq/drtcps.h" // for ControlPointSequence 31 #include "globals.hh" 30 #include "globals.hh" 32 31 33 //....oooOO0OOooo........oooOO0OOooo........oo 32 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 34 DicomBeamControlPoint::DicomBeamControlPoint(D << 33 DicomBeamControlPoint::DicomBeamControlPoint(DRTControlPointSequence::Item cpItem, 35 D << 34 DicomBeamControlPoint* point0 ) 36 { 35 { 37 OFString fstr; 36 OFString fstr; 38 Sint32 fint; 37 Sint32 fint; 39 Float64 ffloat; 38 Float64 ffloat; 40 Float32 ffloat32; 39 Float32 ffloat32; 41 OFVector<Float64> fvfloat; 40 OFVector<Float64> fvfloat; 42 << 41 43 cpItem.getControlPointIndex(fint); 42 cpItem.getControlPointIndex(fint); 44 G4cout << " @ DicomBeamControlPoint: " << f 43 G4cout << " @ DicomBeamControlPoint: " << fint << G4endl; 45 G4cout << " " << 44 G4cout << " " << " ControlPointIndex " << fint << G4endl; 46 << " ControlPointIndex " << fint << G << 45 SetIndex( fint ); 47 SetIndex(fint); << 46 if( cpItem.getNominalBeamEnergy(ffloat) != EC_Normal ) { 48 if (cpItem.getNominalBeamEnergy(ffloat) != E << 47 if( point0 ) ffloat = point0->GetNominalBeamEnergy(); 49 if (point0) ffloat = point0->GetNominalBea << 50 } 48 } 51 G4cout << " " << 49 G4cout << " " << " NominalBeamEnergy " << ffloat << G4endl; 52 << " NominalBeamEnergy " << ffloat << << 53 SetNominalBeamEnergy(ffloat); 50 SetNominalBeamEnergy(ffloat); 54 cpItem.getDoseRateSet(ffloat); // != EC_Nor << 51 cpItem.getDoseRateSet(ffloat); // != EC_Normal ) { 55 G4cout << " " << 52 G4cout << " " << " DoseRateSet " << ffloat << G4endl; 56 << " DoseRateSet " << ffloat << G4end << 53 57 << 58 DRTBeamLimitingDevicePositionSequence beamLD 54 DRTBeamLimitingDevicePositionSequence beamLDPS = cpItem.getBeamLimitingDevicePositionSequence(); 59 G4cout << " @ NUMBER OF BeamLimitingDeviceP 55 G4cout << " @ NUMBER OF BeamLimitingDevicePositionSequence " << beamLDPS.getNumberOfItems() 60 << G4endl; 56 << G4endl; 61 beamLDPS.gotoFirstItem(); 57 beamLDPS.gotoFirstItem(); 62 for (size_t i3 = 0; i3 < beamLDPS.getNumberO << 58 for( size_t i3 = 0; i3 < beamLDPS.getNumberOfItems(); i3++ ) { 63 DRTBeamLimitingDevicePositionSequence::Ite 59 DRTBeamLimitingDevicePositionSequence::Item bldpsItem = beamLDPS.getCurrentItem(); 64 DicomBeamDevicePos* dbd = new DicomBeamDev 60 DicomBeamDevicePos* dbd = new DicomBeamDevicePos(bldpsItem); 65 AddDevice(dbd); 61 AddDevice(dbd); 66 << 62 67 beamLDPS.gotoNextItem(); 63 beamLDPS.gotoNextItem(); 68 } 64 } 69 << 65 70 cpItem.getGantryAngle(ffloat); 66 cpItem.getGantryAngle(ffloat); 71 G4cout << " " << 67 G4cout << " " << " GantryAngle " << ffloat << G4endl; 72 << " GantryAngle " << ffloat << G4end << 73 68 74 cpItem.getGantryRotationDirection(fstr); // << 69 cpItem.getGantryRotationDirection(fstr); //** 75 G4cout << " " << 70 G4cout << " " << " GantryRotationDirection " << fstr << G4endl; 76 << " GantryRotationDirection " << fst << 71 if( fstr == "CC" ) { // counter-clockwise 77 if (fstr == "CC") { // counter-clockwise << 78 SetGantryAngle(-ffloat); 72 SetGantryAngle(-ffloat); 79 } << 73 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 80 else if (fstr == "CW" || fstr == "NONE" || f << 81 SetGantryAngle(ffloat); 74 SetGantryAngle(ffloat); 82 } 75 } 83 if (cpItem.getBeamLimitingDeviceAngle(ffloat << 76 if( cpItem.getBeamLimitingDeviceAngle(ffloat) != EC_Normal ) { 84 if (point0) ffloat = point0->GetBeamLimiti << 77 if( point0 ) ffloat = point0->GetBeamLimitingDeviceAngle(); 85 } 78 } 86 G4cout << " " << 79 G4cout << " " << " BeamLimitingDeviceAngle " << ffloat << G4endl; 87 << " BeamLimitingDeviceAngle " << ffl << 88 80 89 if (cpItem.getBeamLimitingDeviceRotationDire << 81 if( cpItem.getBeamLimitingDeviceRotationDirection(fstr) != EC_Normal ) { 90 if (point0) fstr = point0->GetBeamLimiting << 82 if( point0 ) fstr = point0->GetBeamLimitingDeviceRotationDirection(); 91 } 83 } 92 if (fstr == "CC") { // counter-clockwise << 84 if( fstr == "CC" ) { // counter-clockwise 93 SetBeamLimitingDeviceAngle(-ffloat); 85 SetBeamLimitingDeviceAngle(-ffloat); 94 } << 86 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 95 else if (fstr == "CW" || fstr == "NONE" || f << 96 SetBeamLimitingDeviceAngle(ffloat); 87 SetBeamLimitingDeviceAngle(ffloat); 97 } << 88 } 98 G4cout << " " << 89 G4cout << " " << " BeamLimitingDeviceRotationDirection " << fstr << G4endl; 99 << " BeamLimitingDeviceRotationDirect << 100 SetBeamLimitingDeviceRotationDirection(fstr) 90 SetBeamLimitingDeviceRotationDirection(fstr); 101 91 102 if (cpItem.getPatientSupportAngle(ffloat) != << 92 if( cpItem.getPatientSupportAngle(ffloat) != EC_Normal ) { 103 if (point0) fstr = point0->GetPatientSuppo << 93 if( point0 ) fstr = point0->GetPatientSupportAngle(); 104 } 94 } 105 G4cout << " " << 95 G4cout << " " << " PatientSupportAngle " << ffloat << G4endl; 106 << " PatientSupportAngle " << ffloat << 107 96 108 if (cpItem.getPatientSupportRotationDirectio << 97 if( cpItem.getPatientSupportRotationDirection(fstr) != EC_Normal ) { 109 if (point0) fstr = point0->GetPatientSuppo << 98 if( point0 ) fstr = point0->GetPatientSupportRotationDirection(); 110 } 99 } 111 G4cout << " " << 100 G4cout << " " << " PatientSupportRotationDirection " << fstr << G4endl; 112 << " PatientSupportRotationDirection << 113 SetPatientSupportRotationDirection(fstr); 101 SetPatientSupportRotationDirection(fstr); 114 if (fstr == "CC") { // counter-clockwise << 102 if( fstr == "CC" ) { // counter-clockwise 115 SetPatientSupportAngle(-ffloat); 103 SetPatientSupportAngle(-ffloat); 116 } << 104 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 117 else if (fstr == "CW" || fstr == "NONE" || f << 118 SetPatientSupportAngle(ffloat); 105 SetPatientSupportAngle(ffloat); 119 } 106 } 120 107 121 if (cpItem.getTableTopEccentricAngle(ffloat) << 108 if( cpItem.getTableTopEccentricAngle(ffloat) != EC_Normal ) { 122 if (point0) ffloat = point0->GetTableTopEc << 109 if( point0 ) ffloat = point0->GetTableTopEccentricAngle(); 123 } 110 } 124 G4cout << " " << 111 G4cout << " " << " TableTopEccentricAngle " << ffloat << G4endl; 125 << " TableTopEccentricAngle " << fflo << 126 112 127 if (cpItem.getTableTopEccentricRotationDirec << 113 if( cpItem.getTableTopEccentricRotationDirection(fstr) != EC_Normal ) { 128 if (point0) fstr = point0->GetTableTopEcce << 114 if( point0 ) fstr = point0->GetTableTopEccentricRotationDirection(); 129 } 115 } 130 if (fstr == "CC") { // counter-clockwise << 116 if( fstr == "CC" ) { // counter-clockwise 131 SetTableTopEccentricAngle(-ffloat); 117 SetTableTopEccentricAngle(-ffloat); 132 } << 118 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 133 else if (fstr == "CW" || fstr == "NONE" || f << 134 SetTableTopEccentricAngle(ffloat); 119 SetTableTopEccentricAngle(ffloat); 135 } 120 } 136 G4cout << " " << 121 G4cout << " " << " TableTopEccentricRotationDirection " << fstr << G4endl; 137 << " TableTopEccentricRotationDirecti << 138 SetTableTopEccentricRotationDirection(fstr); 122 SetTableTopEccentricRotationDirection(fstr); 139 123 140 G4ThreeVector isoCenter; 124 G4ThreeVector isoCenter; 141 if (cpItem.getIsocenterPosition(fvfloat) != << 125 if( cpItem.getIsocenterPosition(fvfloat) != EC_Normal ) { 142 if (point0) isoCenter = point0->GetIsocent << 126 if( point0 ) isoCenter = point0->GetIsocenterPosition(); >> 127 } else { >> 128 isoCenter = G4ThreeVector(fvfloat[0],fvfloat[1],fvfloat[2]); 143 } 129 } 144 else { << 130 G4cout << " " << " IsocenterPosition " << isoCenter << G4endl; 145 isoCenter = G4ThreeVector(fvfloat[0], fvfl << 146 } << 147 G4cout << " " << 148 << " IsocenterPosition " << isoCenter << 149 SetIsocenterPosition(isoCenter); 131 SetIsocenterPosition(isoCenter); 150 132 151 if (cpItem.getSourceToSurfaceDistance(ffloat << 133 if( cpItem.getSourceToSurfaceDistance(ffloat) != EC_Normal ) { 152 if (point0) ffloat = point0->GetSourceToSu << 134 if( point0 ) ffloat = point0->GetSourceToSurfaceDistance(); 153 } 135 } 154 G4cout << " " << 136 G4cout << " " << " SourceToSurfaceDistance " << ffloat << G4endl; 155 << " SourceToSurfaceDistance " << ffl << 156 SetSourceToSurfaceDistance(ffloat); 137 SetSourceToSurfaceDistance(ffloat); 157 138 158 cpItem.getCumulativeMetersetWeight(ffloat); 139 cpItem.getCumulativeMetersetWeight(ffloat); 159 G4cout << " " << 140 G4cout << " " << " CumulativeMetersetWeight " << ffloat << G4endl; 160 << " CumulativeMetersetWeight " << ff << 161 SetCumulativeMetersetWeight(ffloat); 141 SetCumulativeMetersetWeight(ffloat); 162 << 142 163 if (cpItem.getGantryPitchAngle(ffloat32) != << 143 if( cpItem.getGantryPitchAngle(ffloat32) != EC_Normal ) { 164 if (point0) ffloat32 = point0->GetGantryPi << 144 if( point0 ) ffloat32 = point0->GetGantryPitchAngle(); 165 } 145 } 166 G4cout << " " << 146 G4cout << " " << " GantryPitchAngle " << ffloat32 << G4endl; 167 << " GantryPitchAngle " << ffloat32 < << 168 SetGantryPitchAngle(ffloat32); 147 SetGantryPitchAngle(ffloat32); 169 148 170 if (cpItem.getSurfaceEntryPoint(ffloat) != E << 149 if( cpItem.getSurfaceEntryPoint(ffloat) != EC_Normal ) { 171 if (point0) ffloat = point0->GetSurfaceEnt << 150 if( point0 ) ffloat = point0->GetSurfaceEntryPoint(); 172 } 151 } 173 G4cout << " " << 152 G4cout << " " << " SurfaceEntryPoint " << ffloat << G4endl; 174 << " SurfaceEntryPoint " << ffloat << << 175 SetSurfaceEntryPoint(ffloat); 153 SetSurfaceEntryPoint(ffloat); 176 154 177 if (cpItem.getTableTopEccentricAxisDistance( << 155 if( cpItem.getTableTopEccentricAxisDistance(ffloat) != EC_Normal ) { 178 if (point0) ffloat = point0->GetTableTopEc << 156 if( point0 ) ffloat = point0->GetTableTopEccentricAxisDistance(); 179 } 157 } 180 G4cout << " " << 158 G4cout << " " << " TableTopEccentricAxisDistance " << ffloat << G4endl; 181 << " TableTopEccentricAxisDistance " << 182 SetTableTopEccentricAxisDistance(ffloat); 159 SetTableTopEccentricAxisDistance(ffloat); 183 160 184 if (cpItem.getTableTopLateralPosition(ffloat << 161 if( cpItem.getTableTopLateralPosition(ffloat) != EC_Normal ) { 185 if (point0) ffloat = point0->GetTableTopLa << 162 if( point0 ) ffloat = point0->GetTableTopLateralPosition(); 186 } 163 } 187 G4cout << " " << 164 G4cout << " " << " TableTopLateralPosition " << ffloat << G4endl; 188 << " TableTopLateralPosition " << ffl << 189 SetTableTopLateralPosition(ffloat); 165 SetTableTopLateralPosition(ffloat); 190 166 191 if (cpItem.getTableTopLongitudinalPosition(f << 167 if( cpItem.getTableTopLongitudinalPosition(ffloat) != EC_Normal ) { 192 if (point0) ffloat = point0->GetTableTopLo << 168 if( point0 ) ffloat = point0->GetTableTopLongitudinalPosition(); 193 } 169 } 194 G4cout << " " << 170 G4cout << " " << " TableTopLongitudinalPosition " << ffloat << G4endl; 195 << " TableTopLongitudinalPosition " < << 196 SetTableTopLongitudinalPosition(ffloat); 171 SetTableTopLongitudinalPosition(ffloat); 197 172 198 if (cpItem.getTableTopPitchAngle(ffloat32) ! << 173 if( cpItem.getTableTopPitchAngle(ffloat32) != EC_Normal ) { 199 if (point0) ffloat32 = point0->GetTableTop << 174 if( point0 ) ffloat32 = point0->GetTableTopPitchAngle(); 200 } 175 } 201 G4cout << " " << 176 G4cout << " " << " TableTopPitchAngle " << ffloat32 << G4endl; 202 << " TableTopPitchAngle " << ffloat32 << 203 177 204 if (cpItem.getTableTopPitchRotationDirection << 178 if( cpItem.getTableTopPitchRotationDirection(fstr) != EC_Normal ) { 205 if (point0) fstr = point0->GetTableTopPitc << 179 if( point0 ) fstr = point0->GetTableTopPitchRotationDirection(); 206 } 180 } 207 if (fstr == "CC") { // counter-clockwise << 181 if( fstr == "CC" ) { // counter-clockwise 208 SetTableTopPitchAngle(-ffloat32); 182 SetTableTopPitchAngle(-ffloat32); 209 } << 183 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 210 else if (fstr == "CW" || fstr == "NONE" || f << 211 SetTableTopPitchAngle(ffloat32); 184 SetTableTopPitchAngle(ffloat32); 212 } 185 } 213 G4cout << " " << 186 G4cout << " " << " TableTopPitchRotationDirection " << fstr << G4endl; 214 << " TableTopPitchRotationDirection " << 215 SetTableTopPitchRotationDirection(fstr); 187 SetTableTopPitchRotationDirection(fstr); 216 188 217 if (cpItem.getTableTopRollAngle(ffloat32) != << 189 if( cpItem.getTableTopRollAngle(ffloat32) != EC_Normal ) { 218 if (point0) ffloat32 = point0->GetTableTop << 190 if( point0 ) ffloat32 = point0->GetTableTopRollAngle(); 219 } 191 } 220 G4cout << " " << 192 G4cout << " " << " TableTopRollAngle " << ffloat32 << G4endl; 221 << " TableTopRollAngle " << ffloat32 << 222 193 223 if (cpItem.getTableTopRollRotationDirection( << 194 if( cpItem.getTableTopRollRotationDirection(fstr) != EC_Normal ) { 224 if (point0) fstr = point0->GetTableTopRoll << 195 if( point0 ) fstr = point0->GetTableTopRollRotationDirection(); 225 } 196 } 226 if (fstr == "CC") { // counter-clockwise << 197 if( fstr == "CC" ) { // counter-clockwise 227 SetTableTopRollAngle(-ffloat32); 198 SetTableTopRollAngle(-ffloat32); 228 } << 199 } else if( fstr == "CW" || fstr == "NONE" || fstr == "") { // clockwise 229 else if (fstr == "CW" || fstr == "NONE" || f << 230 SetTableTopRollAngle(ffloat32); 200 SetTableTopRollAngle(ffloat32); 231 } 201 } 232 G4cout << " " << 202 G4cout << " " << " TableTopRollRotationDirection " << fstr << G4endl; 233 << " TableTopRollRotationDirection " << 234 SetTableTopRollRotationDirection(fstr); 203 SetTableTopRollRotationDirection(fstr); 235 204 236 if (cpItem.getTableTopVerticalPosition(ffloa << 205 if( cpItem.getTableTopVerticalPosition(ffloat) != EC_Normal ) { 237 if (point0) ffloat = point0->GetTableTopVe << 206 if( point0 ) ffloat = point0->GetTableTopVerticalPosition(); 238 } 207 } 239 G4cout << " " << 208 G4cout << " " << " TableTopVerticalPosition " << ffloat << G4endl; 240 << " TableTopVerticalPosition " << ff << 241 SetTableTopVerticalPosition(ffloat); 209 SetTableTopVerticalPosition(ffloat); 242 << 210 243 // --- get DICOM sequence attributes --- 211 // --- get DICOM sequence attributes --- 244 // t DRTWedgePositionSequence &getWed << 212 //t DRTWedgePositionSequence &getWedgePositionSequence() 245 // t const DRTWedgePositionSequence & << 213 //t const DRTWedgePositionSequence &getWedgePositionSequence() const 246 } 214 } 247 215 248 //....oooOO0OOooo........oooOO0OOooo........oo 216 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 249 void DicomBeamControlPoint::Print(std::ostream << 217 void DicomBeamControlPoint::Print( std::ostream& ) >> 218 { >> 219 >> 220 } 250 221 251 //....oooOO0OOooo........oooOO0OOooo........oo 222 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 252 void DicomBeamControlPoint::DumpToFile(std::of << 223 void DicomBeamControlPoint::DumpToFile( std::ofstream& fout ) 253 { 224 { 254 fout << ":P ControlPointIndex " << theIndex 225 fout << ":P ControlPointIndex " << theIndex << G4endl; 255 fout << ":P NominalBeamEnergy " << theNomina 226 fout << ":P NominalBeamEnergy " << theNominalBeamEnergy << G4endl; 256 fout << ":P IsocenterPositionX " << theIsoce 227 fout << ":P IsocenterPositionX " << theIsocenterPosition.x() << G4endl; 257 fout << ":P IsocenterPositionY " << theIsoce 228 fout << ":P IsocenterPositionY " << theIsocenterPosition.y() << G4endl; 258 fout << ":P IsocenterPositionZ " << theIsoce 229 fout << ":P IsocenterPositionZ " << theIsocenterPosition.z() << G4endl; 259 230 260 // std::string iistr = std::to_string(theCo 231 // std::string iistr = std::to_string(theControlPointIndex); 261 fout << ":P SourceToSurfaceDistance " << the 232 fout << ":P SourceToSurfaceDistance " << theSourceToSurfaceDistance << G4endl; 262 fout << ":P GantryAngle " << theGantryAngle 233 fout << ":P GantryAngle " << theGantryAngle << G4endl; 263 fout << ":P BeamLimitingDeviceAngle " << the 234 fout << ":P BeamLimitingDeviceAngle " << theBeamLimitingDeviceAngle << G4endl; 264 fout << ":P PatientSupportAngle " << thePati 235 fout << ":P PatientSupportAngle " << thePatientSupportAngle << G4endl; 265 fout << ":P TableTopEccentricAngle " << theT 236 fout << ":P TableTopEccentricAngle " << theTableTopEccentricAngle << G4endl; 266 fout << ":P SourceToSurfaceDistance " << the << 237 fout << ":P SourceToSurfaceDistance " << theSourceToSurfaceDistance<< G4endl; 267 fout << ":P MetersetWeight " << theMetersetW << 238 fout << ":P MetersetWeight " << theMetersetWeight<< G4endl; 268 fout << ":P GantryPitchAngle " << theGantryP 239 fout << ":P GantryPitchAngle " << theGantryPitchAngle << G4endl; 269 fout << ":P SurfaceEntryPoint " << theSurfac 240 fout << ":P SurfaceEntryPoint " << theSurfaceEntryPoint << G4endl; 270 fout << ":P TableTopEccentricAxisDistance " 241 fout << ":P TableTopEccentricAxisDistance " << theTableTopEccentricAxisDistance << G4endl; 271 fout << ":P TableTopLateralPosition " << the 242 fout << ":P TableTopLateralPosition " << theTableTopLateralPosition << G4endl; 272 fout << ":P TableTopLongitudinalPosition " < << 243 fout << ":P TableTopLongitudinalPosition " << theTableTopLongitudinalPosition<< G4endl; 273 fout << ":P TableTopPitchAngle " << theTable 244 fout << ":P TableTopPitchAngle " << theTableTopPitchAngle << G4endl; 274 fout << ":P TableTopRollAngle " << theTableT 245 fout << ":P TableTopRollAngle " << theTableTopRollAngle << G4endl; 275 fout << ":P TableTopVerticalPosition " << th 246 fout << ":P TableTopVerticalPosition " << theTableTopVerticalPosition << G4endl; 276 247 277 for (size_t ii = 0; ii < theDevices.size(); << 248 for( size_t ii = 0; ii < theDevices.size(); ii++ ){ 278 theDevices[ii]->DumpToFile(fout); 249 theDevices[ii]->DumpToFile(fout); 279 } 250 } >> 251 280 } 252 } 281 253