| 1 |
#ifndef l2tofcore_h |
| 2 |
#define l2tofcore_h |
| 3 |
#include <TSystem.h> |
| 4 |
#include <TSQLServer.h> |
| 5 |
|
| 6 |
|
| 7 |
/** |
| 8 |
* \brief Variables needed for ToF calculations: Raw data, calibration constants, etc... |
| 9 |
*/ |
| 10 |
|
| 11 |
struct ToFInput { |
| 12 |
//! The alpha vector from the track fit |
| 13 |
Double_t al_pp[5]; |
| 14 |
//! 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 |
//! parameters for the attenuation fit for S11 |
| 41 |
Float_t adcx11[4][8][2]; |
| 42 |
//! parameters for the attenuation fit for S12 |
| 43 |
Float_t adcx12[4][6][2]; |
| 44 |
//! parameters for the attenuation fit for S21 |
| 45 |
Float_t adcx21[4][2][2]; |
| 46 |
//! parameters for the attenuation fit for S22 |
| 47 |
Float_t adcx22[4][2][2]; |
| 48 |
//! parameters for the attenuation fit for S31 |
| 49 |
Float_t adcx31[4][3][2]; |
| 50 |
//! parameters for the attenuation fit for S32 |
| 51 |
Float_t adcx32[4][3][2]; |
| 52 |
//! constants for the time-walk for S11 |
| 53 |
Float_t tw11[8][2]; |
| 54 |
//! constants for the time-walk for S12 |
| 55 |
Float_t tw12[6][2]; |
| 56 |
//! constants for the time-walk for S21 |
| 57 |
Float_t tw21[2][2]; |
| 58 |
//! constants for the time-walk for S22 |
| 59 |
Float_t tw22[2][2]; |
| 60 |
//! constants for the time-walk for S31 |
| 61 |
Float_t tw31[3][2]; |
| 62 |
//! constants for the time-walk for S32 |
| 63 |
Float_t tw32[3][2]; |
| 64 |
//! constants to get the position from the timing for S11 |
| 65 |
Float_t y_coor_lin11[8][2]; |
| 66 |
//! constants to get the position from the timing for S12 |
| 67 |
Float_t x_coor_lin12[6][2]; |
| 68 |
//! constants to get the position from the timing for S21 |
| 69 |
Float_t x_coor_lin21[2][2]; |
| 70 |
//! constants to get the position from the timing for S22 |
| 71 |
Float_t y_coor_lin22[2][2]; |
| 72 |
//! constants to get the position from the timing for S31 |
| 73 |
Float_t y_coor_lin31[3][2]; |
| 74 |
//! constants to get the position from the timing for S32 |
| 75 |
Float_t x_coor_lin32[3][2]; |
| 76 |
//! raw ADC matrix 4x12 : 12 half-boards @ 4 channels |
| 77 |
Int_t adc[12][4]; |
| 78 |
//! raw TDC matrix 4x12 : 12 half-boards @ 4 channels |
| 79 |
Int_t tdc[12][4]; |
| 80 |
//! patterntrig contains trigger information |
| 81 |
Int_t patterntrig[6]; |
| 82 |
Int_t ntrk; |
| 83 |
}; |
| 84 |
|
| 85 |
/** |
| 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 |
struct ToFOutput { |
| 92 |
//! beta track dependend, 12 measurements for the 12 combinations, beta[13] is weighted mean |
| 93 |
Float_t beta_a[13]; |
| 94 |
//! internal variable: beta ToF standalone, 12 measurements for the 12 combinations, beta[13] is weighted mean |
| 95 |
Float_t betatof_a[13]; |
| 96 |
//! x-measurement using the TDC values and the calibration |
| 97 |
Float_t xtofpos[3]; |
| 98 |
//! y-measurement using the TDC values and the calibration |
| 99 |
Float_t ytofpos[3]; |
| 100 |
//! 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 |
//! matrix 4x12 which contains the dEdx value for each PMT |
| 105 |
Float_t adc_c[12][4]; |
| 106 |
//! internal variable: ToF standalone: matrix 4x12 which contains the dEdx value for each PMT |
| 107 |
Float_t adctof_c[12][4]; |
| 108 |
//! matrix 4x12 which contains the time-walk corrected TDC value for each PMT |
| 109 |
Float_t tdc_c[12][4]; |
| 110 |
//! internal variable: matrix is filled if beta is calculated |
| 111 |
Int_t tofmask[12][4]; |
| 112 |
//! internal variable: number of the hitted paddle for each ToF layer from ToF standalone |
| 113 |
Int_t tof_i_flag[6]; |
| 114 |
//! number of hitted paddle(s) from ToF standalone for each ToF layer: flag = flag + 2**(paddlenumber-1) |
| 115 |
Int_t tof_j_flag[6]; |
| 116 |
//! internal variable: array flagging the artificial ToF standalone ADCs, "0" if normal ADC value |
| 117 |
Int_t adcflagtof[12][4]; |
| 118 |
//! internal variable: array is always "0" since there are no artificial TDC values with ToF standalone |
| 119 |
Int_t tdcflagtof[12][4]; |
| 120 |
//! array flagging the artificial track dependend ADCs, "0" if normal ADC value |
| 121 |
Int_t adcflag[12][4]; |
| 122 |
//! array flagging the artificial track dependend TDCs, "0" if normal TDC value |
| 123 |
Int_t tdcflag[12][4]; |
| 124 |
}; |
| 125 |
|
| 126 |
extern int ToFCore(UInt_t run, TFile *file, GL_TABLES *glt, Int_t ToFargc, char *ToFargv[]); |
| 127 |
|
| 128 |
#endif |