Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
DicomFilePET Class Reference

#include <Doxymodules_medical.h>

Inheritance diagram for DicomFilePET:
DicomVFileImage DicomVFile

Public Member Functions

 DicomFilePET ()
 
 DicomFilePET (DcmDataset *dset)
 
 ~DicomFilePET ()
 
void BuildActivities ()
 
void DumpActivitiesToTextFile (std::ofstream &fout)
 
- Public Member Functions inherited from DicomVFileImage
 DicomVFileImage ()
 
 DicomVFileImage (DcmDataset *dset)
 
 ~DicomVFileImage ()
 
virtual void ReadData ()
 
void operator+= (const DicomVFileImage &rhs)
 
DicomVFileImage operator+ (const DicomVFileImage &rhs)
 
void DumpHeaderToTextFile (std::ofstream &fout)
 
G4int GetNoVoxelsX () const
 
G4int GetNoVoxelsY () const
 
G4int GetNoVoxelsZ () const
 
G4int GetNoVoxels () const
 
G4double GetMinX () const
 
G4double GetMinY () const
 
G4double GetMinZ () const
 
G4double GetMaxX () const
 
G4double GetMaxY () const
 
G4double GetMaxZ () const
 
void SetNoVoxelsX (const G4int &val)
 
void SetNoVoxelsY (const G4int &val)
 
void SetNoVoxelsZ (const G4int &val)
 
void SetMinX (const G4double &val)
 
void SetMaxX (const G4double &val)
 
void SetMinY (const G4double &val)
 
void SetMaxY (const G4double &val)
 
void SetMinZ (const G4double &val)
 
void SetMaxZ (const G4double &val)
 
const G4double & GetLocation () const
 
void SetLocation (const G4double &val)
 
G4ThreeVector GetOrientationRows () const
 
G4ThreeVector GetOrientationColumns () const
 
- Public Member Functions inherited from DicomVFile
 DicomVFile ()
 
 DicomVFile (DcmDataset *dset)
 
 ~DicomVFile ()
 
void SetFileName (G4String fName)
 

Private Attributes

std::vector< size_t > fActivities
 

Additional Inherited Members

- Protected Member Functions inherited from DicomVFile
virtual std::vector< G4double > Read1Data (DcmDataset *dset, DcmTagKey tagKey, G4int nData)
 
virtual OFString Read1DataStr (DcmDataset *dset, DcmTagKey tagKey)
 
- Protected Attributes inherited from DicomVFileImage
G4double fLocation
 
G4double fBitAllocated
 
G4double fRescaleSlope
 
G4double fRescaleIntercept
 
G4int fNoVoxelsX
 
G4int fNoVoxelsY
 
G4int fNoVoxelsZ
 
G4double fMinX
 
G4double fMinY
 
G4double fMinZ
 
G4double fMaxX
 
G4double fMaxY
 
G4double fMaxZ
 
G4double fVoxelDimX
 
G4double fVoxelDimY
 
G4double fVoxelDimZ
 
G4ThreeVector fOrientationRows
 
G4ThreeVector fOrientationColumns
 
std::vector< int > fHounsfieldV
 
DicomFileMgrtheFileMgr
 
- Protected Attributes inherited from DicomVFile
DcmDataset * theDataset
 
G4String fFileName
 

Detailed Description

Definition at line 51 of file Doxymodules_medical.h.

Constructor & Destructor Documentation

◆ DicomFilePET() [1/2]

DicomFilePET::DicomFilePET ( )

Definition at line 42 of file DicomFilePET.cc.

43{
44}

◆ DicomFilePET() [2/2]

DicomFilePET::DicomFilePET ( DcmDataset *  dset)

Definition at line 47 of file DicomFilePET.cc.

47 : DicomVFileImage(dset)
48{
49}

◆ ~DicomFilePET()

DicomFilePET::~DicomFilePET ( )
inline

Definition at line 36 of file DicomFilePET.hh.

36{};

Member Function Documentation

◆ BuildActivities()

void DicomFilePET::BuildActivities ( )

Definition at line 52 of file DicomFilePET.cc.

53{
54 G4int fCompress = theFileMgr->GetCompression();
55 if( fNoVoxelsX%fCompress != 0 || fNoVoxelsY%fCompress != 0 ) {
56 G4Exception("DicompFileMgr.:BuildMaterials",
57 "DFC004",
58 FatalException,
59 ("Compression factor = " + std::to_string(fCompress)
60 + " has to be a divisor of Number of voxels X = " + std::to_string(fNoVoxelsX)
61 + " and Y " + std::to_string(fNoVoxelsY)).c_str());
62 }
63
64 // if( DicomVerb(debugVerb) ) G4cout << " BuildMaterials " << fFileName << G4endl;
65 double meanHV = 0.;
66 for( int ir = 0; ir < fNoVoxelsY; ir += fCompress ) {
67 for( int ic = 0; ic < fNoVoxelsX; ic += fCompress ) {
68 meanHV = 0.;
69 int isumrMax = std::min(ir+fCompress,fNoVoxelsY);
70 int isumcMax = std::min(ic+fCompress,fNoVoxelsX);
71 for( int isumr = ir; isumr < isumrMax; isumr ++ ) {
72 for( int isumc = ic; isumc < isumcMax; isumc ++ ) {
73 meanHV += fHounsfieldV[isumc+isumr*fNoVoxelsX];
74 }
75 }
76 meanHV /= (isumrMax-ir)*(isumcMax-ic);
77 fActivities.push_back(meanHV);
78 }
79 }
80
81}
G4int GetCompression() const
std::vector< size_t > fActivities
DicomFileMgr * theFileMgr
std::vector< int > fHounsfieldV

◆ DumpActivitiesToTextFile()

void DicomFilePET::DumpActivitiesToTextFile ( std::ofstream &  fout)

Definition at line 84 of file DicomFilePET.cc.

85{
86 G4int fCompress = theFileMgr->GetCompression();
87 if( DicomFileMgr::verbose >= warningVerb ) G4cout << fLocation << " DumpDensitiesToTextFile "
88 << fFileName << " " << fActivities.size() << G4endl;
89
90 G4int copyNo = 0;
91 for( int ir = 0; ir < fNoVoxelsY/fCompress; ir++ ) {
92 for( int ic = 0; ic < fNoVoxelsX/fCompress; ic++ ) {
93 fout << fActivities[ic+ir*fNoVoxelsX/fCompress];
94 if( ic != fNoVoxelsX/fCompress-1) fout << " ";
95 if( copyNo%8 == 7 ) fout << G4endl;
96 copyNo++;
97 }
98 if( copyNo%8 != 0 ) fout << G4endl;
99 }
100
101}
@ warningVerb
static G4int verbose
G4String fFileName
Definition DicomVFile.hh:55

Member Data Documentation

◆ fActivities

std::vector<size_t> DicomFilePET::fActivities
private

Definition at line 43 of file DicomFilePET.hh.


The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration