VR-Vantage 3.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ciDetector.h
Go to the documentation of this file.
1 
2 // Copyright JRM Enterprises, Inc. 2004
3 // All rights reserved.
4 //
5 // This code is the intellectual property of JRM Enterprises, Inc.
6 // It may not be used or released as source or compiled binary form
7 // without the prior written consent of JRM Enterprises, Inc.
8 //
9 // Original Author: Mike Ortalano
10 // Date: Nov 2004
11 //
12 //
13 //
15 
16 #if !defined(_ciDETECTOR_H_)
17 #define _ciDETECTOR_H_
18 
19 #if _MSC_VER > 1000
20 #pragma once
21 #endif // _MSC_VER > 1000
22 
26 #include "ciApi.h"
27 #include <stdio.h>
28 #include <string.h>
29 #include <fstream>
30 #include <iostream>
31 #include <assert.h>
32 #include <string.h>
33 #include "clXML.h"
34 #include "clXMLNode.h"
35 
37 {
39 public: // methods
40 
42  // getDwellTime
49  double getDwellTime() { return m_dwellTime; }
50 
52  // setDwellTime
60  void setDwellTime( double dwellTime ){ m_dwellTime = dwellTime; }
61 
63  // getNET
70  double getNET() { return m_NET; }
71 
73  // setNET
81  void setNET( double NET ) { m_NET = NET; }
82 
84  // getFixedPatternNoisePercentNEDT
91  double getFixedPatternNoisePercent( ) { return m_FixedNoisePercent; }
92 
94  // setFixedPatternNoisePercentNEDT
102  void setFixedPatternNoisePercent( double percentNoise ) {
103  m_FixedNoisePercent = percentNoise;
104  }
105 
107  // getNER
114  double getNER() { return m_NER; }
116  // setNER
123  void setNER(double NER) { m_NER = NER; }
124 
126  // getNoiseFreqKnee
133  double getNoiseFreqKnee( ) { return m_noiseFreqKnee; }
134 
136  // setNoiseFreqKnee
144  void setNoiseFreqKnee( double noiseFreqKnee ) { m_noiseFreqKnee = noiseFreqKnee; }
145 
147  // getNoiseFreqExp
154  double getNoiseFreqExp( ) { return m_noiseFreqExp; }
155 
157  // setNoiseFreqExp
165  void setNoiseFreqExp( double noiseFreqExp ) { m_noiseFreqExp = noiseFreqExp; }
166 
168  // getResolutionScale
175  double getResolutionScale() { return m_resolutionScale; }
176 
178  // setNumDetStaresV
186  void setResolutionScale( double resolutionScale ) {
187  if (resolutionScale == 0)
188  resolutionScale = .000001;
189  m_resolutionScale = resolutionScale; }
190 
192  // getPitchDetH
199  double getPitchDetH() { return m_pitchDetH; }
200 
202  // setPitchDetH
210  void setPitchDetH( double pitchDetH ) { m_pitchDetH = pitchDetH; }
211 
213  // getPitchDetV
220  double getPitchDetV() { return m_pitchDetV; }
221 
223  // setSizeDetV
231  void setPitchDetV( double pitchDetV ) { m_pitchDetV = pitchDetV; }
232 
234  // getJitterAmplitudeH
241  double getJitterAmplitudeH() const { return m_jitterAmpH; }
242 
244  // setJitterAmplitudeH
252  void setJitterAmplitudeH( double jitterAmpH ) { m_jitterAmpH = jitterAmpH; }
253 
255  // getJitterAmplitudeV
262  double getJitterAmplitudeV() const { return m_jitterAmpV; }
263 
265  // setJitterAmplitudeV
273  void setJitterAmplitudeV( double jitterAmpV ) { m_jitterAmpV = jitterAmpV; }
274 
276  // getJitterFrequencyH
283  double getJitterFrequencyH() const { return m_jitterFreqH; }
284 
286  // setJitterFrequencyH
294  void setJitterFrequencyH( double jitterFreqH ) { m_jitterFreqH = jitterFreqH; }
295 
297  // getJitterFrequencyV
304  double getJitterFrequencyV() const { return m_jitterFreqV; }
305 
307  // setJitterFrequencyV
315  void setJitterFrequencyV( double jitterFreqV ) { m_jitterFreqV = jitterFreqV; }
316 
318  // getBackTemp
325  double getBackTemp() { return m_backTemp; }
326 
327 
329  // setBackTemp
337  void setBackTemp( double backTemp ) { m_backTemp = backTemp; }
338 
339 
341  // getPercentPixelFill
348  double getPercentPixelFill() { return m_percentPixelFill; }
349 
350 
352  // setPercentPixelFill
360  void setPercentPixelFill( double pixelFill ) { m_percentPixelFill = pixelFill; }
361 
363  // getPercentDeadPixel
370  double getPercentDeadPixel() { return m_percentDeadPixel; }
371 
372 
374  // setPercentDeadPixel
382  void setPercentDeadPixel( double deadPixel ) { m_percentDeadPixel = deadPixel; }
383 
385  //getNumDetStaresH
390  long getNumDetStaresH() { return m_numDetStaresV; }
391 
393  //setNumDetStaresH
398  void setNumDetStaresH( long numDetStaresH ) { m_numDetStaresH = numDetStaresH; }
399 
401  // getNumDetStaresV
408  long getNumDetStaresV() { return m_numDetStaresV; }
409 
411  // setNumDetStaresV
419  void setNumDetStaresV( long numDetStaresV ) { m_numDetStaresV = numDetStaresV; }
420 
422  // getStartWavelength
429  double getStartWavelength() { return m_startWavelength; }
430 
432  // setStartWavelength
440  void setStartWavelength( double startWavelength ) { m_startWavelength = startWavelength; }
442  // getEndWavelength
449  double getEndWavelength() { return m_endWavelength; }
450 
452  // setEndWavelength
460  void setEndWavelength( double endWavelength ) { m_endWavelength = endWavelength; }
461 
463  //setPoissonNoisePercent
468  void setPoissonNoisePercent(double percent){m_percentPoisson = percent;}
469 
471  //getPoissonNoisePercent
476  double getPoissonNoisePercent(){return m_percentPoisson;}
477 
479  //setFInverseNoisePercent
484  void setFInverseNoisePercent(double percent){m_percentFInverse = percent;}
485 
487  //getFInverseNoisePercent
492  double getFInverseNoisePercent(){return m_percentFInverse;}
494  //setSensorIndex
499  void setSensorIndex(int sensorIndex){m_sensorIndex = sensorIndex;}
501  //getSensorIndex
506  int getSensorIndex(){return m_sensorIndex;}
507 
509  //setScanMaskMinGain
513  void setScanMaskMinGain(float minGain) { m_scanMaskMinGain = minGain; }
514 
516  //getScanMaskMinGain
520  float getScanMaskMinGain() { return m_scanMaskMinGain; }
521 
523  //setScanMaskMaxGain
527  void setScanMaskMaxGain(float maxGain) { m_scanMaskMaxGain = maxGain; }
528 
530  //getScanMaskMaxGain
534  float getScanMaskMaxGain() { return m_scanMaskMaxGain; }
535 
537  //setScanMaskMinLevel
541  void setScanMaskMinLevel(float minLevel) { m_scanMaskMinLevel = minLevel; }
542 
544  //getScanMaskMinLevel
548  float getScanMaskMinLevel() { return m_scanMaskMinLevel; }
549 
551  //setScanMaskMaxLevel
555  void setScanMaskMaxLevel(float maxLevel) { m_scanMaskMaxLevel = maxLevel; }
556 
558  //getScanMaskMaxLevel
562  float getScanMaskMaxLevel() { return m_scanMaskMaxLevel; }
563 
565  //setScanMaskLineSpacing
569  void setScanMaskLineSpacing(int lineSpacing) { m_scanMaskLineSpacing = lineSpacing; }
570 
572  //getScanMaskLineSpacing
576  int getScanMaskLineSpacing() { return m_scanMaskLineSpacing; }
577 
579  //setNonUniformityEnable
583  void setNonUniformityEnable(bool enable) { m_nonUniformityEnable = enable; }
584 
586  //getNonUniformityEnable
590  bool getNonUniformityEnable() { return m_nonUniformityEnable; }
591 
593  //setScanMaskGainFilename
597  void setScanMaskGainFilename(char* gainFilename);
598 
600  //getScanMaskGainFilename
604  char * getScanMaskGainFilename() { return m_scanMaskGainFilename; }
605 
607  //setScanMaskevelFilename
611  void setScanMaskLevelFilename(char* levelFilename);
612 
614  //getScanMaskLevelFilename
618  char * getScanMaskLevelFilename() { return m_scanMaskLevelFilename; }
619 
621  //setScanMaskDirection
625  void setScanMaskDirection(int direction) { m_scanMaskDirection = direction; }
626 
628  //getScanMaskDirection
632  int getScanMaskDirection() { return m_scanMaskDirection; }
633 
635  //setScanMaskUserDefined
639  void setScanMaskUserDefined(bool userDefined) { m_scanMaskUserDefined = userDefined; }
640 
642  //getScanMaskUserDefined
646  bool getScanMaskUserDefined() { return m_scanMaskUserDefined; }
647 
649  //setFullColorEnable
653  void setFullColorEnable(bool enable) { m_fullColorEnable = enable; }
654 
656  //getFullColorEnable
660  bool getFullColorEnable() { return m_fullColorEnable; }
661 
663  //setChargeWellCapacity
667  void setChargeWellCapacity(double threshold)
668  {
669  m_chargeWellCapacity = threshold;
670  }
671 
673  //getChargeWellCapacity
677  double getChargeWellCapacity() const
678  {
679  return m_chargeWellCapacity;
680  }
681 
683  //setQuantumEfficiency
687  void setQuantumEfficiency(double efficiency)
688  {
689  m_quantumEfficiency = efficiency;
690  }
691 
693  //getQuantumEfficiency
697  double getQuantumEfficiency() const
698  {
699  return m_quantumEfficiency;
700  }
701 
703  //setAntiBloomingType
707  void setAntiBloomingType(int antibloomDirection)
708  {
709  m_antiBloomDirection = antibloomDirection;
710  }
711 
713  //getAntiBloomingType
717  int getAntiBloomingType() const
718  {
719  return m_antiBloomDirection;
720  }
721 
723  //setMaterialWavelengthCutOnCutOff
727  void setMaterialWavelengthCutOnCutOff(double cuton, double cutoff)
728  {
729  m_wavelengthCutOn = cuton;
730  m_wavelengthCutOff = cutoff;
731  }
732 
734  //getMaterialWavelengthCutOnCutOff
738  void getMaterialWavelengthCutOnCutOff(double &cuton, double &cutoff) const
739  {
740  cuton = m_wavelengthCutOn;
741  cutoff = m_wavelengthCutOff;
742  }
743 
745  //setMicroChannelPlateDistance
749  void setMicroChannelPlateDistance(double distance)
750  {
751  m_microChannelPlateDistance = distance;
752  }
753 
755  //getMicroChannelPlateDistance
759  double getMicroChannelPlateDistance() const
760  {
761  return m_microChannelPlateDistance;
762  }
763 
765  //setPhotoCathodeVoltage
769  void setPhotoCathodeVoltage(double voltage)
770  {
771  m_photoCathodeVoltage = voltage;
772  }
773 
775  //getPhotoCathodeVoltage
779  double getPhotoCathodeVoltage() const
780  {
781  return m_photoCathodeVoltage;
782  }
783 
785  //getWellCapacityPercentage
790  double getWellCapacityPercentage() const
791  {
792  return m_wellCapacityPercentage;
793  }
794 
796  //setWellCapacityPercentage
801  void setWellCapacityPercentage(double percentage)
802  {
803  m_wellCapacityPercentage = (float)percentage;
804  }
805 
807  //getReadoutNoiseNumElectron
812  double getReadoutNoiseNumElectron() const
813  {
814  return m_electronReadoutNoise;
815  }
816 
818  //setReadoutNoiseNumElectron
823  void setReadoutNoiseNumElectron(double electrons)
824  {
825  m_electronReadoutNoise = (float)electrons;
826  }
827 
829  //get3DNoiseEnable
834  bool get3DNoiseEnable() const
835  {
836  return m_enable3DNoise;
837  }
838 
840  //set3DNoiseEnable
845  void set3DNoiseEnable(bool enable)
846  {
847  m_enable3DNoise = enable;
848  }
849 
851  //get3DNoiseSigmaH
856  float get3DNoiseSigmaH() const
857  {
858  return m_3DNoiseSigmaH;
859  }
860 
862  //set3DNoiseSigmaH
867  void set3DNoiseSigmaH(float STD)
868  {
869  m_3DNoiseSigmaH = STD;
870  }
871 
873  //get3DNoiseSigmaV
878  float get3DNoiseSigmaV() const
879  {
880  return m_3DNoiseSigmaV;
881  }
882 
884  //set3DNoiseSigmaV
889  void set3DNoiseSigmaV(float STD)
890  {
891  m_3DNoiseSigmaV = STD;
892  }
893 
895  //get3DNoiseSigmaVH
900  float get3DNoiseSigmaVH() const
901  {
902  return m_3DNoiseSigmaVH;
903  }
904 
906  //set3DNoiseSigmaVH
911  void set3DNoiseSigmaVH(float STD)
912  {
913  m_3DNoiseSigmaVH = STD;
914  }
915 
917  //get3DNoiseSigmaT
922  float get3DNoiseSigmaT() const
923  {
924  return m_3DNoiseSigmaT;
925  }
926 
928  //set3DNoiseSigmaT
933  void set3DNoiseSigmaT(float STD)
934  {
935  m_3DNoiseSigmaT = STD;
936  }
937 
939  //get3DNoiseSigmaTH
944  float get3DNoiseSigmaTH() const
945  {
946  return m_3DNoiseSigmaTH;
947  }
948 
950  //set3DNoiseSigmaTH
955  void set3DNoiseSigmaTH(float STD)
956  {
957  m_3DNoiseSigmaTH = STD;
958  }
959 
961  //get3DNoiseSigmaTV
966  float get3DNoiseSigmaTV() const
967  {
968  return m_3DNoiseSigmaTV;
969  }
970 
972  //set3DNoiseSigmaTV
977  void set3DNoiseSigmaTV(float STD)
978  {
979  m_3DNoiseSigmaTV = STD;
980  }
981 
983  //get3DNoiseSigmaTVH
988  float get3DNoiseSigmaTVH() const
989  {
990  return m_3DNoiseSigmaTVH;
991  }
992 
994  //set3DNoiseSigmaTVH
999  void set3DNoiseSigmaTVH(float STD)
1000  {
1001  m_3DNoiseSigmaTVH = STD;
1002  }
1003 
1005  // archive
1013  bool archive(std::ofstream &outf, int idx = 0);
1014 
1016  // serialize
1024  int serialize(char *filepath, int idx);
1025 
1026  //
1027  // loadXML
1028  //
1029  // \par Description:
1030  // Loads attributes from an XML node
1031  //
1032  // \param clXMLNode* xmlParentNode
1033  // \return bool
1034  //
1035  bool loadXML(clXMLNode* xmlParentNode);
1036 
1037  //
1038  // parseXML
1039  //
1040  // \par Description:
1041  // Parses an XML document for specific tags
1042  //
1043  // \param clXML xmlDocument
1044  // \return bool
1045  //
1046  bool parseXML(clXML& xmlDocument);
1047 
1049  //loadXMLNode
1056  bool loadXMLNode(std::string tag, char *nodeString);
1058  //loadXMLNode
1065  bool loadXMLNode(std::string tag, bool *nodeBool);
1067  //loadXMLNode
1074  bool loadXMLNode(std::string tag, int *nodeInt);
1076  //loadXMLNode
1083  bool loadXMLNode(std::string tag, long *nodeLong);
1085  //loadXMLNode
1092  bool loadXMLNode(std::string tag, double *nodeDouble);
1093 
1094  //
1095  // saveXML
1096  //
1097  // \par Description:
1098  // Saves XML nodes to an XML document
1099  //
1100  // \param clXML* xmlDocument
1101  //
1102  void saveXML(clXML* xmlDocument);
1103 
1105  //serializeCheck
1111  int serializeCheck(char *filepath);
1113  // operator =
1121  ciDetector operator = (ciDetector &obj);
1122 
1123 protected: // methods
1124 
1125 public: // construction/destruction
1126 
1128  // ciDetector
1133  ciDetector();
1134 
1136  // ciDetector
1144 
1145  virtual ~ciDetector();
1146 
1147 protected: // variables
1148 
1151  double m_dwellTime;
1152  double m_NET;
1158  double m_pitchDetH;
1159  double m_pitchDetV;
1160  double m_jitterAmpH;
1161  double m_jitterAmpV;
1162  double m_jitterFreqH;
1163  double m_jitterFreqV;
1164  double m_backTemp;
1165  double m_NER;
1171 
1172  bool m_nonUniformityEnable; // set as non uniformity sensor and cause scanning streaks or pixel variations in image.
1173  char m_scanMaskGainFilename[512]; // A single channel *.bmp for per channel gain
1174  char m_scanMaskLevelFilename[512]; // A single channel *.bmp for per channel level
1182 
1190 
1193 
1202 
1203  bool m_fullColorEnable; // set for full color sensor with sensor effects.
1204 
1206 
1207 
1208 
1210 
1211 private: // variables
1212 
1213 };
1214 
1215 #endif // _ciDETECTOR_H_


Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)