File indexing completed on 2025-04-10 08:06:18
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef DicomBeam__HH
0027 #define DicomBeam__HH
0028
0029 #include "dcmtk/dcmdata/dcfilefo.h"
0030
0031 #include "G4ThreeVector.hh"
0032
0033 #include <iostream>
0034 #include <vector>
0035 class DicomVBeamDevice;
0036 class DicomBeamControlPoint;
0037 class DicomBeamCompensator;
0038 class DicomBeamBlock;
0039 class DicomBeamWedge;
0040
0041 class DicomBeam
0042 {
0043 public:
0044 DicomBeam();
0045 ~DicomBeam() {};
0046
0047 public:
0048 void SetDoseSpecificationPoint(G4ThreeVector point) { theDoseSpecificationPoint = point; }
0049 void SetMeterset(Float64 dat) { theMeterset = dat; }
0050 void SetSourceAxisDistance(Float64 dat) { theSourceAxisDistance = dat; }
0051 void SetNumber(Sint32 dat) { theNumber = dat; }
0052 void SetRadiationType(OFString dat) { theRadiationType = dat; }
0053 void AddDevice(DicomVBeamDevice* db) { theDevices.push_back(db); }
0054 void AddControlPoint(DicomBeamControlPoint* db) { theControlPoints.push_back(db); }
0055 void AddCompensator(DicomBeamCompensator* db) { theCompensators.push_back(db); }
0056 void AddBlock(DicomBeamBlock* db) { theBlocks.push_back(db); }
0057 void AddWedge(DicomBeamWedge* db) { theWedges.push_back(db); }
0058 size_t GetNControlPoints() const { return theControlPoints.size(); }
0059 DicomBeamControlPoint* GetControlPoint(size_t ii) { return theControlPoints[ii]; }
0060
0061 void SetControlPointMetersets();
0062
0063 void Print(std::ostream& out);
0064
0065 void DumpToFile();
0066
0067 private:
0068 G4ThreeVector theDoseSpecificationPoint;
0069 Float64 theMeterset;
0070 Float64 theSourceAxisDistance;
0071 Sint32 theNumber;
0072 OFString theRadiationType;
0073 std::vector<DicomVBeamDevice*> theDevices;
0074 std::vector<DicomBeamControlPoint*> theControlPoints;
0075 std::vector<DicomBeamCompensator*> theCompensators;
0076 std::vector<DicomBeamBlock*> theBlocks;
0077 std::vector<DicomBeamWedge*> theWedges;
0078 };
0079
0080 #endif