/[PAMELA software]/quicklook/dataToXML/Data/compilationInfo/src/INFN/TOF_TimeOfFlight_INFN.c
ViewVC logotype

Annotation of /quicklook/dataToXML/Data/compilationInfo/src/INFN/TOF_TimeOfFlight_INFN.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Tue Apr 25 09:00:20 2006 UTC (19 years, 2 months ago) by kusanagi
Branch: MAIN
CVS Tags: dataToXML1_02/01, dataToXML1_02/00, dataToXML1_03/00, dataToXML1_03/01, dataToXML1_00/00, firstRelease, dataToXML1_01/00, dataToXML1_03_02, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
These program extract in an XML format the info contained into the ROOT files generated by YODA from the PAMELA data. To visualize the XML files in a more human readable format a collection of XSL files are given in the Data subfolder.

1 kusanagi 1.1 /****************************************************************************
2     * F i l e D a t a
3     * $Id: TOF_TimeOfFlight_INFN.c,v 1.18 2005/03/20 18:26:47 sebastiani Exp $
4     * $Revision: 1.18 $
5     * $Date: 2005/03/20 18:26:47 $
6     * $RCSfile: TOF_TimeOfFlight_INFN.c,v $
7     *
8     ****************************************************************************
9     * S W D e v e l o p m e n t E n v i r o n m e n t
10     *
11     * $Author: sebastiani $
12     * :
13     ****************************************************************************
14     * U p d a t i n g
15    
16     * $Log: TOF_TimeOfFlight_INFN.c,v $
17     * Revision 1.18 2005/03/20 18:26:47 sebastiani
18     * *** empty log message ***
19     *
20     * Revision 1.17 2005/02/19 10:19:39 sebastiani
21     * ALM_S4_CALIB_00_HARD,ALM_S4_CALIB_00_SOFT,ALM_S4_128TRIGGER_0 added
22     *
23     * Revision 1.16 2005/01/26 18:46:48 sebastiani
24     * new bug fixes for WS
25     *
26     * Revision 1.15 2005/01/10 14:02:13 faber
27     * TRG,AC_1,AC_2,TOF Error Handler reviewed
28     *
29     * Revision 1.14 2004/11/19 15:41:50 sebastiani
30     * *** empty log message ***
31     *
32     * Revision 1.13 2004/11/19 15:14:52 sebastiani
33     * PRH_EXTERN_{VAR,ARR,TABLE} removed and put them on the autogenerated parameter heeader file
34     *
35     * Revision 1.12 2004/09/17 15:52:00 faber
36     * fix command queue Cmd2Fe/Fe2Daq right invocation for Test funcion inf TOF and TRG
37     *
38     * Revision 1.11 2004/09/17 15:01:00 faber
39     * LU_INFN_LOG flags fixing
40     *
41     * Revision 1.10 2004/09/13 14:16:53 faber
42     * ErrorHandler for TOF/TRG + Test function TOF/TRG
43     *
44     * Revision 1.9 2004/08/31 09:08:35 sebastiani
45     * fix warning
46     *
47     * Revision 1.8 2004/08/27 13:30:39 alfarano
48     * cvs header
49     *
50     * Revision 1.1 2003/10/03 16:12:26 faber
51     * *** empty log message ***
52     *
53     *
54     *****************************************************************************/
55     /*============================= Include File ================================*/
56    
57    
58     #include <src/INFN/LU_SourceFileID_INFN.h>
59     #define __FILEID__ _TOF_TimeOfFlight_INFN__c
60    
61     #include <src/INFN/PRH_ParamHandler_INFN.h>
62     #include <src/INFN/LU_LogUtility_INFN.h>
63     #include <src/INFN/PRH_ParamHandler_INFN_auto.h>
64     LU_DECL_MASK();
65    
66     #include <src/INFN/DAQ_IDAQ_INFN.h>
67     #include <src/INFN/CM_Common_INFN.h>
68     #include <src/INFN/KHB_Driver_INFN.h>
69     #include <src/INFN/TOF_TimeOfFlight_INFN.h>
70    
71     #include <src/INFN/CH_CommandHandler_INFN.h>
72     #include <src/INFN/HK_Manager_INFN.h>
73     #include <src/INFN/HB_HKBuffer_INFN.h>
74     #include <src/INFN/ALM_Alarm_INFN.h>
75     #include <src/INFN/MH_ModeHandler_INFN.h>
76    
77     /*============================ Global define ================================*/
78    
79     #define _LU_EXIT_IFERROR(status) do\
80     {\
81     if ((status) != CM_RC_SUCCESSFUL)\
82     {\
83     /* HK_UpdateKHBMaskRegister(KHB_MASK_ALL,KHB_PRESET); */ \
84     // TOF_STATUS = 0; \
85     LU_INFN_LOG(LU_CRITICAL|LU_HA,LU_MASK(__FILEID__),__FILEID__,__LINE__,status);\
86     return(status);\
87     }\
88     } while (0)
89    
90    
91     /*============================== global types ==============================*/
92    
93     //#define TOF_FE_RESET_BASE_ID CH_TOF_FE_RESET_0
94    
95     DAQ_DECLBUF(TOF_buf_data,SM_DAQPKTSIZE);
96    
97     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_1;
98     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_2;
99     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_3;
100     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_4;
101     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_5;
102     static DAQ_CMD_BUF TOF_WRITE_PMT_THR_6;
103     // static UINT32 TOF_STATUS;
104    
105     void TOF_Init_TOF_Buffer()
106     {
107     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_1);
108     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_2);
109     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_3);
110     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_4);
111     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_5);
112     DAQ_INIT_BUF_FROM_PARAMBUF(TOF_WRITE_PMT_THR_6);
113     }
114    
115     status_code TOF_Init()
116     {
117     DAQ_BUFFER_INIT(TOF_buf_data);
118    
119     TOF_Init_TOF_Buffer();
120    
121     TOF_Init_ATOETO();
122    
123     return CM_RC_SUCCESSFUL;
124     }
125    
126     /*
127     status_code TOF_GetTofStatus(UINT32 *status)
128     {
129     *status = TOF_STATUS;
130     return CM_RC_SUCCESSFUL;
131     }
132     */
133     status_code TOF_Init_ATOETO()
134     {
135     int i;
136    
137     // CH_SetAtoEto(CH_TOF_WRITE_MASK,0,1);
138     CH_SetAtoEto(CH_TOF_ALARM_READ,1,2);
139     // CH_SetAtoEto(CH_TOF_ROW_MODE,0,1);
140     // CH_SetAtoEto(CH_TOF_DSP_MODE,0,1);
141     CH_SetAtoEto(CH_TOF_FE_CLEAR,0,1);
142    
143     // for(i=0; i < 7; i++)
144     // CH_SetAtoEto(TOF_FE_RESET_BASE_ID+i,0,1);
145    
146     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_1,0,1);
147     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_2,0,1);
148     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_3,0,1);
149     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_4,0,1);
150     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_5,0,1);
151     CH_SetAtoEto(CH_TOF_WRITE_PMT_THR_H_6,0,1);
152    
153     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_1,1,2);
154     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_2,1,2);
155     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_3,1,2);
156     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_4,1,2);
157     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_5,1,2);
158     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_6,1,2);
159     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_7,1,2);
160     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_8,1,2);
161     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_9,1,2);
162     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_10,1,2);
163     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_11,1,2);
164     CH_SetAtoEto(CH_TOF_FE_TDC_ACQ_12,1,2);
165    
166     CH_SetAtoEto(CH_TOF_FE_RESET_1,0,1);
167     CH_SetAtoEto(CH_TOF_FE_RESET_2,0,1);
168     CH_SetAtoEto(CH_TOF_FE_RESET_3,0,1);
169     CH_SetAtoEto(CH_TOF_FE_RESET_4,0,1);
170     CH_SetAtoEto(CH_TOF_FE_RESET_5,0,1);
171     CH_SetAtoEto(CH_TOF_FE_RESET_6,0,1);
172    
173     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_1,0,1);
174     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_2,0,1);
175     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_3,0,1);
176     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_4,0,1);
177     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_5,0,1);
178     CH_PARAMBUF_SET_ATO_ETO(TOF_WRITE_PMT_THR_6,0,1);
179     }
180    
181     status_code TOF_Initialization()
182     {
183     status_code status;
184     DAQ_CMD_BUF* auto_buf;
185     UINT16 alarm_reg;
186    
187     // TOF_STATUS = 1;
188    
189     DAQ_Format_CMD_Empty(&TOF_buf_data);
190     status = DAQ_ResetPIF(DAQ_DEFAULT_ETO_TICS,DAQ_MAX_DTO_TICS,SM_DAQSETUP,HB_PKTTYPE_TOF_INIT);
191    
192     CH_GetBuf(CH_TOF_FE_CLEAR,&auto_buf );
193     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_TOF);
194    
195     CH_GetBuf(CH_DUMMY_COMMAND,&auto_buf);
196     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
197    
198     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_1,DAQ_FE_TOF);
199     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
200     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_2,DAQ_FE_TOF);
201     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
202     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_3,DAQ_FE_TOF);
203     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
204     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_4,DAQ_FE_TOF);
205     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
206     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_5,DAQ_FE_TOF);
207     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
208     DAQ_Format_Cmd2Fe(&TOF_buf_data,&TOF_WRITE_PMT_THR_6,DAQ_FE_TOF);
209     DAQ_Format_Cmd2Fe(&TOF_buf_data,auto_buf,DAQ_FE_SPARE);
210    
211     status = DAQ_StoreCmdQueue2PIF(SM_CALEXP0,&TOF_buf_data);
212     LU_EXIT_IFERROR(status);
213     status = DAQ_SendCmdQueue2CMDIF(SM_CALEXP0);
214     LU_EXIT_IFERROR(status);
215    
216     // TOF_STATUS = 0;
217    
218     return status;
219     }
220    
221    
222     status_code TOF_Test_Plan(CH_COMMANDS first,
223     CH_COMMANDS loop_first,CH_COMMANDS loop_second) {
224     status_code s;
225     DAQ_CMD_BUF *gmt,*tfc;
226     DAQ_CMD_BUF *p_first;
227     DAQ_CMD_BUF *p_loop_first;
228     DAQ_CMD_BUF *p_loop_second;
229     DAQ_FE fe_tb = DAQ_SELECT_TRIG(PRH_VAR_TB_LINK);
230     int i;
231    
232     CH_GetBuf(CH_TB_GIVE_ME_TRIGGER,&gmt);
233     CH_GetBuf(CH_TOF_FE_CLEAR,&tfc);
234     CH_GetBuf(first,&p_first);
235     CH_GetBuf(loop_first,&p_loop_first);
236     CH_GetBuf(loop_second,&p_loop_second);
237    
238     s=DAQ_Format_Cmd2Fe(&TOF_buf_data,p_first,DAQ_FE_TOF);
239    
240     LU_EXIT_IFERROR(s);
241    
242     for(i=0;i<9;i++) {
243     s=DAQ_Format_Cmd2Fe(&TOF_buf_data,gmt,fe_tb);
244     LU_EXIT_IFERROR(s);
245     s=DAQ_Format_Fe2Daq(&TOF_buf_data,p_loop_first,DAQ_FE_TOF);
246     LU_EXIT_IFERROR(s);
247     s=DAQ_Format_Fe2Daq(&TOF_buf_data,p_loop_second,DAQ_FE_TOF);
248     LU_EXIT_IFERROR(s);
249     s =DAQ_Format_Cmd2Fe(&TOF_buf_data,tfc,DAQ_FE_TOF);
250     LU_EXIT_IFERROR(s);
251     }
252     return s;
253     }
254    
255     #if 0
256     status_code TOF_Test() {
257     status_code s;
258     DAQ_CMD_BUF *cmd;
259    
260     DAQ_Format_CMD_Empty(&TOF_buf_data);
261     s = DAQ_ResetPIF(DAQ_DEFAULT_ETO_TICS,DAQ_DEFAULT_DTO_TICS,
262     SM_DAQSETUP,HB_PKTTYPE_TEST_TOF);
263     LU_EXIT_IFERROR(s);
264    
265     CH_GetBuf(CH_TOF_FE_CLEAR,&cmd);
266     s=DAQ_Format_Cmd2Fe(&TOF_buf_data,cmd,DAQ_FE_TOF);
267     LU_EXIT_IFERROR(s);
268    
269     CH_GetBuf(CH_DUMMY_COMMAND,&cmd);
270     s=DAQ_Format_Cmd2Fe(&TOF_buf_data,cmd,DAQ_FE_SPARE);
271     LU_EXIT_IFERROR(s);
272    
273     if(PRH_ARR_TOF_PLAN[0])
274     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_1,CH_TOF_FE_TDC_ACQ_1,CH_TOF_FE_TDC_ACQ_2);
275     LU_EXIT_IFERROR(s);
276    
277     if(PRH_ARR_TOF_PLAN[1])
278     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_2,CH_TOF_FE_TDC_ACQ_3,CH_TOF_FE_TDC_ACQ_4);
279     LU_EXIT_IFERROR(s);
280    
281     if(PRH_ARR_TOF_PLAN[2])
282     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_3,CH_TOF_FE_TDC_ACQ_5,CH_TOF_FE_TDC_ACQ_6);
283     LU_EXIT_IFERROR(s);
284    
285     if(PRH_ARR_TOF_PLAN[3])
286     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_4,CH_TOF_FE_TDC_ACQ_7,CH_TOF_FE_TDC_ACQ_8);
287     LU_EXIT_IFERROR(s);
288    
289     if(PRH_ARR_TOF_PLAN[4])
290     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_5,CH_TOF_FE_TDC_ACQ_9,CH_TOF_FE_TDC_ACQ_10);
291     LU_EXIT_IFERROR(s);
292    
293     if(PRH_ARR_TOF_PLAN[5])
294     s = TOF_Test_Plan(CH_TOF_WRITE_PMT_THR_H_6,CH_TOF_FE_TDC_ACQ_11,CH_TOF_FE_TDC_ACQ_12);
295     LU_EXIT_IFERROR(s);
296    
297     s = DAQ_StoreCmdQueue2PIF(SM_CALEXP2,&TOF_buf_data);
298     LU_EXIT_IFERROR(s);
299    
300     s = DAQ_SendCmd2PIFWaitDAQReply(SM_CALEXP2,
301     DAQ_STORE_MM,NULL,DAQ_NO_STORE_RAM);
302     return s;
303    
304     }
305     #endif
306    
307    
308     status_code TOF_Error_Handler()
309     {
310     status_code status = CM_RC_SUCCESSFUL;
311     DAQ_CMD_BUF* auto_buf;
312     UINT16 khb_sr;
313    
314     DAQ_Format_CMD_Empty(&TOF_buf_data);
315    
316     CH_GetBuf(CH_TOF_ALARM_READ,&auto_buf);
317     DAQ_Format_Fe2Daq(&TOF_buf_data,auto_buf,DAQ_FE_TOF);
318    
319     DAQ_StoreCmdQueue2PIF(SM_CALEXP3,&TOF_buf_data);
320    
321     status = DAQ_SendCmd2PIFWaitDAQReply(SM_CALEXP3,DAQ_STORE_MM,&TOF_buf_data,DAQ_STORE_RAM);
322    
323     if(status != CM_RC_SUCCESSFUL || TOF_buf_data.len < SM_PKTHEADER_LEN+3) {
324     status=CM_RC_DO_RESET_IF_ALM;
325     }else{
326     if( ( (TOF_buf_data.buf[SM_PKTHEADER_LEN] & 0x7F) != 0) ||
327     ( (TOF_buf_data.buf[SM_PKTHEADER_LEN+1] & 0xFF) != 0)
328     ) {
329     status=HK_ReadKHBStatusRegister(&khb_sr);
330    
331    
332     if((khb_sr & (KHB_STS_ALARM_IDAQ | KHB_STS_ALARM_TOF))
333     || status!=CM_RC_SUCCESSFUL)
334     return CM_RC_DO_POWER_OFF_ON;
335     if( PRH_VAR_GOM_DURING_ALARM == MH_GOM_INITIALIZATION ||
336     PRH_VAR_GOM_DURING_ALARM == MH_GOM_ACQUISITION ) {
337     return CM_RC_DO_RESET_IF_ALM;
338     }
339    
340     }
341     }
342    
343     return status;
344     }
345    
346    
347    

  ViewVC Help
Powered by ViewVC 1.1.23