Changeset 3704


Ignore:
Timestamp:
04/10/04 16:02:20 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r3701 r3704  
    1818
    1919                                                 -*-*- 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
    2033 2004/04/09: Markus Gaug
    2134
     
    4154   * manalysis/MGeomApply.cc
    4255     - added average pixels in the way like it is done in MCalibrationCam
     56
    4357
    4458
  • trunk/MagicSoft/Mars/mastro/AstroLinkDef.h

    r3537 r3704  
    1010#pragma link C++ class MAstroSky2Local+;
    1111#pragma link C++ class MAstroCatalog+;
    12 //#pragma link C++ class MAstroCamera+;
     12#pragma link C++ class MAstroCamera+;
    1313
    1414#pragma link C++ class MObservatory+;
  • trunk/MagicSoft/Mars/mastro/MAstroCamera.cc

    r3666 r3704  
    3333// PRELIMINARY!!
    3434//
     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//
    3549/////////////////////////////////////////////////////////////////////////////
    3650#include "MAstroCamera.h"
     
    5872
    5973// --------------------------------------------------------------------------
     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//
    6078MAstroCamera::MAstroCamera() : fGeom(0), fMirrors(0)
    6179{
     
    6583
    6684// --------------------------------------------------------------------------
     85//
     86// Delete fGeom, fMirrors and the virtual 0-Mirror fMirror0
     87//
    6788MAstroCamera::~MAstroCamera()
    6889{
     
    7697
    7798// --------------------------------------------------------------------------
     99//
     100// Set a list of mirrors. The Mirrors must be of type MGeomMirror and
     101// stored in a TClonesArray
     102//
    78103void MAstroCamera::SetMirrors(TClonesArray &arr)
    79104{
    80105    if (arr.GetClass()!=MGeomMirror::Class())
     106    {
     107        cout << "ERROR - TClonesArray doesn't contain objects of type MGeomMirror... ignored." << endl;
    81108        return;
     109    }
    82110
    83111    const Int_t n = arr.GetSize();
     
    94122
    95123// --------------------------------------------------------------------------
     124//
     125// Set the camera geometry. The MGeomCam object is cloned.
     126//
    96127void MAstroCamera::SetGeom(const MGeomCam &cam)
    97128{
     
    103134
    104135// --------------------------------------------------------------------------
     136//
     137// Convert To Pad coordinates (see MAstroCatalog)
     138//
    105139Int_t MAstroCamera::ConvertToPad(const TVector3 &w, TVector2 &v) const
    106140{
     
    124158
    125159// --------------------------------------------------------------------------
     160//
     161// Find an object with a given name in the list of primitives of this pad.
     162//
    126163TObject *FindObjectInPad(const char *name, TVirtualPad *pad)
    127164{
     
    152189//
    153190//  '*' 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.
    155198//
    156199void MAstroCamera::AddPrimitives(TString o)
     
    165208        o = "*.";
    166209
     210    const Bool_t hasnull = o.Contains("0", TString::kIgnoreCase);
    167211    const Bool_t hashist = o.Contains("h", TString::kIgnoreCase);
    168212    const Bool_t hasmean = o.Contains("*", TString::kIgnoreCase);
     
    257301        // transform meters into millimeters (camera display works with mm)
    258302        mean *= 1./num;
    259 
    260303        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        }
    261312    }
    262313}
  • trunk/MagicSoft/Mars/mastro/MAstroCamera.h

    r3666 r3704  
    3333    void SetGeom(const MGeomCam &cam);
    3434
    35     ClassDef(MAstroCamera, 1)
     35    ClassDef(MAstroCamera, 1) // Display class to display stars on the camera
    3636};
    3737
  • trunk/MagicSoft/Mars/mastro/MAstroCatalog.cc

    r3666 r3704  
    2525//////////////////////////////////////////////////////////////////////////////
    2626//
    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.
    3176//
    3277//////////////////////////////////////////////////////////////////////////////
     
    4893#include <TRotation.h>
    4994#include <TPaveText.h>
    50 #include <TStopwatch.h>
    5195
    5296#include "MLog.h"
     
    58102#include "MObservatory.h"
    59103
     104#undef DEBUG
     105//#define DEBUG
     106
     107#ifdef DEBUG
     108#include <TStopwatch.h>
     109#endif
     110
    60111ClassImp(MVector3);
    61112ClassImp(MAstroCatalog);
    62113
    63114using 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//
    140122MAstroCatalog::MAstroCatalog() : fLimMag(99), fRadiusFOV(90), fToolTip(0), fObservatory(0), fTime(0)
    141123{
     
    145127
    146128// --------------------------------------------------------------------------
     129//
     130// Destructor. Delete fTime, fObservatory. Disconnect signal. delete tooltip.
     131// Delete Map with gui primitives
     132//
    147133MAstroCatalog::~MAstroCatalog()
    148134{
     
    168154
    169155// --------------------------------------------------------------------------
     156//
     157// Snippet to for reading ctalog files.
     158//
    170159TString MAstroCatalog::FindToken(TString &line, Char_t tok)
    171160{
     
    184173
    185174// --------------------------------------------------------------------------
     175//
     176// return int correspoding to TSubString
     177//
    186178Int_t MAstroCatalog::atoi(const TSubString &sub)
    187179{
     
    190182
    191183// --------------------------------------------------------------------------
     184//
     185// return float correspoding to TSubString
     186//
    192187Float_t MAstroCatalog::atof(const TSubString &sub)
    193188{
     
    196191
    197192// --------------------------------------------------------------------------
     193//
     194// return int correspoding to TString
     195//
    198196Int_t MAstroCatalog::atoi(const TString &s)
    199197{
     
    202200
    203201// --------------------------------------------------------------------------
     202//
     203// return float correspoding to TString
     204//
    204205Float_t MAstroCatalog::atof(const TString &s)
    205206{
     
    208209
    209210// --------------------------------------------------------------------------
     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//
    210216Int_t MAstroCatalog::ReadXephem(TString catalog)
    211217{
     
    295301
    296302// --------------------------------------------------------------------------
     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//
    297308Int_t MAstroCatalog::ReadNGC2000(TString catalog)
    298309{
     
    365376
    366377// --------------------------------------------------------------------------
     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//
    367383Int_t MAstroCatalog::ReadBSC(TString catalog)
    368384{
     
    437453
    438454// --------------------------------------------------------------------------
     455//
     456// Set Range of pad. If something has changed create and draw new primitives.
     457// Paint all gui primitives.
     458//
    439459void MAstroCatalog::Paint(Option_t *o)
    440460{
     
    448468
    449469// --------------------------------------------------------------------------
     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//
    450478void MAstroCatalog::DrawStar(Double_t x, Double_t y, const TVector3 &v, Bool_t transparent, const char *txt)
    451479{
     
    467495
    468496// --------------------------------------------------------------------------
     497//
     498// Set pad as modified.
     499//
    469500void MAstroCatalog::Update(Bool_t upd)
    470501{
     
    481512//
    482513// Set the observation time. Necessary to use local coordinate
    483 // system.
     514// system. The MTime object is cloned.
    484515//
    485516void MAstroCatalog::SetTime(const MTime &time)
     
    493524//
    494525// Set the observatory location. Necessary to use local coordinate
    495 // system.
     526// system. The MObservatory object is cloned.
    496527//
    497528void MAstroCatalog::SetObservatory(const MObservatory &obs)
     
    532563
    533564// --------------------------------------------------------------------------
     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//
    534570Int_t MAstroCatalog::Convert(const TRotation &rot, TVector2 &v) const
    535571{
     
    542578
    543579// --------------------------------------------------------------------------
     580//
     581// Draw a line from v to v+(dx,dy) using Convert/ConvertToPad to get the
     582// corresponding pad coordinates.
     583//
    544584Bool_t MAstroCatalog::DrawLine(const TVector2 &v, Double_t dx, Double_t dy, const TRotation &rot, Int_t type)
    545585{
     
    577617// Use "local" draw option to align the display to the local
    578618// 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.
    579621//
    580622void MAstroCatalog::Draw(const TVector2 &v0, const TRotation &rot, TArrayI &dx, TArrayI &dy, Int_t stepx, Int_t stepy, Int_t type)
    581623{
     624    // Calculate the end point
    582625    const TVector2 v1 = v0 + TVector2(dx[0]*TMath::DegToRad(), dy[0]*TMath::DegToRad());
    583626
     627    // Check whether the point has already been touched.
    584628    Int_t idx[] = {1, 1, 1, 1};
    585629
    586630    Int_t dirs[4][2] = { {0, stepy}, {stepx, 0}, {0, -stepy}, {-stepx, 0} };
    587631
     632    // Check for ambiguities.
    588633    for (int i=0; i<dx.GetSize(); i++)
    589634    {
     
    625670
    626671// --------------------------------------------------------------------------
     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//
    627679void MAstroCatalog::DrawGrid(const TVector3 &v0, const TRotation &rot, Int_t type)
    628680{
     
    705757    const Bool_t enable = fTime && fObservatory;
    706758
     759    // If sky coordinate view is requested get rotation matrix and
     760    // draw corresponding sky-grid and if possible local grid
    707761    if (!local)
    708762    {
     
    717771        }
    718772
     773        // Return the correct rotation matrix
    719774        return trans;
    720775    }
    721776
     777    // If local coordinate view is requested get rotation matrix and
     778    // draw corresponding sky-grid and if possible local grid
    722779    if (local && enable)
    723780    {
     
    729786        DrawGrid(rot*fRaDec, trans,     2);
    730787
     788        // Return the correct rotation matrix
    731789        return trans*rot;
    732790    }
     
    736794
    737795// --------------------------------------------------------------------------
     796//
     797// Create the title for the pad.
     798//
    738799TString MAstroCatalog::GetPadTitle() const
    739800{
     
    833894
    834895// --------------------------------------------------------------------------
     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//
    835901void MAstroCatalog::SetRangePad(Option_t *o)
    836902{
     
    851917
    852918// --------------------------------------------------------------------------
     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//
    853926void MAstroCatalog::DrawPrimitives(Option_t *o)
    854927{
     
    857930    SetRangePad(o);
    858931
     932#ifdef DEBUG
    859933    TStopwatch clk;
    860934    clk.Start();
     935#endif DEBUG
    861936    AddPrimitives(o);
     937#ifdef DEBUG
    862938    clk.Stop();
    863939    clk.Print();
     940#endif DEBUG
    864941
    865942    // Append to a possible second pad
     
    871948
    872949// --------------------------------------------------------------------------
     950//
     951// Call Paint() of all gui elements
     952//
    873953void MAstroCatalog::PaintMap()
    874954{
     
    880960
    881961// --------------------------------------------------------------------------
     962//
     963// Append "this" to current pad
     964// set bit kHasChanged to recreate all gui elements
     965// Connect signal
     966//
    882967void MAstroCatalog::Draw(Option_t *o)
    883968{
     
    887972    // If contents have not previously changed make sure that
    888973    // all primitives are recreated.
    889     if (!TestBit(kHasChanged))
    890         DrawPrimitives(o);
     974    SetBit(kHasChanged);
    891975
    892976    // Connect all TCanvas::ProcessedEvent to this->EventInfo
     
    896980                               "MAstroCatalog", this,
    897981                               "EventInfo(Int_t,Int_t,Int_t,TObject*)");
    898 
    899     // Do this instead of fListG.Draw, because
    900     // TCollection overwrites Draw
    901     // Would be nice, but doesn't work because the single
    902     // graphical object are not handled by TPad anymore...
    903     //    fListG.AppendPad();
    904982}
    905983
     
    9441022        return;
    9451023
     1024    // Handle some gui events
    9461025    switch (event)
    9471026    {
     
    9631042
    9641043// --------------------------------------------------------------------------
     1044//
     1045// Handle keyboard events.
     1046//
    9651047void MAstroCatalog::ExecuteEventKbd(Int_t keycode, Int_t keysym)
    9661048{
     
    10151097
    10161098// --------------------------------------------------------------------------
     1099//
     1100// Calculate distance to primitive by checking all gui elements
     1101//
    10171102Int_t MAstroCatalog::DistancetoPrimitive(Int_t px, Int_t py)
    10181103{
     
    10531138    fToolTip->Show(x+4, y+4);
    10541139}
     1140
    10551141/*
    10561142void MAstroCatalog::RecursiveRemove(TObject *obj)
  • trunk/MagicSoft/Mars/mastro/MAstroCatalog.h

    r3666 r3704  
    3333    TString fName;
    3434
    35 
    3635public:
    37     /*
    38      MVector3(Double_t theta=0, Double_t phi=0, Double_t mag=1)
    39      {
    40      SetMagThetaPhi(exp(mag), theta, phi);
    41      }*/
    4236    MVector3() { fType=kIsInvalid; }
    4337    MVector3(const TVector3 &v3) : TVector3(v3) { fType=kIsArbitrary; }
     
    6256
    6357    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
    7160};
    7261
     
    134123protected:
    135124    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
    141130    };
    142131
    143     TList    fList;      // List of stars loaded
    144     MVector3 fRaDec;     // pointing position
     132    TList    fList;             // List of stars loaded
     133    MVector3 fRaDec;            // pointing position
    145134
    146135    MObservatory *fObservatory; // Possible obervatory location
     
    157146    void AddMap(TObject *k, void *v=0)
    158147    {
    159         //k->SetBit(kCanDelete);
    160         //k->SetBit(kCannotPick);
    161148        fMapG.Add(fMapG.GetSize(), (Long_t)k, (Long_t)v);
    162149    }
     
    189176    Bool_t IsPlainScreen() const             { return TestBit(kPlainScreen); }
    190177
    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
    195182
    196183    Int_t ReadXephem(TString catalog = "/usr/X11R6/lib/xephem/catalogs/YBS.edb");
     
    198185    Int_t ReadBSC(TString catalog = "bsc5.dat");
    199186
    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
    203190
    204191    void Draw(Option_t *o="");
     
    211198    virtual void EventInfo(Int_t event, Int_t px, Int_t py, TObject *selected=0);
    212199
    213     ClassDef(MAstroCatalog, 1)
     200    ClassDef(MAstroCatalog, 1) // Display class for star catalogs
    214201};
    215202#endif
  • trunk/MagicSoft/Mars/mastro/Makefile

    r3537 r3704  
    3333           MAstroSky2Local.cc \
    3434           MAstroCatalog.cc \
     35           MAstroCamera.cc \
    3536           MObservatory.cc
    36 #           MAstroCamera.cc \
    3737
    3838SRCS    = $(SRCFILES)
Note: See TracChangeset for help on using the changeset viewer.