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; }
 
  113     { _displayMode = 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 & operator=(const ScannerConf &)
ScannerConf(const ScannerConf &s)
ScannerConf(UnifiedEcatSinoInfo *u)
bool operator!=(const ScannerConf &conf) const
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 aims::PythonHeader & header() const
Mode getInternalMode() const
Sinogram(const ScannerConf &conf=ecatHRPlusUsual)
void setHeader(const PythonHeader &hdr)
AimsData< AimsData< AimsData< T > > > & start()
void setDisplayMode(Mode displayMode)
void setInternalMode(const Sinogram< T >::Mode &)
const ScannerConf & getScannerConf() const
The class for EcatSino data write operation.