psana_examples/src/DumpEpix.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: DumpEpix.cpp 11122 2015-12-14 23:13:50Z dubrovin@SLAC.STANFORD.EDU $
00004 //
00005 // Description:
00006 //      Class DumpEpix...
00007 //
00008 // Author List:
00009 //      Andy Salnikov
00010 //
00011 //------------------------------------------------------------------------
00012 
00013 //-----------------------
00014 // This Class's Header --
00015 //-----------------------
00016 #include "psana_examples/DumpEpix.h"
00017 
00018 //-----------------
00019 // C/C++ Headers --
00020 //-----------------
00021 
00022 //-------------------------------
00023 // Collaborating Class Headers --
00024 //-------------------------------
00025 #include "MsgLogger/MsgLogger.h"
00026 #include "psddl_psana/epix.ddl.h"
00027 
00028 //-----------------------------------------------------------------------
00029 // Local Macros, Typedefs, Structures, Unions and Forward Declarations --
00030 //-----------------------------------------------------------------------
00031 
00032 // This declares this class as psana module
00033 using namespace psana_examples;
00034 PSANA_MODULE_FACTORY(DumpEpix)
00035 
00036 //              ----------------------------------------
00037 //              -- Public Function Member Definitions --
00038 //              ----------------------------------------
00039 
00040 namespace psana_examples {
00041 
00042 //----------------
00043 // Constructors --
00044 //----------------
00045 DumpEpix::DumpEpix (const std::string& name)
00046   : Module(name)
00047   , m_src()
00048 {
00049   m_src = configSrc("source", "DetInfo(:Epix100a)");
00050   // DetInfo(:Epix) or (:Epix*) does not work for Epix10k and Epix100a, 
00051   // which need to be specified explicitly in parameters as
00052   // [psana_examples.DumpEpix]
00053   // source = DetInfo(:Epix10k)
00054   // OR
00055   // source = DetInfo(:Epix100a)
00056 }
00057 
00058 //--------------
00059 // Destructor --
00060 //--------------
00061 DumpEpix::~DumpEpix ()
00062 {
00063 }
00064 
00065 /// Method which is called at the beginning of the run
00066 void
00067 DumpEpix::beginRun(Event& evt, Env& env)
00068 {
00069   shared_ptr<Psana::Epix::ConfigV1> config1 = env.configStore().get(m_src);
00070   if (config1) {
00071     WithMsgLog(name(), info, str) {
00072       str << "Psana::Epix::ConfigV1:";
00073       str << "\n  version = " << config1->version();
00074       str << "\n  runTrigDelay = " << config1->runTrigDelay();
00075       str << "\n  daqTrigDelay = " << config1->daqTrigDelay();
00076       str << "\n  dacSetting = " << config1->dacSetting();
00077       str << "\n  asicGR = " << int(config1->asicGR());
00078       str << "\n  asicAcq = " << int(config1->asicAcq());
00079       str << "\n  asicR0 = " << int(config1->asicR0());
00080       str << "\n  asicPpmat = " << int(config1->asicPpmat());
00081       str << "\n  asicPpbe = " << int(config1->asicPpbe());
00082       str << "\n  asicRoClk = " << int(config1->asicRoClk());
00083       str << "\n  asicGRControl = " << int(config1->asicGRControl());
00084       str << "\n  asicAcqControl = " << int(config1->asicAcqControl());
00085       str << "\n  asicR0Control = " << int(config1->asicR0Control());
00086       str << "\n  asicPpmatControl = " << int(config1->asicPpmatControl());
00087       str << "\n  asicPpbeControl = " << int(config1->asicPpbeControl());
00088       str << "\n  asicR0ClkControl = " << int(config1->asicR0ClkControl());
00089       str << "\n  prepulseR0En = " << int(config1->prepulseR0En());
00090       str << "\n  adcStreamMode = " << config1->adcStreamMode();
00091       str << "\n  testPatternEnable = " << int(config1->testPatternEnable());
00092       str << "\n  acqToAsicR0Delay = " << config1->acqToAsicR0Delay();
00093       str << "\n  asicR0ToAsicAcq = " << config1->asicR0ToAsicAcq();
00094       str << "\n  asicAcqWidth = " << config1->asicAcqWidth();
00095       str << "\n  asicAcqLToPPmatL = " << config1->asicAcqLToPPmatL();
00096       str << "\n  asicRoClkHalfT = " << config1->asicRoClkHalfT();
00097       str << "\n  adcReadsPerPixel = " << config1->adcReadsPerPixel();
00098       str << "\n  adcClkHalfT = " << config1->adcClkHalfT();
00099       str << "\n  asicR0Width = " << config1->asicR0Width();
00100       str << "\n  adcPipelineDelay = " << config1->adcPipelineDelay();
00101       str << "\n  prepulseR0Width = " << config1->prepulseR0Width();
00102       str << "\n  prepulseR0Delay = " << config1->prepulseR0Delay();
00103       str << "\n  digitalCardId0 = " << config1->digitalCardId0();
00104       str << "\n  digitalCardId1 = " << config1->digitalCardId1();
00105       str << "\n  analogCardId0 = " << config1->analogCardId0();
00106       str << "\n  analogCardId1 = " << config1->analogCardId1();
00107       str << "\n  lastRowExclusions = " << config1->lastRowExclusions();
00108       str << "\n  numberOfAsicsPerRow = " << config1->numberOfAsicsPerRow();
00109       str << "\n  numberOfAsicsPerColumn = " << config1->numberOfAsicsPerColumn();
00110       str << "\n  numberOfRowsPerAsic = " << config1->numberOfRowsPerAsic();
00111       str << "\n  numberOfPixelsPerAsicRow = " << config1->numberOfPixelsPerAsicRow();
00112       str << "\n  baseClockFrequency = " << config1->baseClockFrequency();
00113       str << "\n  asicMask = " << config1->asicMask();
00114       str << "\n  numberOfRows = " << config1->numberOfRows();
00115       str << "\n  numberOfColumns = " << config1->numberOfColumns();
00116       str << "\n  numberOfAsics = " << config1->numberOfAsics();
00117       str << "\n  asicPixelTestArray = " << config1->asicPixelTestArray();
00118       str << "\n  asicPixelMaskArray = " << config1->asicPixelMaskArray();
00119 
00120       const int nasics = config1->numberOfAsics();
00121       for (int i = 0; i != nasics; ++ i) {
00122         const Psana::Epix::AsicConfigV1& aconfig = config1->asics(i);
00123         str << "\n    Psana::Epix::AsicConfigV1 #" << i << ":";
00124         str << "\n      monostPulser = " << int(aconfig.monostPulser());
00125         str << "\n      dummyTest = " << int(aconfig.dummyTest());
00126         str << "\n      dummyMask = " << int(aconfig.dummyMask());
00127         str << "\n      pulser = " << int(aconfig.pulser());
00128         str << "\n      pbit = " << int(aconfig.pbit());
00129         str << "\n      atest = " << int(aconfig.atest());
00130         str << "\n      test = " << int(aconfig.test());
00131         str << "\n      sabTest = " << int(aconfig.sabTest());
00132         str << "\n      hrTest = " << int(aconfig.hrTest());
00133         str << "\n      digMon1 = " << int(aconfig.digMon1());
00134         str << "\n      digMon2 = " << int(aconfig.digMon2());
00135         str << "\n      pulserDac = " << int(aconfig.pulserDac());
00136         str << "\n      Dm1En = " << int(aconfig.Dm1En());
00137         str << "\n      Dm2En = " << int(aconfig.Dm2En());
00138         str << "\n      slvdSBit = " << int(aconfig.slvdSBit());
00139         str << "\n      VRefDac = " << int(aconfig.VRefDac());
00140         str << "\n      TpsTComp = " << int(aconfig.TpsTComp());
00141         str << "\n      TpsMux = " << int(aconfig.TpsMux());
00142         str << "\n      RoMonost = " << int(aconfig.RoMonost());
00143         str << "\n      TpsGr = " << int(aconfig.TpsGr());
00144         str << "\n      S2dGr = " << int(aconfig.S2dGr());
00145         str << "\n      PpOcbS2d = " << int(aconfig.PpOcbS2d());
00146         str << "\n      Ocb = " << int(aconfig.Ocb());
00147         str << "\n      Monost = " << int(aconfig.Monost());
00148         str << "\n      FastppEnable = " << int(aconfig.FastppEnable());
00149         str << "\n      Preamp = " << int(aconfig.Preamp());
00150         str << "\n      PixelCb = " << int(aconfig.PixelCb());
00151         str << "\n      S2dTComp = " << int(aconfig.S2dTComp());
00152         str << "\n      FilterDac = " << int(aconfig.FilterDac());
00153         str << "\n      TC = " << int(aconfig.TC());
00154         str << "\n      S2d = " << int(aconfig.S2d());
00155         str << "\n      S2dDacBias = " << int(aconfig.S2dDacBias());
00156         str << "\n      TpsTcDac = " << int(aconfig.TpsTcDac());
00157         str << "\n      TpsDac = " << int(aconfig.TpsDac());
00158         str << "\n      S2dTcDac = " << int(aconfig.S2dTcDac());
00159         str << "\n      S2dDac = " << int(aconfig.S2dDac());
00160         str << "\n      TestBe = " << int(aconfig.TestBe());
00161         str << "\n      IsEn = " << int(aconfig.IsEn());
00162         str << "\n      DelExec = " << int(aconfig.DelExec());
00163         str << "\n      DelCckReg = " << int(aconfig.DelCckReg());
00164         str << "\n      RowStartAddr = " << int(aconfig.RowStartAddr());
00165         str << "\n      RowStopAddr = " << int(aconfig.RowStopAddr());
00166         str << "\n      ColStartAddr = " << int(aconfig.ColStartAddr());
00167         str << "\n      ColStopAddr = " << int(aconfig.ColStopAddr());
00168         str << "\n      chipID = " << int(aconfig.chipID());
00169       }
00170     }
00171   }
00172 
00173 
00174   shared_ptr<Psana::Epix::Config10KV1> config10k1 = env.configStore().get(m_src);
00175   if (config10k1) {
00176     WithMsgLog(name(), info, str) {
00177       str << "Psana::Epix::Config10KV1:";
00178       str << "\n  version                  = " << config10k1->version();
00179       str << "\n  runTrigDelay             = " << config10k1->runTrigDelay();
00180       str << "\n  daqTrigDelay             = " << config10k1->daqTrigDelay();
00181       str << "\n  dacSetting               = " << config10k1->dacSetting();
00182       str << "\n  asicGR                   = " << int(config10k1->asicGR());
00183       str << "\n  asicAcq                  = " << int(config10k1->asicAcq());
00184       str << "\n  asicR0                   = " << int(config10k1->asicR0());
00185       str << "\n  asicPpmat                = " << int(config10k1->asicPpmat());
00186       str << "\n  asicPpbe                 = " << int(config10k1->asicPpbe());
00187       str << "\n  asicRoClk                = " << int(config10k1->asicRoClk());
00188       str << "\n  asicGRControl            = " << int(config10k1->asicGRControl());
00189       str << "\n  asicAcqControl           = " << int(config10k1->asicAcqControl());
00190       str << "\n  asicR0Control            = " << int(config10k1->asicR0Control());
00191       str << "\n  asicPpmatControl         = " << int(config10k1->asicPpmatControl());
00192       str << "\n  asicPpbeControl          = " << int(config10k1->asicPpbeControl());
00193       str << "\n  asicR0ClkControl         = " << int(config10k1->asicR0ClkControl());
00194       str << "\n  prepulseR0En             = " << int(config10k1->prepulseR0En());
00195       str << "\n  adcStreamMode            = " << config10k1->adcStreamMode();
00196       str << "\n  testPatternEnable        = " << int(config10k1->testPatternEnable());
00197       str << "\n  SyncMode                 = " << int(config10k1->SyncMode());
00198       str << "\n  R0Mode                   = " << int(config10k1->R0Mode());
00199       str << "\n  DoutPipelineDelay        = " << int(config10k1->DoutPipelineDelay());
00200       str << "\n  acqToAsicR0Delay         = " << int(config10k1->acqToAsicR0Delay());
00201       str << "\n  asicR0ToAsicAcq          = " << int(config10k1->asicR0ToAsicAcq());
00202       str << "\n  asicAcqWidth             = " << int(config10k1->asicAcqWidth());
00203       str << "\n  asicAcqLToPPmatL         = " << int(config10k1->asicAcqLToPPmatL());
00204       str << "\n  asicRoClkHalfT           = " << int(config10k1->asicRoClkHalfT());
00205       str << "\n  adcReadsPerPixel         = " << int(config10k1->adcReadsPerPixel());
00206       str << "\n  adcClkHalfT              = " << int(config10k1->adcClkHalfT());
00207       str << "\n  asicR0Width              = " << int(config10k1->asicR0Width());
00208       str << "\n  adcPipelineDelay         = " << int(config10k1->adcPipelineDelay());
00209       str << "\n  SyncWidth()              = " << int(config10k1->SyncWidth());
00210       str << "\n  SyncDelay()              = " << int(config10k1->SyncDelay());
00211       str << "\n  prepulseR0Width          = " << config10k1->prepulseR0Width();
00212       str << "\n  prepulseR0Delay          = " << config10k1->prepulseR0Delay();
00213       str << "\n  digitalCardId0           = " << config10k1->digitalCardId0();
00214       str << "\n  digitalCardId1           = " << config10k1->digitalCardId1();
00215       str << "\n  analogCardId0            = " << config10k1->analogCardId0();
00216       str << "\n  analogCardId1            = " << config10k1->analogCardId1();
00217       str << "\n  lastRowExclusions        = " << config10k1->lastRowExclusions();
00218       str << "\n  numberOfAsicsPerRow      = " << config10k1->numberOfAsicsPerRow();
00219       str << "\n  numberOfAsicsPerColumn   = " << config10k1->numberOfAsicsPerColumn();
00220       str << "\n  numberOfRowsPerAsic      = " << config10k1->numberOfRowsPerAsic();
00221       str << "\n  numberOfPixelsPerAsicRow = " << config10k1->numberOfPixelsPerAsicRow();
00222       str << "\n  baseClockFrequency       = " << config10k1->baseClockFrequency();
00223       str << "\n  asicMask                 = " << config10k1->asicMask();
00224       str << "\n  scopeEnable              = " << int(config10k1->scopeEnable());
00225       str << "\n  scopeTrigEdge            = " << int(config10k1->scopeTrigEdge());
00226       str << "\n  scopeTrigChan            = " << int(config10k1->scopeTrigChan());
00227       str << "\n  scopeArmMode             = " << int(config10k1->scopeArmMode());
00228       str << "\n  scopeADCThreshold        = " << int(config10k1->scopeADCThreshold());
00229       str << "\n  scopeTrigHoldoff         = " << int(config10k1->scopeTrigHoldoff());
00230       str << "\n  scopeTrigOffset          = " << int(config10k1->scopeTrigOffset());
00231       str << "\n  scopeTraceLength         = " << int(config10k1->scopeTraceLength());
00232       str << "\n  scopeADCsameplesToSkip   = " << int(config10k1->scopeADCsameplesToSkip());
00233       str << "\n  scopeChanAwaveformSelect = " << int(config10k1->scopeChanAwaveformSelect());
00234       str << "\n  scopeChanBwaveformSelect = " << int(config10k1->scopeChanBwaveformSelect());
00235       str << "\n  asicPixelConfigArray     = " << config10k1->asicPixelConfigArray();
00236       str << "\n  numberOfRows             = " << config10k1->numberOfRows();
00237       str << "\n  numberOfColumns          = " << config10k1->numberOfColumns();
00238       str << "\n  numberOfAsics            = " << config10k1->numberOfAsics();
00239 
00240       //virtual std::vector<int> asics_shape() const = 0;
00241       str << "\n  asics_shape()            =";
00242       std::vector<int> v = config10k1->asics_shape();
00243       for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { str << " " << *it; }
00244 
00245       const int nasics = config10k1->numberOfAsics();
00246       for (int i = 0; i != nasics; ++ i) {
00247         const Psana::Epix::Asic10kConfigV1& aconfig = config10k1->asics(i);
00248         str << "\n    Psana::Epix::Asic10kConfigV1 #" << i << ":";
00249 
00250         str << "\n      CompTH_DAC       = " << int(aconfig.CompTH_DAC());
00251         str << "\n      CompEn_0         = " << int(aconfig.CompEn_0());
00252         str << "\n      PulserSync       = " << int(aconfig.PulserSync());
00253         str << "\n      dummyTest        = " << int(aconfig.dummyTest());
00254         str << "\n      dummyMask        = " << int(aconfig.dummyMask());
00255         str << "\n      dummyG           = " << int(aconfig.dummyG());
00256         str << "\n      dummyGA          = " << int(aconfig.dummyGA());
00257         str << "\n      dummyUpper12bits = " << int(aconfig.dummyUpper12bits());
00258         str << "\n      pulser           = " << int(aconfig.pulser());
00259         str << "\n      pbit             = " << int(aconfig.pbit());
00260         str << "\n      atest            = " << int(aconfig.atest());
00261         str << "\n      test             = " << int(aconfig.test());
00262         str << "\n      sabTest          = " << int(aconfig.sabTest());
00263         str << "\n      hrTest           = " << int(aconfig.hrTest());
00264         str << "\n      pulserR          = " << int(aconfig.pulserR());
00265         str << "\n      digMon1          = " << int(aconfig.digMon1());
00266         str << "\n      digMon2          = " << int(aconfig.digMon2());
00267         str << "\n      pulserDac        = " << int(aconfig.pulserDac());
00268         str << "\n      monostPulser     = " << int(aconfig.monostPulser());
00269         str << "\n      CompEn_1         = " << int(aconfig.CompEn_1());
00270         str << "\n      CompEn_2         = " << int(aconfig.CompEn_2());
00271         str << "\n      Dm1En            = " << int(aconfig.Dm1En());
00272         str << "\n      Dm2En            = " << int(aconfig.Dm2En());
00273         str << "\n      emph_bd          = " << int(aconfig.emph_bd());
00274         str << "\n      emph_bc          = " << int(aconfig.emph_bc());
00275         str << "\n      VRefDac          = " << int(aconfig.VRefDac());
00276         str << "\n      vrefLow          = " << int(aconfig.vrefLow());
00277         str << "\n      TpsTComp         = " << int(aconfig.TpsTComp());
00278         str << "\n      TpsMux           = " << int(aconfig.TpsMux());
00279         str << "\n      RoMonost         = " << int(aconfig.RoMonost());
00280         str << "\n      TpsGr            = " << int(aconfig.TpsGr());
00281         str << "\n      S2dGr            = " << int(aconfig.S2dGr());
00282         str << "\n      PpOcbS2d         = " << int(aconfig.PpOcbS2d());
00283         str << "\n      Ocb              = " << int(aconfig.Ocb());
00284         str << "\n      Monost           = " << int(aconfig.Monost());
00285         str << "\n      FastppEnable     = " << int(aconfig.FastppEnable());
00286         str << "\n      Preamp           = " << int(aconfig.Preamp());
00287         str << "\n      PixelCb          = " << int(aconfig.PixelCb());
00288         str << "\n      Vld1_b           = " << int(aconfig.Vld1_b());
00289         str << "\n      S2dTComp         = " << int(aconfig.S2dTComp());
00290         str << "\n      FilterDac        = " << int(aconfig.FilterDac());
00291         str << "\n      testVDTransmitter= " << int(aconfig.testVDTransmitter());
00292         str << "\n      TC               = " << int(aconfig.TC());
00293         str << "\n      S2d              = " << int(aconfig.S2d());
00294         str << "\n      S2dDacBias       = " << int(aconfig.S2dDacBias());
00295         str << "\n      TpsTcDac         = " << int(aconfig.TpsTcDac());
00296         str << "\n      TpsDac           = " << int(aconfig.TpsDac());
00297         str << "\n      S2dTcDac         = " << int(aconfig.S2dTcDac());
00298         str << "\n      S2dDac           = " << int(aconfig.S2dDac());
00299         str << "\n      TestBe           = " << int(aconfig.TestBe());
00300         str << "\n      IsEn             = " << int(aconfig.IsEn());
00301         str << "\n      DelExec          = " << int(aconfig.DelExec());
00302         str << "\n      DelCckReg        = " << int(aconfig.DelCckReg());
00303         str << "\n      RO_rst_en        = " << int(aconfig.RO_rst_en());
00304         str << "\n      slvdSBit         = " << int(aconfig.slvdSBit());
00305         str << "\n      FELmode          = " << int(aconfig.FELmode());
00306         str << "\n      CompEnOn         = " << int(aconfig.CompEnOn());
00307         str << "\n      RowStartAddr     = " << int(aconfig.RowStartAddr());
00308         str << "\n      RowStopAddr      = " << int(aconfig.RowStopAddr());
00309         str << "\n      ColStartAddr     = " << int(aconfig.ColStartAddr());
00310         str << "\n      ColStopAddr      = " << int(aconfig.ColStopAddr());
00311         str << "\n      chipID           = " << int(aconfig.chipID());
00312       }
00313     }
00314   }
00315 
00316 
00317   shared_ptr<Psana::Epix::Config100aV1> config100a = env.configStore().get(m_src);
00318   if (config100a) {
00319     WithMsgLog(name(), info, str) {
00320       str << "Psana::Epix::Config100aV1:";
00321       str << "\n  version                     = " << config100a->version();
00322       str << "\n  runTrigDelay                = " << config100a->runTrigDelay();
00323       str << "\n  daqTrigDelay                = " << config100a->daqTrigDelay();
00324       str << "\n  dacSetting                  = " << config100a->dacSetting();
00325       str << "\n  asicGR                      = " << int(config100a->asicGR());
00326       str << "\n  asicAcq                     = " << int(config100a->asicAcq());
00327       str << "\n  asicR0                      = " << int(config100a->asicR0());
00328       str << "\n  asicPpmat                   = " << int(config100a->asicPpmat());
00329       str << "\n  asicPpbe                    = " << int(config100a->asicPpbe());
00330       str << "\n  asicRoClk                   = " << int(config100a->asicRoClk());
00331       str << "\n  asicGRControl               = " << int(config100a->asicGRControl());
00332       str << "\n  asicAcqControl              = " << int(config100a->asicAcqControl());
00333       str << "\n  asicR0Control               = " << int(config100a->asicR0Control());
00334       str << "\n  asicPpmatControl            = " << int(config100a->asicPpmatControl());
00335       str << "\n  asicPpbeControl             = " << int(config100a->asicPpbeControl());
00336       str << "\n  asicR0ClkControl            = " << int(config100a->asicR0ClkControl());
00337       str << "\n  prepulseR0En                = " << int(config100a->prepulseR0En());
00338       str << "\n  adcStreamMode               = " << int(config100a->adcStreamMode());
00339       str << "\n  testPatternEnable           = " << int(config100a->testPatternEnable());
00340       str << "\n  SyncMode                    = " << int(config100a->SyncMode());
00341       str << "\n  R0Mode                      = " << int(config100a->R0Mode());
00342       str << "\n  acqToAsicR0Delay            = " << int(config100a->acqToAsicR0Delay());
00343       str << "\n  asicR0ToAsicAcq             = " << int(config100a->asicR0ToAsicAcq());
00344       str << "\n  asicAcqWidth                = " << int(config100a->asicAcqWidth());
00345       str << "\n  asicAcqLToPPmatL            = " << int(config100a->asicAcqLToPPmatL());
00346       str << "\n  asicPPmatToReadout          = " << int(config100a->asicPPmatToReadout());
00347       str << "\n  asicRoClkHalfT              = " << int(config100a->asicRoClkHalfT());
00348       str << "\n  adcReadsPerPixel            = " << int(config100a->adcReadsPerPixel());
00349       str << "\n  adcClkHalfT                 = " << int(config100a->adcClkHalfT());
00350       str << "\n  asicR0Width                 = " << int(config100a->asicR0Width());
00351       str << "\n  adcPipelineDelay            = " << int(config100a->adcPipelineDelay());
00352       str << "\n  SyncWidth                   = " << int(config100a->SyncWidth());
00353       str << "\n  SyncDelay                   = " << int(config100a->SyncDelay());
00354       str << "\n  prepulseR0Width             = " << int(config100a->prepulseR0Width());
00355       str << "\n  prepulseR0Delay             = " << int(config100a->prepulseR0Delay());
00356       str << "\n  digitalCardId0              = " << int(config100a->digitalCardId0());
00357       str << "\n  digitalCardId1              = " << int(config100a->digitalCardId1());
00358       str << "\n  analogCardId0               = " << int(config100a->analogCardId0());
00359       str << "\n  analogCardId1               = " << int(config100a->analogCardId1());
00360       str << "\n  numberOfAsicsPerRow         = " << int(config100a->numberOfAsicsPerRow());
00361       str << "\n  numberOfAsicsPerColumn      = " << int(config100a->numberOfAsicsPerColumn());
00362       str << "\n  numberOfRowsPerAsic         = " << int(config100a->numberOfRowsPerAsic());
00363       str << "\n  numberOfReadableRowsPerAsic = " << int(config100a->numberOfReadableRowsPerAsic());
00364       str << "\n  numberOfPixelsPerAsicRow    = " << int(config100a->numberOfPixelsPerAsicRow());
00365       str << "\n  calibrationRowCountPerASIC  = " << int(config100a->calibrationRowCountPerASIC());
00366       str << "\n  environmentalRowCountPerASIC= " << int(config100a->environmentalRowCountPerASIC());
00367       str << "\n  baseClockFrequency          = " << int(config100a->baseClockFrequency());
00368       str << "\n  asicMask                    = " << int(config100a->asicMask());
00369       str << "\n  scopeEnable                 = " << int(config100a->scopeEnable());
00370       str << "\n  scopeTrigEdge               = " << int(config100a->scopeTrigEdge());
00371       str << "\n  scopeTrigChan               = " << int(config100a->scopeTrigChan());
00372       str << "\n  scopeArmMode                = " << int(config100a->scopeArmMode());
00373       str << "\n  scopeADCThreshold           = " << int(config100a->scopeADCThreshold());
00374       str << "\n  scopeTrigHoldoff            = " << int(config100a->scopeTrigHoldoff());
00375       str << "\n  scopeTrigOffset             = " << int(config100a->scopeTrigOffset());
00376       str << "\n  scopeTraceLength            = " << int(config100a->scopeTraceLength());
00377       str << "\n  scopeADCsameplesToSkip      = " << int(config100a->scopeADCsameplesToSkip());
00378       str << "\n  scopeChanAwaveformSelect    = " << int(config100a->scopeChanAwaveformSelect());
00379       str << "\n  scopeChanBwaveformSelect    = " << int(config100a->scopeChanBwaveformSelect());
00380       str << "\n  numberOfRows                = " << int(config100a->numberOfRows());
00381       str << "\n  numberOfReadableRows        = " << int(config100a->numberOfReadableRows());
00382       str << "\n  numberOfColumns             = " << int(config100a->numberOfColumns());
00383       str << "\n  numberOfCalibrationRows     = " << int(config100a->numberOfCalibrationRows());
00384       str << "\n  numberOfEnvironmentalRows   = " << int(config100a->numberOfEnvironmentalRows());
00385       str << "\n  numberOfAsics               = " << int(config100a->numberOfAsics());
00386 
00387       //virtual ndarray<const uint16_t, 2> asicPixelConfigArray() const = 0;
00388       str << "\n  asicPixelConfigArray() = " << config100a->asicPixelConfigArray();    //New
00389 
00390       //virtual ndarray<const uint8_t, 2> calibPixelConfigArray() const = 0;
00391       str << "\n  calibPixelConfigArray() =" << config100a->calibPixelConfigArray();    //New;
00392       //str << "\n  calibPixelConfigArray() =";    //New;
00393       //ndarray<const uint8_t, 2>& nda = config100a->calibPixelConfigArray();
00394       //for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { str << " " << *it; }
00395 
00396 
00397 
00398 
00399       //virtual std::vector<int> asics_shape() const = 0;
00400       str << "\n  asics_shape()            =";
00401       std::vector<int> v = config100a->asics_shape();
00402       for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { str << " " << *it; }
00403 
00404       //virtual const Epix::Asic100aConfigV1& asics(uint32_t i0) const = 0;
00405       const int nasics = config100a->numberOfAsics();
00406       for (int i = 0; i != nasics; ++ i) {
00407         const Psana::Epix::Asic100aConfigV1& aconfig = config100a->asics(i);
00408         str << "\n   Psana::Epix::Asic100aConfigV1 #" << i << ":";
00409         str << "\n     pulserVsPixelOnDelay                          = " << int(aconfig.pulserVsPixelOnDelay());
00410         str << "\n     pulserSync                                    = " << int(aconfig.pulserSync());
00411         str << "\n     dummyTest                                     = " << int(aconfig.dummyTest());
00412         str << "\n     dummyMask                                     = " << int(aconfig.dummyMask());
00413         str << "\n     testPulserLevel                               = " << int(aconfig.testPulserLevel());
00414         str << "\n     pulserCounterDirection                        = " << int(aconfig.pulserCounterDirection());
00415         str << "\n     automaticTestModeEnable                       = " << int(aconfig.automaticTestModeEnable());
00416         str << "\n     testMode                                      = " << int(aconfig.testMode());
00417         str << "\n     testModeWithDarkFrame                         = " << int(aconfig.testModeWithDarkFrame());
00418         str << "\n     highResolutionModeTest                        = " << int(aconfig.highResolutionModeTest());
00419         str << "\n     pulserReset                                   = " << int(aconfig.pulserReset());
00420         str << "\n     digitalMonitorMux1                            = " << int(aconfig.digitalMonitorMux1());
00421         str << "\n     digitalMonitorMux2                            = " << int(aconfig.digitalMonitorMux2());
00422         str << "\n     testPulserCurrent                             = " << int(aconfig.testPulserCurrent());
00423         str << "\n     testPointSystemOutputDynamicRange             = " << int(aconfig.testPointSystemOutputDynamicRange());
00424         str << "\n     digitalMonitor1Enable                         = " << int(aconfig.digitalMonitor1Enable());
00425         str << "\n     digitalMonitor2Enable                         = " << int(aconfig.digitalMonitor2Enable());
00426         str << "\n     LVDS_ImpedenceMatchingEnable                  = " << int(aconfig.LVDS_ImpedenceMatchingEnable());
00427         str << "\n     VRefBaselineDac                               = " << int(aconfig.VRefBaselineDac());
00428         str << "\n     extraRowsLowReferenceValue                    = " << int(aconfig.extraRowsLowReferenceValue());
00429         str << "\n     testPointSystemTemperatureCompensationEnable  = " << int(aconfig.testPointSystemTemperatureCompensationEnable()  );
00430         str << "\n     testPointSytemInputSelect                     = " << int(aconfig.testPointSytemInputSelect());
00431         str << "\n     programmableReadoutDelay                      = " << int(aconfig.programmableReadoutDelay());
00432         str << "\n     outputDriverOutputDynamicRange0               = " << int(aconfig.outputDriverOutputDynamicRange0());
00433         str << "\n     outputDriverOutputDynamicRange1               = " << int(aconfig.outputDriverOutputDynamicRange1());
00434         str << "\n     balconyEnable                                 = " << int(aconfig.balconyEnable());
00435         str << "\n     balconyDriverCurrent                          = " << int(aconfig.balconyDriverCurrent());
00436         str << "\n     fastPowerPulsingSpeed                         = " << int(aconfig.fastPowerPulsingSpeed());
00437         str << "\n     fastPowerPulsingEnable                        = " << int(aconfig.fastPowerPulsingEnable());
00438         str << "\n     preamplifierCurrent                           = " << int(aconfig.preamplifierCurrent());
00439         str << "\n     pixelOutputBufferCurrent                      = " << int(aconfig.pixelOutputBufferCurrent());
00440         str << "\n     pixelBufferAndPreamplifierDrivingCapabilities = " << int(aconfig.pixelBufferAndPreamplifierDrivingCapabilities());
00441         str << "\n     outputDriverTemperatureCompensationEnable     = " << int(aconfig.outputDriverTemperatureCompensationEnable());
00442         str << "\n     pixelFilterLevel                              = " << int(aconfig.pixelFilterLevel());
00443         str << "\n     bandGapReferenceTemperatureCompensationBits   = " << int(aconfig.bandGapReferenceTemperatureCompensationBits());
00444         str << "\n     outputDriverDrivingCapabilitiesAndStability   = " << int(aconfig.outputDriverDrivingCapabilitiesAndStability());
00445         str << "\n     outputDriverDacReferenceBias                  = " << int(aconfig.outputDriverDacReferenceBias());
00446         str << "\n     testPointSystemTemperatureCompensationGain    = " << int(aconfig.testPointSystemTemperatureCompensationGain());
00447         str << "\n     testPointSystemInputCommonMode                = " << int(aconfig.testPointSystemInputCommonMode());
00448         str << "\n     outputDriverTemperatureCompensationGain0      = " << int(aconfig.outputDriverTemperatureCompensationGain0());
00449         str << "\n     outputDriverInputCommonMode0                  = " << int(aconfig.outputDriverInputCommonMode0());
00450         str << "\n     testBackEnd                                   = " << int(aconfig.testBackEnd());
00451         str << "\n     interleavedReadOutEnable                      = " << int(aconfig.interleavedReadOutEnable());
00452         str << "\n     EXEC_DelayEnable                              = " << int(aconfig.EXEC_DelayEnable());
00453         str << "\n     CCK_RegDelayEnable                            = " << int(aconfig.CCK_RegDelayEnable());
00454         str << "\n     syncPinEnable                                 = " << int(aconfig.syncPinEnable());
00455         str << "\n     RowStartAddr                                  = " << int(aconfig.RowStartAddr());
00456         str << "\n     RowStopAddr                                   = " << int(aconfig.RowStopAddr());
00457         str << "\n     ColumnStartAddr                               = " << int(aconfig.ColumnStartAddr());
00458       }
00459     }
00460   }
00461 
00462 
00463 
00464   shared_ptr<Psana::Epix::Config100aV2> config100av2 = env.configStore().get(m_src);
00465   if (config100av2) {
00466     WithMsgLog(name(), info, str) {
00467       str << "Psana::Epix::Config100aV2:";
00468       str << "\n  version                     = " << config100av2->version();
00469       //str << "\n  runTrigDelay                = " << config100av2->runTrigDelay();
00470       //str << "\n  daqTrigDelay                = " << config100av2->daqTrigDelay();
00471       //str << "\n                  = " << config100av2->();
00472       str << "\n  usePgpEvr                   = " << config100av2->usePgpEvr();
00473       str << "\n  evrRunCode;                 = " << config100av2->evrRunCode();
00474       str << "\n  evrDaqCode                  = " << config100av2->evrDaqCode();
00475       str << "\n  evrRunTrigDelay             = " << config100av2->evrRunTrigDelay();
00476       str << "\n  epixRunTrigDelay            = " << config100av2->epixRunTrigDelay();
00477       str << "\n  dacSetting                  = " << config100av2->dacSetting();
00478       str << "\n  asicGR                      = " << int(config100av2->asicGR());
00479       str << "\n  asicAcq                     = " << int(config100av2->asicAcq());
00480       str << "\n  asicR0                      = " << int(config100av2->asicR0());
00481       str << "\n  asicPpmat                   = " << int(config100av2->asicPpmat());
00482       str << "\n  asicPpbe                    = " << int(config100av2->asicPpbe());
00483       str << "\n  asicRoClk                   = " << int(config100av2->asicRoClk());
00484       str << "\n  asicGRControl               = " << int(config100av2->asicGRControl());
00485       str << "\n  asicAcqControl              = " << int(config100av2->asicAcqControl());
00486       str << "\n  asicR0Control               = " << int(config100av2->asicR0Control());
00487       str << "\n  asicPpmatControl            = " << int(config100av2->asicPpmatControl());
00488       str << "\n  asicPpbeControl             = " << int(config100av2->asicPpbeControl());
00489       str << "\n  asicR0ClkControl            = " << int(config100av2->asicR0ClkControl());
00490       str << "\n  prepulseR0En                = " << int(config100av2->prepulseR0En());
00491       str << "\n  adcStreamMode               = " << int(config100av2->adcStreamMode());
00492       str << "\n  testPatternEnable           = " << int(config100av2->testPatternEnable());
00493       str << "\n  SyncMode                    = " << int(config100av2->SyncMode());
00494       str << "\n  R0Mode                      = " << int(config100av2->R0Mode());
00495       str << "\n  acqToAsicR0Delay            = " << int(config100av2->acqToAsicR0Delay());
00496       str << "\n  asicR0ToAsicAcq             = " << int(config100av2->asicR0ToAsicAcq());
00497       str << "\n  asicAcqWidth                = " << int(config100av2->asicAcqWidth());
00498       str << "\n  asicAcqLToPPmatL            = " << int(config100av2->asicAcqLToPPmatL());
00499       str << "\n  asicPPmatToReadout          = " << int(config100av2->asicPPmatToReadout());
00500       str << "\n  asicRoClkHalfT              = " << int(config100av2->asicRoClkHalfT());
00501       str << "\n  adcReadsPerPixel            = " << int(config100av2->adcReadsPerPixel());
00502       str << "\n  adcClkHalfT                 = " << int(config100av2->adcClkHalfT());
00503       str << "\n  asicR0Width                 = " << int(config100av2->asicR0Width());
00504       str << "\n  adcPipelineDelay            = " << int(config100av2->adcPipelineDelay());
00505 
00506       str << "\n  adcPipelineDelay0           = " << config100av2->adcPipelineDelay0();
00507       str << "\n  adcPipelineDelay1           = " << config100av2->adcPipelineDelay1();
00508       str << "\n  adcPipelineDelay2           = " << config100av2->adcPipelineDelay2();
00509       str << "\n  adcPipelineDelay3           = " << config100av2->adcPipelineDelay3();
00510 
00511       str << "\n  SyncWidth                   = " << int(config100av2->SyncWidth());
00512       str << "\n  SyncDelay                   = " << int(config100av2->SyncDelay());
00513       str << "\n  prepulseR0Width             = " << int(config100av2->prepulseR0Width());
00514       str << "\n  prepulseR0Delay             = " << int(config100av2->prepulseR0Delay());
00515       str << "\n  digitalCardId0              = " << int(config100av2->digitalCardId0());
00516       str << "\n  digitalCardId1              = " << int(config100av2->digitalCardId1());
00517       str << "\n  analogCardId0               = " << int(config100av2->analogCardId0());
00518       str << "\n  analogCardId1               = " << int(config100av2->analogCardId1());
00519       str << "\n  numberOfAsicsPerRow         = " << int(config100av2->numberOfAsicsPerRow());
00520       str << "\n  numberOfAsicsPerColumn      = " << int(config100av2->numberOfAsicsPerColumn());
00521       str << "\n  numberOfRowsPerAsic         = " << int(config100av2->numberOfRowsPerAsic());
00522       str << "\n  numberOfReadableRowsPerAsic = " << int(config100av2->numberOfReadableRowsPerAsic());
00523       str << "\n  numberOfPixelsPerAsicRow    = " << int(config100av2->numberOfPixelsPerAsicRow());
00524       str << "\n  calibrationRowCountPerASIC  = " << int(config100av2->calibrationRowCountPerASIC());
00525       str << "\n  environmentalRowCountPerASIC= " << int(config100av2->environmentalRowCountPerASIC());
00526       str << "\n  baseClockFrequency          = " << int(config100av2->baseClockFrequency());
00527       str << "\n  asicMask                    = " << int(config100av2->asicMask());
00528 
00529       str << "\n  enableAutomaticRunTrigger   = " << config100av2->enableAutomaticRunTrigger();
00530       str << "\n  numberOf125MhzTicksPerRunTrigger = " << config100av2->numberOf125MhzTicksPerRunTrigger();
00531 
00532       str << "\n  scopeEnable                 = " << int(config100av2->scopeEnable());
00533       str << "\n  scopeTrigEdge               = " << int(config100av2->scopeTrigEdge());
00534       str << "\n  scopeTrigChan               = " << int(config100av2->scopeTrigChan());
00535       str << "\n  scopeArmMode                = " << int(config100av2->scopeArmMode());
00536       str << "\n  scopeADCThreshold           = " << int(config100av2->scopeADCThreshold());
00537       str << "\n  scopeTrigHoldoff            = " << int(config100av2->scopeTrigHoldoff());
00538       str << "\n  scopeTrigOffset             = " << int(config100av2->scopeTrigOffset());
00539       str << "\n  scopeTraceLength            = " << int(config100av2->scopeTraceLength());
00540       str << "\n  scopeADCsameplesToSkip      = " << int(config100av2->scopeADCsameplesToSkip());
00541       str << "\n  scopeChanAwaveformSelect    = " << int(config100av2->scopeChanAwaveformSelect());
00542       str << "\n  scopeChanBwaveformSelect    = " << int(config100av2->scopeChanBwaveformSelect());
00543       str << "\n  numberOfRows                = " << int(config100av2->numberOfRows());
00544       str << "\n  numberOfReadableRows        = " << int(config100av2->numberOfReadableRows());
00545       str << "\n  numberOfColumns             = " << int(config100av2->numberOfColumns());
00546       str << "\n  numberOfCalibrationRows     = " << int(config100av2->numberOfCalibrationRows());
00547       str << "\n  numberOfEnvironmentalRows   = " << int(config100av2->numberOfEnvironmentalRows());
00548       str << "\n  numberOfAsics               = " << int(config100av2->numberOfAsics());
00549 
00550       //virtual ndarray<const uint16_t, 2> asicPixelConfigArray() const = 0;
00551       str << "\n  asicPixelConfigArray() = " << config100av2->asicPixelConfigArray();    //New
00552 
00553       //virtual ndarray<const uint8_t, 2> calibPixelConfigArray() const = 0;
00554       str << "\n  calibPixelConfigArray() =" << config100av2->calibPixelConfigArray();    //New;
00555       //str << "\n  calibPixelConfigArray() =";    //New;
00556       //ndarray<const uint8_t, 2>& nda = config100av2->calibPixelConfigArray();
00557       //for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { str << " " << *it; }
00558 
00559 
00560 
00561 
00562       //virtual std::vector<int> asics_shape() const = 0;
00563       str << "\n  asics_shape()            =";
00564       std::vector<int> v = config100av2->asics_shape();
00565       for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) { str << " " << *it; }
00566 
00567       //virtual const Epix::Asic100aConfigV1& asics(uint32_t i0) const = 0;
00568       const int nasics = config100av2->numberOfAsics();
00569       for (int i = 0; i != nasics; ++ i) {
00570         const Psana::Epix::Asic100aConfigV1& aconfig = config100av2->asics(i);
00571         str << "\n   Psana::Epix::Asic100aConfigV1 #" << i << ":";
00572         str << "\n     pulserVsPixelOnDelay                          = " << int(aconfig.pulserVsPixelOnDelay());
00573         str << "\n     pulserSync                                    = " << int(aconfig.pulserSync());
00574         str << "\n     dummyTest                                     = " << int(aconfig.dummyTest());
00575         str << "\n     dummyMask                                     = " << int(aconfig.dummyMask());
00576         str << "\n     testPulserLevel                               = " << int(aconfig.testPulserLevel());
00577         str << "\n     pulserCounterDirection                        = " << int(aconfig.pulserCounterDirection());
00578         str << "\n     automaticTestModeEnable                       = " << int(aconfig.automaticTestModeEnable());
00579         str << "\n     testMode                                      = " << int(aconfig.testMode());
00580         str << "\n     testModeWithDarkFrame                         = " << int(aconfig.testModeWithDarkFrame());
00581         str << "\n     highResolutionModeTest                        = " << int(aconfig.highResolutionModeTest());
00582         str << "\n     pulserReset                                   = " << int(aconfig.pulserReset());
00583         str << "\n     digitalMonitorMux1                            = " << int(aconfig.digitalMonitorMux1());
00584         str << "\n     digitalMonitorMux2                            = " << int(aconfig.digitalMonitorMux2());
00585         str << "\n     testPulserCurrent                             = " << int(aconfig.testPulserCurrent());
00586         str << "\n     testPointSystemOutputDynamicRange             = " << int(aconfig.testPointSystemOutputDynamicRange());
00587         str << "\n     digitalMonitor1Enable                         = " << int(aconfig.digitalMonitor1Enable());
00588         str << "\n     digitalMonitor2Enable                         = " << int(aconfig.digitalMonitor2Enable());
00589         str << "\n     LVDS_ImpedenceMatchingEnable                  = " << int(aconfig.LVDS_ImpedenceMatchingEnable());
00590         str << "\n     VRefBaselineDac                               = " << int(aconfig.VRefBaselineDac());
00591         str << "\n     extraRowsLowReferenceValue                    = " << int(aconfig.extraRowsLowReferenceValue());
00592         str << "\n     testPointSystemTemperatureCompensationEnable  = " << int(aconfig.testPointSystemTemperatureCompensationEnable()  );
00593         str << "\n     testPointSytemInputSelect                     = " << int(aconfig.testPointSytemInputSelect());
00594         str << "\n     programmableReadoutDelay                      = " << int(aconfig.programmableReadoutDelay());
00595         str << "\n     outputDriverOutputDynamicRange0               = " << int(aconfig.outputDriverOutputDynamicRange0());
00596         str << "\n     outputDriverOutputDynamicRange1               = " << int(aconfig.outputDriverOutputDynamicRange1());
00597         str << "\n     balconyEnable                                 = " << int(aconfig.balconyEnable());
00598         str << "\n     balconyDriverCurrent                          = " << int(aconfig.balconyDriverCurrent());
00599         str << "\n     fastPowerPulsingSpeed                         = " << int(aconfig.fastPowerPulsingSpeed());
00600         str << "\n     fastPowerPulsingEnable                        = " << int(aconfig.fastPowerPulsingEnable());
00601         str << "\n     preamplifierCurrent                           = " << int(aconfig.preamplifierCurrent());
00602         str << "\n     pixelOutputBufferCurrent                      = " << int(aconfig.pixelOutputBufferCurrent());
00603         str << "\n     pixelBufferAndPreamplifierDrivingCapabilities = " << int(aconfig.pixelBufferAndPreamplifierDrivingCapabilities());
00604         str << "\n     outputDriverTemperatureCompensationEnable     = " << int(aconfig.outputDriverTemperatureCompensationEnable());
00605         str << "\n     pixelFilterLevel                              = " << int(aconfig.pixelFilterLevel());
00606         str << "\n     bandGapReferenceTemperatureCompensationBits   = " << int(aconfig.bandGapReferenceTemperatureCompensationBits());
00607         str << "\n     outputDriverDrivingCapabilitiesAndStability   = " << int(aconfig.outputDriverDrivingCapabilitiesAndStability());
00608         str << "\n     outputDriverDacReferenceBias                  = " << int(aconfig.outputDriverDacReferenceBias());
00609         str << "\n     testPointSystemTemperatureCompensationGain    = " << int(aconfig.testPointSystemTemperatureCompensationGain());
00610         str << "\n     testPointSystemInputCommonMode                = " << int(aconfig.testPointSystemInputCommonMode());
00611         str << "\n     outputDriverTemperatureCompensationGain0      = " << int(aconfig.outputDriverTemperatureCompensationGain0());
00612         str << "\n     outputDriverInputCommonMode0                  = " << int(aconfig.outputDriverInputCommonMode0());
00613         str << "\n     testBackEnd                                   = " << int(aconfig.testBackEnd());
00614         str << "\n     interleavedReadOutEnable                      = " << int(aconfig.interleavedReadOutEnable());
00615         str << "\n     EXEC_DelayEnable                              = " << int(aconfig.EXEC_DelayEnable());
00616         str << "\n     CCK_RegDelayEnable                            = " << int(aconfig.CCK_RegDelayEnable());
00617         str << "\n     syncPinEnable                                 = " << int(aconfig.syncPinEnable());
00618         str << "\n     RowStartAddr                                  = " << int(aconfig.RowStartAddr());
00619         str << "\n     RowStopAddr                                   = " << int(aconfig.RowStopAddr());
00620         str << "\n     ColumnStartAddr                               = " << int(aconfig.ColumnStartAddr());
00621       }
00622     }
00623   }
00624 }
00625 
00626 /// Method which is called with event data, this is the only required 
00627 /// method, all other methods are optional
00628 void 
00629 DumpEpix::event(Event& evt, Env& env)
00630 {
00631   Pds::Src actualSrc;
00632   shared_ptr<Psana::Epix::ElementV1> data1 = evt.get(m_src, "", &actualSrc);
00633   if (data1) {
00634     WithMsgLog(name(), info, str) {
00635       str << "Epix::ElementV1 at source " << actualSrc;
00636       str << "\n  vc = " << int(data1->vc());
00637       str << "\n  lane = " << int(data1->lane());
00638       str << "\n  acqCount = " << data1->acqCount();
00639       str << "\n  frameNumber = " << data1->frameNumber();
00640       str << "\n  ticks = " << data1->ticks();
00641       str << "\n  fiducials = " << data1->fiducials();
00642       str << "\n  frame = " << data1->frame();
00643       str << "\n  excludedRows = " << data1->excludedRows();
00644       str << "\n  temperatures = " << data1->temperatures();
00645       str << "\n  lastWord = " << data1->lastWord();
00646     }
00647   }
00648 
00649   shared_ptr<Psana::Epix::ElementV2> data2 = evt.get(m_src, "", &actualSrc);
00650   if (data2) {
00651     WithMsgLog(name(), info, str) {
00652       str << "Epix::ElementV2 at source " << actualSrc;
00653       str << "\n  vc = " << int(data2->vc());
00654       str << "\n  lane = " << int(data2->lane());
00655       str << "\n  acqCount = " << data2->acqCount();
00656       str << "\n  frameNumber = " << data2->frameNumber();
00657       str << "\n  ticks = " << data2->ticks();
00658       str << "\n  fiducials = " << data2->fiducials();
00659       str << "\n  frame = " << data2->frame();
00660       str << "\n  calibrationRows = " << data2->calibrationRows();        //New
00661       str << "\n  environmentalRows = " << data2->environmentalRows();    //New
00662       str << "\n  temperatures = " << data2->temperatures();
00663       str << "\n  lastWord = " << data2->lastWord();
00664     }
00665   }
00666 
00667   shared_ptr<Psana::Epix::ElementV3> data3 = evt.get(m_src, "", &actualSrc);
00668   if (data3) {
00669     WithMsgLog(name(), info, str) {
00670       str << "Epix::ElementV3 at source " << actualSrc;
00671       str << "\n  vc = " << int(data3->vc());
00672       str << "\n  lane = " << int(data3->lane());
00673       str << "\n  acqCount = " << data3->acqCount();
00674       str << "\n  frameNumber = " << data3->frameNumber();
00675       str << "\n  ticks = " << data3->ticks();
00676       str << "\n  fiducials = " << data3->fiducials();
00677       str << "\n  frame = " << data3->frame();
00678       str << "\n  calibrationRows = " << data3->calibrationRows();        //New
00679       str << "\n  environmentalRows = " << data3->environmentalRows();    //New
00680       str << "\n  temperatures = " << data3->temperatures();
00681       str << "\n  lastWord = " << data3->lastWord();
00682     }
00683   }
00684 
00685 }
00686 
00687 } // namespace psana_examples

Generated on 19 Dec 2016 for PSANAmodules by  doxygen 1.4.7