#ifndef SPEC_H #define SPEC_H class c_mirror { public: double adc_offset; //electronic properties of cerenkov mirrors double adc_gain; }; class plane { public: //characteristic electronic properties of each plane double resolution, e_drift, tdc_resol, a1_tdc_cor, a2_tdc_cor; int tdc_range; //wire t0s double tdc_off[368]; //wire positions double position[368]; }; class pside { public: double tdc_offset; //electronic properties of each side of scintillator double adc_offset; //pedal double gain; }; class Optics { public: int index[4]; double op_coeff[7]; double op_coeff_old[7]; char name[5]; }; class chamber { public: plane vdc_plane[4]; //each VDC has 4 planes of wires //corresponding to coordinates u1,v1,u2,v2 //the intercepts of the track with each wire plane }; class gas_cerenkov { public: c_mirror mirror[50]; }; class aerogel_cerenkov { public: c_mirror mirror[50]; }; class pedal { public: pside side[2]; //each scintillator pedal has 2 sides double timewalk; double offset_st; }; class scintillator { public: double attenuation; //scintillator data(properties) double c; double tdc_resol; pedal pad[10]; }; class scint3 { public: double attenuation; double tdc_resol; double c; pedal pad[20]; }; class path { public: int index[5]; double coeff; char name[5]; }; class rev { public: int index[5]; double coeff; char name[7]; }; class spec { public: // chamber vdc; //each sp has 1 vdc called vdc // gas_cerenkov gas; //each sp has a gas cerenkov detector with 10 mirrors // aerogel_cerenkov aero; //each sp has aerogel cerenkov detector // with 26 mirrors // scintillator scint[2]; //each sp has either 2 or 3 scintillator planes // scint3 S3; // double radius; //each sp has a characteristic radius for incident particles //with a certain momentum double gamma[4]; //each sp has characteristic properties // double disp[7]; //gamma, disp and tg_def // int tg_def; int noptics; //number of valid optics coefficients Optics optics[150]; //optics coefficients extrapolate the interaction of //the beam with the target from the measured track and energy?momentum? // path pathlength[100]; // rev reverse[100]; }; #endif