Changeset 4705 for trunk


Ignore:
Timestamp:
08/23/04 13:26:22 (20 years ago)
Author:
wittek
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mtemp
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mtemp/MHTelAxisFromStars.cc

    r4560 r4705  
    4848#include "MBinning.h"
    4949
    50 #include "MStarLocalCam.h"
    51 #include "MStarLocalPos.h"
     50#include "MStarCam.h"
     51#include "MStarPos.h"
    5252#include "MSkyCamTrans.h"
    5353#include "MSrcPosCam.h"
     
    7878    fNdoF->SetYTitle("Counts");
    7979
     80    fLog10Chi2 = new TH1D("log10Chi2", "log10Chi2", 60, -10, 5);
     81    fLog10Chi2->SetDirectory(NULL);
     82    fLog10Chi2->SetXTitle("log10(Chi2)");
     83    fLog10Chi2->SetYTitle("Counts");
     84
    8085    fChi2Prob = new TH1D("Chi2-Prob", "Chi2 probability",     40,  0.0,  1.0);
    8186    fChi2Prob->SetDirectory(NULL);
     
    103108
    104109    fShift = new TH2D("Shift", "Sky-Cam transformnation : (x,y) shift",
    105                                                 51, -445, 445, 51, -445, 445);
     110                      72, -534.0707, 534.0707, 72, -534.0707, 534.0707);
    106111    fShift->SetDirectory(NULL);
    107112    fShift->SetZTitle("Counts");
     
    111116
    112117    fEstPos1 = new TH2D("EstPos1", "Estimated position1",
    113                                                51, -445, 445, 51, -445, 445);
     118                      72, -534.0707, 534.0707, 72, -534.0707, 534.0707);
    114119    fEstPos1->SetDirectory(NULL);
    115120    fEstPos1->SetZTitle("Counts");
    116     fEstPos1->SetXTitle("Estimated position1 x [\\circ]");
    117     fEstPos1->SetYTitle("Estimated position1 y [\\circ]");
     121    fEstPos1->SetXTitle("Estimated position1    x [\\circ]");
     122    fEstPos1->SetYTitle("Estimated position1    y [\\circ]");
    118123
    119124    fEstPos2 = new TH2D("EstPos2", "Estimated position2",
    120                                                51, -445, 445, 51, -445, 445);
     125                      72, -534.0707, 534.0707, 72, -534.0707, 534.0707);
    121126    fEstPos2->SetDirectory(NULL);
    122127    fEstPos2->SetZTitle("Counts");
    123     fEstPos2->SetXTitle("Estimated position2 x [\\circ]");
    124     fEstPos2->SetYTitle("Estimated position2 y [\\circ]");
    125 
    126     // default input type : results from correlated Gauss fit
    127     fInputType = 2;
     128    fEstPos2->SetXTitle("Estimated position2    x [\\circ]");
     129    fEstPos2->SetYTitle("Estimated position2    y [\\circ]");
     130
     131    fEstPos3 = new TH2D("EstPos3", "Estimated position3",
     132                      72, -534.0707, 534.0707, 72, -534.0707, 534.0707);
     133    fEstPos3->SetDirectory(NULL);
     134    fEstPos3->SetZTitle("Counts");
     135    fEstPos3->SetXTitle("Estimated position3    x [\\circ]");
     136    fEstPos3->SetYTitle("Estimated position3    y [\\circ]");
     137
     138
     139    // default input type : results from Gauss fit
     140    fInputType = 1;
    128141}
    129142
     
    133146//
    134147//     type = 0        calculated star positions (by averaging)
    135 //     type = 1        fitted star positions (by uncorrelated Gauss fit)
    136 //     type = 2        fitted star positions (by correlated   Gauss fit)
     148//     type = 1        fitted star positions (by Gauss fit)
    137149//
    138150void MHTelAxisFromStars::SetInputType(Int_t type)
     
    151163MHTelAxisFromStars::~MHTelAxisFromStars()
    152164{
     165  //*fLog << "MHTelAxisFromStars::Destructor" << endl;
     166
    153167    delete fNStars;
    154168    delete fNdoF;
     169    delete fLog10Chi2;
    155170    delete fChi2Prob;
    156171    delete fNumIter;
     
    161176    delete fEstPos1;
    162177    delete fEstPos2;
     178    delete fEstPos3;
    163179}
    164180
     
    177193{
    178194
    179    fStarLocalCam = (MStarLocalCam*)plist->FindObject("MStarLocalCam", "MStarLocalCam");
    180    if (!fStarLocalCam)
     195   fStarCam = (MStarCam*)plist->FindObject("MStarCam", "MStarCam");
     196   if (!fStarCam)
    181197   {
    182        *fLog << err << "MHTelAxisFromStars::SetupFill; container 'MStarLocalCam' not found... aborting." << endl;
     198       *fLog << err << "MHTelAxisFromStars::SetupFill; container 'MStarCam' not found... aborting." << endl;
    183199       return kFALSE;
    184200   }
    185201
    186202   
    187    fSourceLocalCam = (MStarLocalCam*)plist->FindObject("MSourceLocalCam", "MStarLocalCam");
    188    if (!fSourceLocalCam)
     203   fSourceCam = (MStarCam*)plist->FindObject("MSourceCam", "MStarCam");
     204   if (!fSourceCam)
    189205   {
    190        *fLog << err << "MHTelAxisFromStars::SetupFill; container 'MSourceLocalCam' not found... aborting." << endl;
    191        return kFALSE;
     206       *fLog << err << "MHTelAxisFromStars::SetupFill; container 'MSourceCam' not found... " << endl;
    192207   }
    193208   
     
    226241    ApplyBinning(*plist, "NStars",   fNStars);
    227242    ApplyBinning(*plist, "NdoF",     fNdoF);
     243    ApplyBinning(*plist, "Log10Chi2",fLog10Chi2);
    228244    ApplyBinning(*plist, "Chi2Prob", fChi2Prob);
    229245    ApplyBinning(*plist, "NumIter",  fNumIter);
     
    244260        SetBinning(fEstPos1, &b, &b);
    245261        SetBinning(fEstPos2, &b, &b);
     262        SetBinning(fEstPos3, &b, &b);
    246263    }
    247264    else
     
    250267        SetBinning(fEstPos1, bins, bins);
    251268        SetBinning(fEstPos2, bins, bins);
    252     }
    253 
    254     //-----------------------------------------------
    255     // copy names from MStarLocalCam to the histograms
    256     MStarLocalPos *starSource = 0;
    257     TIter nextSource(fSourceLocalCam->GetList());
    258 
    259     starSource = (MStarLocalPos*)nextSource();
    260     if (starSource)
    261     {
    262       fEstPos1->SetName(starSource->GetName());
    263 
    264       starSource = (MStarLocalPos*)nextSource();
     269        SetBinning(fEstPos3, bins, bins);
     270    }
     271
     272   
     273    // copy names from MStarCam to the histograms
     274    if (fSourceCam)
     275    {
     276      *fLog << "Source container exists " << endl;
     277
     278      MStarPos *starSource = 0;
     279      TIter nextSource(fSourceCam->GetList());
     280
     281      *fLog << "&nextSource = " << &nextSource << endl;
     282
     283      starSource = (MStarPos*)nextSource();
    265284      if (starSource)
    266         fEstPos2->SetName(starSource->GetName());
    267     }
     285      {
     286        *fLog << "name of source container1 : " << starSource->GetName()
     287              << endl;
     288
     289        fEstPos1->SetName(starSource->GetName());
     290
     291        starSource = (MStarPos*)nextSource();
     292        if (starSource)
     293        {
     294        *fLog << "name of source container2 : " << starSource->GetName()
     295              << endl;
     296
     297
     298          fEstPos2->SetName(starSource->GetName());
     299
     300          starSource = (MStarPos*)nextSource();
     301          if (starSource)
     302          {
     303
     304        *fLog << "name of source container3 : " << starSource->GetName()
     305              << endl;
     306
     307            fEstPos3->SetName(starSource->GetName());
     308          }
     309        }
     310      }
     311    }
     312   
    268313
    269314    return kTRUE;
     
    317362    MH::ScaleAxis(fEstPos1, scale, scale);
    318363    MH::ScaleAxis(fEstPos2, scale, scale);
     364    MH::ScaleAxis(fEstPos3, scale, scale);
    319365
    320366    if (mmscale)
     
    328374        fEstPos2->SetXTitle("Estimated position2 x [mm]");
    329375        fEstPos2->SetYTitle("Estimated position2 y [mm]");
     376
     377        fEstPos3->SetXTitle("Estimated position3 x [mm]");
     378        fEstPos3->SetYTitle("Estimated position3 y [mm]");
    330379    }
    331380    else
     
    339388        fEstPos2->SetXTitle("Estimated position2 x [\\circ]");
    340389        fEstPos2->SetYTitle("Estimated position2 y [\\circ]");
     390
     391        fEstPos3->SetXTitle("Estimated position3 x [\\circ]");
     392        fEstPos3->SetYTitle("Estimated position3 y [\\circ]");
    341393    }
    342394
     
    358410
    359411
    360     fNStars   ->Fill(fSkyCamTrans->GetNStars(),        w);
    361     fNdoF     ->Fill(fSkyCamTrans->GetNdof(),          w);
    362     fChi2Prob ->Fill(fSkyCamTrans->GetChiSquareProb(), w);
    363     fNumIter  ->Fill(fSkyCamTrans->GetNumIter(),       w);
    364     fLambda   ->Fill(fSkyCamTrans->GetLambda(),        w);
    365     fAlfa     ->Fill(fSkyCamTrans->GetAlfa(),          w);
     412    fNStars   ->Fill(fSkyCamTrans->GetNStars(),               w);
     413    fNdoF     ->Fill(fSkyCamTrans->GetNdof(),                 w);
     414    if (fSkyCamTrans->GetChiSquare() > 0.0)
     415      fLog10Chi2->Fill( log10(fSkyCamTrans->GetChiSquare() ), w);
     416    fChi2Prob ->Fill(fSkyCamTrans->GetChiSquareProb(),        w);
     417    fNumIter  ->Fill(fSkyCamTrans->GetNumIter(),              w);
     418    fLambda   ->Fill(fSkyCamTrans->GetLambda(),               w);
     419    fAlfa     ->Fill(fSkyCamTrans->GetAlfa(),                 w);
    366420
    367421
     
    390444    }
    391445
    392 
    393     MStarLocalPos *starSource = 0;
    394     TIter nextSource(fSourceLocalCam->GetList());
    395 
    396     starSource = (MStarLocalPos*)nextSource();
    397     if (starSource)
    398     {
    399       if (fInputType == 2)
    400       {
    401         x = scale * starSource->GetMeanXCGFit();
    402         y = scale * starSource->GetMeanYCGFit();
    403       }
    404       else if (fInputType == 1)
    405       {
    406         x = scale * starSource->GetMeanXFit();
    407         y = scale * starSource->GetMeanYFit();
    408       }
    409       else
    410       {
    411         x = scale * starSource->GetMeanXCalc();
    412         y = scale * starSource->GetMeanYCalc();
    413       }
    414 
    415       if (x>lowx  && x<higx  && y>lowy  && y<higy)
    416       {
    417         fEstPos1  ->Fill(x, y, w);
    418       }
    419 
    420 
    421       starSource = (MStarLocalPos*)nextSource();
     446    if (fSourceCam)
     447    {
     448      MStarPos *starSource = 0;
     449      TIter nextSource(fSourceCam->GetList());
     450
     451      starSource = (MStarPos*)nextSource();
    422452      if (starSource)
    423453      {
    424         if (fInputType == 2)
    425         {
    426           x = scale * starSource->GetMeanXCGFit();
    427           y = scale * starSource->GetMeanYCGFit();
    428         }
    429         else if (fInputType == 1)
     454        if (fInputType == 1)
    430455        {
    431456          x = scale * starSource->GetMeanXFit();
     
    440465        if (x>lowx  && x<higx  && y>lowy  && y<higy)
    441466        {
    442           fEstPos2  ->Fill(x, y, w);
     467          fEstPos1  ->Fill(x, y, w);
     468          //fEstPos1->SetName(starSource->GetName());
     469        }
     470
     471
     472        starSource = (MStarPos*)nextSource();
     473        if (starSource)
     474        {
     475          if (fInputType == 1)
     476          {
     477            x = scale * starSource->GetMeanXFit();
     478            y = scale * starSource->GetMeanYFit();
     479          }
     480          else
     481          {
     482            x = scale * starSource->GetMeanXCalc();
     483            y = scale * starSource->GetMeanYCalc();
     484          }
     485
     486          if (x>lowx  && x<higx  && y>lowy  && y<higy)
     487          {
     488            fEstPos2  ->Fill(x, y, w);
     489            //fEstPos2->SetName(starSource->GetName());
     490          }
     491
     492          starSource = (MStarPos*)nextSource();
     493          if (starSource)
     494          {
     495            if (fInputType == 1)
     496            {
     497              x = scale * starSource->GetMeanXFit();
     498              y = scale * starSource->GetMeanYFit();
     499            }
     500            else
     501            {
     502              x = scale * starSource->GetMeanXCalc();
     503              y = scale * starSource->GetMeanYCalc();
     504            }
     505
     506            if (x>lowx  && x<higx  && y>lowy  && y<higy)
     507            {
     508              fEstPos3  ->Fill(x, y, w);
     509              //fEstPos3->SetName(starSource->GetName());
     510            }
     511          }
    443512        }
    444513      }
     
    457526Bool_t MHTelAxisFromStars::Finalize()
    458527{
     528  //*fLog << "MHTelAxisFromStars::Finalize;  fSourceCam = "
     529  //      << fSourceCam  << endl;
    459530
    460531  return kTRUE;
     
    475546  AppendPad("");
    476547 
    477   //TCanvas *pad = new TCanvas("TelAxisFromStars", "TelAxis plots", 900, 900);
     548  //TCanvas *pad = new TCanvas("TelAxisFromStars", "TelAxis plots", 1200, 900);
    478549  //gROOT->SetSelectedPad(NULL);
    479550
    480     pad->Divide(3,3);
     551    pad->Divide(4,3);
    481552
    482553    pad->cd(1);
     
    490561    pad->cd(3);
    491562    gPad->SetBorderMode(0);
    492     fChi2Prob->Draw(opt);
     563    fLog10Chi2->Draw(opt);
    493564
    494565    pad->cd(4);
    495566    gPad->SetBorderMode(0);
    496     fNumIter->Draw(opt);
     567    fChi2Prob->Draw(opt);
    497568
    498569    pad->cd(5);
    499570    gPad->SetBorderMode(0);
    500     fLambda->Draw(opt);
     571    fNumIter->Draw(opt);
    501572
    502573    pad->cd(6);
    503574    gPad->SetBorderMode(0);
     575    fLambda->Draw(opt);
     576
     577    pad->cd(7);
     578    gPad->SetBorderMode(0);
    504579    fAlfa->Draw(opt);
    505580
    506     pad->cd(7);
     581    pad->cd(8);
    507582    gPad->SetBorderMode(0);
    508583    //SetColors();
     
    510585    fShift->Draw("");
    511586
    512     pad->cd(8);
    513     gPad->SetBorderMode(0);
    514     //SetColors();
    515     fEstPos1->Draw("");
    516 
    517     pad->cd(9);
    518     gPad->SetBorderMode(0);
    519     //SetColors();
    520     fEstPos2->Draw("");
     587
     588    //-----------------------------------------------
     589    // plot the expected positions of some sources
     590    *fLog << "fSourcsCam = " << fSourceCam << endl;
     591
     592    /*
     593    // copy names from MStarCam to the histograms
     594    if (fSourceCam)
     595    {
     596      *fLog << "Source container exists " << endl;
     597
     598      MStarPos *starSource = 0;
     599      TIter nextSource(fSourceCam->GetList());
     600
     601      *fLog << "&nextSource = " << &nextSource << endl;
     602
     603      starSource = (MStarPos*)nextSource();
     604      if (starSource)
     605      {
     606        *fLog << "name of source container1 : " << starSource->GetName()
     607              << endl;
     608
     609        fEstPos1->SetName(starSource->GetName());
     610
     611        starSource = (MStarPos*)nextSource();
     612        if (starSource)
     613        {
     614        *fLog << "name of source container2 : " << starSource->GetName()
     615              << endl;
     616
     617
     618          fEstPos2->SetName(starSource->GetName());
     619
     620          starSource = (MStarPos*)nextSource();
     621          if (starSource)
     622          {
     623
     624        *fLog << "name of source container3 : " << starSource->GetName()
     625              << endl;
     626
     627            fEstPos3->SetName(starSource->GetName());
     628          }
     629        }
     630      }
     631    }
     632    */
     633
     634
     635    if (fSourceCam)
     636    {
     637      *fLog << "MHTelAxisFromSrars::Draw; plotting" << endl;
     638
     639      pad->cd(9);
     640      gPad->SetBorderMode(0);
     641      //SetColors();
     642      fEstPos1->Draw("");
     643
     644      pad->cd(10);
     645      gPad->SetBorderMode(0);
     646      //SetColors();
     647      fEstPos2->Draw("");
     648
     649      pad->cd(11);
     650      gPad->SetBorderMode(0);
     651      //SetColors();
     652      fEstPos3->Draw("");
     653    }
    521654
    522655    pad->Modified();
     
    533666    if (name.Contains("NdoF", TString::kIgnoreCase))
    534667        return fNdoF;
     668    if (name.Contains("Log10Chi2", TString::kIgnoreCase))
     669        return fLog10Chi2;
    535670    if (name.Contains("Chi2Prob", TString::kIgnoreCase))
    536671        return fChi2Prob;
     
    548683    if (name.Contains("EstPos2", TString::kIgnoreCase))
    549684        return fEstPos2;
     685    if (name.Contains("EstPos3", TString::kIgnoreCase))
     686        return fEstPos3;
    550687
    551688    return NULL;
  • trunk/MagicSoft/Mars/mtemp/MHTelAxisFromStars.h

    r4560 r4705  
    1111class MSrcPosCam;
    1212class MSkyCamTrans;
    13 class MStarLocalCam;
     13class MStarCam;
    1414
    1515class MHTelAxisFromStars : public MH
     
    1919    TH1D *fNStars;     //-> Number of stars
    2020    TH1D *fNdoF;       //-> Number of degrees of freedom
     21    TH1D *fLog10Chi2;  //-> log10(Chi2)
    2122    TH1D *fChi2Prob;   //-> Chi2 probability
    2223    TH1D *fNumIter;    //-> Number of iterations
     
    2728    TH2D *fEstPos1;    //-> Estimated position 1
    2829    TH2D *fEstPos2;    //-> Estimated position 2
     30    TH2D *fEstPos3;    //-> Estimated position 3
    2931
    30     MStarLocalCam   *fStarLocalCam;     //!
    31     MStarLocalCam   *fSourceLocalCam;   //!
    32     MSrcPosCam      *fSrcPos;           //!
    33     MSkyCamTrans    *fSkyCamTrans;      //!
     32    MStarCam        *fStarCam;     //!
     33    MStarCam        *fSourceCam;   
     34    MSrcPosCam      *fSrcPos;      //!
     35    MSkyCamTrans    *fSkyCamTrans; //!
    3436
    3537
     
    5860    TH1D *GetHistNStars()    { return fNStars;    }
    5961    TH1D *GetHistNdoF()      { return fNdoF;      }
     62    TH1D *GetHistLog10Chi2() { return fLog10Chi2; }
    6063    TH1D *GetHistChi2Prob()  { return fChi2Prob;  }
    6164
     
    6871    TH2D *GetHistEstPos1()   { return fEstPos1;   }
    6972    TH2D *GetHistEstPos2()   { return fEstPos2;   }
     73    TH2D *GetHistEstPos3()   { return fEstPos3;   }
    7074
    7175    void Draw(Option_t *opt=NULL);
  • trunk/MagicSoft/Mars/mtemp/MTelAxisFromStars.cc

    r4545 r4705  
    3434//
    3535//  Input Containers :
    36 //   MStarLocalCam[MStarLocalCam], MStarLocalCamSource[MStarLocalCam]
     36//   MStarCam[MStarCam], MStarCamSource[MStarCam]
    3737//
    3838//  Output Containers :
     
    5353#include "MLogManip.h"
    5454
    55 #include "MStarLocalCam.h"
    56 #include "MStarLocalPos.h"
     55#include "MStarCam.h"
     56#include "MStarPos.h"
    5757#include "MSkyCamTrans.h"
    5858
     
    7878    fFixedRotationAngle = 0.0;
    7979
    80     // default type of input is :    the result of the correlated Gauss fit
     80    // default type of input is :    the result of the Gauss fit
    8181    // type 0 : result from the weighted average
    82     // type 1 : result from the uncorrelated Gauss fit
    83     fInputType = 2;
     82    // type 1 : result from the Gauss fit
     83    fInputType = 1;
    8484}
    8585
     
    100100{
    101101 
    102    fStarLocalCam = (MStarLocalCam*)pList->FindObject("MStarLocalCam", "MStarLocalCam");
    103    if (!fStarLocalCam)
     102   fStarCam = (MStarCam*)pList->FindObject("MStarCam", "MStarCam");
     103   if (!fStarCam)
    104104   {
    105        *fLog << err << "MTelAxisFromStars::PreProcess; container 'MStarLocalCam' not found... aborting." << endl;
     105       *fLog << err << "MTelAxisFromStars::PreProcess; container 'MStarCam' not found... aborting." << endl;
    106106       return kFALSE;
    107107   }
    108108
    109109   
    110    fSourceLocalCam = (MStarLocalCam*)pList->FindObject("MSourceLocalCam", "MStarLocalCam");
    111    if (!fSourceLocalCam)
     110   fSourceCam = (MStarCam*)pList->FindObject("MSourceCam", "MStarCam");
     111   if (!fSourceCam)
    112112   {
    113        *fLog << err << "MTelAxisFromStars::PreProcess; container 'MSourceLocalCam' not found... continue  " << endl;
     113       *fLog << err << "MTelAxisFromStars::PreProcess; container 'MSourceCam' not found... continue  " << endl;
    114114   }
    115115
     
    138138//
    139139//     type = 0        calculated star positions (by averaging)
    140 //     type = 1        fitted star positions (by uncorrelated Gauss fit)
    141 //     type = 2        fitted star positions (by correlated   Gauss fit)
     140//     type = 1        fitted star positions (by Gauss fit)
    142141//
    143142void MTelAxisFromStars::SetInputType(Int_t type)
    144143{
    145   *fLog << all << "MTelAxisFromStars::SetInputType; input type is set equal to : "
    146         << type << endl;
     144  *fLog << all   << "MTelAxisFromStars::SetInputType; input type is set equal to : "
     145        << type ;
     146  if (type == 0)
     147    *fLog << " (calculated star positions)" << endl;
     148  else
     149    *fLog << " (fitted star positions)" << endl;
    147150
    148151  fInputType = type;
     
    197200
    198201  // get the expected (axy[0], axy[1]) and the measured positions
    199   // (bxy[0], bxy[1]) of stars in the camera from MStarLocalCam
    200   Int_t fNumStars = fStarLocalCam->GetNumStars();
     202  // (bxy[0], bxy[1]) of stars in the camera from MStarCam
     203  Int_t fNumStars = fStarCam->GetNumStars();
    201204
    202205  if (fNumStars <= 0)
     
    229232  Double_t fChi2Prob;
    230233
    231   MStarLocalPos *star = 0;
    232   TIter next(fStarLocalCam->GetList());
     234  MStarPos *star = 0;
     235  TIter next(fStarCam->GetList());
    233236  Int_t ix = 0;
    234237
    235238  // loop over all stars
    236   while ( (star = (MStarLocalPos*)next()) )
     239  while ( (star = (MStarPos*)next()) )
    237240  {
    238241    axy[0][ix]   = star->GetXExp();
     
    242245    {
    243246      // values from averaging
    244       bxy[0][ix]   = star->GetMeanXCalc();
    245       bxy[1][ix]   = star->GetMeanYCalc();
    246       exy[0][0][ix]= star->GetSigmaMinorAxisCalc()*star->GetSigmaMinorAxisCalc();
    247       exy[0][1][ix]  =  0.0;
    248       exy[1][0][ix]  =  0.0;
    249       exy[1][1][ix]= star->GetSigmaMajorAxisCalc()*star->GetSigmaMajorAxisCalc();
     247      bxy[0][ix]     = star->GetMeanXCalc();
     248      bxy[1][ix]     = star->GetMeanYCalc();
     249
     250      // this is the error matrix for (MeanXCalc, MeanYCalc);
     251      // this is the error matrix which should be used
     252      exy[0][0][ix]  =  star->GetXXErrCalc();
     253      exy[0][1][ix]  =  star->GetXYErrCalc();
     254      exy[1][0][ix]  =  star->GetXYErrCalc();
     255      exy[1][1][ix]  =  star->GetYYErrCalc();
     256
     257      //exy[0][0][ix]  = star->GetSigmaXCalc()*star->GetSigmaXCalc();
     258      //exy[0][1][ix]  =  0.0;
     259      //exy[1][0][ix]  =  0.0;
     260      //exy[1][1][ix]  = star->GetSigmaYCalc()*star->GetSigmaYCalc();
    250261    }
    251262
    252263    else if (fInputType == 1)
    253264    {
    254       // values from uncorrelatd Gauss fit
     265      // values from Gauss fit
    255266      bxy[0][ix]   = star->GetMeanXFit();
    256267      bxy[1][ix]   = star->GetMeanYFit();
    257       exy[0][0][ix]= star->GetSigmaMinorAxisFit()*star->GetSigmaMinorAxisFit();
    258       exy[0][1][ix]  =  0.0;
    259       exy[1][0][ix]  =  0.0;
    260       exy[1][1][ix]= star->GetSigmaMajorAxisFit()*star->GetSigmaMajorAxisFit();
    261     }
    262 
    263     else if (fInputType == 2)
    264     {
    265       // values from correlatd Gauss fit
    266       bxy[0][ix]   = star->GetMeanXCGFit();
    267       bxy[1][ix]   = star->GetMeanYCGFit();
    268 
    269       // this is the error matrix for (MeanXCGFit, MeanYCGFit);
     268
     269      // this is the error matrix for (MeanXFit, MeanYFit);
    270270      // this is the error matrix which should be used
    271       exy[0][0][ix]  =  star->GetXXErrCGFit();
    272       exy[0][1][ix]  =  star->GetXYErrCGFit();
    273       exy[1][0][ix]  =  star->GetXYErrCGFit();
    274       exy[1][1][ix]  =  star->GetYYErrCGFit();
    275 
    276       // this is the error matrix constructed from SigmaXCGFit and SigmaYCGFit;
     271      exy[0][0][ix]  =  star->GetXXErrFit();
     272      exy[0][1][ix]  =  star->GetXYErrFit();
     273      exy[1][0][ix]  =  star->GetXYErrFit();
     274      exy[1][1][ix]  =  star->GetYYErrFit();
     275
     276      // this is the error matrix constructed from SigmaXFit and SigmaYFit;
    277277      // it is used because the errors above are too small, at present
    278       //exy[0][0][ix]  =  star->GetSigmaXCGFit() * star->GetSigmaXCGFit();
    279       //exy[0][1][ix]  =  star->GetCorrXYCGFit() *
    280       //                  star->GetSigmaXCGFit() * star->GetSigmaYCGFit();
     278      //exy[0][0][ix]  =  star->GetSigmaXFit() * star->GetSigmaXFit();
     279      //exy[0][1][ix]  =  star->GetCorrXYFit() *
     280      //                  star->GetSigmaXFit() * star->GetSigmaYFit();
    281281      //exy[1][0][ix]  =  exy[0][1][ix];
    282       //exy[1][1][ix]  =  star->GetSigmaYCGFit() * star->GetSigmaYCGFit();
     282      //exy[1][1][ix]  =  star->GetSigmaYFit() * star->GetSigmaYFit();
    283283    }
    284284
     
    375375  //--------------------------------------
    376376  // Put the estimated position, obtained by transforming the expected
    377   // position (0, 0), into SrcPosCam
     377  // position (0,0), into SrcPosCam
    378378
    379379  fSrcPos->SetXY(fD[0], fD[1]);
     
    386386  //      and their error matrices esxy[2][2]
    387387
    388   // get the expected positions (asxy[1], asxy[2]) from another MStarLocalCam
    389   // container (with the name "MSourceLocalCam")
    390   Int_t fNumStarsSource = fSourceLocalCam->GetNumStars();
     388  // get the expected positions (asxy[1], asxy[2]) from another MStarCam
     389  // container (with the name "MSourceCam")
     390  Int_t fNumStarsSource = 0;
     391
     392  if (fSourceCam)
     393    fNumStarsSource = fSourceCam->GetNumStars();
    391394
    392395  //*fLog << "MTelAxisFromStars::Process;  fNumStarsSource = "
     
    409412    esxy[1][1].Set(fNumStarsSource);
    410413
    411     MStarLocalPos *starSource = 0;
    412     TIter nextSource(fSourceLocalCam->GetList());
     414    MStarPos *starSource = 0;
     415    TIter nextSource(fSourceCam->GetList());
    413416    ix = 0;
    414     while ( (starSource = (MStarLocalPos*)nextSource()) )
     417    while ( (starSource = (MStarPos*)nextSource()) )
    415418    {
    416419      asxy[0][ix]  = starSource->GetXExp();
     
    422425    TransSkyCam(fLambda, fA, fD, fErrD, asxy, bsxy,  esxy);   
    423426
    424     // put the estimated positions into the MStarLocalPos container
    425     TIter setnextSource(fSourceLocalCam->GetList());
     427    // put the estimated positions into the MStarCam container
     428    // with name "MSourceCam"
     429    TIter setnextSource(fSourceCam->GetList());
    426430    ix = 0;
    427     while ( (starSource = (MStarLocalPos*)setnextSource()) )
    428     {
    429       if (fInputType == 1)
    430       {
    431         starSource->SetFitValues(100.0, 100.0,   bsxy[0][ix],    bsxy[1][ix],
    432               sqrt(esxy[0][0][ix]), sqrt(esxy[1][1][ix]), fChi2, fNdof);
    433       }
    434       else if (fInputType == 2)
    435       {
    436         Double_t corr = esxy[0][1][ix]/ sqrt( esxy[0][0][ix] * esxy[1][1][ix] );
    437         starSource->SetCGFitValues(100.0, 100.0, bsxy[0][ix], bsxy[1][ix],
    438               sqrt(esxy[0][0][ix]), sqrt(esxy[1][1][ix]), corr,
    439               esxy[0][0][ix], esxy[0][1][ix],  esxy[1][1][ix],
    440               fChi2, fNdof);
    441       }
     431    while ( (starSource = (MStarPos*)setnextSource()) )
     432    {
     433       Double_t corr = esxy[0][1][ix]/ sqrt( esxy[0][0][ix] * esxy[1][1][ix] );
     434       starSource->SetFitValues(100.0, 100.0, bsxy[0][ix], bsxy[1][ix],
     435                sqrt(esxy[0][0][ix]), sqrt(esxy[1][1][ix]), corr,
     436                esxy[0][0][ix],       esxy[0][1][ix],       esxy[1][1][ix],
     437                fChi2, fNdof);
    442438
    443439      ix++;
  • trunk/MagicSoft/Mars/mtemp/MTelAxisFromStars.h

    r4545 r4705  
    2121
    2222class MSrcPosCam;
    23 class MStarLocalCam;
     23class MStarCam;
    2424class MSkyCamTrans;
    2525
     
    2828 private:
    2929
    30     const MStarLocalCam *fStarLocalCam;          //!
    31     const MStarLocalCam *fSourceLocalCam;        //!
     30    const MStarCam *fStarCam;          //!
     31    const MStarCam *fSourceCam;        //!
    3232
    3333    MSrcPosCam          *fSrcPos;         //!
Note: See TracChangeset for help on using the changeset viewer.