29 #include "dcmtk/dcmrt/seq/drtcps.h"
40 OFVector<Float64> fvfloat;
42 cpItem.getControlPointIndex(fint);
43 G4cout <<
" @ DicomBeamControlPoint: " << fint <<
G4endl;
44 G4cout <<
" " <<
" ControlPointIndex " << fint <<
G4endl;
46 if( cpItem.getNominalBeamEnergy(ffloat) != EC_Normal ) {
49 G4cout <<
" " <<
" NominalBeamEnergy " << ffloat <<
G4endl;
51 cpItem.getDoseRateSet(ffloat);
54 DRTBeamLimitingDevicePositionSequence beamLDPS = cpItem.getBeamLimitingDevicePositionSequence();
55 G4cout <<
" @ NUMBER OF BeamLimitingDevicePositionSequence " << beamLDPS.getNumberOfItems()
57 beamLDPS.gotoFirstItem();
58 for(
size_t i3 = 0; i3 < beamLDPS.getNumberOfItems(); i3++ ) {
59 DRTBeamLimitingDevicePositionSequence::Item bldpsItem = beamLDPS.getCurrentItem();
63 beamLDPS.gotoNextItem();
66 cpItem.getGantryAngle(ffloat);
69 cpItem.getGantryRotationDirection(fstr);
70 G4cout <<
" " <<
" GantryRotationDirection " << fstr <<
G4endl;
73 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
76 if( cpItem.getBeamLimitingDeviceAngle(ffloat) != EC_Normal ) {
79 G4cout <<
" " <<
" BeamLimitingDeviceAngle " << ffloat <<
G4endl;
81 if( cpItem.getBeamLimitingDeviceRotationDirection(fstr) != EC_Normal ) {
86 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
89 G4cout <<
" " <<
" BeamLimitingDeviceRotationDirection " << fstr <<
G4endl;
92 if( cpItem.getPatientSupportAngle(ffloat) != EC_Normal ) {
95 G4cout <<
" " <<
" PatientSupportAngle " << ffloat <<
G4endl;
97 if( cpItem.getPatientSupportRotationDirection(fstr) != EC_Normal ) {
100 G4cout <<
" " <<
" PatientSupportRotationDirection " << fstr <<
G4endl;
104 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
108 if( cpItem.getTableTopEccentricAngle(ffloat) != EC_Normal ) {
111 G4cout <<
" " <<
" TableTopEccentricAngle " << ffloat <<
G4endl;
113 if( cpItem.getTableTopEccentricRotationDirection(fstr) != EC_Normal ) {
118 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
121 G4cout <<
" " <<
" TableTopEccentricRotationDirection " << fstr <<
G4endl;
125 if( cpItem.getIsocenterPosition(fvfloat) != EC_Normal ) {
130 G4cout <<
" " <<
" IsocenterPosition " << isoCenter <<
G4endl;
133 if( cpItem.getSourceToSurfaceDistance(ffloat) != EC_Normal ) {
136 G4cout <<
" " <<
" SourceToSurfaceDistance " << ffloat <<
G4endl;
139 cpItem.getCumulativeMetersetWeight(ffloat);
140 G4cout <<
" " <<
" CumulativeMetersetWeight " << ffloat <<
G4endl;
143 if( cpItem.getGantryPitchAngle(ffloat32) != EC_Normal ) {
146 G4cout <<
" " <<
" GantryPitchAngle " << ffloat32 <<
G4endl;
149 if( cpItem.getSurfaceEntryPoint(ffloat) != EC_Normal ) {
152 G4cout <<
" " <<
" SurfaceEntryPoint " << ffloat <<
G4endl;
155 if( cpItem.getTableTopEccentricAxisDistance(ffloat) != EC_Normal ) {
158 G4cout <<
" " <<
" TableTopEccentricAxisDistance " << ffloat <<
G4endl;
161 if( cpItem.getTableTopLateralPosition(ffloat) != EC_Normal ) {
164 G4cout <<
" " <<
" TableTopLateralPosition " << ffloat <<
G4endl;
167 if( cpItem.getTableTopLongitudinalPosition(ffloat) != EC_Normal ) {
170 G4cout <<
" " <<
" TableTopLongitudinalPosition " << ffloat <<
G4endl;
173 if( cpItem.getTableTopPitchAngle(ffloat32) != EC_Normal ) {
176 G4cout <<
" " <<
" TableTopPitchAngle " << ffloat32 <<
G4endl;
178 if( cpItem.getTableTopPitchRotationDirection(fstr) != EC_Normal ) {
183 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
186 G4cout <<
" " <<
" TableTopPitchRotationDirection " << fstr <<
G4endl;
189 if( cpItem.getTableTopRollAngle(ffloat32) != EC_Normal ) {
192 G4cout <<
" " <<
" TableTopRollAngle " << ffloat32 <<
G4endl;
194 if( cpItem.getTableTopRollRotationDirection(fstr) != EC_Normal ) {
199 }
else if( fstr ==
"CW" || fstr ==
"NONE" || fstr ==
"") {
202 G4cout <<
" " <<
" TableTopRollRotationDirection " << fstr <<
G4endl;
205 if( cpItem.getTableTopVerticalPosition(ffloat) != EC_Normal ) {
208 G4cout <<
" " <<
" TableTopVerticalPosition " << ffloat <<
G4endl;
248 for(
size_t ii = 0; ii <
theDevices.size(); ii++ ){
void SetPatientSupportRotationDirection(OFString dat)
void SetTableTopVerticalPosition(Float64 dat)
void AddDevice(DicomBeamDevicePos *dbd)
void SetPatientSupportAngle(Float64 dat)
CLHEP::Hep3Vector G4ThreeVector
void SetTableTopPitchRotationDirection(OFString dat)
Float64 theMetersetWeight
void SetTableTopLateralPosition(Float64 dat)
OFString GetBeamLimitingDeviceRotationDirection() const
Float64 theTableTopLateralPosition
void SetTableTopEccentricRotationDirection(OFString dat)
Float32 theGantryPitchAngle
void SetTableTopEccentricAngle(Float64 dat)
void SetCumulativeMetersetWeight(Float64 dat)
OFString GetTableTopEccentricRotationDirection() const
void SetTableTopRollAngle(Float32 dat)
Float32 theTableTopRollAngle
void Print(std::ostream &out)
Float32 GetTableTopRollAngle() const
Float64 theSourceToSurfaceDistance
Float64 theSurfaceEntryPoint
void SetBeamLimitingDeviceAngle(Float64 dat)
Float64 GetTableTopEccentricAxisDistance() const
void SetGantryPitchAngle(Float32 dat)
void DumpToFile(std::ofstream &out)
Float64 GetSurfaceEntryPoint() const
void SetTableTopLongitudinalPosition(Float64 dat)
void SetBeamLimitingDeviceRotationDirection(OFString dat)
void SetIsocenterPosition(G4ThreeVector dat)
Float64 thePatientSupportAngle
Float64 GetTableTopVerticalPosition() const
Float64 GetTableTopEccentricAngle() const
void SetTableTopPitchAngle(Float32 dat)
G4ThreeVector theIsocenterPosition
Float64 GetPatientSupportAngle() const
Float64 theTableTopEccentricAxisDistance
DicomBeamControlPoint(DRTControlPointSequence::Item cpItem, DicomBeamControlPoint *point0)
Float64 theTableTopLongitudinalPosition
Float32 GetGantryPitchAngle() const
Float64 GetTableTopLateralPosition() const
Float64 theTableTopEccentricAngle
OFString GetPatientSupportRotationDirection() const
Float64 GetSourceToSurfaceDistance() const
Float64 theTableTopVerticalPosition
OFString GetTableTopRollRotationDirection() const
G4GLOB_DLL std::ostream G4cout
void SetNominalBeamEnergy(Float64 dat)
Float64 GetBeamLimitingDeviceAngle() const
Float64 theNominalBeamEnergy
void SetGantryAngle(Float64 dat)
OFString GetTableTopPitchRotationDirection() const
Float64 theBeamLimitingDeviceAngle
void SetTableTopRollRotationDirection(OFString dat)
Float32 theTableTopPitchAngle
G4ThreeVector GetIsocenterPosition() const
void SetSurfaceEntryPoint(Float64 dat)
void SetTableTopEccentricAxisDistance(Float64 dat)
void SetSourceToSurfaceDistance(Float64 dat)
Float32 GetTableTopPitchAngle() const
void SetIndex(Sint32 dat)
Float64 GetTableTopLongitudinalPosition() const
std::vector< DicomBeamDevicePos * > theDevices
Float64 GetNominalBeamEnergy() const