1 |
mocchiut |
1.1 |
#ifndef l2tofcore_h |
2 |
|
|
#define l2tofcore_h |
3 |
|
|
#include <TSystem.h> |
4 |
|
|
#include <TSQLServer.h> |
5 |
|
|
|
6 |
pam-de |
1.5 |
|
7 |
|
|
/** |
8 |
|
|
* \brief Variables needed for ToF calculations: Raw data, calibration constants, etc... |
9 |
|
|
*/ |
10 |
|
|
|
11 |
mocchiut |
1.1 |
struct ToFInput { |
12 |
pam-de |
1.5 |
//! The alpha vector from the track fit |
13 |
|
|
Double_t al_pp[5]; |
14 |
|
|
//! The 24 k1 and k2 constants for S11-S31 |
15 |
|
|
Float_t k_s11s31[24][2]; |
16 |
|
|
//! The 24 k1 and k2 constants for S11-S32 |
17 |
mocchiut |
1.1 |
Float_t k_s11s32[24][2]; |
18 |
pam-de |
1.5 |
//! The 18 k1 and k2 constants for S12-S31 |
19 |
mocchiut |
1.1 |
Float_t k_s12s31[18][2]; |
20 |
pam-de |
1.5 |
//! The 18 k1 and k2 constants for S12-S32 |
21 |
mocchiut |
1.1 |
Float_t k_s12s32[18][2]; |
22 |
pam-de |
1.5 |
//! The 6 k1 and k2 constants for S21-S31 |
23 |
mocchiut |
1.1 |
Float_t k_S21S31[6][2]; |
24 |
pam-de |
1.5 |
//! The 6 k1 and k2 constants for S21-S32 |
25 |
mocchiut |
1.1 |
Float_t k_S21S32[6][2]; |
26 |
pam-de |
1.5 |
//! The 6 k1 and k2 constants for S22-S31 |
27 |
mocchiut |
1.1 |
Float_t k_S22S31[6][2]; |
28 |
pam-de |
1.5 |
//! The 6 k1 and k2 constants for S22-S32 |
29 |
mocchiut |
1.1 |
Float_t k_S22S32[6][2]; |
30 |
pam-de |
1.5 |
//! The 16 k1 and k2 constants for S11-S21 |
31 |
mocchiut |
1.1 |
Float_t k_s11s21[16][2]; |
32 |
pam-de |
1.5 |
//! The 16 k1 and k2 constants for S11-S22 |
33 |
mocchiut |
1.1 |
Float_t k_s11s22[16][2]; |
34 |
pam-de |
1.5 |
//! The 12 k1 and k2 constants for S12-S21 |
35 |
mocchiut |
1.1 |
Float_t k_s12s21[12][2]; |
36 |
pam-de |
1.5 |
//! The 12 k1 and k2 constants for S12-S22 |
37 |
mocchiut |
1.1 |
Float_t k_s12s22[12][2]; |
38 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S11 |
39 |
mocchiut |
1.1 |
Float_t adcx11[2][8][2]; |
40 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S12 |
41 |
mocchiut |
1.1 |
Float_t adcx12[2][6][2]; |
42 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S21 |
43 |
mocchiut |
1.1 |
Float_t adcx21[2][2][2]; |
44 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S22 |
45 |
mocchiut |
1.1 |
Float_t adcx22[2][2][2]; |
46 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S31 |
47 |
mocchiut |
1.1 |
Float_t adcx31[2][3][2]; |
48 |
pam-de |
1.5 |
//! parameters for the attenuation fit for S32 |
49 |
mocchiut |
1.1 |
Float_t adcx32[2][3][2]; |
50 |
pam-de |
1.5 |
//! constants for the time-walk for S11 |
51 |
mocchiut |
1.1 |
Float_t tw11[8][2]; |
52 |
pam-de |
1.5 |
//! constants for the time-walk for S12 |
53 |
mocchiut |
1.1 |
Float_t tw12[6][2]; |
54 |
pam-de |
1.5 |
//! constants for the time-walk for S21 |
55 |
mocchiut |
1.1 |
Float_t tw21[2][2]; |
56 |
pam-de |
1.5 |
//! constants for the time-walk for S22 |
57 |
mocchiut |
1.1 |
Float_t tw22[2][2]; |
58 |
pam-de |
1.5 |
//! constants for the time-walk for S31 |
59 |
mocchiut |
1.1 |
Float_t tw31[3][2]; |
60 |
pam-de |
1.5 |
//! constants for the time-walk for S32 |
61 |
mocchiut |
1.1 |
Float_t tw32[3][2]; |
62 |
pam-de |
1.5 |
//! constants to get the position from the timing for S11 |
63 |
mocchiut |
1.1 |
Float_t y_coor_lin11[2][8]; |
64 |
pam-de |
1.5 |
//! constants to get the position from the timing for S12 |
65 |
mocchiut |
1.1 |
Float_t y_coor_lin12[2][6]; |
66 |
pam-de |
1.5 |
//! constants to get the position from the timing for S21 |
67 |
mocchiut |
1.1 |
Float_t y_coor_lin21[2][2]; |
68 |
pam-de |
1.5 |
//! constants to get the position from the timing for S22 |
69 |
mocchiut |
1.1 |
Float_t y_coor_lin22[2][2]; |
70 |
pam-de |
1.5 |
//! constants to get the position from the timing for S31 |
71 |
mocchiut |
1.1 |
Float_t y_coor_lin31[2][3]; |
72 |
pam-de |
1.5 |
//! constants to get the position from the timing for S32 |
73 |
mocchiut |
1.1 |
Float_t y_coor_lin32[2][3]; |
74 |
pam-de |
1.5 |
//! raw ADC matrix 4x12 : 12 half-boards @ 4 channels |
75 |
mocchiut |
1.1 |
Int_t adc[12][4]; |
76 |
pam-de |
1.5 |
//! raw TDC matrix 4x12 : 12 half-boards @ 4 channels |
77 |
mocchiut |
1.1 |
Int_t tdc[12][4]; |
78 |
pam-de |
1.5 |
//! patterntrig contains trigger information |
79 |
mocchiut |
1.1 |
Int_t patterntrig[6]; |
80 |
|
|
Int_t ntrk; |
81 |
|
|
}; |
82 |
|
|
|
83 |
pam-de |
1.5 |
/** |
84 |
|
|
* \brief Internal output variables from ToF calculations: beta, etc... |
85 |
|
|
* |
86 |
|
|
* Look at ToFLevel2 class for the real Level2 ToF output |
87 |
|
|
*/ |
88 |
|
|
|
89 |
mocchiut |
1.1 |
struct ToFOutput { |
90 |
pam-de |
1.5 |
//! beta track dependend, 12 measurements for the 12 combinations, beta[13] is weighted mean |
91 |
mocchiut |
1.1 |
Float_t beta_a[13]; |
92 |
pam-de |
1.5 |
//! internal variable: beta ToF standalone, 12 measurements for the 12 combinations, beta[13] is weighted mean |
93 |
mocchiut |
1.1 |
Float_t betatof_a[13]; |
94 |
pam-de |
1.5 |
//! x-measurement using the TDC values and the calibration |
95 |
mocchiut |
1.1 |
Float_t xtofpos[3]; |
96 |
pam-de |
1.5 |
//! y-measurement using the TDC values and the calibration |
97 |
mocchiut |
1.1 |
Float_t ytofpos[3]; |
98 |
pam-de |
1.5 |
//! matrix 4x12 which contains the dEdx value for each PMT |
99 |
mocchiut |
1.1 |
Float_t adc_c[12][4]; |
100 |
pam-de |
1.5 |
//! internal variable: ToF standalone: matrix 4x12 which contains the dEdx value for each PMT |
101 |
mocchiut |
1.1 |
Float_t adctof_c[12][4]; |
102 |
pam-de |
1.5 |
//! matrix 4x12 which contains the time-walk corrected TDC value for each PMT |
103 |
mocchiut |
1.1 |
Float_t tdc_c[12][4]; |
104 |
pam-de |
1.5 |
//! internal variable: matrix is filled if beta is calculated |
105 |
mocchiut |
1.2 |
Int_t tofmask[12][4]; |
106 |
pam-de |
1.5 |
//! internal variable: number of the hitted paddle for each ToF layer from ToF standalone |
107 |
mocchiut |
1.2 |
Int_t tof_i_flag[6]; |
108 |
pam-de |
1.5 |
//! number of hitted paddle(s) from ToF standalone for each ToF layer: flag = flag + 2**(paddlenumber-1) |
109 |
mocchiut |
1.1 |
Int_t tof_j_flag[6]; |
110 |
pam-de |
1.5 |
//! internal variable: array flagging the artificial ToF standalone ADCs, "0" if normal ADC value |
111 |
mocchiut |
1.4 |
Int_t adcflagtof[12][4]; |
112 |
pam-de |
1.5 |
//! internal variable: array is always "0" since there are no artificial TDC values with ToF standalone |
113 |
mocchiut |
1.4 |
Int_t tdcflagtof[12][4]; |
114 |
pam-de |
1.5 |
//! array flagging the artificial track dependend ADCs, "0" if normal ADC value |
115 |
mocchiut |
1.4 |
Int_t adcflag[12][4]; |
116 |
pam-de |
1.5 |
//! array flagging the artificial track dependend TDCs, "0" if normal TDC value |
117 |
mocchiut |
1.4 |
Int_t tdcflag[12][4]; |
118 |
mocchiut |
1.1 |
}; |
119 |
|
|
|
120 |
mocchiut |
1.3 |
extern int ToFCore(UInt_t run, TFile *file, TSQLServer *dbc, Int_t ToFargc, char *ToFargv[]); |
121 |
mocchiut |
1.1 |
|
122 |
|
|
#endif |
123 |
pam-de |
1.5 |
|