Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/DICOM/dicomReader/include/DicomBeamControlPoint.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 //
  2 // ********************************************************************
  3 // * License and Disclaimer                                           *
  4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.                             *
 10 // *                                                                  *
 11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                                                  *
 18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // ********************************************************************
 25 //
 26 #ifndef DicomBeamControlPoint__HH
 27 #define DicomBeamControlPoint__HH
 28 
 29 #include "dcmtk/dcmrt/seq/drtcps.h"  // for ControlPointSequence
 30 
 31 #include <iostream>
 32 #include <vector>
 33 class DicomBeamDevicePos;
 34 
 35 #include "G4ThreeVector.hh"
 36 
 37 class DicomBeamControlPoint
 38 {
 39   public:
 40     DicomBeamControlPoint(DRTControlPointSequence::Item cpItem, DicomBeamControlPoint* point0);
 41     ~DicomBeamControlPoint() {};
 42 
 43   public:
 44     void SetIndex(Sint32 dat) { theIndex = dat; }
 45     Sint32 GetIndex() const { return theIndex; }
 46     void SetNominalBeamEnergy(Float64 dat) { theNominalBeamEnergy = dat; }
 47     Float64 GetNominalBeamEnergy() const { return theNominalBeamEnergy; }
 48     void SetGantryAngle(Float64 dat) { theGantryAngle = dat; }
 49     void SetGantryRotationDirection(OFString dat) { theGantryRotationDirection = dat; }
 50     void SetBeamLimitingDeviceAngle(Float64 dat) { theBeamLimitingDeviceAngle = dat; }
 51     void SetBeamLimitingDeviceRotationDirection(OFString dat)
 52     {
 53       theBeamLimitingDeviceRotationDirection = dat;
 54     }
 55     void SetPatientSupportAngle(Float64 dat) { thePatientSupportAngle = dat; }
 56     void SetPatientSupportRotationDirection(OFString dat)
 57     {
 58       thePatientSupportRotationDirection = dat;
 59     }
 60     void SetTableTopEccentricAngle(Float64 dat) { theTableTopEccentricAngle = dat; }
 61     void SetTableTopEccentricRotationDirection(OFString dat)
 62     {
 63       theTableTopEccentricRotationDirection = dat;
 64     }
 65     void SetIsocenterPosition(G4ThreeVector dat) { theIsocenterPosition = dat; }
 66     void SetSourceToSurfaceDistance(Float64 dat) { theSourceToSurfaceDistance = dat; }
 67     void SetCumulativeMetersetWeight(Float64 dat) { theCumulativeMetersetWeight = dat; }
 68     void SetMetersetWeight(Float64 dat) { theMetersetWeight = dat; }
 69     void SetGantryPitchAngle(Float32 dat) { theGantryPitchAngle = dat; }
 70     void SetSurfaceEntryPoint(Float64 dat) { theSurfaceEntryPoint = dat; }
 71     void SetTableTopEccentricAxisDistance(Float64 dat) { theTableTopEccentricAxisDistance = dat; }
 72     void SetTableTopLateralPosition(Float64 dat) { theTableTopLateralPosition = dat; }
 73     void SetTableTopLongitudinalPosition(Float64 dat) { theTableTopLongitudinalPosition = dat; }
 74     void SetTableTopPitchAngle(Float32 dat) { theTableTopPitchAngle = dat; }
 75     void SetTableTopPitchRotationDirection(OFString dat)
 76     {
 77       theTableTopPitchRotationDirection = dat;
 78     }
 79     void SetTableTopRollAngle(Float32 dat) { theTableTopRollAngle = dat; }
 80     void SetTableTopRollRotationDirection(OFString dat) { theTableTopRollRotationDirection = dat; }
 81     void SetTableTopVerticalPosition(Float64 dat) { theTableTopVerticalPosition = dat; }
 82     OFString GetGantryRotationDirection() const { return theGantryRotationDirection; }
 83     Float64 GetBeamLimitingDeviceAngle() const { return theBeamLimitingDeviceAngle; }
 84     OFString GetBeamLimitingDeviceRotationDirection() const
 85     {
 86       return theBeamLimitingDeviceRotationDirection;
 87     }
 88     Float64 GetPatientSupportAngle() const { return thePatientSupportAngle; }
 89     OFString GetPatientSupportRotationDirection() const
 90     {
 91       return thePatientSupportRotationDirection;
 92     }
 93     Float64 GetTableTopEccentricAngle() const { return theTableTopEccentricAngle; }
 94     OFString GetTableTopEccentricRotationDirection() const
 95     {
 96       return theTableTopEccentricRotationDirection;
 97     }
 98     G4ThreeVector GetIsocenterPosition() const { return theIsocenterPosition; }
 99     Float64 GetSourceToSurfaceDistance() const { return theSourceToSurfaceDistance; }
100     Float64 GetCumulativeMetersetWeight() const { return theCumulativeMetersetWeight; }
101     Float64 GetMetersetWeight() const { return theMetersetWeight; }
102     Float32 GetGantryPitchAngle() const { return theGantryPitchAngle; }
103     Float64 GetSurfaceEntryPoint() const { return theSurfaceEntryPoint; }
104     Float64 GetTableTopEccentricAxisDistance() const { return theTableTopEccentricAxisDistance; }
105     Float64 GetTableTopLateralPosition() const { return theTableTopLateralPosition; }
106     Float64 GetTableTopLongitudinalPosition() const { return theTableTopLongitudinalPosition; }
107     Float32 GetTableTopPitchAngle() const { return theTableTopPitchAngle; }
108     OFString GetTableTopPitchRotationDirection() const { return theTableTopPitchRotationDirection; }
109     Float32 GetTableTopRollAngle() const { return theTableTopRollAngle; }
110     OFString GetTableTopRollRotationDirection() const { return theTableTopRollRotationDirection; }
111     Float64 GetTableTopVerticalPosition() const { return theTableTopVerticalPosition; }
112 
113     void AddDevice(DicomBeamDevicePos* dbd) { theDevices.push_back(dbd); }
114 
115     void DumpToFile(std::ofstream& out);
116 
117     void Print(std::ostream& out);
118 
119   private:
120     Sint32 theIndex;
121     Float64 theNominalBeamEnergy;
122     Float64 theGantryAngle;
123     OFString theGantryRotationDirection;
124     Float64 theBeamLimitingDeviceAngle;
125     OFString theBeamLimitingDeviceRotationDirection;
126     Float64 thePatientSupportAngle;
127     OFString thePatientSupportRotationDirection;
128     Float64 theTableTopEccentricAngle;
129     OFString theTableTopEccentricRotationDirection;
130     G4ThreeVector theIsocenterPosition;
131     Float64 theSourceToSurfaceDistance;
132     Float64 theCumulativeMetersetWeight;
133     Float64 theMetersetWeight;
134     Float32 theGantryPitchAngle;
135     Float64 theSurfaceEntryPoint;
136     Float64 theTableTopEccentricAxisDistance;
137     Float64 theTableTopLateralPosition;
138     Float64 theTableTopLongitudinalPosition;
139     Float32 theTableTopPitchAngle;
140     OFString theTableTopPitchRotationDirection;
141     Float32 theTableTopRollAngle;
142     OFString theTableTopRollRotationDirection;
143     Float64 theTableTopVerticalPosition;
144 
145     std::vector<DicomBeamDevicePos*> theDevices;
146 };
147 
148 #endif
149