Changeset 3704
- Timestamp:
- 04/10/04 16:02:20 (21 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r3701 r3704 18 18 19 19 -*-*- END OF LINE -*-*- 20 2004/04/10: Thomas Bretz 21 22 * mastro/MAstroCatalog.[h,cc], mastro/MAstroCamera.[h,cc]: 23 - added comments 24 25 * macros/starfield.C: 26 - added 27 28 * mastro/Makefile, mastro/AstroLinkDef.h 29 - added MAstroCamera 30 31 32 20 33 2004/04/09: Markus Gaug 21 34 … … 41 54 * manalysis/MGeomApply.cc 42 55 - added average pixels in the way like it is done in MCalibrationCam 56 43 57 44 58 -
trunk/MagicSoft/Mars/mastro/AstroLinkDef.h
r3537 r3704 10 10 #pragma link C++ class MAstroSky2Local+; 11 11 #pragma link C++ class MAstroCatalog+; 12 //#pragma link C++ class MAstroCamera+;12 #pragma link C++ class MAstroCamera+; 13 13 14 14 #pragma link C++ class MObservatory+; -
trunk/MagicSoft/Mars/mastro/MAstroCamera.cc
r3666 r3704 33 33 // PRELIMINARY!! 34 34 // 35 // The caluclation of the position of the reflection in the camera is 36 // done by: 37 // - Rotation of the star-field such that the camera is looking into 38 // the pointing direction 39 // - Calculation of the reflected star-light vector by calling 40 // MGeomMirror::GetReflection (which returns the point at which 41 // the vector hits the camera plain) 42 // - Depending on the draw-option you get each reflected point, the 43 // reflection on a virtual ideal mirror or the reflection on each 44 // individual mirror 45 // 46 // GUI: You can use the the cursor keys to change the pointing position 47 // and plus/minus to change the time by a quarter of an hour. 48 // 35 49 ///////////////////////////////////////////////////////////////////////////// 36 50 #include "MAstroCamera.h" … … 58 72 59 73 // -------------------------------------------------------------------------- 74 // 75 // Create a virtual MGeomMirror which is in the center of the coordinate 76 // system and has a normal vector in z-direction. 77 // 60 78 MAstroCamera::MAstroCamera() : fGeom(0), fMirrors(0) 61 79 { … … 65 83 66 84 // -------------------------------------------------------------------------- 85 // 86 // Delete fGeom, fMirrors and the virtual 0-Mirror fMirror0 87 // 67 88 MAstroCamera::~MAstroCamera() 68 89 { … … 76 97 77 98 // -------------------------------------------------------------------------- 99 // 100 // Set a list of mirrors. The Mirrors must be of type MGeomMirror and 101 // stored in a TClonesArray 102 // 78 103 void MAstroCamera::SetMirrors(TClonesArray &arr) 79 104 { 80 105 if (arr.GetClass()!=MGeomMirror::Class()) 106 { 107 cout << "ERROR - TClonesArray doesn't contain objects of type MGeomMirror... ignored." << endl; 81 108 return; 109 } 82 110 83 111 const Int_t n = arr.GetSize(); … … 94 122 95 123 // -------------------------------------------------------------------------- 124 // 125 // Set the camera geometry. The MGeomCam object is cloned. 126 // 96 127 void MAstroCamera::SetGeom(const MGeomCam &cam) 97 128 { … … 103 134 104 135 // -------------------------------------------------------------------------- 136 // 137 // Convert To Pad coordinates (see MAstroCatalog) 138 // 105 139 Int_t MAstroCamera::ConvertToPad(const TVector3 &w, TVector2 &v) const 106 140 { … … 124 158 125 159 // -------------------------------------------------------------------------- 160 // 161 // Find an object with a given name in the list of primitives of this pad. 162 // 126 163 TObject *FindObjectInPad(const char *name, TVirtualPad *pad) 127 164 { … … 152 189 // 153 190 // '*' Draw the mean of the reflections on all mirrors 154 // '.' Draw a dot for the reflection on each mirror 191 // '.' Draw a dot for the reflection on each individual mirror 192 // 'h' To create a TH2D of the star-light which is displayed 193 // 'c' Use the underlaying MHCamera as histogram 194 // '0' Draw the reflection on a virtual perfect mirror 195 // 196 // If the Pad contains an object MHCamera of type MHCamera it is used. 197 // Otherwise a new object is created. 155 198 // 156 199 void MAstroCamera::AddPrimitives(TString o) … … 165 208 o = "*."; 166 209 210 const Bool_t hasnull = o.Contains("0", TString::kIgnoreCase); 167 211 const Bool_t hashist = o.Contains("h", TString::kIgnoreCase); 168 212 const Bool_t hasmean = o.Contains("*", TString::kIgnoreCase); … … 257 301 // transform meters into millimeters (camera display works with mm) 258 302 mean *= 1./num; 259 260 303 DrawStar(mean(0), mean(1), *radec, !hasmean, Form("x=%.1fmm y=%.1fmm", mean(0), mean(1))); 304 305 if (hasnull) 306 { 307 TVector3 star(*radec); 308 star *= rot; 309 const TVector3 spot = fMirror0->GetReflection(star, fGeom->GetCameraDist())*1000; 310 DrawStar(spot(0), spot(1), *radec, !hasmean, Form("x=%.1fmm y=%.1fmm", mean(0), mean(1))); 311 } 261 312 } 262 313 } -
trunk/MagicSoft/Mars/mastro/MAstroCamera.h
r3666 r3704 33 33 void SetGeom(const MGeomCam &cam); 34 34 35 ClassDef(MAstroCamera, 1) 35 ClassDef(MAstroCamera, 1) // Display class to display stars on the camera 36 36 }; 37 37 -
trunk/MagicSoft/Mars/mastro/MAstroCatalog.cc
r3666 r3704 25 25 ////////////////////////////////////////////////////////////////////////////// 26 26 // 27 // MAstroCatalog 28 // 29 // THIS IMPLEMENTATION IS PRELIMINARY AND WILL BE MERGED WITH 30 // SOME PARTS OF THE DRIVE SOFTWARE SOON! 27 // MAstroCatalog 28 // 29 // THIS IMPLEMENTATION IS PRELIMINARY AND WILL BE MERGED WITH 30 // SOME PARTS OF THE DRIVE SOFTWARE SOON! 31 // 32 // To display a starfiield you must have a supported catalog, then do: 33 // 34 // MTime time; 35 // // Time for which to get the picture 36 // time.Set(2004, 2, 28, 20, 14, 7); 37 // // Current observatory 38 // MObservatory magic1; 39 // // Right Ascension [h] and declination [deg] of source 40 // // Currently 'perfect' pointing is assumed 41 // const Double_t ra = MAstro::Hms2Rad(5, 34, 31.9); 42 // const Double_t dec = MAstro::Dms2Rad(22, 0, 52.0); 43 // MAstroCatalog stars; 44 // // Magnitude up to which the stars are loaded from the catalog 45 // stars.SetLimMag(6); 46 // // Radius of FOV around the source position to load the stars 47 // stars.SetRadiusFOV(3); 48 // // Source position 49 // stars.SetRaDec(ra, dec); 50 // // Catalog to load (here: Bright Star Catalog V5) 51 // stars.ReadBSC("bsc5.dat"); 52 // // Obersavatory and time to also get local coordinate information 53 // stars.SetObservatory(magic1); 54 // stars.SetTime(time); 55 // // Enable interactive GUI 56 // stars.SetGuiActive(); 57 // //Clone the catalog due to the validity range of the instance 58 // TObject *o = stars.Clone(); 59 // o->SetBit(kCanDelete); 60 // o->Draw(); 61 // 62 // If no time and/or Obervatory location is given no local coordinate 63 // information is displayed. 64 // 65 // The conversion from sky coordinates to local coordinates is done using 66 // MAstroSky2Local which does a simple rotation of the coordinate system. 67 // This is inaccurate in the order of 30arcsec due to ignorance of all 68 // astrometrical corrections (nutation, precission, abberation, ...) 69 // 70 // GUI: If the gui is interactive you can use the cursor keys to change 71 // the position you are looking at and with plus/minus you 72 // can (un)zoom the FOV (Field Of View) 73 // 74 // ToDo: 75 // - replace MVetcor3 by a more convinient class. Maybe use TExMap, too. 31 76 // 32 77 ////////////////////////////////////////////////////////////////////////////// … … 48 93 #include <TRotation.h> 49 94 #include <TPaveText.h> 50 #include <TStopwatch.h>51 95 52 96 #include "MLog.h" … … 58 102 #include "MObservatory.h" 59 103 104 #undef DEBUG 105 //#define DEBUG 106 107 #ifdef DEBUG 108 #include <TStopwatch.h> 109 #endif 110 60 111 ClassImp(MVector3); 61 112 ClassImp(MAstroCatalog); 62 113 63 114 using namespace std; 64 /* 65 class MRotation : public TRotation 66 { 67 public: 68 MRotation(Double_t gmst, const MObservatory &obs) : TRotation(1, 0, 0, 0, -1, 0, 0, 0, 1) 69 { 70 RotateZ(gmst + obs.GetElong()); 71 RotateY(obs.GetPhi()-TMath::Pi()/2); 72 RotateZ(TMath::Pi()); 73 } 74 MRotation(const MTime &t, const MObservatory &obs) : TRotation(1, 0, 0, 0, -1, 0, 0, 0, 1) 75 { 76 RotateZ(t.GetGmst() + obs.GetElong()); 77 RotateY(obs.GetPhi()-TMath::Pi()/2); 78 RotateZ(TMath::Pi()); 79 } 80 }; 81 */ 82 /* 83 MVector3 MVector3::GetZdAz(const MObservatory &obs, Double_t gmst) const 84 { 85 if (!fType==kIsRaDec) 86 return MVector3(); 87 88 MVector3 v(*this); 89 v *= MAstroSky2Local(gmst, obs); 90 91 return v; 92 93 // ------ Using vectors ------- 94 // v(1) = -v(1); // phi --> -phi 95 // v.RotateZ(gmst + obs.GetElong()); // -phi --> alpha-phi 96 // v.RotateY(obs.GetPhi()-TMath::Pi()/2); 97 // v.RotateZ(TMath::Pi()); 98 99 // ------ The same using slalib, tested in the drive system ------- 100 // const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 101 // Double_t el; 102 // slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 103 // zd = TMath::Pi()/2-el; 104 } 105 106 MVector3 MVector3::GetZdAz(const MTime &time, MObservatory &obs) const 107 { 108 return GetZdAz(obs, time.GetGmst()); 109 } 110 111 MVector3 MVector3::GetRaDec(const MObservatory &obs, Double_t gmst) const 112 { 113 if (!fType==kIsZdAz) 114 return MVector3(); 115 116 MVector3 v(*this); 117 v *= MAstroSky2Local(gmst, obs).Inverse(); 118 119 return v; 120 121 // ------ Using vectors ------- 122 // v.RotateZ(-TMath::Pi()); 123 // v.RotateY(TMath::Pi()/2-obs.GetPhi()); 124 // v.RotateZ(-gmst - obs.GetElong()); // alpha-phi --> -phi 125 // v(1) = -v(1); // -phi --> phi 126 127 // ------ The same using slalib, tested in the drive system ------- 128 // const Double_t alpha = slaGmst(mjd) + obs.GetElong(); 129 // Double_t el; 130 // slaDe2h(fAlpha-ra, dec, obs.GetPhi(), &az, &el); 131 // zd = TMath::Pi()/2-el; 132 } 133 134 MVector3 MVector3::GetRaDec(const MTime &time, MObservatory &obs) const 135 { 136 return GetRaDec(obs, time.GetGmst()); 137 } 138 */ 139 // -------------------------------------------------------------------------- 115 116 // -------------------------------------------------------------------------- 117 // 118 // Default Constructor. Set Default values: 119 // fLimMag = 99 120 // fRadiusFOV = 90 121 // 140 122 MAstroCatalog::MAstroCatalog() : fLimMag(99), fRadiusFOV(90), fToolTip(0), fObservatory(0), fTime(0) 141 123 { … … 145 127 146 128 // -------------------------------------------------------------------------- 129 // 130 // Destructor. Delete fTime, fObservatory. Disconnect signal. delete tooltip. 131 // Delete Map with gui primitives 132 // 147 133 MAstroCatalog::~MAstroCatalog() 148 134 { … … 168 154 169 155 // -------------------------------------------------------------------------- 156 // 157 // Snippet to for reading ctalog files. 158 // 170 159 TString MAstroCatalog::FindToken(TString &line, Char_t tok) 171 160 { … … 184 173 185 174 // -------------------------------------------------------------------------- 175 // 176 // return int correspoding to TSubString 177 // 186 178 Int_t MAstroCatalog::atoi(const TSubString &sub) 187 179 { … … 190 182 191 183 // -------------------------------------------------------------------------- 184 // 185 // return float correspoding to TSubString 186 // 192 187 Float_t MAstroCatalog::atof(const TSubString &sub) 193 188 { … … 196 191 197 192 // -------------------------------------------------------------------------- 193 // 194 // return int correspoding to TString 195 // 198 196 Int_t MAstroCatalog::atoi(const TString &s) 199 197 { … … 202 200 203 201 // -------------------------------------------------------------------------- 202 // 203 // return float correspoding to TString 204 // 204 205 Float_t MAstroCatalog::atof(const TString &s) 205 206 { … … 208 209 209 210 // -------------------------------------------------------------------------- 211 // 212 // Read from a xephem catalog, set bit kHasChahanged. 213 // Already read data is not deleted. To delete the stored data call 214 // Delete(). 215 // 210 216 Int_t MAstroCatalog::ReadXephem(TString catalog) 211 217 { … … 295 301 296 302 // -------------------------------------------------------------------------- 303 // 304 // Read from a NGC2000 catalog. set bit kHasChanged 305 // Already read data is not deleted. To delete the stored data call 306 // Delete(). 307 // 297 308 Int_t MAstroCatalog::ReadNGC2000(TString catalog) 298 309 { … … 365 376 366 377 // -------------------------------------------------------------------------- 378 // 379 // Read from a Bright Star Catalog catalog. set bit kHasChanged 380 // Already read data is not deleted. To delete the stored data call 381 // Delete(). 382 // 367 383 Int_t MAstroCatalog::ReadBSC(TString catalog) 368 384 { … … 437 453 438 454 // -------------------------------------------------------------------------- 455 // 456 // Set Range of pad. If something has changed create and draw new primitives. 457 // Paint all gui primitives. 458 // 439 459 void MAstroCatalog::Paint(Option_t *o) 440 460 { … … 448 468 449 469 // -------------------------------------------------------------------------- 470 // 471 // Draw a black marker at the position of the star. Create a corresponding 472 // tooltip with the coordinates. 473 // x, y: Pad Coordinates to draw star 474 // v: Sky position (Ra/Dec) of the star 475 // transparent: Draw marker or tooltip only 476 // txt: additional tooltip text 477 // 450 478 void MAstroCatalog::DrawStar(Double_t x, Double_t y, const TVector3 &v, Bool_t transparent, const char *txt) 451 479 { … … 467 495 468 496 // -------------------------------------------------------------------------- 497 // 498 // Set pad as modified. 499 // 469 500 void MAstroCatalog::Update(Bool_t upd) 470 501 { … … 481 512 // 482 513 // Set the observation time. Necessary to use local coordinate 483 // system. 514 // system. The MTime object is cloned. 484 515 // 485 516 void MAstroCatalog::SetTime(const MTime &time) … … 493 524 // 494 525 // Set the observatory location. Necessary to use local coordinate 495 // system. 526 // system. The MObservatory object is cloned. 496 527 // 497 528 void MAstroCatalog::SetObservatory(const MObservatory &obs) … … 532 563 533 564 // -------------------------------------------------------------------------- 565 // 566 // Convert theta/phi coordinates of v by TRotation into new coordinate 567 // system and convert the coordinated to pad by ConvertToPad. 568 // The result is retunred in v. 569 // 534 570 Int_t MAstroCatalog::Convert(const TRotation &rot, TVector2 &v) const 535 571 { … … 542 578 543 579 // -------------------------------------------------------------------------- 580 // 581 // Draw a line from v to v+(dx,dy) using Convert/ConvertToPad to get the 582 // corresponding pad coordinates. 583 // 544 584 Bool_t MAstroCatalog::DrawLine(const TVector2 &v, Double_t dx, Double_t dy, const TRotation &rot, Int_t type) 545 585 { … … 577 617 // Use "local" draw option to align the display to the local 578 618 // coordinate system instead of the sky coordinate system. 619 // dx, dy are arrays storing recuresively all touched points 620 // stepx, stepy are the step-size of the current grid. 579 621 // 580 622 void MAstroCatalog::Draw(const TVector2 &v0, const TRotation &rot, TArrayI &dx, TArrayI &dy, Int_t stepx, Int_t stepy, Int_t type) 581 623 { 624 // Calculate the end point 582 625 const TVector2 v1 = v0 + TVector2(dx[0]*TMath::DegToRad(), dy[0]*TMath::DegToRad()); 583 626 627 // Check whether the point has already been touched. 584 628 Int_t idx[] = {1, 1, 1, 1}; 585 629 586 630 Int_t dirs[4][2] = { {0, stepy}, {stepx, 0}, {0, -stepy}, {-stepx, 0} }; 587 631 632 // Check for ambiguities. 588 633 for (int i=0; i<dx.GetSize(); i++) 589 634 { … … 625 670 626 671 // -------------------------------------------------------------------------- 672 // 673 // Draw a grid recursively around the point v0 (either Ra/Dec or Zd/Az) 674 // The points in the grid are converted by a TRotation and CovertToPad 675 // to pad coordinates. The type arguemnts is neccessary to create the 676 // correct tooltip (Ra/Dec, Zd/Az) at the grid-points. 677 // From the pointing position the step-size of teh gris is caluclated. 678 // 627 679 void MAstroCatalog::DrawGrid(const TVector3 &v0, const TRotation &rot, Int_t type) 628 680 { … … 705 757 const Bool_t enable = fTime && fObservatory; 706 758 759 // If sky coordinate view is requested get rotation matrix and 760 // draw corresponding sky-grid and if possible local grid 707 761 if (!local) 708 762 { … … 717 771 } 718 772 773 // Return the correct rotation matrix 719 774 return trans; 720 775 } 721 776 777 // If local coordinate view is requested get rotation matrix and 778 // draw corresponding sky-grid and if possible local grid 722 779 if (local && enable) 723 780 { … … 729 786 DrawGrid(rot*fRaDec, trans, 2); 730 787 788 // Return the correct rotation matrix 731 789 return trans*rot; 732 790 } … … 736 794 737 795 // -------------------------------------------------------------------------- 796 // 797 // Create the title for the pad. 798 // 738 799 TString MAstroCatalog::GetPadTitle() const 739 800 { … … 833 894 834 895 // -------------------------------------------------------------------------- 896 // 897 // Do nothing if 'same' option given. 898 // Otherwise set pad-range such that x- and y- coordinates have the same 899 // step-size 900 // 835 901 void MAstroCatalog::SetRangePad(Option_t *o) 836 902 { … … 851 917 852 918 // -------------------------------------------------------------------------- 919 // 920 // First delete all gui elements. 921 // Set the correct range of the pad. 922 // Create all gui primitives 923 // If "this" is not in the current pad add it to the current pad. 924 // Reset vit kHasChanged 925 // 853 926 void MAstroCatalog::DrawPrimitives(Option_t *o) 854 927 { … … 857 930 SetRangePad(o); 858 931 932 #ifdef DEBUG 859 933 TStopwatch clk; 860 934 clk.Start(); 935 #endif DEBUG 861 936 AddPrimitives(o); 937 #ifdef DEBUG 862 938 clk.Stop(); 863 939 clk.Print(); 940 #endif DEBUG 864 941 865 942 // Append to a possible second pad … … 871 948 872 949 // -------------------------------------------------------------------------- 950 // 951 // Call Paint() of all gui elements 952 // 873 953 void MAstroCatalog::PaintMap() 874 954 { … … 880 960 881 961 // -------------------------------------------------------------------------- 962 // 963 // Append "this" to current pad 964 // set bit kHasChanged to recreate all gui elements 965 // Connect signal 966 // 882 967 void MAstroCatalog::Draw(Option_t *o) 883 968 { … … 887 972 // If contents have not previously changed make sure that 888 973 // all primitives are recreated. 889 if (!TestBit(kHasChanged)) 890 DrawPrimitives(o); 974 SetBit(kHasChanged); 891 975 892 976 // Connect all TCanvas::ProcessedEvent to this->EventInfo … … 896 980 "MAstroCatalog", this, 897 981 "EventInfo(Int_t,Int_t,Int_t,TObject*)"); 898 899 // Do this instead of fListG.Draw, because900 // TCollection overwrites Draw901 // Would be nice, but doesn't work because the single902 // graphical object are not handled by TPad anymore...903 // fListG.AppendPad();904 982 } 905 983 … … 944 1022 return; 945 1023 1024 // Handle some gui events 946 1025 switch (event) 947 1026 { … … 963 1042 964 1043 // -------------------------------------------------------------------------- 1044 // 1045 // Handle keyboard events. 1046 // 965 1047 void MAstroCatalog::ExecuteEventKbd(Int_t keycode, Int_t keysym) 966 1048 { … … 1015 1097 1016 1098 // -------------------------------------------------------------------------- 1099 // 1100 // Calculate distance to primitive by checking all gui elements 1101 // 1017 1102 Int_t MAstroCatalog::DistancetoPrimitive(Int_t px, Int_t py) 1018 1103 { … … 1053 1138 fToolTip->Show(x+4, y+4); 1054 1139 } 1140 1055 1141 /* 1056 1142 void MAstroCatalog::RecursiveRemove(TObject *obj) -
trunk/MagicSoft/Mars/mastro/MAstroCatalog.h
r3666 r3704 33 33 TString fName; 34 34 35 36 35 public: 37 /*38 MVector3(Double_t theta=0, Double_t phi=0, Double_t mag=1)39 {40 SetMagThetaPhi(exp(mag), theta, phi);41 }*/42 36 MVector3() { fType=kIsInvalid; } 43 37 MVector3(const TVector3 &v3) : TVector3(v3) { fType=kIsArbitrary; } … … 62 56 63 57 const char *GetName() const { return fName; } 64 /* 65 MVector3 GetZdAz(const MObservatory &obs, Double_t gmst) const; 66 MVector3 GetZdAz(const MTime &time, MObservatory &obs) const; 67 MVector3 GetRaDec(const MObservatory &obs, Double_t gmst) const; 68 MVector3 GetRaDec(const MTime &time, MObservatory &obs) const; 69 */ 70 ClassDef(MVector3, 1) 58 59 ClassDef(MVector3, 1) // A specialized TVector3 storeing a star-name 71 60 }; 72 61 … … 134 123 protected: 135 124 enum { 136 kHasChanged = BIT(15), 137 kGuiActive = BIT(16), 138 kPlainScreen = BIT(17), 139 kMirrorX = BIT(18), 140 kMirrorY = BIT(19) 125 kHasChanged = BIT(15), // Display has changed 126 kGuiActive = BIT(16), // GUI is interactive 127 kPlainScreen = BIT(17), // View is a plain screen view 128 kMirrorX = BIT(18), // Mirror display in X 129 kMirrorY = BIT(19) // Mirror display in Y 141 130 }; 142 131 143 TList fList; // List of stars loaded144 MVector3 fRaDec; // pointing position132 TList fList; // List of stars loaded 133 MVector3 fRaDec; // pointing position 145 134 146 135 MObservatory *fObservatory; // Possible obervatory location … … 157 146 void AddMap(TObject *k, void *v=0) 158 147 { 159 //k->SetBit(kCanDelete);160 //k->SetBit(kCannotPick);161 148 fMapG.Add(fMapG.GetSize(), (Long_t)k, (Long_t)v); 162 149 } … … 189 176 Bool_t IsPlainScreen() const { return TestBit(kPlainScreen); } 190 177 191 Double_t GetLimMag() const { return fLimMag; } 192 Double_t GetRadiusFOV() const { return fRadiusFOV; } 193 194 void Delete(Option_t *o="") { fList.Delete(); DeleteMap(); } 178 Double_t GetLimMag() const { return fLimMag; } // Get Limiting Magnitude 179 Double_t GetRadiusFOV() const { return fRadiusFOV; } // Get maximum radius of Field Of View 180 181 void Delete(Option_t *o="") { fList.Delete(); DeleteMap(); } // Delete list of stars 195 182 196 183 Int_t ReadXephem(TString catalog = "/usr/X11R6/lib/xephem/catalogs/YBS.edb"); … … 198 185 Int_t ReadBSC(TString catalog = "bsc5.dat"); 199 186 200 void Print(Option_t *o="") const { fList.Print(); } 201 202 TList *GetList() { return &fList; } 187 void Print(Option_t *o="") const { fList.Print(); } // Print all stars 188 189 TList *GetList() { return &fList; } // Return list of stars 203 190 204 191 void Draw(Option_t *o=""); … … 211 198 virtual void EventInfo(Int_t event, Int_t px, Int_t py, TObject *selected=0); 212 199 213 ClassDef(MAstroCatalog, 1) 200 ClassDef(MAstroCatalog, 1) // Display class for star catalogs 214 201 }; 215 202 #endif -
trunk/MagicSoft/Mars/mastro/Makefile
r3537 r3704 33 33 MAstroSky2Local.cc \ 34 34 MAstroCatalog.cc \ 35 MAstroCamera.cc \ 35 36 MObservatory.cc 36 # MAstroCamera.cc \37 37 38 38 SRCS = $(SRCFILES)
Note:
See TracChangeset
for help on using the changeset viewer.