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