/[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.7 by mocchiut, Thu Mar 15 12:42:47 2007 UTC revision 1.15 by pam-mep, Thu Jun 7 14:04:00 2012 UTC
# Line 1  Line 1 
1  #include <OrbitalInfo.h>  #include <OrbitalInfo.h>
2    
3  OrbitalInfo::OrbitalInfo(){  using namespace std;
   absTime = 0;  
   OBT = 0;  
   pkt_num = 0;  
   
   lon = 0.;  
   lat = 0.;  
   alt = 0.;  
   
   Bnorth = 0.;  
   Beast = 0.;  
   Bdown = 0.;  
   Babs = 0.;  
   BB0 = 0.;  
   L = 0.;  
   
   londip = -1000.;  
   latdip = -1000.;  
   altdip = -1000.;  
   
   loncgm = -1000.;  
   latcgm = -1000.;  
   altcgm = -1000.;  
   
   loncbm = -1000.;  
   latcbm = -1000.;  
   altcbm = -1000.;  
4    
5    std::fill_n(cutoff, 20, 0.);  ClassImp(OrbitalInfoTrkVar);
6    ClassImp(OrbitalInfo);
7    
8    // Quaternions  OrbitalInfoTrkVar::OrbitalInfoTrkVar(){
9    q0 = -1000.;    this->Clear();
10    q1 = -1000.;    //  Eij = new TMatrixD(3,3);
11    q2 = -1000.;    //  Sij = new TMatrixD(3,3);
12    q3 = -1000.;  }
13    
14    // Euler angles (nadir reference frame)  void OrbitalInfoTrkVar::Clear(Option_t *t){
15  //  theta = -1000.;    trkseqno = 0;
16  //  phi = -1000.;    pitch = -1000.;
17  //  etha = -1000.;    cutoff = -1000.;
18      Eij.Zero();
19      Sij.Zero();
20    }
21    
22    // Euler angles (local field reference frame)  void OrbitalInfoTrkVar::Delete(Option_t *t){
23  //  thetamag = -1000.;    //  if ( Eij ) Eij->Delete();
24  //  phimag = -1000.;    //  if ( Sij ) Sij->Delete();
25  //  ethamag = -1000.;  }
26    
27    std::fill_n(goodAttitude, 5, 0);  OrbitalInfo::OrbitalInfo(){
28      OrbitalInfoTrk = 0; //ELENA
29      this->Clear();
30  }  }
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(){  void OrbitalInfo::Clear(Option_t *t){
76      //
77      if ( OrbitalInfoTrk ) OrbitalInfoTrk->Delete();
78      //
79    absTime = 0;    absTime = 0;
80    OBT = 0;    OBT = 0;
81    pkt_num = 0;    pkt_num = 0;
# Line 63  void OrbitalInfo::Clear(){ Line 88  void OrbitalInfo::Clear(){
88    Beast = -1000.;    Beast = -1000.;
89    Bdown = -1000.;    Bdown = -1000.;
90    Babs = -1000.;    Babs = -1000.;
91      M = -1000;
92    BB0 = -1000.;    BB0 = -1000.;
93    L = -1000.;    L = -1000.;
94    
95    londip = -1000.;  //   londip = -1000.;
96    latdip = -1000.;  //   latdip = -1000.;
97    altdip = -1000.;  //   altdip = -1000.;
98    
99    loncgm = -1000.;  //   loncgm = -1000.;
100    latcgm = -1000.;  //   latcgm = -1000.;
101    altcgm = -1000.;  //   altcgm = -1000.;
102    
103    loncbm = -1000.;  //   loncbm = -1000.;
104    latcbm = -1000.;  //   latcbm = -1000.;
105    altcbm = -1000.;  //   altcbm = -1000.;
106    
107    std::fill_n(cutoff, 20, 0.);    //  std::fill_n(cutoff, 20, 0.);
108      //  std::fill_n(cutoff, 2, 0.);
109      cutoffsvl = 0.;
110    
111    // Quaternions    // Quaternions
112    q0 = -1000.;    q0 = -1000.;
# Line 87  void OrbitalInfo::Clear(){ Line 115  void OrbitalInfo::Clear(){
115    q3 = -1000.;    q3 = -1000.;
116    
117    // Euler angles (nadir reference frame)    // Euler angles (nadir reference frame)
118   // theta = -1000.;    theta = -1000.;
119   // phi = -1000.;    phi = -1000.;
120   // etha = -1000.;    etha = -1000.;
121    
122    // Euler angles (local field reference frame)    // Euler angles (local field reference frame)
123    //thetamag = -1000.;    //  thetamag = -1000.;
124   // phimag = -1000.;    //  phimag = -1000.;
125    //ethamag = -1000.;    //  ethamag = -1000.;
126    
127      //  pamzenitangle = -1000.;
128      //  pamBangle = -1000.;
129      Iij.Zero();
130    
131    std::fill_n(goodAttitude, 5, 0);    mode = 0;
132      //  std::fill_n(goodAttitude, 5, 0);
133  }  }
134    
135  /**  /**
# Line 115  void OrbitalInfo::GetLevel2Struct(cOrbit Line 148  void OrbitalInfo::GetLevel2Struct(cOrbit
148    l2->Beast = Beast;    l2->Beast = Beast;
149    l2->Bdown = Bdown;    l2->Bdown = Bdown;
150    l2->Babs = Babs;    l2->Babs = Babs;
151      l2->M = M;
152    l2->BB0 = BB0;    l2->BB0 = BB0;
153    l2->L = L;    l2->L = L;
154    
155    l2->londip = londip;  //   l2->londip = londip;
156    l2->latdip = latdip;  //   l2->latdip = latdip;
157    l2->altdip = altdip;  //   l2->altdip = altdip;
158    
159    l2->loncgm = loncgm;  //   l2->loncgm = loncgm;
160    l2->latcgm = latcgm;  //   l2->latcgm = latcgm;
161    l2->altcgm = altcgm;  //   l2->altcgm = altcgm;
162    
163    l2->loncbm = loncbm;  //   l2->loncbm = loncbm;
164    l2->latcbm = latcbm;  //   l2->latcbm = latcbm;
165    l2->altcbm = altcbm;  //   l2->altcbm = altcbm;
166    
167    memcpy(l2->cutoff, cutoff, sizeof(cutoff));    l2->cutoffsvl = cutoffsvl;
168    //  memcpy(l2->cutoffsvl, cutoffsvl, sizeof(cutoffsvl));
169    
170    // Quaternions    // Quaternions
171    l2->q0 = q0;    l2->q0 = q0;
# Line 139  void OrbitalInfo::GetLevel2Struct(cOrbit Line 174  void OrbitalInfo::GetLevel2Struct(cOrbit
174    l2->q3 = q3;    l2->q3 = q3;
175    
176    // Euler angles (nadir reference frame)    // Euler angles (nadir reference frame)
177   // l2->theta = theta;    l2->theta = theta;
178   // l2->phi = phi;    l2->phi = phi;
179   // l2->etha = etha;    l2->etha = etha;
180    
181      l2->mode = mode;
182    // Euler angles (local field reference frame)    // Euler angles (local field reference frame)
183   // l2->thetamag = thetamag;  //   l2->thetamag = thetamag;
184   // l2->phimag = phimag;  //   l2->phimag = phimag;
185   // l2->ethamag = ethamag;  //   l2->ethamag = ethamag;
186    
187    memcpy(l2->goodAttitude, goodAttitude, sizeof(goodAttitude));  //   memcpy(l2->goodAttitude, goodAttitude, sizeof(goodAttitude));
188  }  }
189    
190  void OrbitalInfo::SetFromLevel2Struct(cOrbitalInfo *l2){  void OrbitalInfo::SetFromLevel2Struct(cOrbitalInfo *l2){
# Line 164  void OrbitalInfo::SetFromLevel2Struct(cO Line 200  void OrbitalInfo::SetFromLevel2Struct(cO
200    l2->Beast = Beast;    l2->Beast = Beast;
201    l2->Bdown = Bdown;    l2->Bdown = Bdown;
202    l2->Babs = Babs;    l2->Babs = Babs;
203      M = l2->M;
204    BB0 = l2->BB0;    BB0 = l2->BB0;
205    L = l2->L;    L = l2->L;
206    
207    londip = l2->londip;  //   londip = l2->londip;
208    latdip = l2->latdip;  //   latdip = l2->latdip;
209    altdip = l2->altdip;  //   altdip = l2->altdip;
210    
211    loncgm = l2->loncgm;  //   loncgm = l2->loncgm;
212    latcgm = l2->latcgm;  //   latcgm = l2->latcgm;
213    altcgm = l2->altcgm;  //   altcgm = l2->altcgm;
214    
215    loncbm = l2->loncbm;  //   loncbm = l2->loncbm;
216    latcbm = l2->latcbm;  //   latcbm = l2->latcbm;
217    altcbm = l2->altcbm;  //   altcbm = l2->altcbm;
218    
219    memcpy(cutoff, l2->cutoff, sizeof(l2->cutoff));  //  memcpy(cutoff, l2->cutoff, sizeof(l2->cutoff));
220      l2->cutoffsvl = cutoffsvl;
221    
222    // Quaternions    // Quaternions
223    q0 = l2->q0;    q0 = l2->q0;
# Line 188  void OrbitalInfo::SetFromLevel2Struct(cO Line 226  void OrbitalInfo::SetFromLevel2Struct(cO
226    q3 = l2->q3;    q3 = l2->q3;
227    
228    // Euler angles (nadir reference frame)    // Euler angles (nadir reference frame)
229    //theta = l2->theta;    theta = l2->theta;
230    //phi = l2->phi;    phi = l2->phi;
231    //etha = l2->etha;    etha = l2->etha;
232    
233      mode = l2->mode;
234    // Euler angles (local field reference frame)    // Euler angles (local field reference frame)
235    //thetamag = l2->thetamag;  //   thetamag = l2->thetamag;
236    //phimag = l2->phimag;  //   phimag = l2->phimag;
237    //ethamag = l2->ethamag;  //   ethamag = l2->ethamag;
238    
239    memcpy(goodAttitude, l2->goodAttitude, sizeof(l2->goodAttitude));  //   memcpy(goodAttitude, l2->goodAttitude, sizeof(l2->goodAttitude));
240  }  }
241    
 ClassImp(OrbitalInfo)  

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.23