/[PAMELA software]/DarthVader/OrbitalInfo/src/OrbitalInfo.cpp
ViewVC logotype

Diff of /DarthVader/OrbitalInfo/src/OrbitalInfo.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by mocchiut, Wed Jun 14 09:52:54 2006 UTC revision 1.14 by mocchiut, Thu Dec 11 10:08:18 2008 UTC
# Line 1  Line 1 
1  #include <OrbitalInfo.h>  #include <OrbitalInfo.h>
2    
3    using namespace std;
4    
5    ClassImp(OrbitalInfoTrkVar);
6    ClassImp(OrbitalInfo);
7    
8    OrbitalInfoTrkVar::OrbitalInfoTrkVar(){
9      this->Clear();
10      //  Eij = new TMatrixD(3,3);
11      //  Sij = new TMatrixD(3,3);
12    }
13    
14    void OrbitalInfoTrkVar::Clear(Option_t *t){
15      trkseqno = 0;
16      pitch = -1000.;
17      cutoff = -1000.;
18      Eij.Zero();
19      Sij.Zero();
20    }
21    
22    void OrbitalInfoTrkVar::Delete(Option_t *t){
23      //  if ( Eij ) Eij->Delete();
24      //  if ( Sij ) Sij->Delete();
25    }
26    
27  OrbitalInfo::OrbitalInfo(){  OrbitalInfo::OrbitalInfo(){
28    absTime = 0ULL;    OrbitalInfoTrk = 0; //ELENA
29    OBT = 0ULL;    this->Clear();
30    pkt_num = 0ULL;  }
31    
32    OrbitalInfoTrkVar::OrbitalInfoTrkVar(const OrbitalInfoTrkVar &t){
33      //
34      trkseqno = t.trkseqno;  
35      //
36      pitch = t.pitch;
37      cutoff = t.cutoff;
38      //
39      Eij.ResizeTo(t.Eij);  
40      Eij = t.Eij;  
41      Sij.ResizeTo(t.Sij);  
42      Sij = t.Sij;  
43      //
44    };
45    
46    void OrbitalInfo::Delete(Option_t *t){ //ELENA
47      //
48      //  if ( Iij ) Iij->Delete();
49      if(OrbitalInfoTrk){
50        OrbitalInfoTrk->Delete(); //ELENA
51        delete OrbitalInfoTrk;  //ELENA
52      }
53      //
54    }; //ELENA
55    
56    void OrbitalInfo::Set(){//ELENA
57      if ( !OrbitalInfoTrk ) OrbitalInfoTrk = new TClonesArray("OrbitalInfoTrkVar",2); //ELENA}  
58      //  if ( !Iij ) Iij = new TMatrixD(3,3);
59    }//ELENA
60    
61    OrbitalInfoTrkVar *OrbitalInfo::GetOrbitalInfoTrkVar(Int_t itrk){
62      //    
63      if(itrk >= ntrk()){
64        printf(" OrbitalInfo ERROR: track related variables set %i does not exists! \n",itrk);
65        printf("                    stored track related variables = %i \n",ntrk());
66        return(NULL);
67      }  
68      //
69      if(!OrbitalInfoTrk)return 0; //ELENA
70      TClonesArray &t = *(OrbitalInfoTrk);
71      OrbitalInfoTrkVar *orbtrack = (OrbitalInfoTrkVar*)t[itrk];
72      return orbtrack;
73  }  }
74    
75    void OrbitalInfo::Clear(Option_t *t){
76      //
77      if ( OrbitalInfoTrk ) OrbitalInfoTrk->Delete();
78      //
79      absTime = 0;
80      OBT = 0;
81      pkt_num = 0;
82    
83      lon = -1000.;
84      lat = -1000.;
85      alt = -1000.;
86    
87      Bnorth = -1000.;
88      Beast = -1000.;
89      Bdown = -1000.;
90      Babs = -1000.;
91      BB0 = -1000.;
92      L = -1000.;
93    
94    //   londip = -1000.;
95    //   latdip = -1000.;
96    //   altdip = -1000.;
97    
98    //   loncgm = -1000.;
99    //   latcgm = -1000.;
100    //   altcgm = -1000.;
101    
102    //   loncbm = -1000.;
103    //   latcbm = -1000.;
104    //   altcbm = -1000.;
105    
106      //  std::fill_n(cutoff, 20, 0.);
107      //  std::fill_n(cutoff, 2, 0.);
108      cutoffsvl = 0.;
109    
110      // Quaternions
111      q0 = -1000.;
112      q1 = -1000.;
113      q2 = -1000.;
114      q3 = -1000.;
115    
116      // Euler angles (nadir reference frame)
117      theta = -1000.;
118      phi = -1000.;
119      etha = -1000.;
120    
121      // Euler angles (local field reference frame)
122      //  thetamag = -1000.;
123      //  phimag = -1000.;
124      //  ethamag = -1000.;
125    
126      //  pamzenitangle = -1000.;
127      //  pamBangle = -1000.;
128      Iij.Zero();
129    
130      mode = 0;
131      //  std::fill_n(goodAttitude, 5, 0);
132    }
133    
134    /**
135     * Fills a struct cOrbitalInfo with values from a OrbitalInfo object (to put data into a F77 common).
136     */
137    void OrbitalInfo::GetLevel2Struct(cOrbitalInfo *l2) const{
138      l2->abstime  = absTime;
139      l2->obt      = OBT;
140      l2->pkt_num  = pkt_num;
141    
142      l2->lon = lon;
143      l2->lat = lat;
144      l2->alt = alt;
145    
146      l2->Bnorth = Bnorth;
147      l2->Beast = Beast;
148      l2->Bdown = Bdown;
149      l2->Babs = Babs;
150      l2->BB0 = BB0;
151      l2->L = L;
152    
153    //   l2->londip = londip;
154    //   l2->latdip = latdip;
155    //   l2->altdip = altdip;
156    
157    //   l2->loncgm = loncgm;
158    //   l2->latcgm = latcgm;
159    //   l2->altcgm = altcgm;
160    
161    //   l2->loncbm = loncbm;
162    //   l2->latcbm = latcbm;
163    //   l2->altcbm = altcbm;
164    
165      l2->cutoffsvl = cutoffsvl;
166    //  memcpy(l2->cutoffsvl, cutoffsvl, sizeof(cutoffsvl));
167    
168      // Quaternions
169      l2->q0 = q0;
170      l2->q1 = q1;
171      l2->q2 = q2;
172      l2->q3 = q3;
173    
174      // Euler angles (nadir reference frame)
175      l2->theta = theta;
176      l2->phi = phi;
177      l2->etha = etha;
178    
179      l2->mode = mode;
180      // Euler angles (local field reference frame)
181    //   l2->thetamag = thetamag;
182    //   l2->phimag = phimag;
183    //   l2->ethamag = ethamag;
184    
185    //   memcpy(l2->goodAttitude, goodAttitude, sizeof(goodAttitude));
186    }
187    
188    void OrbitalInfo::SetFromLevel2Struct(cOrbitalInfo *l2){
189      absTime  = l2->abstime;
190      OBT      = l2->obt;
191      pkt_num  = l2->pkt_num;
192    
193      lon = l2->lon;
194      lat = l2->lat;
195      alt = l2->alt;
196    
197      l2->Bnorth = Bnorth;
198      l2->Beast = Beast;
199      l2->Bdown = Bdown;
200      l2->Babs = Babs;
201      BB0 = l2->BB0;
202      L = l2->L;
203    
204    //   londip = l2->londip;
205    //   latdip = l2->latdip;
206    //   altdip = l2->altdip;
207    
208    //   loncgm = l2->loncgm;
209    //   latcgm = l2->latcgm;
210    //   altcgm = l2->altcgm;
211    
212    //   loncbm = l2->loncbm;
213    //   latcbm = l2->latcbm;
214    //   altcbm = l2->altcbm;
215    
216    //  memcpy(cutoff, l2->cutoff, sizeof(l2->cutoff));
217      l2->cutoffsvl = cutoffsvl;
218    
219      // Quaternions
220      q0 = l2->q0;
221      q1 = l2->q1;
222      q2 = l2->q2;
223      q3 = l2->q3;
224    
225      // Euler angles (nadir reference frame)
226      theta = l2->theta;
227      phi = l2->phi;
228      etha = l2->etha;
229    
230      mode = l2->mode;
231      // Euler angles (local field reference frame)
232    //   thetamag = l2->thetamag;
233    //   phimag = l2->phimag;
234    //   ethamag = l2->ethamag;
235    
236    //   memcpy(goodAttitude, l2->goodAttitude, sizeof(l2->goodAttitude));
237    }
238    
 ClassImp(OrbitalInfo)  
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.23