1 #ifndef MUONDETECTOR_CARD
2 #define MUONDETECTOR_CARD
15 int spec[],
int ndet,
int nperiods,
int dae1persize,
DAEstatus& status);
17 int npos[],
int spec[],
int spec_step[],
int nblocks,
18 int nperiods,
int dae1persize,
DAEstatus& status);
int calculateModuleAndPosition(int dae2_spec, int &modn, int &mpos, DAEstatus &status)
int getNTimeChannels(isisU32_t *ntc, DAEstatus &status)
int getTimeChannels32(isisU32_t *tcb, int ntc, DAEstatus &status)
int setTimeChannels32(isisU32_t *tcb, int ntc, DAEstatus &status)
virtual int resetCardState(DAEstatus &status)
This emulates Kelvin Gascoyne's Clear.
int programPOSLUT(int cards[], int dims[], int pos_start[], int npos[], int spec[], int spec_step[], int nblocks, int nperiods, int dae1persize, DAEstatus &status)
int changePeriod(int period, DAEstatus &status)
int m_detector_inputs_per_card
int readPOSLUT(DAEstatus &status)
int clockPulsesToMuonStepSize(int clock_pulses, DAEstatus &status)
int programDAE1POSLUT(int crat[], int modn[], int mpos[], int spec[], int ndet, int nperiods, int dae1persize, DAEstatus &status)
int muonStepSizeToClockPulses(int step_size, DAEstatus &status)
bool isPowerOf2(int value)
is value expressable as 2^n for some integer n
void printStatus(std::ostream &os, DAEstatus &status)
int setTimeChannels(isisU32_t *tcb, int ntc, DAEstatus &status)
set of ntc+1 time channel boundaries in clock pulses (one pulse = 0.5ns)
int getTimeChannels(isisU32_t *tcb, int ntc, DAEstatus &status)
int m_dim_step
are dims numbered 0,1,2,3... or 0,2,4,6... etc.
int calculateSpectrum(int &dae2_spec, int modn, int mpos, DAEstatus &status)
int m_num_dims
totoal number of dims, not the highest dim number
MuonDetectorCard(int position, ISISVME *vme, int *specmap_array, int specmap_len, DAEstatus &status)