Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/DICOM/dicomReader/src/DicomBeamCompensator.cc

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 ]

Diff markup

Differences between /examples/extended/medical/DICOM/dicomReader/src/DicomBeamCompensator.cc (Version 11.3.0) and /examples/extended/medical/DICOM/dicomReader/src/DicomBeamCompensator.cc (Version 10.4)


  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 "DicomBeamCompensator.hh"                 26 #include "DicomBeamCompensator.hh"
 27                                                << 
 28 #include "dcmtk/dcmrt/seq/drtcos.h"                27 #include "dcmtk/dcmrt/seq/drtcos.h"
 29                                                << 
 30 #include "G4UIcommand.hh"                          28 #include "G4UIcommand.hh"
 31                                                    29 
 32 // DOC at https://www.dabsoft.ch/dicom/3/C.8.8     30 // DOC at https://www.dabsoft.ch/dicom/3/C.8.8.14/
 33 //....oooOO0OOooo........oooOO0OOooo........oo     31 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 34 DicomBeamCompensator::DicomBeamCompensator(DRT     32 DicomBeamCompensator::DicomBeamCompensator(DRTCompensatorSequence::Item bcompItem)
 35 {                                                  33 {
 36   OFString fstr;                                   34   OFString fstr;
 37   Sint32 fint;                                     35   Sint32 fint;
 38   Float64 ffloat;                                  36   Float64 ffloat;
 39   OFVector<Float64> fvfloat;                       37   OFVector<Float64> fvfloat;
 40   OFCondition cond;                            <<  38   OFCondition cond; 
 41   G4cout << " DicomBeamCompensator::DicomBeamC     39   G4cout << " DicomBeamCompensator::DicomBeamCompensator " << G4endl;
 42   cond = bcompItem.getCompensatorNumber(fint);     40   cond = bcompItem.getCompensatorNumber(fint);
 43   theCompensatorNumber = fint;                     41   theCompensatorNumber = fint;
 44   G4cout << " Number " << fint << G4endl;          42   G4cout << " Number " << fint << G4endl;
 45                                                <<  43     
 46   cond = bcompItem.getCompensatorColumns(fint)     44   cond = bcompItem.getCompensatorColumns(fint);
 47   theCompensatorColumns = fint;                    45   theCompensatorColumns = fint;
 48   cond = bcompItem.getCompensatorRows(fint);       46   cond = bcompItem.getCompensatorRows(fint);
 49   theCompensatorRows = fint;                       47   theCompensatorRows = fint;
 50   //  first value is the spacing between the c     48   //  first value is the spacing between the center of adjacent rows, and the second value
 51   // (column spacing) is the spacing between t <<  49   // (column spacing) is the spacing between the center of adjacent columns.  
 52   cond = bcompItem.getCompensatorPixelSpacing(     50   cond = bcompItem.getCompensatorPixelSpacing(fvfloat);
 53   theCompensatorPixelSpacing = fvfloat;            51   theCompensatorPixelSpacing = fvfloat;
 54                                                    52 
 55   cond = bcompItem.getCompensatorPosition(fvfl     53   cond = bcompItem.getCompensatorPosition(fvfloat);
 56   theCompensatorPosition = fvfloat;                54   theCompensatorPosition = fvfloat;
 57                                                    55 
 58   cond = bcompItem.getCompensatorTransmissionD     56   cond = bcompItem.getCompensatorTransmissionData(fvfloat);
 59   if (cond.good()) theCompensatorTransmissionD <<  57   if( cond.good() ) theCompensatorTransmissionData = fvfloat;
 60   cond = bcompItem.getCompensatorThicknessData     58   cond = bcompItem.getCompensatorThicknessData(fvfloat);
 61   if (cond.good()) theCompensatorThicknessData <<  59   if( cond.good() ) theCompensatorThicknessData = fvfloat;
 62                                                    60 
 63   cond = bcompItem.getCompensatorTrayID(fstr);     61   cond = bcompItem.getCompensatorTrayID(fstr);
 64   cond = bcompItem.getCompensatorType(fstr);       62   cond = bcompItem.getCompensatorType(fstr);
 65                                                    63 
 66   cond = bcompItem.getMaterialID(fstr);            64   cond = bcompItem.getMaterialID(fstr);
 67   if (cond.good()) theMaterialID = fstr;       <<  65   if( cond.good() ) theMaterialID = fstr;
 68   cond = bcompItem.getSourceToCompensatorDista     66   cond = bcompItem.getSourceToCompensatorDistance(fvfloat);
 69   if (cond.good()) theSourceToCompensatorDista <<  67   if( cond.good() ) theSourceToCompensatorDistance = fvfloat;
 70   cond = bcompItem.getSourceToCompensatorTrayD     68   cond = bcompItem.getSourceToCompensatorTrayDistance(ffloat);
 71   theSourceToCompensatorTrayDistance = ffloat;     69   theSourceToCompensatorTrayDistance = ffloat;
 72                                                    70 
 73   cond = bcompItem.getCompensatorDescription(f     71   cond = bcompItem.getCompensatorDescription(fstr);
 74   cond = bcompItem.getCompensatorDivergence(fs     72   cond = bcompItem.getCompensatorDivergence(fstr);
 75   cond = bcompItem.getCompensatorID(fstr);         73   cond = bcompItem.getCompensatorID(fstr);
 76   cond = bcompItem.getCompensatorMountingPosit     74   cond = bcompItem.getCompensatorMountingPosition(fstr);
 77   cond = bcompItem.getAccessoryCode(fstr);         75   cond = bcompItem.getAccessoryCode(fstr);
                                                   >>  76 
 78 }                                                  77 }
 79                                                    78 
 80 //....oooOO0OOooo........oooOO0OOooo........oo     79 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 81 void DicomBeamCompensator::Print(std::ostream& <<  80 void DicomBeamCompensator::Print( std::ostream&  )
                                                   >>  81 {
                                                   >>  82 
                                                   >>  83 }
 82                                                    84 
 83 //....oooOO0OOooo........oooOO0OOooo........oo     85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 84 void DicomBeamCompensator::DumpToFile(std::ofs <<  86 void DicomBeamCompensator::DumpToFile( std::ofstream& fout )
 85 {                                                  87 {
 86   std::string name = ":P COMP_" + G4UIcommand: <<  88   std::string name  = ":P COMP_" +G4UIcommand::ConvertToString(theCompensatorNumber) + "_";
 87   fout << name << "PixelSpacing_1 " << theComp     89   fout << name << "PixelSpacing_1 " << theCompensatorPixelSpacing[0] << G4endl;
 88   fout << name << "PixelSpacing_2 " << theComp     90   fout << name << "PixelSpacing_2 " << theCompensatorPixelSpacing[1] << G4endl;
 89                                                    91 
 90   fout << name << "POSX " << theCompensatorPos     92   fout << name << "POSX " << theCompensatorPosition[0] << G4endl;
 91   fout << name << "POSY " << theCompensatorPos     93   fout << name << "POSY " << theCompensatorPosition[1] << G4endl;
                                                   >>  94   
                                                   >>  95   fout << name << "SourceToCompensatorTrayDistance " << theSourceToCompensatorTrayDistance <<G4endl;
 92                                                    96 
 93   fout << name << "SourceToCompensatorTrayDist <<  97   for( size_t ii = 0; ii < theSourceToCompensatorDistance.size(); ii++ ) {
 94        << G4endl;                              <<  98     int iCol = ii%theCompensatorColumns;
 95                                                <<  99     int iRow = ii/theCompensatorColumns;
 96   for (size_t ii = 0; ii < theSourceToCompensa << 100     fout << name << "SourceToCompensatorDistance_" +G4UIcommand::ConvertToString(iRow) + "_" 
 97     int iCol = ii % theCompensatorColumns;     << 101       + G4UIcommand::ConvertToString(iCol) << " " << theSourceToCompensatorDistance[ii] << G4endl;
 98     int iRow = ii / theCompensatorColumns;     << 
 99     fout << name                               << 
100          << "SourceToCompensatorDistance_" + G << 
101               + G4UIcommand::ConvertToString(i << 
102          << " " << theSourceToCompensatorDista << 
103   }                                               102   }
104                                                   103 
105   /*  for( size_t ii = 0; ii < theCompensatorT    104   /*  for( size_t ii = 0; ii < theCompensatorTransmissionData.size(); ii++ ) {
106     int iCol = ii%theCompensatorColumns;          105     int iCol = ii%theCompensatorColumns;
107     int iRow = ii/theCompensatorColumns;          106     int iRow = ii/theCompensatorColumns;
108     fout << name << "Transmission_" +G4UIcomma << 107     fout << name << "Transmission_" +G4UIcommand::ConvertToString(iRow) + "_" 
109        +G4UIcommand::ConvertToString(iCol) <<     108        +G4UIcommand::ConvertToString(iCol) << " " << theCompensatorTransmissionData[ii] << G4endl;
110   }                                               109   }
111                                                   110 
112   for( size_t ii = 0; ii < theCompensatorThick    111   for( size_t ii = 0; ii < theCompensatorThicknessData.size(); ii++ ) {
113     int iCol = ii%theCompensatorColumns;          112     int iCol = ii%theCompensatorColumns;
114     int iRow = ii/theCompensatorColumns;          113     int iRow = ii/theCompensatorColumns;
115     fout << name << "Thickness_" +G4UIcommand: << 114     fout << name << "Thickness_" +G4UIcommand::ConvertToString(iRow) + "_" 
116   +G4UIcommand::ConvertToString(iCol) << " " <    115   +G4UIcommand::ConvertToString(iCol) << " " << theCompensatorThicknessData[ii] << G4endl;
117   }                                               116   }
118   */                                              117   */
119 }                                                 118 }
120                                                   119