You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Here is a list of all files with brief descriptions:

main.hh - declares enums and functions
main.cc - implements getters and other utility functions
myana.hh - declaration of user functions (beginrun, event etc)
myana.cc - implementation of user functions (beginrun, event etc)
myana_morefeatures.cc - same as myana.cc, but has more examples.

main

Namespaces

These are the namespaces used.

namespace  	Pds
namespace  	Pds::CsPad

Defines

Define some aliases.

#define 	getOpal1kConfig(x)   getFrameConfig(x)
#define 	getTm6740Config(x)   getFrameConfig(x)
#define 	getOpal1kValue(w, x, y, z)   getFrameValue(w, x, y, z)
#define 	getTm6740Value(w, x, y, z)   getFrameValue(w, x, y, z)

Enumerations

These are "named integers" that are used to control e.g. which detector to fetch information from.
Most of these are copied from pdsdata/xtc/DetInfo.hh.

enum  	AcqDetector {
  AmoIms = 0, AmoGasdet = 1, AmoETof = 2, AmoITof = 3,
  AmoMbes = 4, AmoVmiAcq = 5, AmoBpsAcq = 6, Camp = 7,
  SxrBeamlineAcq1 = 0, SxrBeamlineAcq2 = 1, SxrEndstationAcq1 = 2, SxrEndstationAcq2 = 3,
  NumAcqDetector = 8
}
enum  	FrameDetector {
  AmoVmi = 0, AmoBps1 = 1, AmoBps2 = 2, SxrBeamlineOpal1 = 0,
  SxrBeamlineOpal2 = 1, SxrEndstationOpal1 = 2, SxrEndstationOpal2 = 3, SxrFccd = 4,
  XppSb1PimCvd = 0, XppMonPimCvd = 1, XppSb3PimCvd = 2, XppSb4PimCvd = 3,
  NumFrameDetector = 5
}
enum  	PrincetonDetector {
  SxrBeamlinePrinceton1 = 0, SxrBeamlinePrinceton2 = 1, 
  SxrEndstationPrinceton1 = 2, SxrEndstationPrinceton2 = 3,
  AmoPrinceton1 = 0, AmoPrinceton2 = 1, 
  AmoPrinceton3 = 2, AmoPrinceton4 = 3,
  NumPrincetonDetector = 4
}
enum  	IpimbDetector {
  SxrBeamlineIpimb1 = 0, SxrBeamlineIpimb2 = 1, SxrBeamlineIpimb3 = 2, 
  SxrBeamlineIpimb4 = 3, SxrBeamlineIpimb5 = 4, SxrBeamlineIpimb6 = 5, 
  SxrBeamlineIpimb7 = 6, SxrBeamlineIpimb8 = 7, SxrBeamlineIpimb9 = 8, 
  SxrBeamlineIpimb10 = 9, SxrBeamlineIpimb11 = 10, SxrBeamlineIpimb12 = 11,
  SxrBeamlineIpimb13 = 12, SxrBeamlineIpimb14 = 13, SxrBeamlineIpimb15 = 14, 
  SxrBeamlineIpimb16 = 15,
  SxrEndstationIpimb1 = 16, SxrEndstationIpimb2 = 17, SxrEndstationIpimb3 = 18, 
  SxrEndstationIpimb4 = 19, SxrEndstationIpimb5 = 20, SxrEndstationIpimb6 = 21, 
  SxrEndstationIpimb7 = 22, SxrEndstationIpimb8 = 23, SxrEndstationIpimb9 = 24, 
  SxrEndstationIpimb10 = 25, SxrEndstationIpimb11 = 26, SxrEndstationIpimb12 = 27,
  SxrEndstationIpimb13 = 28, SxrEndstationIpimb14 = 29, SxrEndstationIpimb15 = 30, 
  SxrEndstationIpimb16 = 31,
  XppSb1Ipm = 0, XppSb1Pim = 1, XppMonPim = 2, XppSb2Ipm = 3,
  XppSb3Ipm = 4, XppSb3Pim = 5, XppSb4Pim = 6, NumIpimbDetector = 32
}
enum  	PnCcdDetector { PnCcd0 = 0, PnCcd1 = 1, NumPnCcdDetector = 2 }
enum  	EncoderDetector { SxrBeamlineEncoder1 = 0, NumEncoderDetector = 1 }

Functions

Time functions and file name

int 	getTime (int &seconds, int &nanoSeconds)
int 	getLocalTime (const char *&time)
int 	getFiducials (unsigned &fiducials)
const char * 	getInputName ()
const char * 	getFileName ()

Configuration retrieval functions:

int 	getAcqConfig (AcqDetector det, int &numChannels, int &numSamples, double &sampleInterval)
int 	getFrameConfig (FrameDetector det)
int 	getPrincetonConfig (Pds::DetInfo::Detector det, int iDevId, 
                            int &width, int &height, 
                            int &orgX, int &orgY, 
                            int &binX, int &binY)
int 	getIpimbConfig (Pds::DetInfo::Detector det, int iDevId, uint64_t &serialID, 
                        int &chargeAmpRange0, int &chargeAmpRange1, 
                        int &chargeAmpRange2, int &chargeAmpRange3)
int 	getEncoderConfig (Pds::DetInfo::Detector det, int iDevId)
int 	getFccdConfig (FrameDetector det, uint16_t &outputMode, 
                       bool &ccdEnable, bool &focusMode, uint32_t &exposureTime, 
                       float &dacVoltage1, float &dacVoltage2, float &dacVoltage3, 
                       float &dacVoltage4, float &dacVoltage5, float &dacVoltage6, 
                       float &dacVoltage7, float &dacVoltage8, float &dacVoltage9, 
                       float &dacVoltage10, float &dacVoltage11, float &dacVoltage12, 
                       float &dacVoltage13, float &dacVoltage14, float &dacVoltage15, 
                       float &dacVoltage16, float &dacVoltage17, 
                       uint16_t &waveform0, uint16_t &waveform1, uint16_t &waveform2, 
                       uint16_t &waveform3, uint16_t &waveform4, uint16_t &waveform5, 
                       uint16_t &waveform6, uint16_t &waveform7, uint16_t &waveform8, 
                       uint16_t &waveform9, uint16_t &waveform10, uint16_t &waveform11, 
                       uint16_t &waveform12, uint16_t &waveform13, uint16_t &waveform14)
int 	getDiodeFexConfig (Pds::DetInfo::Detector det, int iDevId, float *base, float *scale)
int 	getIpmFexConfig (Pds::DetInfo::Detector det, int iDevId, 
                        float *base0, float *scale0, float *base1, float *scale1, 
                        float *base2, float *scale2, float *base3, float *scale3, 
                        float &xscale, float &yscale)
int 	getCspadConfig (Pds::DetInfo::Detector det, unsigned &quadMask, unsigned &asicMask)
int 	getCspadConfig (Pds::DetInfo::Detector det, Pds::CsPad::ConfigV1 &cfg)

L1Accept (event/shot) Data retrieval functions

int 	getAcqValue (AcqDetector det, int channel, double *&time, double *&voltage)
int 	getAcqValue (AcqDetector det, int channel, double *&time, double *&voltage, double &trigtime)
int 	getFrameValue (FrameDetector det, int &frameWidth, int &frameHeight, unsigned short *&image)
int 	getPrincetonValue (Pds::DetInfo::Detector det, int iDevId, unsigned short *&image)
int 	getPrincetonTemperature (Pds::DetInfo::Detector det, int iDevId, float &temperature)
int 	getIpimbVolts (Pds::DetInfo::Detector det, int iDevId, float &channel0, float &channel1, float &channel2, float &channel3)
int 	getFeeGasDet (double *shotEnergy)
int 	getEBeam (double &charge, double &energy, double &posx, double &posy, double &angx, double &angy)
int 	getEBeam (double &charge, double &energy, double &posx, double &posy, double &angx, double &angy, double &pkcurr)
int 	getPhaseCavity (double &fitTime1, double &fitTime2, double &charge1, double &charge2)
int 	getPvInt (const char *pvName, int &value)
int 	getPvFloat (const char *pvName, float &value)
int 	getPvString (const char *pvName, char *&value)
int 	getPnCcdValue (int deviceId, unsigned char *&image, int &width, int &height)
int 	getEvrDataNumber ()
int 	getEvrData (int id, unsigned int &eventCode, unsigned int &fiducial, unsigned int &timeStamp)
int 	getEncoderCount (Pds::DetInfo::Detector det, int iDevId, int &encoderCount)
int 	getDiodeFexValue (Pds::DetInfo::Detector det, int iDevId, float &value)
int 	getIpmFexValue (Pds::DetInfo::Detector det, int iDevId, float *channels, float &sum, float &xpos, float &ypos)
int 	getCspadQuad (Pds::DetInfo::Detector det, unsigned quad, const uint16_t *&pixels)
int 	getCspadQuad (Pds::DetInfo::Detector det, unsigned quad, const Pds::CsPad::ElementV1 *&data)

Control data retrieval functions

int 	getControlPvNumber ()
int 	getControlPvName (int pvId, const char *&pvName, int &arrayIndex)
int 	getControlValue (const char *pvName, int arrayIndex, double &value)
int 	getMonitorPvNumber ()
int 	getMonitorPvName (int pvId, const char *&pvName, int &arrayIndex)
int 	getMonitorValue (const char *pvName, int arrayIndex, double &hilimit, double &lolimit)

Advanced interface

int 	getEpicsPvNumber ()
int 	getEpicsPvConfig (int iPvId, const char *&sPvName, int &iType, int &iNumElements)
int 	getEpicsPvValue (int pvId, const void *&value, int &dbrype, struct tm &tmTimeStamp, int &nanoSec)
void 	fillConstFrac (double *t, double *v, unsigned numSamples, float baseline, float thresh, TH1 *hist)
void 	fillConstFrac (double *t, double *v, unsigned numSamples, float baseline, float thresh, double *edge, int &n, int maxhits)
  • No labels