Changeset 8184


Ignore:
Timestamp:
11/01/06 08:15:48 (18 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/Changelog

    r7796 r8184  
    11                                                                  -*-*- END -*-*-
     2
     3 2006/11/01 Thomas Bretz
     4
     5   * tpoint/gui.C:
     6     - added the horizon
     7     - got rid of a warning about a TGraph with 0 points in case
     8       the tpoint-file didn't contain magnitudes.
     9
     10
    211
    312 2006/07/18 Thomas Bretz
     
    214223     - fixed a bug which gave a starguider mispointing which was wrong
    215224       by the pointing position.
     225     - fixed also the position of the displayed rings wrt to the catalog
     226       sky
    216227
    217228   * catalog/StarCatalog.cc:
  • trunk/MagicSoft/Cosy/tpoint/gui.C

    r7760 r8184  
    1515#include <TText.h>
    1616#include <TProfile.h>
     17#include <TPolyLine.h>
    1718#include <TGraphErrors.h>
    1819
     
    232233    }
    233234
    234     void DrawMarker(TVirtualPad *pad, Double_t r0, Double_t phi0, Double_t r1, Double_t phi1)
     235    void DrawMarker(TVirtualPad *pad, Double_t r0, Double_t phi0)
    235236    {
    236237        TView *view = pad->GetView();
     
    243244
    244245        TMarker mark0;
    245         //TMarker mark1;
    246         mark0.SetMarkerStyle(kStar);
    247         //mark1.SetMarkerStyle(kStar);
    248         //mark1.SetMarkerColor(kRed);
     246        mark0.SetMarkerStyle(kFullDotLarge);
     247        mark0.SetMarkerColor(kBlue);
    249248   
    250249        r0 /= 90;
    251         //r1 /= 90;
    252250        phi0 *= TMath::DegToRad();
    253         //phi1 *= TMath::DegToRad();
    254 
    255         Double_t x0[3] = { r0*cos(phi0), r0*sin(phi0), 0};
    256         //Double_t x1[3] = { r1*cos(phi1), r1*sin(phi1), 0};
    257 
    258         Double_t y0[3];//, y1[3];
    259    
    260         view->WCtoNDC(x0, y0);
    261         //view->WCtoNDC(x1, y1);
    262    
    263         mark0.DrawMarker(-y0[0], y0[1]);
    264         //mark1.DrawMarker(y1[0], y1[1]);
     251
     252        Double_t x[6] = { r0*cos(phi0), r0*sin(phi0), 0, 0, 0, 0};
     253
     254        view->WCtoNDC(x, x+3);
     255   
     256        mark0.DrawMarker(-x[3], x[4]);
    265257    }
    266258   
     
    295287        line.SetLineWidth(2);
    296288        line.SetLineColor(kBlue);
    297    
     289
    298290        Double_t p0 = phi0<phi1?phi0:phi1;
    299291        Double_t p1 = phi0<phi1?phi1:phi0;
    300    
     292
    301293        if (phi0>phi1)
    302294        {
     
    305297            r0 = d;
    306298        }
    307    
     299
    308300        r0 /= 90;
    309301        r1 /= 90;
    310    
     302
    311303        Double_t dr = r1-r0;
    312304        Double_t dp = p1-p0;
    313    
     305
    314306        Double_t x0[3] = { r0*cos(p0*TMath::DegToRad()), r0*sin(p0*TMath::DegToRad()), 0};
    315    
     307
    316308        for (double i=p0+10; i<p1+10; i+=10)
    317309        {
    318310            if (i>p1)
    319311                i=p1;
    320    
     312
    321313            Double_t r = dr/dp*(i-p0)+r0;
    322314            Double_t p = TMath::DegToRad()*i;
    323    
     315
    324316            Double_t x1[3] = { r*cos(p), r*sin(p), 0};
    325    
     317
    326318            Double_t y0[3], y1[3];
    327    
     319
    328320            view->WCtoNDC(x0, y0);
    329321            view->WCtoNDC(x1, y1);
    330    
     322
    331323            line.DrawLine(y0[0], y0[1], y1[0], y1[1]);
    332    
     324
    333325            x0[0] = x1[0];
    334326            x0[1] = x1[1];
     
    342334        Double_t r1   = set.GetStarZd();
    343335        Double_t phi1 = set.GetStarAz()-angle;
    344    
     336
    345337        if (r0<0)
    346338        {
     
    353345            phi1 += 180;
    354346        }
    355    
     347
    356348        phi0 = fmod(phi0+360, 360);
    357349        phi1 = fmod(phi1+360, 360);
    358    
     350
    359351        if (phi1-phi0<-180)
    360352            phi1+=360;
    361    
     353
    362354        if (scale<0 || scale>1000)
    363355            scale = -1;
    364    
     356
    365357        if (scale>0)
    366358        {
     
    371363            phi0 += scale*d;
    372364            phi1 -= scale*d;
    373    
     365
    374366            DrawPolLine(pad, r0, phi0, r1, phi1);
    375             DrawMarker(pad,  r0, phi0, r1, phi1);
     367            DrawMarker(pad,  r0, phi0);
    376368        }
    377369        else
    378             DrawMarker(pad,  r1, phi1, 0 ,0);
     370            DrawMarker(pad,  r1, phi1);
     371    }
     372
     373    void DrawHorizon(TVirtualPad *pad, const char *fname="horizon.dat") const
     374    {
     375        TView *view = pad->GetView();
     376   
     377        if (!view)
     378        {
     379            cout << "No View!" << endl;
     380            return;
     381        }
     382
     383        ifstream fin("horizon.dat");
     384        if (!fin)
     385        {
     386            cout << "ERROR - horizon.dat not found." << endl;
     387            return;
     388        }
     389
     390        TPolyLine poly;
     391        poly.SetLineWidth(2);
     392        poly.SetLineColor(12);
     393        poly.SetLineStyle(8);
     394
     395        while (1)
     396        {
     397            TString line;
     398            line.ReadLine(fin);
     399            if (!fin)
     400                break;
     401
     402            Float_t az, alt;
     403            sscanf(line.Data(), "%f %f", &az, &alt);
     404
     405            Float_t zd = 90-alt;
     406
     407            az *= TMath::DegToRad();
     408            zd /= 90;
     409
     410            Double_t x[6] = { zd*cos(az), zd*sin(az), 0, 0, 0, 0};
     411            view->WCtoNDC(x, x+3);
     412            poly.SetNextPoint(-x[3], x[4]);
     413        }
     414
     415        poly.DrawClone()->SetBit(kCanDelete);
     416
    379417    }
    380418
     
    679717        gPad->SetGridx();
    680718        gPad->SetGridy();
    681         g=(TGraph*)gmaz.DrawClone("A*");
    682         g->SetBit(kCanDelete);
    683         g->GetHistogram()->SetXTitle("Mag");
    684         g->GetHistogram()->SetYTitle("\\Delta Az [\\circ]");
    685         line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
    686         line.DrawLine(g->GetXaxis()->GetXmin(), -360./16384, g->GetXaxis()->GetXmax(), -360./16384);
     719        if (gmaz.GetN()>0)
     720        {
     721            g=(TGraph*)gmaz.DrawClone("A*");
     722            g->SetBit(kCanDelete);
     723            g->GetHistogram()->SetXTitle("Mag");
     724            g->GetHistogram()->SetYTitle("\\Delta Az [\\circ]");
     725            line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
     726            line.DrawLine(g->GetXaxis()->GetXmin(), -360./16384, g->GetXaxis()->GetXmax(), -360./16384);
     727        }
    687728#endif
    688729
     
    726767        gPad->SetGridx();
    727768        gPad->SetGridy();
    728         g=(TGraph*)gmzd.DrawClone("A*");
    729         g->SetBit(kCanDelete);
    730         g->GetHistogram()->SetXTitle("Mag");
    731         g->GetHistogram()->SetYTitle("\\Delta Zd [\\circ]");
    732         line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
    733         line.DrawLine(g->GetXaxis()->GetXmin(), -360./16384, g->GetXaxis()->GetXmax(), -360./16384);
     769        if (gmzd.GetN()>0)
     770        {
     771            g=(TGraph*)gmzd.DrawClone("A*");
     772            g->SetBit(kCanDelete);
     773            g->GetHistogram()->SetXTitle("Mag");
     774            g->GetHistogram()->SetYTitle("\\Delta Zd [\\circ]");
     775            line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
     776            line.DrawLine(g->GetXaxis()->GetXmin(), -360./16384, g->GetXaxis()->GetXmax(), -360./16384);
     777        }
    734778#endif
    735779
     
    780824        gPad->SetGridx();
    781825        gPad->SetGridy();
    782         g=(TGraph*)grmag.DrawClone("AP");
    783         g->SetBit(kCanDelete);
    784         g->GetHistogram()->SetXTitle("Mag");
    785         g->GetHistogram()->SetYTitle("\\Delta [\\circ]");
    786         line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
    787 
     826        if (grmag.GetN()>0)
     827        {
     828            g=(TGraph*)grmag.DrawClone("AP");
     829            g->SetBit(kCanDelete);
     830            g->GetHistogram()->SetXTitle("Mag");
     831            g->GetHistogram()->SetYTitle("\\Delta [\\circ]");
     832            line.DrawLine(g->GetXaxis()->GetXmin(),  360./16384, g->GetXaxis()->GetXmax(),  360./16384);
     833        }
    788834        promag.SetLineWidth(2);
    789835        promag.SetLineColor(kBlue);
     
    877923        gPad->Modified();
    878924        gPad->Update();
     925        DrawHorizon(gPad);
    879926        for (int i=0; i<fOriginal.GetSize(); i++)
    880927            DrawSet(gPad, *(Set*)fOriginal.At(i));//, 10./hres1.GetMean());
Note: See TracChangeset for help on using the changeset viewer.