psddl_psana/include/epix.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_EPIX_DDL_H
00002 #define PSANA_EPIX_DDL_H 1
00003 
00004 // *** Do not edit this file, it is auto-generated ***
00005 
00006 #include <vector>
00007 #include <iosfwd>
00008 #include <cstring>
00009 #include "ndarray/ndarray.h"
00010 #include "pdsdata/xtc/TypeId.hh"
00011 #include "psddl_psana/genericpgp.ddl.h"
00012 namespace Psana {
00013 namespace Epix {
00014 
00015 /** @class AsicConfigV1
00016 
00017   
00018 */
00019 
00020 
00021 class AsicConfigV1 {
00022 public:
00023   virtual ~AsicConfigV1();
00024   virtual uint8_t monostPulser() const = 0;
00025   virtual uint8_t dummyTest() const = 0;
00026   virtual uint8_t dummyMask() const = 0;
00027   virtual uint16_t pulser() const = 0;
00028   virtual uint8_t pbit() const = 0;
00029   virtual uint8_t atest() const = 0;
00030   virtual uint8_t test() const = 0;
00031   virtual uint8_t sabTest() const = 0;
00032   virtual uint8_t hrTest() const = 0;
00033   virtual uint8_t digMon1() const = 0;
00034   virtual uint8_t digMon2() const = 0;
00035   virtual uint8_t pulserDac() const = 0;
00036   virtual uint8_t Dm1En() const = 0;
00037   virtual uint8_t Dm2En() const = 0;
00038   virtual uint8_t slvdSBit() const = 0;
00039   virtual uint8_t VRefDac() const = 0;
00040   virtual uint8_t TpsTComp() const = 0;
00041   virtual uint8_t TpsMux() const = 0;
00042   virtual uint8_t RoMonost() const = 0;
00043   virtual uint8_t TpsGr() const = 0;
00044   virtual uint8_t S2dGr() const = 0;
00045   virtual uint8_t PpOcbS2d() const = 0;
00046   virtual uint8_t Ocb() const = 0;
00047   virtual uint8_t Monost() const = 0;
00048   virtual uint8_t FastppEnable() const = 0;
00049   virtual uint8_t Preamp() const = 0;
00050   virtual uint8_t PixelCb() const = 0;
00051   virtual uint8_t S2dTComp() const = 0;
00052   virtual uint8_t FilterDac() const = 0;
00053   virtual uint8_t TC() const = 0;
00054   virtual uint8_t S2d() const = 0;
00055   virtual uint8_t S2dDacBias() const = 0;
00056   virtual uint8_t TpsTcDac() const = 0;
00057   virtual uint8_t TpsDac() const = 0;
00058   virtual uint8_t S2dTcDac() const = 0;
00059   virtual uint8_t S2dDac() const = 0;
00060   virtual uint8_t TestBe() const = 0;
00061   virtual uint8_t IsEn() const = 0;
00062   virtual uint8_t DelExec() const = 0;
00063   virtual uint8_t DelCckReg() const = 0;
00064   virtual uint16_t RowStartAddr() const = 0;
00065   virtual uint16_t RowStopAddr() const = 0;
00066   virtual uint8_t ColStartAddr() const = 0;
00067   virtual uint8_t ColStopAddr() const = 0;
00068   virtual uint16_t chipID() const = 0;
00069 };
00070 
00071 /** @class ConfigV1
00072 
00073   
00074 */
00075 
00076 
00077 class ConfigV1 {
00078 public:
00079   enum { TypeId = Pds::TypeId::Id_EpixConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00080   enum { Version = 1 /**< XTC type version number */ };
00081   virtual ~ConfigV1();
00082   virtual uint32_t version() const = 0;
00083   virtual uint32_t runTrigDelay() const = 0;
00084   virtual uint32_t daqTrigDelay() const = 0;
00085   virtual uint32_t dacSetting() const = 0;
00086   virtual uint8_t asicGR() const = 0;
00087   virtual uint8_t asicAcq() const = 0;
00088   virtual uint8_t asicR0() const = 0;
00089   virtual uint8_t asicPpmat() const = 0;
00090   virtual uint8_t asicPpbe() const = 0;
00091   virtual uint8_t asicRoClk() const = 0;
00092   virtual uint8_t asicGRControl() const = 0;
00093   virtual uint8_t asicAcqControl() const = 0;
00094   virtual uint8_t asicR0Control() const = 0;
00095   virtual uint8_t asicPpmatControl() const = 0;
00096   virtual uint8_t asicPpbeControl() const = 0;
00097   virtual uint8_t asicR0ClkControl() const = 0;
00098   virtual uint8_t prepulseR0En() const = 0;
00099   virtual uint32_t adcStreamMode() const = 0;
00100   virtual uint8_t testPatternEnable() const = 0;
00101   virtual uint32_t acqToAsicR0Delay() const = 0;
00102   virtual uint32_t asicR0ToAsicAcq() const = 0;
00103   virtual uint32_t asicAcqWidth() const = 0;
00104   virtual uint32_t asicAcqLToPPmatL() const = 0;
00105   virtual uint32_t asicRoClkHalfT() const = 0;
00106   virtual uint32_t adcReadsPerPixel() const = 0;
00107   virtual uint32_t adcClkHalfT() const = 0;
00108   virtual uint32_t asicR0Width() const = 0;
00109   virtual uint32_t adcPipelineDelay() const = 0;
00110   virtual uint32_t prepulseR0Width() const = 0;
00111   virtual uint32_t prepulseR0Delay() const = 0;
00112   virtual uint32_t digitalCardId0() const = 0;
00113   virtual uint32_t digitalCardId1() const = 0;
00114   virtual uint32_t analogCardId0() const = 0;
00115   virtual uint32_t analogCardId1() const = 0;
00116   virtual uint32_t lastRowExclusions() const = 0;
00117   virtual uint32_t numberOfAsicsPerRow() const = 0;
00118   virtual uint32_t numberOfAsicsPerColumn() const = 0;
00119   /** generally 2 x 2 */
00120   virtual uint32_t numberOfRowsPerAsic() const = 0;
00121   /** for epix100  352 */
00122   virtual uint32_t numberOfPixelsPerAsicRow() const = 0;
00123   /** for epix100 96*4 */
00124   virtual uint32_t baseClockFrequency() const = 0;
00125   virtual uint32_t asicMask() const = 0;
00126   virtual const Epix::AsicConfigV1& asics(uint32_t i0) const = 0;
00127   virtual ndarray<const uint32_t, 3> asicPixelTestArray() const = 0;
00128   virtual ndarray<const uint32_t, 3> asicPixelMaskArray() const = 0;
00129   /** Number of rows in a readout unit */
00130   virtual uint32_t numberOfRows() const = 0;
00131   /** Number of columns in a readout unit */
00132   virtual uint32_t numberOfColumns() const = 0;
00133   /** Number of columns in a readout unit */
00134   virtual uint32_t numberOfAsics() const = 0;
00135   /** Method which returns the shape (dimensions) of the data returned by asics() method. */
00136   virtual std::vector<int> asics_shape() const = 0;
00137 };
00138 
00139 /** @class Asic10kConfigV1
00140 
00141   
00142 */
00143 
00144 
00145 class Asic10kConfigV1 {
00146 public:
00147   virtual ~Asic10kConfigV1();
00148   virtual uint8_t CompTH_DAC() const = 0;
00149   virtual uint8_t CompEn_0() const = 0;
00150   virtual uint8_t PulserSync() const = 0;
00151   virtual uint8_t dummyTest() const = 0;
00152   virtual uint8_t dummyMask() const = 0;
00153   virtual uint8_t dummyG() const = 0;
00154   virtual uint8_t dummyGA() const = 0;
00155   virtual uint16_t dummyUpper12bits() const = 0;
00156   virtual uint16_t pulser() const = 0;
00157   virtual uint8_t pbit() const = 0;
00158   virtual uint8_t atest() const = 0;
00159   virtual uint8_t test() const = 0;
00160   virtual uint8_t sabTest() const = 0;
00161   virtual uint8_t hrTest() const = 0;
00162   virtual uint8_t pulserR() const = 0;
00163   virtual uint8_t digMon1() const = 0;
00164   virtual uint8_t digMon2() const = 0;
00165   virtual uint8_t pulserDac() const = 0;
00166   virtual uint8_t monostPulser() const = 0;
00167   virtual uint8_t CompEn_1() const = 0;
00168   virtual uint8_t CompEn_2() const = 0;
00169   virtual uint8_t Dm1En() const = 0;
00170   virtual uint8_t Dm2En() const = 0;
00171   virtual uint8_t emph_bd() const = 0;
00172   virtual uint8_t emph_bc() const = 0;
00173   virtual uint8_t VRefDac() const = 0;
00174   virtual uint8_t vrefLow() const = 0;
00175   virtual uint8_t TpsTComp() const = 0;
00176   virtual uint8_t TpsMux() const = 0;
00177   virtual uint8_t RoMonost() const = 0;
00178   virtual uint8_t TpsGr() const = 0;
00179   virtual uint8_t S2dGr() const = 0;
00180   virtual uint8_t PpOcbS2d() const = 0;
00181   virtual uint8_t Ocb() const = 0;
00182   virtual uint8_t Monost() const = 0;
00183   virtual uint8_t FastppEnable() const = 0;
00184   virtual uint8_t Preamp() const = 0;
00185   virtual uint8_t PixelCb() const = 0;
00186   virtual uint8_t Vld1_b() const = 0;
00187   virtual uint8_t S2dTComp() const = 0;
00188   virtual uint8_t FilterDac() const = 0;
00189   virtual uint8_t testVDTransmitter() const = 0;
00190   virtual uint8_t TC() const = 0;
00191   virtual uint8_t S2d() const = 0;
00192   virtual uint8_t S2dDacBias() const = 0;
00193   virtual uint8_t TpsTcDac() const = 0;
00194   virtual uint8_t TpsDac() const = 0;
00195   virtual uint8_t S2dTcDac() const = 0;
00196   virtual uint8_t S2dDac() const = 0;
00197   virtual uint8_t TestBe() const = 0;
00198   virtual uint8_t IsEn() const = 0;
00199   virtual uint8_t DelExec() const = 0;
00200   virtual uint8_t DelCckReg() const = 0;
00201   virtual uint8_t RO_rst_en() const = 0;
00202   virtual uint8_t slvdSBit() const = 0;
00203   virtual uint8_t FELmode() const = 0;
00204   virtual uint8_t CompEnOn() const = 0;
00205   virtual uint16_t RowStartAddr() const = 0;
00206   virtual uint16_t RowStopAddr() const = 0;
00207   virtual uint8_t ColStartAddr() const = 0;
00208   virtual uint8_t ColStopAddr() const = 0;
00209   virtual uint16_t chipID() const = 0;
00210 };
00211 
00212 /** @class Config10KV1
00213 
00214   
00215 */
00216 
00217 
00218 class Config10KV1 {
00219 public:
00220   enum { TypeId = Pds::TypeId::Id_Epix10kConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00221   enum { Version = 1 /**< XTC type version number */ };
00222   virtual ~Config10KV1();
00223   virtual uint32_t version() const = 0;
00224   virtual uint32_t runTrigDelay() const = 0;
00225   virtual uint32_t daqTrigDelay() const = 0;
00226   virtual uint32_t dacSetting() const = 0;
00227   virtual uint8_t asicGR() const = 0;
00228   virtual uint8_t asicAcq() const = 0;
00229   virtual uint8_t asicR0() const = 0;
00230   virtual uint8_t asicPpmat() const = 0;
00231   virtual uint8_t asicPpbe() const = 0;
00232   virtual uint8_t asicRoClk() const = 0;
00233   virtual uint8_t asicGRControl() const = 0;
00234   virtual uint8_t asicAcqControl() const = 0;
00235   virtual uint8_t asicR0Control() const = 0;
00236   virtual uint8_t asicPpmatControl() const = 0;
00237   virtual uint8_t asicPpbeControl() const = 0;
00238   virtual uint8_t asicR0ClkControl() const = 0;
00239   virtual uint8_t prepulseR0En() const = 0;
00240   virtual uint32_t adcStreamMode() const = 0;
00241   virtual uint8_t testPatternEnable() const = 0;
00242   /** new */
00243   virtual uint8_t SyncMode() const = 0;
00244   /** new */
00245   virtual uint8_t R0Mode() const = 0;
00246   /** new */
00247   virtual uint32_t DoutPipelineDelay() const = 0;
00248   virtual uint32_t acqToAsicR0Delay() const = 0;
00249   virtual uint32_t asicR0ToAsicAcq() const = 0;
00250   virtual uint32_t asicAcqWidth() const = 0;
00251   virtual uint32_t asicAcqLToPPmatL() const = 0;
00252   virtual uint32_t asicRoClkHalfT() const = 0;
00253   virtual uint32_t adcReadsPerPixel() const = 0;
00254   virtual uint32_t adcClkHalfT() const = 0;
00255   virtual uint32_t asicR0Width() const = 0;
00256   virtual uint32_t adcPipelineDelay() const = 0;
00257   /** new */
00258   virtual uint16_t SyncWidth() const = 0;
00259   /** new */
00260   virtual uint16_t SyncDelay() const = 0;
00261   virtual uint32_t prepulseR0Width() const = 0;
00262   virtual uint32_t prepulseR0Delay() const = 0;
00263   virtual uint32_t digitalCardId0() const = 0;
00264   virtual uint32_t digitalCardId1() const = 0;
00265   virtual uint32_t analogCardId0() const = 0;
00266   virtual uint32_t analogCardId1() const = 0;
00267   virtual uint32_t lastRowExclusions() const = 0;
00268   virtual uint32_t numberOfAsicsPerRow() const = 0;
00269   virtual uint32_t numberOfAsicsPerColumn() const = 0;
00270   virtual uint32_t numberOfRowsPerAsic() const = 0;
00271   /** for epix10k  176 */
00272   virtual uint32_t numberOfPixelsPerAsicRow() const = 0;
00273   /** for epix10k 48*4 */
00274   virtual uint32_t baseClockFrequency() const = 0;
00275   virtual uint32_t asicMask() const = 0;
00276   virtual uint8_t scopeEnable() const = 0;
00277   virtual uint8_t scopeTrigEdge() const = 0;
00278   virtual uint8_t scopeTrigChan() const = 0;
00279   virtual uint8_t scopeArmMode() const = 0;
00280   virtual uint16_t scopeADCThreshold() const = 0;
00281   virtual uint16_t scopeTrigHoldoff() const = 0;
00282   virtual uint16_t scopeTrigOffset() const = 0;
00283   virtual uint16_t scopeTraceLength() const = 0;
00284   virtual uint16_t scopeADCsameplesToSkip() const = 0;
00285   virtual uint8_t scopeChanAwaveformSelect() const = 0;
00286   virtual uint8_t scopeChanBwaveformSelect() const = 0;
00287   virtual const Epix::Asic10kConfigV1& asics(uint32_t i0) const = 0;
00288   virtual ndarray<const uint16_t, 3> asicPixelConfigArray() const = 0;
00289   /** Number of rows in a readout unit */
00290   virtual uint32_t numberOfRows() const = 0;
00291   /** Number of columns in a readout unit */
00292   virtual uint32_t numberOfColumns() const = 0;
00293   /** Number of columns in a readout unit */
00294   virtual uint32_t numberOfAsics() const = 0;
00295   /** Method which returns the shape (dimensions) of the data returned by asics() method. */
00296   virtual std::vector<int> asics_shape() const = 0;
00297 };
00298 
00299 /** @class Asic100aConfigV1
00300 
00301   
00302 */
00303 
00304 
00305 class Asic100aConfigV1 {
00306 public:
00307   virtual ~Asic100aConfigV1();
00308   virtual uint8_t pulserVsPixelOnDelay() const = 0;
00309   virtual uint8_t pulserSync() const = 0;
00310   virtual uint8_t dummyTest() const = 0;
00311   virtual uint8_t dummyMask() const = 0;
00312   virtual uint16_t testPulserLevel() const = 0;
00313   virtual uint8_t pulserCounterDirection() const = 0;
00314   virtual uint8_t automaticTestModeEnable() const = 0;
00315   virtual uint8_t testMode() const = 0;
00316   virtual uint8_t testModeWithDarkFrame() const = 0;
00317   virtual uint8_t highResolutionModeTest() const = 0;
00318   virtual uint8_t pulserReset() const = 0;
00319   virtual uint8_t digitalMonitorMux1() const = 0;
00320   virtual uint8_t digitalMonitorMux2() const = 0;
00321   virtual uint8_t testPulserCurrent() const = 0;
00322   virtual uint8_t testPointSystemOutputDynamicRange() const = 0;
00323   virtual uint8_t digitalMonitor1Enable() const = 0;
00324   virtual uint8_t digitalMonitor2Enable() const = 0;
00325   virtual uint8_t LVDS_ImpedenceMatchingEnable() const = 0;
00326   virtual uint8_t VRefBaselineDac() const = 0;
00327   virtual uint8_t extraRowsLowReferenceValue() const = 0;
00328   virtual uint8_t testPointSystemTemperatureCompensationEnable() const = 0;
00329   virtual uint8_t testPointSytemInputSelect() const = 0;
00330   virtual uint8_t programmableReadoutDelay() const = 0;
00331   virtual uint8_t outputDriverOutputDynamicRange0() const = 0;
00332   virtual uint8_t outputDriverOutputDynamicRange1() const = 0;
00333   virtual uint8_t balconyEnable() const = 0;
00334   virtual uint8_t balconyDriverCurrent() const = 0;
00335   virtual uint8_t fastPowerPulsingSpeed() const = 0;
00336   virtual uint8_t fastPowerPulsingEnable() const = 0;
00337   virtual uint8_t preamplifierCurrent() const = 0;
00338   virtual uint8_t pixelOutputBufferCurrent() const = 0;
00339   virtual uint8_t pixelBufferAndPreamplifierDrivingCapabilities() const = 0;
00340   virtual uint8_t outputDriverTemperatureCompensationEnable() const = 0;
00341   virtual uint8_t pixelFilterLevel() const = 0;
00342   virtual uint8_t bandGapReferenceTemperatureCompensationBits() const = 0;
00343   virtual uint8_t outputDriverDrivingCapabilitiesAndStability() const = 0;
00344   virtual uint8_t outputDriverDacReferenceBias() const = 0;
00345   virtual uint8_t testPointSystemTemperatureCompensationGain() const = 0;
00346   virtual uint8_t testPointSystemInputCommonMode() const = 0;
00347   virtual uint8_t outputDriverTemperatureCompensationGain0() const = 0;
00348   virtual uint8_t outputDriverInputCommonMode0() const = 0;
00349   virtual uint8_t testBackEnd() const = 0;
00350   virtual uint8_t interleavedReadOutEnable() const = 0;
00351   virtual uint8_t EXEC_DelayEnable() const = 0;
00352   virtual uint8_t CCK_RegDelayEnable() const = 0;
00353   virtual uint8_t syncPinEnable() const = 0;
00354   virtual uint16_t RowStartAddr() const = 0;
00355   virtual uint16_t RowStopAddr() const = 0;
00356   virtual uint8_t ColumnStartAddr() const = 0;
00357   virtual uint8_t ColumnStopAddr() const = 0;
00358   virtual uint16_t chipID() const = 0;
00359   virtual uint8_t outputDriverOutputDynamicRange2() const = 0;
00360   virtual uint8_t outputDriverOutputDynamicRange3() const = 0;
00361   virtual uint8_t outputDriverTemperatureCompensationGain1() const = 0;
00362   virtual uint8_t outputDriverInputCommonMode1() const = 0;
00363   virtual uint8_t outputDriverTemperatureCompensationGain2() const = 0;
00364   virtual uint8_t outputDriverInputCommonMode2() const = 0;
00365   virtual uint8_t outputDriverTemperatureCompensationGain3() const = 0;
00366   virtual uint8_t outputDriverInputCommonMode3() const = 0;
00367 };
00368 
00369 /** @class Config100aV1
00370 
00371   
00372 */
00373 
00374 
00375 class Config100aV1 {
00376 public:
00377   enum { TypeId = Pds::TypeId::Id_Epix100aConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00378   enum { Version = 1 /**< XTC type version number */ };
00379   virtual ~Config100aV1();
00380   virtual uint32_t version() const = 0;
00381   virtual uint32_t runTrigDelay() const = 0;
00382   virtual uint32_t daqTrigDelay() const = 0;
00383   virtual uint32_t dacSetting() const = 0;
00384   virtual uint8_t asicGR() const = 0;
00385   virtual uint8_t asicAcq() const = 0;
00386   virtual uint8_t asicR0() const = 0;
00387   virtual uint8_t asicPpmat() const = 0;
00388   virtual uint8_t asicPpbe() const = 0;
00389   virtual uint8_t asicRoClk() const = 0;
00390   virtual uint8_t asicGRControl() const = 0;
00391   virtual uint8_t asicAcqControl() const = 0;
00392   virtual uint8_t asicR0Control() const = 0;
00393   virtual uint8_t asicPpmatControl() const = 0;
00394   virtual uint8_t asicPpbeControl() const = 0;
00395   virtual uint8_t asicR0ClkControl() const = 0;
00396   virtual uint8_t prepulseR0En() const = 0;
00397   virtual uint32_t adcStreamMode() const = 0;
00398   virtual uint8_t testPatternEnable() const = 0;
00399   virtual uint8_t SyncMode() const = 0;
00400   virtual uint8_t R0Mode() const = 0;
00401   virtual uint32_t acqToAsicR0Delay() const = 0;
00402   virtual uint32_t asicR0ToAsicAcq() const = 0;
00403   virtual uint32_t asicAcqWidth() const = 0;
00404   virtual uint32_t asicAcqLToPPmatL() const = 0;
00405   virtual uint32_t asicPPmatToReadout() const = 0;
00406   virtual uint32_t asicRoClkHalfT() const = 0;
00407   virtual uint32_t adcReadsPerPixel() const = 0;
00408   virtual uint32_t adcClkHalfT() const = 0;
00409   virtual uint32_t asicR0Width() const = 0;
00410   virtual uint32_t adcPipelineDelay() const = 0;
00411   virtual uint16_t SyncWidth() const = 0;
00412   virtual uint16_t SyncDelay() const = 0;
00413   virtual uint32_t prepulseR0Width() const = 0;
00414   virtual uint32_t prepulseR0Delay() const = 0;
00415   virtual uint32_t digitalCardId0() const = 0;
00416   virtual uint32_t digitalCardId1() const = 0;
00417   virtual uint32_t analogCardId0() const = 0;
00418   virtual uint32_t analogCardId1() const = 0;
00419   virtual uint32_t numberOfAsicsPerRow() const = 0;
00420   virtual uint32_t numberOfAsicsPerColumn() const = 0;
00421   virtual uint32_t numberOfRowsPerAsic() const = 0;
00422   virtual uint32_t numberOfReadableRowsPerAsic() const = 0;
00423   /** for epix100a  352 */
00424   virtual uint32_t numberOfPixelsPerAsicRow() const = 0;
00425   /** for epix100a 96*4 = 384 */
00426   virtual uint32_t calibrationRowCountPerASIC() const = 0;
00427   virtual uint32_t environmentalRowCountPerASIC() const = 0;
00428   virtual uint32_t baseClockFrequency() const = 0;
00429   virtual uint32_t asicMask() const = 0;
00430   virtual uint8_t scopeEnable() const = 0;
00431   virtual uint8_t scopeTrigEdge() const = 0;
00432   virtual uint8_t scopeTrigChan() const = 0;
00433   virtual uint8_t scopeArmMode() const = 0;
00434   virtual uint16_t scopeADCThreshold() const = 0;
00435   virtual uint16_t scopeTrigHoldoff() const = 0;
00436   virtual uint16_t scopeTrigOffset() const = 0;
00437   virtual uint16_t scopeTraceLength() const = 0;
00438   virtual uint16_t scopeADCsameplesToSkip() const = 0;
00439   virtual uint8_t scopeChanAwaveformSelect() const = 0;
00440   virtual uint8_t scopeChanBwaveformSelect() const = 0;
00441   virtual const Epix::Asic100aConfigV1& asics(uint32_t i0) const = 0;
00442   virtual ndarray<const uint16_t, 2> asicPixelConfigArray() const = 0;
00443   /** Calibration row config map is one row for every two calib rows */
00444   virtual ndarray<const uint8_t, 2> calibPixelConfigArray() const = 0;
00445   /** Number of pixel rows in a readout unit */
00446   virtual uint32_t numberOfRows() const = 0;
00447   /** Number of readable pixel rows in a readout unit */
00448   virtual uint32_t numberOfReadableRows() const = 0;
00449   /** Number of pixel columns in a readout unit */
00450   virtual uint32_t numberOfColumns() const = 0;
00451   /** Number of calibration rows in a readout unit */
00452   virtual uint32_t numberOfCalibrationRows() const = 0;
00453   /** Number of rows in a readout unit */
00454   virtual uint32_t numberOfEnvironmentalRows() const = 0;
00455   /** Number of columns in a readout unit */
00456   virtual uint32_t numberOfAsics() const = 0;
00457   /** Method which returns the shape (dimensions) of the data returned by asics() method. */
00458   virtual std::vector<int> asics_shape() const = 0;
00459 };
00460 
00461 /** @class Config100aV2
00462 
00463   
00464 */
00465 
00466 
00467 class Config100aV2 {
00468 public:
00469   enum { TypeId = Pds::TypeId::Id_Epix100aConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00470   enum { Version = 2 /**< XTC type version number */ };
00471   virtual ~Config100aV2();
00472   virtual uint32_t version() const = 0;
00473   virtual uint32_t usePgpEvr() const = 0;
00474   virtual uint32_t evrRunCode() const = 0;
00475   virtual uint32_t evrDaqCode() const = 0;
00476   virtual uint32_t evrRunTrigDelay() const = 0;
00477   virtual uint32_t epixRunTrigDelay() const = 0;
00478   virtual uint32_t dacSetting() const = 0;
00479   virtual uint8_t asicGR() const = 0;
00480   virtual uint8_t asicAcq() const = 0;
00481   virtual uint8_t asicR0() const = 0;
00482   virtual uint8_t asicPpmat() const = 0;
00483   virtual uint8_t asicPpbe() const = 0;
00484   virtual uint8_t asicRoClk() const = 0;
00485   virtual uint8_t asicGRControl() const = 0;
00486   virtual uint8_t asicAcqControl() const = 0;
00487   virtual uint8_t asicR0Control() const = 0;
00488   virtual uint8_t asicPpmatControl() const = 0;
00489   virtual uint8_t asicPpbeControl() const = 0;
00490   virtual uint8_t asicR0ClkControl() const = 0;
00491   virtual uint8_t prepulseR0En() const = 0;
00492   virtual uint32_t adcStreamMode() const = 0;
00493   virtual uint8_t testPatternEnable() const = 0;
00494   virtual uint8_t SyncMode() const = 0;
00495   virtual uint8_t R0Mode() const = 0;
00496   virtual uint32_t acqToAsicR0Delay() const = 0;
00497   virtual uint32_t asicR0ToAsicAcq() const = 0;
00498   virtual uint32_t asicAcqWidth() const = 0;
00499   virtual uint32_t asicAcqLToPPmatL() const = 0;
00500   virtual uint32_t asicPPmatToReadout() const = 0;
00501   virtual uint32_t asicRoClkHalfT() const = 0;
00502   virtual uint32_t adcReadsPerPixel() const = 0;
00503   virtual uint32_t adcClkHalfT() const = 0;
00504   virtual uint32_t asicR0Width() const = 0;
00505   virtual uint32_t adcPipelineDelay() const = 0;
00506   virtual uint32_t adcPipelineDelay0() const = 0;
00507   virtual uint32_t adcPipelineDelay1() const = 0;
00508   virtual uint32_t adcPipelineDelay2() const = 0;
00509   virtual uint32_t adcPipelineDelay3() const = 0;
00510   virtual uint16_t SyncWidth() const = 0;
00511   virtual uint16_t SyncDelay() const = 0;
00512   virtual uint32_t prepulseR0Width() const = 0;
00513   virtual uint32_t prepulseR0Delay() const = 0;
00514   virtual uint32_t digitalCardId0() const = 0;
00515   virtual uint32_t digitalCardId1() const = 0;
00516   virtual uint32_t analogCardId0() const = 0;
00517   virtual uint32_t analogCardId1() const = 0;
00518   virtual uint32_t carrierId0() const = 0;
00519   virtual uint32_t carrierId1() const = 0;
00520   virtual uint32_t numberOfAsicsPerRow() const = 0;
00521   virtual uint32_t numberOfAsicsPerColumn() const = 0;
00522   virtual uint32_t numberOfRowsPerAsic() const = 0;
00523   virtual uint32_t numberOfReadableRowsPerAsic() const = 0;
00524   /** for epix100a  352 */
00525   virtual uint32_t numberOfPixelsPerAsicRow() const = 0;
00526   /** for epix100a 96*4 = 384 */
00527   virtual uint32_t calibrationRowCountPerASIC() const = 0;
00528   virtual uint32_t environmentalRowCountPerASIC() const = 0;
00529   virtual uint32_t baseClockFrequency() const = 0;
00530   virtual uint32_t asicMask() const = 0;
00531   virtual uint32_t enableAutomaticRunTrigger() const = 0;
00532   virtual uint32_t numberOf125MhzTicksPerRunTrigger() const = 0;
00533   virtual uint8_t scopeEnable() const = 0;
00534   virtual uint8_t scopeTrigEdge() const = 0;
00535   virtual uint8_t scopeTrigChan() const = 0;
00536   virtual uint8_t scopeArmMode() const = 0;
00537   virtual uint16_t scopeADCThreshold() const = 0;
00538   virtual uint16_t scopeTrigHoldoff() const = 0;
00539   virtual uint16_t scopeTrigOffset() const = 0;
00540   virtual uint16_t scopeTraceLength() const = 0;
00541   virtual uint16_t scopeADCsameplesToSkip() const = 0;
00542   virtual uint8_t scopeChanAwaveformSelect() const = 0;
00543   virtual uint8_t scopeChanBwaveformSelect() const = 0;
00544   virtual const Epix::Asic100aConfigV1& asics(uint32_t i0) const = 0;
00545   virtual ndarray<const uint16_t, 2> asicPixelConfigArray() const = 0;
00546   /** Calibration row config map is one row for every two calib rows */
00547   virtual ndarray<const uint8_t, 2> calibPixelConfigArray() const = 0;
00548   /** Number of pixel rows in a readout unit */
00549   virtual uint32_t numberOfRows() const = 0;
00550   /** Number of readable pixel rows in a readout unit */
00551   virtual uint32_t numberOfReadableRows() const = 0;
00552   /** Number of pixel columns in a readout unit */
00553   virtual uint32_t numberOfColumns() const = 0;
00554   /** Number of calibration rows in a readout unit */
00555   virtual uint32_t numberOfCalibrationRows() const = 0;
00556   /** Number of rows in a readout unit */
00557   virtual uint32_t numberOfEnvironmentalRows() const = 0;
00558   /** Number of columns in a readout unit */
00559   virtual uint32_t numberOfAsics() const = 0;
00560   /** Method which returns the shape (dimensions) of the data returned by asics() method. */
00561   virtual std::vector<int> asics_shape() const = 0;
00562 };
00563 
00564 /** @class ElementV1
00565 
00566   
00567 */
00568 
00569 class ConfigV1;
00570 class Config10KV1;
00571 
00572 class ElementV1 {
00573 public:
00574   enum { TypeId = Pds::TypeId::Id_EpixElement /**< XTC type ID value (from Pds::TypeId class) */ };
00575   enum { Version = 1 /**< XTC type version number */ };
00576   virtual ~ElementV1();
00577   virtual uint8_t vc() const = 0;
00578   virtual uint8_t lane() const = 0;
00579   virtual uint16_t acqCount() const = 0;
00580   virtual uint32_t frameNumber() const = 0;
00581   virtual uint32_t ticks() const = 0;
00582   virtual uint32_t fiducials() const = 0;
00583   virtual ndarray<const uint16_t, 2> frame() const = 0;
00584   virtual ndarray<const uint16_t, 2> excludedRows() const = 0;
00585   virtual ndarray<const uint16_t, 1> temperatures() const = 0;
00586   virtual uint32_t lastWord() const = 0;
00587 };
00588 
00589 /** @class ElementV2
00590 
00591   
00592 */
00593 
00594 class Config100aV1;
00595 class Config100aV2;
00596 
00597 class ElementV2 {
00598 public:
00599   enum { TypeId = Pds::TypeId::Id_EpixElement /**< XTC type ID value (from Pds::TypeId class) */ };
00600   enum { Version = 2 /**< XTC type version number */ };
00601   virtual ~ElementV2();
00602   virtual uint8_t vc() const = 0;
00603   virtual uint8_t lane() const = 0;
00604   virtual uint16_t acqCount() const = 0;
00605   virtual uint32_t frameNumber() const = 0;
00606   virtual uint32_t ticks() const = 0;
00607   virtual uint32_t fiducials() const = 0;
00608   virtual ndarray<const uint16_t, 2> frame() const = 0;
00609   virtual ndarray<const uint16_t, 2> calibrationRows() const = 0;
00610   virtual ndarray<const uint16_t, 2> environmentalRows() const = 0;
00611   virtual ndarray<const uint16_t, 1> temperatures() const = 0;
00612   virtual uint32_t lastWord() const = 0;
00613 };
00614 
00615 /** @class ElementV3
00616 
00617   
00618 */
00619 
00620 class Config100aV1;
00621 class Config100aV2;
00622 
00623 class ElementV3 {
00624 public:
00625   enum { TypeId = Pds::TypeId::Id_EpixElement /**< XTC type ID value (from Pds::TypeId class) */ };
00626   enum { Version = 3 /**< XTC type version number */ };
00627   virtual ~ElementV3();
00628   virtual uint8_t vc() const = 0;
00629   virtual uint8_t lane() const = 0;
00630   virtual uint16_t acqCount() const = 0;
00631   virtual uint32_t frameNumber() const = 0;
00632   virtual uint32_t ticks() const = 0;
00633   virtual uint32_t fiducials() const = 0;
00634   virtual ndarray<const uint16_t, 2> frame() const = 0;
00635   virtual ndarray<const uint16_t, 2> calibrationRows() const = 0;
00636   virtual ndarray<const uint32_t, 2> environmentalRows() const = 0;
00637   virtual ndarray<const uint16_t, 1> temperatures() const = 0;
00638   virtual uint32_t lastWord() const = 0;
00639 };
00640 } // namespace Epix
00641 } // namespace Psana
00642 #endif // PSANA_EPIX_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7