--- DarthVader/OrbitalInfo/src/OrbitalInfo.cpp 2014/03/28 20:47:15 1.16 +++ DarthVader/OrbitalInfo/src/OrbitalInfo.cpp 2015/11/17 10:10:04 1.19 @@ -61,6 +61,16 @@ if ( !OrbitalInfoTrk ) OrbitalInfoTrk = new TClonesArray("OrbitalInfoTrkVar",2); //ELENA} // if ( !Iij ) Iij = new TMatrixD(3,3); }//ELENA +//-------------------------------------- +// +// +//-------------------------------------- +void OrbitalInfo::SetTrackArray(TClonesArray *track){//ELENA +// if(track && strcmp(track->GetClass()->GetName(),"OrbitalInfoTrkVar")==0){ + if(OrbitalInfoTrk)OrbitalInfoTrk->Clear("C"); + OrbitalInfoTrk = track; +// } +} OrbitalInfoTrkVar *OrbitalInfo::GetOrbitalInfoTrkVar(Int_t itrk){ // @@ -75,6 +85,32 @@ OrbitalInfoTrkVar *orbtrack = (OrbitalInfoTrkVar*)t[itrk]; return orbtrack; } +/** + * Retrieves the tof track matching the seqno-th tracker stored track. + * + */ +OrbitalInfoTrkVar *OrbitalInfo::GetOrbitalInfoStoredTrack(int seqno){ + + if( ntrk()==0 ){ + printf("OrbitalInfo::GetOrbitalInfoStoredTrack(int) : requested tracker SeqNo %i but no OrbitalInforimeter tracks are stored\n",seqno); + return NULL; + }; + + OrbitalInfoTrkVar *c = 0; + Int_t it_tof=0; + + do { + c = GetOrbitalInfoTrkVar(it_tof); + it_tof++; + } while( c && seqno != c->trkseqno && it_tof < ntrk()); + + if(!c || seqno != c->trkseqno){ + c = 0; + if(seqno!=-1 ) printf("OrbitalInfo::GetOrbitalInfoStoredTrack(int) : requested tracker SeqNo %i does not match OrbitalInfo stored tracks\n",seqno); + }; + return c; + +} void OrbitalInfo::Clear(Option_t *t){ // @@ -121,6 +157,7 @@ qkind = -1000; errq = -1000; azim = -1000; + rtqual =-1000; // std::fill_n(goodAttitude, 5, 0); } @@ -166,6 +203,9 @@ l2->qkind = qkind; l2->errq = errq; l2->azim = azim; + l2->rtqual=rtqual; + + l2->Iij=Iij; // memcpy(l2->goodAttitude, goodAttitude, sizeof(goodAttitude)); } @@ -180,10 +220,10 @@ alt = l2->alt; V = l2->V; - l2->Bnorth = Bnorth; - l2->Beast = Beast; - l2->Bdown = Bdown; - l2->Babs = Babs; + Bnorth = l2->Bnorth; + Beast = l2->Beast; + Bdown = l2->Bdown; + Babs = l2->Babs; M = l2->M; BB0 = l2->BB0; L = l2->L; @@ -209,6 +249,9 @@ qkind = l2->qkind; errq = l2->errq; azim = l2->azim; + rtqual=l2->rtqual; + + Iij=l2->Iij; // memcpy(goodAttitude, l2->goodAttitude, sizeof(l2->goodAttitude)); }