| 1 |
#include "PamVMCDigRunHeader.h" |
| 2 |
|
| 3 |
ClassImp(PamVMCDigRunHeader) |
| 4 |
#include "CRC.h" |
| 5 |
void PamVMCDigRunHeader:: DigitizeRunHeader(){ |
| 6 |
|
| 7 |
UChar_t buffRH[37]; |
| 8 |
|
| 9 |
// header: 16 bytes |
| 10 |
DigitizePSCU(37,0x20); |
| 11 |
|
| 12 |
// time stamp (uint32): 0x82569c97 |
| 13 |
buffRH[0] = 0x82; //17 |
| 14 |
buffRH[1] = 0x56; |
| 15 |
buffRH[2] = 0x9C; |
| 16 |
buffRH[3] = 0x97; //20 |
| 17 |
|
| 18 |
// acq_setting_mode (uint8) |
| 19 |
buffRH[4] = 0x02; |
| 20 |
|
| 21 |
// obt (uint32) |
| 22 |
ULong64_t obt = fraw->GetOBT() + 30LL; |
| 23 |
while ( obt > 4294967295LL ) |
| 24 |
obt -= 4294967295LL; |
| 25 |
UInt_t Uobt = UInt_t(obt); |
| 26 |
fraw->SetOBT(Uobt); |
| 27 |
|
| 28 |
|
| 29 |
buffRH[5] = (UChar_t)(Uobt >> 24); //22 |
| 30 |
buffRH[6] = (UChar_t)(Uobt >> 16); |
| 31 |
buffRH[7] = (UChar_t)(Uobt >> 8); |
| 32 |
buffRH[8] = (UChar_t)Uobt; //25 |
| 33 |
|
| 34 |
// last time_sync_info (uint32) (from file 000_001_00110) |
| 35 |
buffRH[9] = 0x00; //26 |
| 36 |
buffRH[10] = 0x08; |
| 37 |
buffRH[11] = 0x68; |
| 38 |
buffRH[12] = 0xEF; //29 |
| 39 |
|
| 40 |
// fav. working schedule (uint8) |
| 41 |
buffRH[13] = 0x00; |
| 42 |
|
| 43 |
// eff. working schedule (uint8) |
| 44 |
buffRH[14] = 0x00;//0; |
| 45 |
|
| 46 |
// trigger_mode_A (uint32) |
| 47 |
buffRH[15] = 0x00; //32 |
| 48 |
buffRH[16] = 0x00; |
| 49 |
buffRH[17] = 0x00; |
| 50 |
buffRH[18] = 0x01; //35 |
| 51 |
|
| 52 |
// trigger_mode_B (uint32) |
| 53 |
buffRH[19] = 0x00; //36 |
| 54 |
buffRH[20] = 0x00; |
| 55 |
buffRH[21] = 0x00; |
| 56 |
buffRH[22] = 0x03; //39 |
| 57 |
|
| 58 |
// acq_after_calib (0,1) (uint8) |
| 59 |
buffRH[23] = 0x00; |
| 60 |
|
| 61 |
// trk_calib_used (uint32) |
| 62 |
buffRH[24] = 0x00; //41 |
| 63 |
buffRH[25] = 0x00; |
| 64 |
buffRH[26] = 0x00; |
| 65 |
buffRH[27] = 0x68; //44 |
| 66 |
|
| 67 |
// acq_build_info (4 zero bits + 28 1's) (uint32) |
| 68 |
buffRH[28] = 0x3F; //45 |
| 69 |
buffRH[29] = 0xFF; |
| 70 |
buffRH[30] = 0xFF; |
| 71 |
buffRH[31] = 0xFF; //48 |
| 72 |
|
| 73 |
// acq_var_info (11 bits) (uint16) |
| 74 |
buffRH[32] = 0x23; |
| 75 |
buffRH[33] = 0x7F; |
| 76 |
|
| 77 |
// cal_dsp_mask (uint8) |
| 78 |
buffRH[34] = 0x00; //51 [50] |
| 79 |
// |
| 80 |
|
| 81 |
|
| 82 |
UShort_t crcRH = (UShort_t)CM_Compute_CRC16((UINT16)0, (BYTE*)&buffRH, (UINT32)(35)); |
| 83 |
|
| 84 |
buffRH[35] = ((UChar_t)(crcRH >> 8)); //52 |
| 85 |
buffRH[36] = ((UChar_t)crcRH); //53 [52] |
| 86 |
|
| 87 |
|
| 88 |
for(Int_t i=0; i<37; i++) fDataPSCU.push_back(buffRH[i]); |
| 89 |
|
| 90 |
} |
| 91 |
|
| 92 |
|
| 93 |
void PamVMCDigRunHeader::WriteRunHeader(){ |
| 94 |
|
| 95 |
fraw->WritePSCU(&fDataPSCU); |
| 96 |
} |
| 97 |
|