| 1 | #ifndef __RFL_HEADER__ | 
|---|
| 2 | #define __RFL_HEADER__ | 
|---|
| 3 |  | 
|---|
| 4 |  | 
|---|
| 5 | /*  Event header of reflector files ver <= 0.5  */ | 
|---|
| 6 | typedef struct | 
|---|
| 7 | {   float       EvtNumber; | 
|---|
| 8 | float       PrimaryID; | 
|---|
| 9 | float       Etotal; | 
|---|
| 10 | float       Thick0; | 
|---|
| 11 | float       FirstTarget; | 
|---|
| 12 | float       zFirstInt; | 
|---|
| 13 | float       p[3]; | 
|---|
| 14 | float       Theta; | 
|---|
| 15 | float       Phi; | 
|---|
| 16 |  | 
|---|
| 17 | float       NumRndSeq; | 
|---|
| 18 | float       RndData[10][3]; | 
|---|
| 19 |  | 
|---|
| 20 | float       RunNumber; | 
|---|
| 21 | float       DateRun; | 
|---|
| 22 | float       Corsika_version; | 
|---|
| 23 |  | 
|---|
| 24 | float       NumObsLev;  /* Should be 1 for MAGIC simulation */ | 
|---|
| 25 | float       HeightLev;  /* Observation Level */ | 
|---|
| 26 |  | 
|---|
| 27 | /* Changed meaning of next 9 variables. June 2002, A.Moralejo: */ | 
|---|
| 28 | float       num_mirrors; | 
|---|
| 29 | float       mean_reflectivity; | 
|---|
| 30 | float       longi_Nmax; | 
|---|
| 31 | float       longi_t0; | 
|---|
| 32 | float       longi_tmax; | 
|---|
| 33 | float       longi_a; | 
|---|
| 34 | float       longi_b; | 
|---|
| 35 | float       longi_c; | 
|---|
| 36 | float       longi_chi2; | 
|---|
| 37 |  | 
|---|
| 38 | float       SlopeSpec; | 
|---|
| 39 | float       ELowLim; | 
|---|
| 40 | float       EUppLim; | 
|---|
| 41 |  | 
|---|
| 42 | float       ThetaMin; | 
|---|
| 43 | float       ThetaMax; | 
|---|
| 44 | float       PhiMin; | 
|---|
| 45 | float       PhiMax; | 
|---|
| 46 |  | 
|---|
| 47 | float       CWaveLower; | 
|---|
| 48 | float       CWaveUpper; | 
|---|
| 49 | float       CorePos[2][20]; | 
|---|
| 50 | float       TimeFirst; | 
|---|
| 51 | float       TimeLast; | 
|---|
| 52 |  | 
|---|
| 53 | /* AM, 23/05/2002: Changed meaning of following | 
|---|
| 54 | * three variables (which were unused before): | 
|---|
| 55 | */ | 
|---|
| 56 | float       telescopePhi;    /* rad */ | 
|---|
| 57 | float       telescopeTheta;  /* rad */ | 
|---|
| 58 |  | 
|---|
| 59 | float       ViewConeRadius; /* Degrees. | 
|---|
| 60 | * Radius of "view cone" when the primaries' | 
|---|
| 61 | * directions generated by Corsika lie within | 
|---|
| 62 | * a cone around a fixed direction. This is | 
|---|
| 63 | * only possible with Corsika>6 versions. In | 
|---|
| 64 | * that case, PhiMin=PhiMax  and | 
|---|
| 65 | * ThetaMin=ThetaMax (also in this header) | 
|---|
| 66 | * indicate the axis of this cone. | 
|---|
| 67 | * If ViewConeRadius==0, it means that | 
|---|
| 68 | * the VIEWCONE option was not used. | 
|---|
| 69 | */ | 
|---|
| 70 |  | 
|---|
| 71 |  | 
|---|
| 72 | float       CORSIKAPhs;     /*  Original photons written by Corsika */ | 
|---|
| 73 | float       AtmAbsPhs;      /*  Photons absorbed by the atmosphere  */ | 
|---|
| 74 | float       MirrAbsPhs;     /*  Photons absorbed by the mirror      */ | 
|---|
| 75 | float       OutOfMirrPhs;   /*  Photons outside the mirror          */ | 
|---|
| 76 | float       BlackSpotPhs;   /*  Photons lost in the "black spot"    */ | 
|---|
| 77 | float       OutOfChamPhs;   /*  Photons outside the camera          */ | 
|---|
| 78 | float       CPhotons;       /*  Photons reaching the camera         */ | 
|---|
| 79 |  | 
|---|
| 80 | }   RflEventHeader_old; | 
|---|
| 81 |  | 
|---|
| 82 |  | 
|---|
| 83 | /* Reflector files run header (same as CORSIKA's cer files run header): */ | 
|---|
| 84 |  | 
|---|
| 85 | typedef struct | 
|---|
| 86 | {   char RUNH[4]; | 
|---|
| 87 | float RunNumber; | 
|---|
| 88 | float date; | 
|---|
| 89 | float Corsika_version; | 
|---|
| 90 | float NumObsLev; | 
|---|
| 91 | float HeightLev[10]; | 
|---|
| 92 | float SlopeSpec;  /* Slope of primaries' energy spectrum */ | 
|---|
| 93 | float ELowLim; | 
|---|
| 94 | float EUppLim;    /* Limits of energy range for generation */ | 
|---|
| 95 | float EGS4_flag; | 
|---|
| 96 | float NKG_flag; | 
|---|
| 97 | float Ecutoffh; | 
|---|
| 98 | float Ecutoffm; | 
|---|
| 99 | float Ecutoffe; | 
|---|
| 100 | float Ecutoffg; | 
|---|
| 101 | /* Physical constants and interaction flags (see CORSIKA manual): */ | 
|---|
| 102 | float C[50]; | 
|---|
| 103 | float wobble_mode; | 
|---|
| 104 | float atmospheric_model; | 
|---|
| 105 | float dummy1[18]; /* not used */ | 
|---|
| 106 | float CKA[40]; | 
|---|
| 107 | float CETA[5]; | 
|---|
| 108 | float CSTRBA[11]; | 
|---|
| 109 | float dummy2[104]; /* not used */ | 
|---|
| 110 | float AATM[5]; | 
|---|
| 111 | float BATM[5]; | 
|---|
| 112 | float CATM[5]; | 
|---|
| 113 | float NFL[4]; | 
|---|
| 114 |  | 
|---|
| 115 | }   RflRunHeader; | 
|---|
| 116 |  | 
|---|
| 117 |  | 
|---|
| 118 | /*  Event header of reflector_0.6 files: */ | 
|---|
| 119 |  | 
|---|
| 120 | typedef struct | 
|---|
| 121 | {   char        EVTH[4]; | 
|---|
| 122 | float       EvtNumber; | 
|---|
| 123 | float       PrimaryID; | 
|---|
| 124 | float       Etotal; | 
|---|
| 125 | float       Thick0; | 
|---|
| 126 | float       FirstTarget; | 
|---|
| 127 | float       zFirstInt; | 
|---|
| 128 | float       p[3]; | 
|---|
| 129 | float       Theta; | 
|---|
| 130 | float       Phi; | 
|---|
| 131 |  | 
|---|
| 132 | float       NumRndSeq; | 
|---|
| 133 | float       RndData[10][3]; | 
|---|
| 134 |  | 
|---|
| 135 | float       RunNumber; | 
|---|
| 136 | float       DateRun; | 
|---|
| 137 | float       Corsika_version; | 
|---|
| 138 |  | 
|---|
| 139 | float       NumObsLev; | 
|---|
| 140 | float       HeightLev[10]; | 
|---|
| 141 |  | 
|---|
| 142 | float       SlopeSpec; | 
|---|
| 143 | float       ELowLim; | 
|---|
| 144 | float       EUppLim; | 
|---|
| 145 |  | 
|---|
| 146 | float       Ecutoffh; | 
|---|
| 147 | float       Ecutoffm; | 
|---|
| 148 | float       Ecutoffe; | 
|---|
| 149 | float       Ecutoffg; | 
|---|
| 150 |  | 
|---|
| 151 | float       NFLAIN; | 
|---|
| 152 | float       NFLDIF; | 
|---|
| 153 | float       NFLPI0; | 
|---|
| 154 | float       NFLPIF; | 
|---|
| 155 | float       NFLCHE; | 
|---|
| 156 | float       NFRAGM; | 
|---|
| 157 |  | 
|---|
| 158 | float       Bx; | 
|---|
| 159 | float       By; | 
|---|
| 160 |  | 
|---|
| 161 | float       EGS4yn; | 
|---|
| 162 | float       NKGyn; | 
|---|
| 163 | float       GHEISHAyn; | 
|---|
| 164 | float       VENUSyn; | 
|---|
| 165 | float       CERENKOVyn; | 
|---|
| 166 | float       NEUTRINOyn; | 
|---|
| 167 | float       HORIZONTyn; | 
|---|
| 168 | float       COMPUTER; | 
|---|
| 169 |  | 
|---|
| 170 | float       ThetaMin; | 
|---|
| 171 | float       ThetaMax; | 
|---|
| 172 | float       PhiMin; | 
|---|
| 173 | float       PhiMax; | 
|---|
| 174 |  | 
|---|
| 175 | float       CBunchSize; | 
|---|
| 176 | float       CDetInX,CDetInY; | 
|---|
| 177 | float       CSpacInX,CSpacInY; | 
|---|
| 178 | float       CLenInX,CLenInY; | 
|---|
| 179 | float       COutput; | 
|---|
| 180 |  | 
|---|
| 181 | float       AngleNorthX; | 
|---|
| 182 | float       MuonInfo; | 
|---|
| 183 |  | 
|---|
| 184 | float       StepLength; | 
|---|
| 185 | float       CWaveLower; | 
|---|
| 186 | float       CWaveUpper; | 
|---|
| 187 | float       Multipl; | 
|---|
| 188 | float       CorePos[2][20]; | 
|---|
| 189 | float       SIBYLL[2]; | 
|---|
| 190 | float       QGSJET[2]; | 
|---|
| 191 | float       DPMJET[2]; | 
|---|
| 192 | float       VENUS_cross; | 
|---|
| 193 | float       mu_mult_scat; | 
|---|
| 194 | float       NKG_range; | 
|---|
| 195 | float       EFRCTHN[2]; | 
|---|
| 196 | float       WMAX[2]; | 
|---|
| 197 | float       rthin_rmax; | 
|---|
| 198 |  | 
|---|
| 199 | float       viewcone_angles[2]; | 
|---|
| 200 | /* (degrees) Inner and outer angles in | 
|---|
| 201 | * Corsika's VIEWCONE option. This is | 
|---|
| 202 | * only possible with Corsika>6 versions. In | 
|---|
| 203 | * that case, PhiMin=PhiMax  and | 
|---|
| 204 | * ThetaMin=ThetaMax (also in this header) | 
|---|
| 205 | * indicate the axis of this cone. | 
|---|
| 206 | */ | 
|---|
| 207 |  | 
|---|
| 208 | /* ^^^ Up to here, the info from the CORSIKA event header. */ | 
|---|
| 209 |  | 
|---|
| 210 | /* Telescope orientation: */ | 
|---|
| 211 | float       telescopePhi;    /* rad */ | 
|---|
| 212 | float       telescopeTheta;  /* rad */ | 
|---|
| 213 |  | 
|---|
| 214 | /* Time of first and last photon: */ | 
|---|
| 215 | float       TimeFirst; | 
|---|
| 216 | float       TimeLast; | 
|---|
| 217 |  | 
|---|
| 218 | /* 6 parameters and chi2 of the NKG fit to the longitudinal | 
|---|
| 219 | * particle distribution (see CORSIKA manual for explanation): | 
|---|
| 220 | */ | 
|---|
| 221 | float       longi_Nmax; | 
|---|
| 222 | float       longi_t0; | 
|---|
| 223 | float       longi_tmax; | 
|---|
| 224 | float       longi_a; | 
|---|
| 225 | float       longi_b; | 
|---|
| 226 | float       longi_c; | 
|---|
| 227 | float       longi_chi2; | 
|---|
| 228 |  | 
|---|
| 229 | /* Now the photon statistics of the event: */ | 
|---|
| 230 | float       CORSIKAPhs;     /*  Original photons written by Corsika */ | 
|---|
| 231 | float       AtmAbsPhs;      /*  Photons absorbed by the atmosphere  */ | 
|---|
| 232 | float       MirrAbsPhs;     /*  Photons absorbed by the mirror      */ | 
|---|
| 233 | float       OutOfMirrPhs;   /*  Photons outside the mirror          */ | 
|---|
| 234 | float       BlackSpotPhs;   /*  Photons lost in the "black spot"    */ | 
|---|
| 235 | float       OutOfChamPhs;   /*  Photons outside the camera          */ | 
|---|
| 236 | float       CPhotons;       /*  Photons reaching the camera         */ | 
|---|
| 237 |  | 
|---|
| 238 | /* Now follow the fraction of photons reaching the camera produced by | 
|---|
| 239 | * electrons, muons and other particles respectively: | 
|---|
| 240 | */ | 
|---|
| 241 | float       elec_cph_fraction; | 
|---|
| 242 | float       muon_cph_fraction; | 
|---|
| 243 | float       other_cph_fraction; | 
|---|
| 244 |  | 
|---|
| 245 | float       dummy[7];      /* not used */ | 
|---|
| 246 | }   RflEventHeader; | 
|---|
| 247 |  | 
|---|
| 248 | /*Photons data estructure*/ | 
|---|
| 249 | typedef struct | 
|---|
| 250 | {   float w,                    /*  cphoton wavelength (nm)             */ | 
|---|
| 251 | x, y,                     /*  (camera) imp. point (cm)            */ | 
|---|
| 252 | u, v,                     /*  direction cosines                   */ | 
|---|
| 253 | t,                        /*  arrival time (ns)                   */ | 
|---|
| 254 | h,                        /*  production height (cm)              */ | 
|---|
| 255 | phi;                      /*  (camera) inc. angle (rad)           */ | 
|---|
| 256 | }   cphoton; | 
|---|
| 257 |  | 
|---|
| 258 | #endif | 
|---|
| 259 |  | 
|---|
| 260 |  | 
|---|
| 261 |  | 
|---|
| 262 |  | 
|---|