Changeset 3537
- Timestamp:
- 03/17/04 17:17:14 (21 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r3536 r3537 19 19 -*-*- END OF LINE -*-*- 20 20 21 2004/03/17: Thomas Bretz 22 23 * mastro/MAstroCatalog.[h,cc]: 24 - some simplifications and changes 25 26 * mastro/MAstroCatalog.[h,cc]: 27 - some simplifications and changes 28 29 * mastro/MAstroSky2Local.[h,cc]: 30 - rotation matrix from sky to local coordinates 31 - added 32 33 * mastro/Makefile, mastro/AstroLinkDef.h: 34 - MAstroSky2Local added 35 36 * mraw/MRawEvtPixelIter.cc: 37 - GetIdxMaxLoGainSample(const Byte_t lofirst) const 38 accelerated and fixed (the first slice was compared to itself 39 and the last slice was not taken into account) 40 41 42 21 43 2004/03/17: Antonio Stamerra 22 44 23 45 * macros/datatrigcheck.C 24 46 - added macro for time and trigger data-checking 47 25 48 26 49 … … 36 59 37 60 61 38 62 2004/03/17: Wolfgang Wittek 39 63 … … 45 69 2004/03/16: Markus Gaug 46 70 47 * mhist/MHCamera.[h,cc] 48 - added function RadialProfile which returns a TProfile of the 49 value along the radius from the camera center 71 * mhist/MHCamera.[h,cc] 72 - added function RadialProfile which returns a TProfile of the 73 value along the radius from the camera center 74 50 75 51 76 52 77 2004/03/16: Oscar Blanch Bigas 53 78 54 * mimage/MConcentration.[h,cc] 55 - new class for Concentration stuff. 56 - It computes and stores Concentration 1-8 57 58 * mimage/MNewImagePar.[h,cc] 59 - New Concentration stuff is moved to MConcentration. 60 61 * mimage/MHillasCalc.[h,cc], Makefile, ImageLinkDef.h 62 - Modifications needed to support and compile new 63 MConcentration class. 79 * mimage/MConcentration.[h,cc] 80 - new class for Concentration stuff. 81 - It computes and stores Concentration 1-8 82 83 * mimage/MNewImagePar.[h,cc] 84 - New Concentration stuff is moved to MConcentration. 85 86 * mimage/MHillasCalc.[h,cc], Makefile, ImageLinkDef.h 87 - Modifications needed to support and compile new 88 MConcentration class. 89 90 64 91 65 92 2004/03/16: Thomas Bretz … … 190 217 - added MStatusArray 191 218 192 * mraw/MRawEvtPixelIter.cc:193 - GetIdxMaxLoGainSample(const Byte_t lofirst) const194 accelerated and fixed (the first slice was compared to itself195 and the last slice was not taken into account)196 197 219 * mhits/MHCamera.[h,cc], mgui/MHexagon.[h,cc]: 198 220 - improved drawing MHCamera with 'same' option -
trunk/MagicSoft/Mars/mastro/AstroLinkDef.h
r3402 r3537 7 7 #pragma link C++ class MVector3+; 8 8 9 #pragma link C++ class MAstro+; 10 #pragma link C++ class MAstroSky2Local+; 11 #pragma link C++ class MAstroCatalog+; 12 //#pragma link C++ class MAstroCamera+; 9 13 10 #pragma link C++ class MAstro+;11 #pragma link C++ class MAstroCatalog+;12 14 #pragma link C++ class MObservatory+; 13 15 -
trunk/MagicSoft/Mars/mastro/MAstro.cc
r3371 r3537 31 31 #include "MAstro.h" 32 32 33 #include <iostream> 34 33 35 #include <TVector3.h> // TVector3 34 36 35 37 #include "MTime.h" // MTime::GetGmst 36 38 39 using namespace std; 40 37 41 ClassImp(MAstro); 38 42 39 43 Double_t MAstro::Trunc(Double_t val) 40 44 { 41 / * dint(A) - truncate to nearest whole number towards zero (double) */45 // dint(A) - truncate to nearest whole number towards zero (double) 42 46 return val<0 ? TMath::Ceil(val) : TMath::Floor(val); 43 47 } … … 45 49 Double_t MAstro::Round(Double_t val) 46 50 { 47 / * dnint(A) - round to nearest whole number (double) */51 // dnint(A) - round to nearest whole number (double) 48 52 return val<0 ? TMath::Ceil(val-0.5) : TMath::Floor(val+0.5); 49 53 } … … 57 61 Double_t MAstro::Dms2Rad(Int_t deg, UInt_t min, Double_t sec, Char_t sgn) 58 62 { 59 / * pi/(180*3600): arcseconds to radians */63 // pi/(180*3600): arcseconds to radians 60 64 //#define DAS2R 4.8481368110953599358991410235794797595635330237270e-6 61 65 return Hms2Sec(deg, min, sec, sgn)*TMath::Pi()/(180*3600)/**DAS2R*/; … … 64 68 Double_t MAstro::Hms2Rad(Int_t hor, UInt_t min, Double_t sec, Char_t sgn) 65 69 { 66 / * pi/(12*3600): seconds of time to radians */70 // pi/(12*3600): seconds of time to radians 67 71 //#define DS2R 7.2722052166430399038487115353692196393452995355905e-5 68 72 return Hms2Sec(hor, min, sec, sgn)*TMath::Pi()/(12*3600)/**DS2R*/; -
trunk/MagicSoft/Mars/mastro/MAstroCamera.cc
r3525 r3537 49 49 50 50 #include "MTime.h" 51 #include "MAstroSky2Local.h" 51 52 #include "../mhist/MHCamera.h" 52 53 #include "MObservatory.h" … … 97 98 } 98 99 99 Int_t MAstroCamera::Convert(const TRotation &rot, TVector2 &v, Int_t type) 100 { 101 MVector3 w; 102 103 switch (type) 104 { 105 case 1: 106 w.SetRaDec(v.X(), v.Y(), 1); 107 w = w.GetZdAz(*fTime, *fObservatory); 108 break; 109 case 2: 110 w.SetZdAz(v.Y(), v.X(), 1); 111 break; 112 default: 113 return kFALSE; 114 } 115 116 w *= rot; 117 100 Int_t MAstroCamera::ConvertToPad(const TVector3 &w, TVector2 &v) 101 { 118 102 const TVector3 spot = fMirror0->GetReflection(w, fGeom->GetCameraDist())*1000; 119 103 … … 129 113 */ 130 114 115 131 116 v.Set(spot(0), spot(1)); 132 117 … … 135 120 } 136 121 137 void MAstroCamera::DrawNet(const TRotation &rot) 138 { 139 TVector2 radec(fRaDec.Phi(), TMath::Pi()/2-fRaDec.Theta()); 140 MAstroCatalog::DrawNet(radec, rot, 1); 141 142 const TVector3 zdaz0 = fRaDec.GetZdAz(*fTime, *fObservatory); 122 void MAstroCamera::DrawNet(const TRotation &trans) 123 { 124 const TRotation rot(MAstroSky2Local(*fTime, *fObservatory)); 125 126 TVector2 radec(fRaDec.Phi(), fRaDec.Theta()); 127 MAstroCatalog::DrawNet(radec, trans*rot, 2); 128 129 const TVector3 zdaz0 = MAstroSky2Local(*fTime, *fObservatory)*fRaDec; 143 130 TVector2 zdaz(zdaz0.Phi(), zdaz0.Theta()); 144 MAstroCatalog::DrawNet(zdaz, rot, 2);131 MAstroCatalog::DrawNet(zdaz, trans, 1); 145 132 } 146 133 … … 185 172 const Bool_t usecam = opt.Contains("c", TString::kIgnoreCase); 186 173 187 const Float_t rho = fObservatory->RotationAngle(fRaDec.Phi(), TMath::Pi()/2-fRaDec.Theta(), *fTime); 174 MAstroSky2Local rot(*fTime, *fObservatory); 175 176 const Float_t rho = rot.RotationAngle(fRaDec.Phi(), TMath::Pi()/2-fRaDec.Theta()); 188 177 189 178 TString str = fTime->GetSqlDateTime(); … … 232 221 } 233 222 234 const TVector3 zdaz0 = fRaDec.GetZdAz(*fTime, *fObservatory); 235 236 TRotation rot; 237 rot.RotateZ(-zdaz0.Phi()); 238 rot.RotateY(-zdaz0.Theta()); 239 rot.RotateZ(-TMath::Pi()/2); // align coordinate system 240 241 DrawNet(rot); 223 TVector3 zdaz0 = fRaDec; 224 zdaz0 *= rot; 225 226 cout << zdaz0.Phi()*TMath::RadToDeg() << " " << zdaz0.Theta()*TMath::RadToDeg() << endl; 227 228 TVector3 test = zdaz0; 229 test *= rot.Inverse(); 230 231 cout << test.Phi()*TMath::RadToDeg()/15 << " " << test.Theta()*TMath::RadToDeg() << endl; 232 233 TRotation rot2; 234 rot2.RotateZ(-zdaz0.Phi()); 235 rot2.RotateY(-zdaz0.Theta()); 236 rot2.RotateZ(-TMath::Pi()/2); // align coordinate system 237 238 DrawNet(rot2); 242 239 243 240 MVector3 *radec; … … 248 245 const Double_t mag = radec->Magnitude(); 249 246 250 TVector3 star = radec->GetZdAz(*fTime, *fObservatory); 251 247 TVector3 star(*radec); 248 249 // Calculate local coordinates 250 star *= rot; 252 251 // Rotate Star into telescope system 253 star *= rot ;252 star *= rot2; 254 253 255 254 TVector3 mean; -
trunk/MagicSoft/Mars/mastro/MAstroCamera.h
r3457 r3537 21 21 MGeomMirror *fMirror0; //! 22 22 23 Int_t Convert (const TRotation &rot, TVector2 &v, Int_t type);23 Int_t ConvertToPad(const TVector3 &w, TVector2 &v); 24 24 void AddPrimitives(Option_t *o); 25 25 void SetRangePad() { } -
trunk/MagicSoft/Mars/mastro/MAstroCatalog.cc
r3525 r3537 52 52 #include "MTime.h" 53 53 #include "MAstro.h" 54 #include "MAstroSky2Local.h" 54 55 #include "MObservatory.h" 55 56 … … 59 60 using namespace std; 60 61 62 class MRotation : public TRotation 63 { 64 public: 65 MRotation(Double_t gmst, const MObservatory &obs) : TRotation(1, 0, 0, 0, -1, 0, 0, 0, 1) 66 { 67 RotateZ(gmst + obs.GetElong()); 68 RotateY(obs.GetPhi()-TMath::Pi()/2); 69 RotateZ(TMath::Pi()); 70 } 71 MRotation(const MTime &t, const MObservatory &obs) : TRotation(1, 0, 0, 0, -1, 0, 0, 0, 1) 72 { 73 RotateZ(t.GetGmst() + obs.GetElong()); 74 RotateY(obs.GetPhi()-TMath::Pi()/2); 75 RotateZ(TMath::Pi()); 76 } 77 }; 78 79 /* 61 80 MVector3 MVector3::GetZdAz(const MObservatory &obs, Double_t gmst) const 62 81 { … … 64 83 return MVector3(); 65 84 66 const Double_t alpha = gmst + obs.GetElong(); 67 68 MVector3 zdaz; 69 zdaz.SetZdAz(Theta(), alpha-Phi(), Mag()); 70 zdaz.RotateY(obs.GetPhi()-TMath::Pi()/2); 71 72 return zdaz; 73 74 /* 85 MVector3 v(*this); 86 v *= MAstroSky2Local(gmst, obs); 87 88 return v; 89 90 // ------ Using vectors ------- 91 // v(1) = -v(1); // phi --> -phi 92 // v.RotateZ(gmst + obs.GetElong()); // -phi --> alpha-phi 93 // v.RotateY(obs.GetPhi()-TMath::Pi()/2); 94 // v.RotateZ(TMath::Pi()); 95 75 96 // ------ The same using slalib, tested in the drive system ------- 76 const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 77 Double_t el; 78 slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 79 zd = TMath::Pi()/2-el; 80 return; 81 */ 97 // const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 98 // Double_t el; 99 // slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 100 // zd = TMath::Pi()/2-el; 82 101 } 83 102 … … 92 111 return MVector3(); 93 112 94 const Double_t alpha = gmst + obs.GetElong();95 96 113 MVector3 v(*this); 97 v.RotateY(TMath::Pi()/2-obs.GetPhi()); 98 99 MVector3 rd; 100 rd.SetRaDec(alpha-v.Phi(), TMath::Pi()/2-v.Theta(), Mag()); 101 return rd; 102 103 /* 114 v *= MAstroSky2Local(gmst, obs).Inverse(); 115 116 return v; 117 118 // ------ Using vectors ------- 119 // v.RotateZ(-TMath::Pi()); 120 // v.RotateY(TMath::Pi()/2-obs.GetPhi()); 121 // v.RotateZ(-gmst - obs.GetElong()); // alpha-phi --> -phi 122 // v(1) = -v(1); // -phi --> phi 123 104 124 // ------ The same using slalib, tested in the drive system ------- 105 const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 106 Double_t el; 107 slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 108 zd = TMath::Pi()/2-el; 109 return; 110 */ 125 // const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 126 // Double_t el; 127 // slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 128 // zd = TMath::Pi()/2-el; 111 129 } 112 130 … … 115 133 return GetRaDec(obs, time.GetGmst()); 116 134 } 117 135 */ 118 136 MAstroCatalog::MAstroCatalog() : fLimMag(99), fRadiusFOV(99), fToolTip(0), fObservatory(0), fTime(0) 119 137 { … … 386 404 } 387 405 388 Int_t MAstroCatalog::Convert(const TRotation &rot, TVector2 &v, Int_t type) 389 { 390 MVector3 w; 391 392 switch (type) 393 { 394 case 1: 395 w.SetRaDec(v.X()-fRaDec.Phi(), v.Y(), 1); 396 break; 397 398 case 2: 399 if (!fTime || !fObservatory) 400 return kFALSE; 401 w.SetZdAz(v.Y(), v.X(), 1); 402 w = w.GetRaDec(*fTime, *fObservatory); 403 w.RotateZ(-fRaDec.Phi()); 404 break; 405 406 default: 407 return kFALSE; 408 } 409 410 w *= rot; 406 void MAstroCatalog::Paint(Option_t *o) 407 { 408 // if (!gPad->IsBatch()) 409 // gVirtualX->ClearWindow(); 410 411 if (TestBit(kHasChanged)) 412 DrawPrimitives(o); 413 } 414 415 void MAstroCatalog::DrawStar(Double_t x, Double_t y, const TVector3 &v, Bool_t transparent, const char *txt) 416 { 417 const Double_t ra = v.Phi()*TMath::RadToDeg()/15; 418 const Double_t dec = (TMath::Pi()/2-v.Theta())*TMath::RadToDeg(); 419 420 TString str = v.GetName(); 421 str += Form(": Ra=%.2fh", ra); 422 str += Form(" Dec=%.1fd", dec); 423 str += Form(" Mag=%.1f", -2.5*log10(v.Mag())); 424 if (txt) 425 str += Form(" (%s)", txt); 426 427 // draw star on the camera display 428 TMarker *tip=new TMarker(x, y, transparent ? kDot : kFullDotLarge);; 429 tip->SetMarkerColor(kBlack); 430 tip->SetBit(kCanDelete); 431 tip->SetBit(kCannotPick); 432 AddMap(tip, new TString(str)); 433 } 434 435 void MAstroCatalog::Update() 436 { 437 if (gPad && TestBit(kMustCleanup)) 438 { 439 SetBit(kHasChanged); 440 gPad->Modified(); 441 } 442 } 443 444 void MAstroCatalog::SetTime(const MTime &time) 445 { 446 if (fTime) 447 delete fTime; 448 fTime=(MTime*)time.Clone(); 449 } 450 451 void MAstroCatalog::SetObservatory(const MObservatory &obs) 452 { 453 if (fObservatory) 454 delete fObservatory; 455 fObservatory=(MObservatory*)obs.Clone(); 456 } 457 458 Int_t MAstroCatalog::ConvertToPad(const TVector3 &w0, TVector2 &v) 459 { 460 TVector3 w(w0); 411 461 412 462 // Stretch such, that the X-component is alwas the same. Now … … 427 477 } 428 478 479 Int_t MAstroCatalog::Convert(const TRotation &rot, TVector2 &v) 480 { 481 MVector3 w; 482 w.SetMagThetaPhi(1, v.Y(), v.X()); 483 w *= rot; 484 485 return ConvertToPad(w, v); 486 } 487 429 488 Bool_t MAstroCatalog::DrawLine(const TVector2 &v, Double_t dx, Double_t dy, const TRotation &rot, Int_t type) 430 489 { … … 434 493 TVector2 v1 = v+add; 435 494 436 const Int_t rc0 = Convert(rot, v0, type); 437 const Int_t rc1 = Convert(rot, v1, type); 495 const Int_t rc0 = Convert(rot, v0); 496 const Int_t rc1 = Convert(rot, v1); 497 438 498 // Both are kFALSE or both are kERROR 439 499 if ((rc0|rc1)==kFALSE || (rc0&rc1)==kERROR) … … 449 509 const TVector2 deg = v*TMath::RadToDeg(); 450 510 TString txt = type==1 ? 451 Form("Ra=%.1fh Dec=%.1fd", fmod(deg.X()/15+48, 24), fmod( deg.Y()+270,180)-90) :511 Form("Ra=%.1fh Dec=%.1fd", fmod(deg.X()/15+48, 24), fmod(90-deg.Y()+270,180)-90) : 452 512 Form("Zd=%.1fd Az=%.1fd", fmod(deg.Y()+270,180)-90, fmod(deg.X()+720, 360)); 453 513 … … 461 521 } 462 522 523 463 524 void MAstroCatalog::Draw(const TVector2 &v0, const TRotation &rot, TArrayI &dx, TArrayI &dy, Int_t stepx, Int_t stepy, Int_t type) 464 525 { 465 526 const TVector2 v1 = v0 + TVector2(dx[0]*TMath::DegToRad(), dy[0]*TMath::DegToRad()); 466 467 // if (TMath::Abs(v1.Y())>TMath::Pi()/2)468 // return;469 470 // const Int_t v0x = (int)(v0.X()*TMath::RadToDeg());471 // const Int_t v0y = (int)(v0.Y()*TMath::RadToDeg());472 527 473 528 Int_t idx[] = {1, 1, 1, 1}; … … 501 556 { 502 557 // Calculate new position 503 //dx[0] = (d[0]+dirs[i][0]+540-v0x)%360-180+v0x;504 //dy[0] = (d[1]+dirs[i][1]+270-v0y)%180- 90+v0y;505 558 dx[0] = d[0]+dirs[i][0]; 506 559 dy[0] = d[1]+dirs[i][1]; 560 561 //cout << dx[0] << " " << dy[0] << endl; 507 562 508 563 // Draw corresponding line and iterate through grid … … 510 565 Draw(v0, rot, dx, dy, stepx, stepy, type); 511 566 512 dx[0]=d[0]; dy[0]=d[1]; 567 dx[0]=d[0]; 568 dy[0]=d[1]; 513 569 } 514 570 } … … 516 572 void MAstroCatalog::DrawNet(const TVector2 &v0, const TRotation &rot, Int_t type) 517 573 { 518 //const Double_t step = TMath::DegToRad();519 520 574 TArrayI dx(1); 521 575 TArrayI dy(1); … … 527 581 // calculate stepsizes based on visible FOV 528 582 Int_t stepx=1; 529 if (fabs(v.Y())>90-fRadiusFOV || fabs(v.Y())<fRadiusFOV) 583 584 if (fabs(90-v.Y())>90-fRadiusFOV || fabs(90-v.Y())<fRadiusFOV) 530 585 stepx = 180/10; 531 586 else … … 534 589 const Float_t m = log(fRadiusFOV/180.)/log(90./fRadiusFOV-1); 535 590 const Float_t t = log(180.)-m*log(fRadiusFOV); 536 const Int_t n = (Int_t)(exp(m*log(90-fabs( v.Y()))+t)+0.5);537 stepx = n< 4 ? 1 : n/4;591 const Int_t n = (Int_t)(exp(m*log(90-fabs(90-v.Y()))+t)+0.5); 592 stepx = n<6 ? 1 : n/6; 538 593 } 539 594 … … 556 611 // draw... 557 612 v *= TMath::DegToRad(); 613 558 614 Draw(v, rot, dx, dy, stepx, stepy, type); 559 615 } 560 616 561 void MAstroCatalog::Paint(Option_t *o)562 {563 // if (!gPad->IsBatch())564 // gVirtualX->ClearWindow();565 566 if (TestBit(kHasChanged))567 DrawPrimitives(o);568 }569 570 void MAstroCatalog::DrawStar(Double_t x, Double_t y, const TVector3 &v, Bool_t transparent, const char *txt)571 {572 const Double_t ra = v.Phi()*TMath::RadToDeg()/15;573 const Double_t dec = (TMath::Pi()/2-v.Theta())*TMath::RadToDeg();574 575 TString str = v.GetName();576 str += Form(": Ra=%.1fh", ra);577 str += Form(" Dec=%.1fd", dec);578 str += Form(" Mag=%.1f", -2.5*log10(v.Mag()));579 if (txt)580 str += Form(" (%s)", txt);581 582 // draw star on the camera display583 TMarker *tip=new TMarker(x, y, transparent ? kDot : kFullDotLarge);;584 tip->SetMarkerColor(kBlack);585 tip->SetBit(kCanDelete);586 tip->SetBit(kCannotPick);587 AddMap(tip, new TString(str));588 }589 590 void MAstroCatalog::Update()591 {592 if (gPad && TestBit(kMustCleanup))593 {594 SetBit(kHasChanged);595 gPad->Modified();596 }597 }598 599 void MAstroCatalog::SetTime(const MTime &time)600 {601 if (fTime)602 delete fTime;603 fTime=(MTime*)time.Clone();604 }605 606 void MAstroCatalog::SetObservatory(const MObservatory &obs)607 {608 if (fObservatory)609 delete fObservatory;610 fObservatory=(MObservatory*)obs.Clone();611 }612 613 617 void MAstroCatalog::AddPrimitives(Option_t *o) 614 618 { 615 const Double_t ra = fRaDec.Phi();616 const Double_t dec = TMath::Pi()/2-fRaDec.Theta();617 618 619 // Precalc Sin/Cos... 619 620 TRotation trans; 620 trans.Rotate(dec, TVector3(0, 1, 0)); 621 622 const TVector3 zdaz0 = fRaDec.GetZdAz(*fTime, *fObservatory); 623 TVector2 zdaz(zdaz0.Phi(), zdaz0.Theta()); 624 MAstroCatalog::DrawNet(zdaz, trans, 2); 625 626 TVector2 radec(ra, dec); 627 MAstroCatalog::DrawNet(radec, trans, 1); 621 trans.RotateZ(-fRaDec.Phi()); 622 trans.Rotate(TMath::Pi()/2-fRaDec.Theta(), TVector3(0, 1, 0)); 623 624 if (fTime && fObservatory) 625 { 626 const TRotation rot(MAstroSky2Local(*fTime, *fObservatory)); 627 const TVector3 zdaz0 = rot*fRaDec; 628 const TVector2 zdaz(zdaz0.Phi(), zdaz0.Theta()); 629 DrawNet(zdaz, trans*rot.Inverse(), 2); 630 } 631 632 const TVector2 radec(fRaDec.Phi(), fRaDec.Theta()); 633 DrawNet(radec, trans, 1); 628 634 629 635 TIter Next(&fList); … … 632 638 { 633 639 // FIXME: Check Magnitude! 634 TVector2 s(v->Phi(), TMath::Pi()/2-v->Theta());635 if (Convert(trans, s , 1)==kTRUE)636 DrawStar(s.X(), s.Y(), *v, kFALSE);640 TVector2 s(v->Phi(), v->Theta()); 641 if (Convert(trans, s)==kTRUE) 642 DrawStar(s.X(), TMath::Pi()/2-s.Y(), *v, kFALSE); 637 643 } 638 644 } -
trunk/MagicSoft/Mars/mastro/MAstroCatalog.h
r3525 r3537 62 62 63 63 const char *GetName() const { return fName; } 64 64 /* 65 65 MVector3 GetZdAz(const MObservatory &obs, Double_t gmst) const; 66 66 MVector3 GetZdAz(const MTime &time, MObservatory &obs) const; 67 67 MVector3 GetRaDec(const MObservatory &obs, Double_t gmst) const; 68 68 MVector3 GetRaDec(const MTime &time, MObservatory &obs) const; 69 69 */ 70 70 ClassDef(MVector3, 1) 71 71 }; … … 106 106 MTime *fTime; // Possible observation time 107 107 108 virtual Int_t Convert(const TRotation &rot, TVector2 &v, Int_t type=0); 108 virtual Int_t ConvertToPad(const TVector3 &w, TVector2 &v); 109 virtual Int_t Convert(const TRotation &rot, TVector2 &v); 109 110 virtual Bool_t DrawLine(const TVector2 &v0, Double_t dx, Double_t dy, const TRotation &rot, Int_t type); 110 111 virtual void AddPrimitives(Option_t *o); -
trunk/MagicSoft/Mars/mastro/MAstroSky2Local.cc
r3535 r3537 54 54 // 55 55 // v *= MAstroSky2Local(time, obs).Inverse(); 56 // 57 // Reminder: This tranformation only does a simple coordinate 58 // transformation. It completely ignores all other atrometric 59 // effects, like nutation, abberation, precission, ... 56 60 // 57 61 //////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mastro/Makefile
r3402 r3537 22 22 # connect the include files defined in the config.mk file 23 23 # 24 INCLUDES = -I. -I../mbase 24 INCLUDES = -I. -I../mbase -I../mgeom 25 25 26 # mgui (MCamEvent): MExtractSignalCam 27 # mgeom(MGeomCam): MArrivalTime 28 # mtools(MCubicSpline): MArrivalTime 29 # mraw (MRawEvtData): MExtractSignal 30 # manalysis (MPedestalCam): MExtractSignal 26 # mgeom (MAstroCamera): MGeomCam, MGeomMirror 31 27 32 28 #------------------------------------------------------------------------------ … … 35 31 36 32 SRCFILES = MAstro.cc \ 33 MAstroSky2Local.cc \ 37 34 MAstroCatalog.cc \ 38 35 MObservatory.cc 36 # MAstroCamera.cc \ 39 37 40 38 SRCS = $(SRCFILES) -
trunk/MagicSoft/Mars/mraw/MRawEvtPixelIter.cc
r3495 r3537 239 239 return -1; // means: not found 240 240 241 Byte_t *ptr = fLoGainPos+lofirst; 242 Byte_t *max = ptr; 243 const Byte_t *end = fLoGainPos + fNumLoGainSamples; 241 Byte_t *max = fLoGainPos+lofirst; 242 Byte_t *ptr = max+1; 243 244 const Byte_t *end = fLoGainPos + fNumLoGainSamples + 1; 244 245 245 246 do if (*ptr>*max) max = ptr;
Note:
See TracChangeset
for help on using the changeset viewer.