--- DarthVader/OrbitalInfo/src/OrbitalInfo.cpp 2007/11/26 08:01:13 1.10 +++ DarthVader/OrbitalInfo/src/OrbitalInfo.cpp 2008/10/31 15:49:00 1.12 @@ -1,56 +1,56 @@ #include -OrbitalInfo::OrbitalInfo(){ - absTime = 0; - OBT = 0; - pkt_num = 0; +using namespace std; - lon = 0.; - lat = 0.; - alt = 0.; - - Bnorth = 0.; - Beast = 0.; - Bdown = 0.; - Babs = 0.; - BB0 = 0.; - L = 0.; +ClassImp(OrbitalInfoTrkVar); +ClassImp(OrbitalInfo); - londip = -1000.; - latdip = -1000.; - altdip = -1000.; - - loncgm = -1000.; - latcgm = -1000.; - altcgm = -1000.; - - loncbm = -1000.; - latcbm = -1000.; - altcbm = -1000.; - - std::fill_n(cutoff, 20, 0.); +OrbitalInfoTrkVar::OrbitalInfoTrkVar(){ + this->Clear(); +} - // Quaternions - q0 = -1000.; - q1 = -1000.; - q2 = -1000.; - q3 = -1000.; +void OrbitalInfoTrkVar::Clear(Option_t *t){ + trkseqno = 0; + pitch = -1000.; +} - // Euler angles (nadir reference frame) - theta = -1000.; - phi = -1000.; - etha = -1000.; -// // Euler angles (local field reference frame) -// thetamag = -1000.; -// phimag = -1000.; -// ethamag = -1000.; - mode = 0; -// std::fill_n(goodAttitude, 5, 0); +OrbitalInfo::OrbitalInfo(){ + OrbitalInfoTrk = 0; //ELENA + this->Clear(); } +void OrbitalInfo::Delete(Option_t *t){ //ELENA + // + if(OrbitalInfoTrk){ + OrbitalInfoTrk->Delete(); //ELENA + delete OrbitalInfoTrk; //ELENA + } + // +}; //ELENA + +void OrbitalInfo::Set(){//ELENA + if ( !OrbitalInfoTrk ) OrbitalInfoTrk = new TClonesArray("OrbitalInfoTrkVar",2); //ELENA +}//ELENA + +OrbitalInfoTrkVar *OrbitalInfo::GetOrbitalInfoTrkVar(Int_t itrk){ + // + if(itrk >= ntrk()){ + printf(" OrbitalInfo ERROR: track related variables set %i does not exists! \n",itrk); + printf(" stored track related variables = %i \n",ntrk()); + return(NULL); + } + // + if(!OrbitalInfoTrk)return 0; //ELENA + TClonesArray &t = *(OrbitalInfoTrk); + OrbitalInfoTrkVar *orbtrack = (OrbitalInfoTrkVar*)t[itrk]; + return orbtrack; +} void OrbitalInfo::Clear(Option_t *t){ + // + if ( OrbitalInfoTrk ) OrbitalInfoTrk->Delete(); + // absTime = 0; OBT = 0; pkt_num = 0; @@ -96,6 +96,10 @@ // phimag = -1000.; // ethamag = -1000.; + pamzenitangle = -1000.; + pamBangle = -1000.; + + mode = 0; // std::fill_n(goodAttitude, 5, 0); } @@ -203,4 +207,3 @@ // memcpy(goodAttitude, l2->goodAttitude, sizeof(l2->goodAttitude)); } -ClassImp(OrbitalInfo)