Changeset 9558


Ignore:
Timestamp:
Feb 26, 2010, 9:14:24 AM (11 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/Changelog

    r9554 r9558  
    11                                                                  -*-*- END -*-*-
     2 2010/02/26 Thomas Bretz
     3
     4   * main/MMoonPointing.cc:
     5     - emit error messages to console/log-file
     6
     7   * main/MTracing.[h,cc]:
     8     - propagate errors
     9     - stop tracking if some calculation fails
     10
     11
     12
    213 2010/02/25 Thomas Bretz
    314
  • trunk/MagicSoft/Cosy/main/MMoonPointing.cc

    r9557 r9558  
    6060
    6161        if (sinzd<=0)
     62        {
     63            gLog << warn << "WARNING - |Zd|>=90°" << endl;
    6264            return ZdAz();
     65        }
    6366
    6467        const Double_t costheta = coszd*fCosOffset + sinzd*fSinOffset*fCosAngle;
    65         if (costheta*costheta >= 1)
     68        if (costheta >= 1)
     69        {
     70            gLog << warn << "WARNING - cos(Zd) > 1." << endl;
    6671            return ZdAz();
     72        }
    6773
    6874        const Double_t sintheta = TMath::Sqrt(1 - costheta*costheta);
     
    97103    {
    98104        MakeZombie();
     105        gLog << warn << "WARNING - Reading of " << filename << " failed." << endl;
    99106        return;
    100107    }
     
    103110    {
    104111        MakeZombie();
     112        gLog << warn << "WARNING - Reading of TGraph2D 'cosAngle' from " << filename << " failed." << endl;
    105113        return;
    106114    }
     
    109117    {
    110118        MakeZombie();
     119        gLog << warn << "WARNING - Reading of TGraph2D 'sinAngle' from " << filename << " failed." << endl;
    111120        return;
    112121    }
     
    127136    const Double_t norm = TMath::Hypot(fcos, fsin);
    128137    if (TMath::Abs(norm-1)<0.001)
     138    {
     139        gLog << warn << "WARNING - Local moon position Zd/Az=";
     140        gLog << moon.Zd()*TMath::RadToDeg() << "/" << moon.Az()*TMath::RadToDeg();
     141        gLog << " out of range of table for interpolation." << endl;
    129142        return kFALSE;
     143    }
    130144
    131145    // Apply a small numerical improvement
     
    137151    srcpos = calc1.Calc(moon, &sn, &cs);
    138152    if (srcpos.Zd()==0)
     153    {
     154        gLog << warn << "WARNING - Calculation of moon shadow position failed." << endl;
    139155        return kFALSE;
     156    }
    140157
    141158    // Calaculate Telescope pointing position:
     
    143160    pointpos = calc2.Calc(srcpos);
    144161    if (pointpos.Zd()==0)
     162    {
     163        gLog << warn << "WARNING - Calculation of moon shadow's wobble position failed." << endl;
    145164        return kFALSE;
     165    }
    146166
    147167    return kTRUE;
  • trunk/MagicSoft/Cosy/main/MTracking.cc

    r9555 r9558  
    218218}
    219219
    220 void MTracking::UpdateSlalib(SlaPlanets &sla)
     220Bool_t MTracking::UpdateSlalib(SlaPlanets &sla)
    221221{
    222222    if (fTrackType<0)
     
    240240
    241241        const ZdAz za = sla.GetZdAzRad();
    242         if (moon.CalcPosition(za, srcpos, pointpos))
    243             sla.Set(pointpos);
     242        if (!moon.CalcPosition(za, srcpos, pointpos))
     243            return kFALSE;
     244
     245        sla.Set(pointpos);
    244246
    245247        // Ra/Dec, Zd/Az from pointpos
     
    261263}
    262264
    263 void MTracking::UpdateSlalib(Double_t dt)
     265Bool_tMTracking::UpdateSlalib(Double_t dt)
    264266{
    265267    fSlalib.Now(dt);
    266     UpdateSlalib(fSlalib);
     268    if (!UpdateSlalib(fSlalib))
     269        return kFALSE;
    267270
    268271    fCosy->fRaDec     = fSlalib.GetRaDecRad();
     
    273276{
    274277    sla.SetMjd(mjd);
    275     UpdateSlalib(sla);
     278    return UpdateSlalib(sla);
    276279}
    277280
     
    342345{
    343346    // Position to corrent nominal position
    344     UpdateSlalib();
     347    if (!UpdateSlalib())
     348        return;
    345349
    346350    if (!Move())
     
    362366
    363367    // Get current nominal local position
    364     UpdateSlalib();
     368    if (!UpdateSlalib())
     369    {
     370        fCosy->StopMovement();
     371        return;
     372    }
    365373
    366374    ZdAz pos = fSlalib.GetZdAzRad();
     
    402410        // Request Target position for Now+dt
    403411        //
    404         UpdateSlalib(dt);
     412        if (!UpdateSlalib(dt))
     413            break;
    405414
    406415        //
Note: See TracChangeset for help on using the changeset viewer.