| 1 | mocchiut | 1.1 | #ifndef OrbitalInfo_h | 
| 2 | mocchiut | 1.2 | #define OrbitalInfo_h | 
| 3 | mocchiut | 1.1 |  | 
| 4 |  |  | #include <TObject.h> | 
| 5 | pam-fi | 1.5 | #include <OrbitalInfoStruct.h> | 
| 6 | mocchiut | 1.1 |  | 
| 7 |  |  | class OrbitalInfo : public TObject { | 
| 8 |  |  | public: | 
| 9 |  |  | OrbitalInfo(); | 
| 10 | mocchiut | 1.3 | OrbitalInfo* GetOrbitalInfo(){return this;}; // Elena | 
| 11 | mocchiut | 1.1 |  | 
| 12 | mocchiut | 1.6 | UInt_t absTime; //< Absolute Time | 
| 13 | mocchiut | 1.2 | // EM: added On Board Time and CPU Packet Number | 
| 14 | mocchiut | 1.6 | UInt_t OBT; //< On Board Time | 
| 15 |  |  | UInt_t pkt_num; //< CPU packet number | 
| 16 | pam-rm2 | 1.7 |  | 
| 17 |  |  | // Position | 
| 18 |  |  | Float_t lon; // degrees from -180 to 180 | 
| 19 |  |  | Float_t lat; // degrees from -90 to 90 | 
| 20 |  |  | Float_t alt; // meters | 
| 21 |  |  |  | 
| 22 |  |  | // Magnetic field | 
| 23 |  |  |  | 
| 24 |  |  | // components (gauss) | 
| 25 |  |  | Float_t Bnorth; | 
| 26 |  |  | Float_t Beast; | 
| 27 |  |  | Float_t Bdown; | 
| 28 |  |  |  | 
| 29 |  |  | // abs value (guass) | 
| 30 |  |  | Float_t Babs; | 
| 31 |  |  |  | 
| 32 |  |  | // Minimum along the field line (that is at the magnetic equator) | 
| 33 |  |  | Float_t BB0; | 
| 34 |  |  |  | 
| 35 |  |  | // L shell (in earth radii) | 
| 36 |  |  | Float_t L; | 
| 37 |  |  |  | 
| 38 |  |  | // Dipolar magnetic coordinates | 
| 39 |  |  | Float_t londip; // degrees from -180 to 180 | 
| 40 |  |  | Float_t latdip; // degrees from -90 to 90 | 
| 41 |  |  | Float_t altdip; // meters | 
| 42 |  |  |  | 
| 43 |  |  | // Corrected magnetic coordinates | 
| 44 |  |  | Float_t loncgm; // degrees from -180 to 180 | 
| 45 |  |  | Float_t latcgm; // degrees from -90 to 90 | 
| 46 |  |  | Float_t altcgm; // meters | 
| 47 |  |  |  | 
| 48 |  |  | // Corrected B min magnetic coordinates | 
| 49 |  |  | Float_t loncbm; // degrees from -180 to 180 | 
| 50 |  |  | Float_t latcbm; // degrees from -90 to 90 | 
| 51 |  |  | Float_t altcbm; // meters | 
| 52 |  |  |  | 
| 53 |  |  | Float_t cutoff[20]; | 
| 54 |  |  |  | 
| 55 |  |  | // Quaternions | 
| 56 |  |  | Float_t q0, q1, q2, q3; | 
| 57 |  |  |  | 
| 58 |  |  | // Euler angles (nadir reference frame) | 
| 59 |  |  | Float_t theta, phi, etha; | 
| 60 |  |  |  | 
| 61 |  |  | // Euler angles (local field reference frame) | 
| 62 |  |  | Float_t thetamag, phimag, ethamag; | 
| 63 |  |  |  | 
| 64 |  |  | // Useful? | 
| 65 |  |  | Int_t goodAttitude[5]; | 
| 66 |  |  |  | 
| 67 | mocchiut | 1.8 | Float_t GetB0() { return Babs/BB0; }; | 
| 68 |  |  |  | 
| 69 |  |  | // Stormer vertical cutoff using L shell: 14.9/L^2 (GeV). | 
| 70 |  |  | Float_t GetCutoffSVL() { return cutoff[0]; }; | 
| 71 | pam-rm2 | 1.7 |  | 
| 72 | pam-fi | 1.5 | void SetFromLevel2Struct(cOrbitalInfo *l2); | 
| 73 |  |  | void GetLevel2Struct(cOrbitalInfo *l2) const; | 
| 74 |  |  |  | 
| 75 | mocchiut | 1.4 | void Clear(); // emiliano | 
| 76 |  |  | // | 
| 77 | mocchiut | 1.8 | ClassDef(OrbitalInfo, 2) | 
| 78 | mocchiut | 1.1 | }; | 
| 79 |  |  | #endif |