34#ifndef AIMS_SINO_SINO_H
35#define AIMS_SINO_SINO_H
39#include <ecat+/io/io.h>
52 ScannerConf(
int ring,
int numSeg,
int ringDiff,
int span,
int numAngles,
int numBin,
53 float zResolution,
float binResolution,
float faceRadius ) ;
60 int getZ(
int segment )
const {
return _numZ[ segment ]; }
81 static ScannerConf ecatHRPlusUsual(63, 5, 22, 9, 0, 0, 0., 0., 0.);
99 void allocate(
int,
int );
102 {
return _internalMode; }
110 {
return _displayMode; }
118 int transCodeSegment(
int s)
const ;
119 int getZ(
int segment ) {
return _scannerConfig.getZ(segment); };
126 inline T& operator() (
int segment,
int zOrAlpha,
int alphaOrZ,
int ro )
128 if( _internalMode == _displayMode )
129 return _bin( segment )( zOrAlpha )( ro, alphaOrZ );
131 return _bin( segment )( alphaOrZ )( ro, zOrAlpha );
135 {
return _bin( segment ); }
151 _header.copy( hdr ) ;
154 int getNumAngles()
const ;
155 int getNumPlanes(
int seg )
const ;
156 int getNumBins()
const ;
157 int getNumSeg()
const ;
160 int getRing()
const {
return _scannerConfig._ring; }
161 int getSpan()
const {
return _scannerConfig._span; }
164 std::string getFileType()
const ;
165 std::string getEcatFileType()
const ;
166 short getSystemType()
const ;
167 unsigned int getScanStartTime()
const ;
168 std::string getRadioPharmaceutical()
const ;
169 std::string getIsotopeName()
const ;
170 float getIsotopeHalfLife()
const ;
171 float getDistanceScanned()
const ;
172 float getTransaxialFOV()
const ;
173 short getAngularCompression()
const ;
174 std::string getStudyType()
const ;
175 short getPatientOrientation()
const ;
176 float getPlaneSeparation()
const ;
177 short getTotalNumPlanes()
const ;
178 int getMultiFileType()
const ;
179 float getInitBedPosition()
const ;
180 short getLowerTrueThreshold()
const ;
181 short getUpperTrueThreshold()
const ;
182 short getAcquisitionMode()
const ;
183 short getAcquisitionType()
const ;
184 float getBinSize()
const ;
185 float getBranchingFraction()
const ;
186 unsigned int getDoseStartTime()
const ;
187 float getBedElevation()
const ;
188 short getCoinSampleMode()
const ;
189 short getAxialSampleMode()
const ;
190 float getCalibrationFactor()
const ;
191 std::vector<float> getBedOffset()
const ;
192 short getLowerScatterThreshold()
const ;
193 float getDosage()
const ;
194 float getWellCounterFactor()
const ;
195 short getSeptaState()
const ;
196 float getXResolution()
const ;
197 float getVResolution()
const ;
198 float getZResolution()
const ;
199 float getWResolution()
const ;
200 short getScanMin()
const ;
201 short getScanMax()
const ;
203 int getPrompts()
const ;
204 std::vector<float> getUncorrectedSingles( )
const ;
205 int getDelayed()
const ;
206 int getMultiples()
const ;
207 int getTrues()
const ;
208 float getTotalAverageCorrected()
const ;
209 float getTotalAverageUncorrected()
const ;
210 int getTotalCoinRate()
const ;
211 float getDeadTimeCorrectionFactor()
const ;
212 unsigned int getStartTime()
const ;
213 unsigned int getDurationTime()
const ;
214 unsigned int getGateDuration()
const ;
216 void setFileType(
const std::string& fileType);
217 void setEcatFileType(
const std::string& fileType ) ;
218 void setSystemType(
short systemType) ;
219 void setScanStartTime(
unsigned int scanStartTime) ;
221 void setPrompts(
int prompts);
222 void setUncorrectedSingles(
const std::vector<float>& uncorrSingles ) ;
223 void setDelayed(
int delayed);
224 void setMultiples(
int multiples);
225 void setTrues(
int trues);
227 void setTotalAverageCorrected(
float ) ;
228 void setTotalAverageUncorrected(
float) ;
229 void setTotalCoinRate(
int) ;
230 void setDeadTimeCorrectionFactor(
float) ;
231 void setStartTime(
unsigned int) ;
232 void setDurationTime(
unsigned int) ;
233 void setGateDuration(
unsigned int) ;
235 void setRadioPharmaceutical(
const std::string& radiopharmaceutical) ;
236 void setIsotopeName(
const std::string& isotopeName);
237 void setIsotopeHalfLife(
float isotopeHalfLife);
238 void setDistanceScanned(
float DistanceScanned);
239 void setTransaxialFOV(
float TransaxialFOV);
240 void setAngularCompression(
short AngularCompression);
241 void setStudyType(
const std::string& StudyType);
242 void setPatientOrientation(
short PatientOrientation);
243 void setPlaneSeparation(
float planeSep) ;
244 void setTotalNumPlanes(
short NumPlanes);
245 void setMultiFileType(
int MultiFileType );
246 void setInitBedPosition(
float InitBedPosition);
247 void setLowerTrueThreshold(
short LowerTrueThreshold);
248 void setUpperTrueThreshold(
short UpperTrueThreshold);
249 void setAcquisitionMode(
short AquisitionMode);
250 void setAcquisitionType(
short AquisitionType);
251 void setBinSize(
float BinSize);
252 void setBranchingFraction(
float BranchingFraction);
253 void setDoseStartTime(
unsigned int DoseStartTime);
254 void setBedElevation (
float) ;
255 void setCoinSampleMode (
short) ;
256 void setAxialSampleMode (
short) ;
257 void setCalibrationFactor (
float) ;
258 void setBedOffset (
const std::vector<float>&) ;
259 void setLowerScatterThreshold (
short) ;
260 void setDosage (
float) ;
261 void setWellCounterFactor (
float) ;
262 void setSeptaState (
short) ;
263 void setXResolution (
float) ;
264 void setVResolution (
float) ;
265 void setZResolution (
float) ;
266 void setWResolution (
float) ;
267 void setScanMin(
short scanMin) ;
268 void setScanMax(
short scanMax) ;
270 void printHeader()
const ;
An attempt to efficiently manage view/sinogram acquisition PET data.
ScannerConf(const ScannerConf &s)
ScannerConf(UnifiedEcatSinoInfo *u)
bool operator!=(const ScannerConf &conf) const
ScannerConf & operator=(const ScannerConf &)
float getXResolution() const
float getZResolution() const
int getZ(int segment) const
ScannerConf(int ring, int numSeg, int ringDiff, int span, int numAngles, int numBin, float zResolution, float binResolution, float faceRadius)
const ScannerConf & getScannerConf() const
Mode getInternalMode() const
Sinogram(const ScannerConf &conf=ecatHRPlusUsual)
AimsData< AimsData< AimsData< T > > > & start()
void setHeader(const PythonHeader &hdr)
void setDisplayMode(Mode displayMode)
void setInternalMode(const Sinogram< T >::Mode &)
const aims::PythonHeader & header() const
The class for EcatSino data write operation.