| 1 | #ifndef RUNHEADER_EVENT_H | 
| 2 | #define RUNHEADER_EVENT_H | 
| 3 |  | 
| 4 | #include "SubPacket.h" | 
| 5 |  | 
| 6 | namespace pamela { | 
| 7 | /** | 
| 8 | * RunHeaderEvent data Wrapper. | 
| 9 | * The RunHeaderEvent represent a RunHeader packet generated by the PAMELA CPU software. | 
| 10 | * One RunHeader packet is expected before each Run session. | 
| 11 | */ | 
| 12 | class RunHeaderEvent: public pamela::SubPacket { | 
| 13 | private: | 
| 14 |  | 
| 15 | public: | 
| 16 | RunHeaderEvent(void); | 
| 17 |  | 
| 18 | /** | 
| 19 | * The Compilation Timestamp of the PAMELA CPU software. | 
| 20 | */ | 
| 21 | UINT32  COMPILATIONTIMESTAMP; | 
| 22 |  | 
| 23 | /** | 
| 24 | * The Acquisition setting mode for the to-be-started run. | 
| 25 | */ | 
| 26 | UINT8   RM_ACQ_SETTING_MODE; | 
| 27 |  | 
| 28 | /** | 
| 29 | * The last On-Board-Time on which has been received the LAST_TIME_SYNC_INFO. | 
| 30 | * This parameter is the copy of On-Board-Time received in the last Timesync MCMD. | 
| 31 | * If zero means TimeSync mcmd nerver come. | 
| 32 | */ | 
| 33 | UINT32  OBT_TIME_SYNC; | 
| 34 |  | 
| 35 | /** | 
| 36 | * The last received TimeSync. | 
| 37 | * This parameter is the copy of TimeSync received in the last Timesync MCMD. | 
| 38 | * If zero means TimeSync mcmd nerver come. | 
| 39 | */ | 
| 40 | UINT32  LAST_TIME_SYNC_INFO; | 
| 41 |  | 
| 42 | /** | 
| 43 | * The Favourite Working Schedule. | 
| 44 | * Description:               <BR> | 
| 45 | */ | 
| 46 | UINT8   FAVOURITE_WORKING_SCHEDULE; | 
| 47 |  | 
| 48 | /** | 
| 49 | * The Effective Working Schedule. | 
| 50 | */ | 
| 51 | UINT8   EFFECTIVE_WORKING_SCHEDULE; | 
| 52 |  | 
| 53 | /** | 
| 54 | * The Acquisition mode for the trigger mode in A mode. | 
| 55 | * See: sec:Trigger-acquisition-modes. | 
| 56 | */ | 
| 57 | UINT32  PRH_VAR_TRIGGER_MODE_A; | 
| 58 |  | 
| 59 | /** | 
| 60 | * The Acquisition mode for the trigger mode in B mode. | 
| 61 | * See sub:working-schedule-3 | 
| 62 | */ | 
| 63 | UINT32  PRH_VAR_TRIGGER_MODE_B; | 
| 64 |  | 
| 65 | /** | 
| 66 | * This flag Define if this is the first run after a calibration. | 
| 67 | * Description:               <BR> | 
| 68 | * 0: is NOT the first run.   <BR> | 
| 69 | * 1: is the first run.       <BR> | 
| 70 | */ | 
| 71 | UINT8   RM_ACQ_AFTER_CALIB; | 
| 72 |  | 
| 73 | /** | 
| 74 | * This flag Define if this is the first run after a calibration. | 
| 75 | * See sub:trk_calib_used. | 
| 76 | */ | 
| 77 | UINT32  TRK_CALIB_USED; | 
| 78 |  | 
| 79 | /** | 
| 80 | * Provide information about what FEs commands are assembled inside the acquisition command queue for this run. | 
| 81 | * It is a bitmask whose mean is defined by the constants defined in CM_ACQBI (see sub:RM_ACQBI). | 
| 82 | * In case of TRIGGER_II mode, it does count, see sec:Trigger-II-Level. <br> | 
| 83 | * Each bit says wheather a certain part of the command queue had been | 
| 84 | * build into the command aquisition queue. | 
| 85 | * Bit in LSB corresponds  to low-numerical values of the following enum C-type <br> | 
| 86 | * RM_ACQBI_TOF_PLAN_1 is bit (1<<0) <br> | 
| 87 | * RM_ACQBI_TOF_PLAN_2 is bit (1<<1) <br> | 
| 88 | * etc... | 
| 89 | * Note that RM_ACQBI_XXX_BASE and   RM_ACQBI_XXX_1 is the same bit. | 
| 90 | * MSB not used are spere (zeroed)  <br> | 
| 91 | *   typedef enum {                 <br> | 
| 92 | *     RM_ACQBI_TOF_PLAN_1,         <br> | 
| 93 | *     RM_ACQBI_TOF_PLAN_2,         <br> | 
| 94 | *     RM_ACQBI_TOF_PLAN_3,         <br> | 
| 95 | *     RM_ACQBI_TOF_PLAN_4,         <br> | 
| 96 | *     RM_ACQBI_TOF_PLAN_5,         <br> | 
| 97 | *     RM_ACQBI_TOF_PLAN_6,         <br> | 
| 98 | *     RM_ACQBI_AC_1,               <br> | 
| 99 | *     RM_ACQBI_AC_2,               <br> | 
| 100 | *     RM_ACQBI_CAL_BASE,           <br> | 
| 101 | *     RM_ACQBI_CAL_1=RM_ACQBI_CAL_BASE,    <br> | 
| 102 | *     RM_ACQBI_CAL_2,              <br> | 
| 103 | *     RM_ACQBI_CAL_3,              <br> | 
| 104 | *     RM_ACQBI_CAL_4,              <br> | 
| 105 | *     RM_ACQBI_TRK_BASE,           <br> | 
| 106 | *     RM_ACQBI_TRK_1_1=RM_ACQBI_TRK_BASE,  <br> | 
| 107 | *     RM_ACQBI_TRK_1_2,    <br> | 
| 108 | *     RM_ACQBI_TRK_1_3,    <br> | 
| 109 | *     RM_ACQBI_TRK_1_4,    <br> | 
| 110 | *     RM_ACQBI_TRK_1_5,    <br> | 
| 111 | *     RM_ACQBI_TRK_1_6,    <br> | 
| 112 | *     RM_ACQBI_TRK_2_1,    <br> | 
| 113 | *     RM_ACQBI_TRK_2_2,    <br> | 
| 114 | *     RM_ACQBI_TRK_2_3,    <br> | 
| 115 | *     RM_ACQBI_TRK_2_4,    <br> | 
| 116 | *     RM_ACQBI_TRK_2_5,    <br> | 
| 117 | *     RM_ACQBI_TRK_2_6,    <br> | 
| 118 | *     RM_ACQBI_S4,         <br> | 
| 119 | *     RM_ACQBI_ND,         <br> | 
| 120 | *   } RM_ACQBI; | 
| 121 | */ | 
| 122 | UINT32  ACQ_BUILD_INFO; | 
| 123 |  | 
| 124 | /** | 
| 125 | * Provide informations about some variable value in the starting of the acquisition procedure. | 
| 126 | * See sub:trk_calib_used | 
| 127 | *  (PRH_VAR_TOF_OK     ? 1<<0  : 0 ) | | 
| 128 | *  (PRH_VAR_AC_1_OK    ? 1<<1  : 0 ) | | 
| 129 | *  (PRH_VAR_AC_2_OK    ? 1<<2  : 0 ) | | 
| 130 | *  (PRH_VAR_CAL_OK     ? 1<<3  : 0 ) | | 
| 131 | *  (PRH_VAR_TRK_OK     ? 1<<4  : 0 ) | | 
| 132 | *  (PRH_VAR_S4_OK      ? 1<<5  : 0 ) | | 
| 133 | *  (PRH_VAR_S4_WORKING ? 1<<6  : 0 ) | | 
| 134 | *  (PRH_VAR_S4_ATTEMPT ? 1<<7  : 0 ) | | 
| 135 | *  (PRH_VAR_ND_OK      ? 1<<8  : 0 ) | | 
| 136 | *  (RM_use_nd          ? 1<<9  : 0 ) | | 
| 137 | *  (PRH_VAR_ND_ATTEMPT ? 1<<10 : 0 ); | 
| 138 | */ | 
| 139 | UINT16  ACQ_VAR_INFO; | 
| 140 |  | 
| 141 | /** | 
| 142 | * Provide informations about the calorimter DSP Mask. | 
| 143 | * See sub:trk_calib_used | 
| 144 | */ | 
| 145 | UINT8   CAL_DSP_MASK; | 
| 146 | ClassDef(RunHeaderEvent, 3) | 
| 147 | }; | 
| 148 | } | 
| 149 |  | 
| 150 | #endif /* RUNHEADER_EVENT_H */ | 
| 151 |  |