Changeset 9557 for trunk


Ignore:
Timestamp:
02/25/10 11:50:23 (15 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/main/MMoonPointing.cc

    r9556 r9557  
    1919public:
    2020    MPositionOffsetCalc(Double_t offset) :
    21         fCosOffset(offset<=0?0:TMath::Cos(offset*TMath::DegToRad())),
    22         fSinOffset(offset<=0?0:TMath::Sin(offset*TMath::DegToRad())),
     21        fCosOffset(offset==0 ? 0 : TMath::Cos(offset*TMath::DegToRad())),
     22        fSinOffset(offset==0 ? 0 : TMath::Sin(offset*TMath::DegToRad())),
    2323        fCosAngle(0), fSinAngle(0)
    2424    {
     
    2626
    2727    MPositionOffsetCalc(Double_t offset, Double_t angle) :
    28         fCosOffset(offset<=0?0:TMath::Cos(offset*TMath::DegToRad())),
    29         fSinOffset(offset<=0?0:TMath::Sin(offset*TMath::DegToRad())),
     28        fCosOffset(offset==0 ? 0 : TMath::Cos(offset*TMath::DegToRad())),
     29        fSinOffset(offset==0 ? 0 : TMath::Sin(offset*TMath::DegToRad())),
    3030        fCosAngle(TMath::Cos(angle*TMath::DegToRad())),
    3131        fSinAngle(TMath::Sin(angle*TMath::DegToRad()))
     
    3434
    3535    MPositionOffsetCalc(Double_t offset, Double_t cos, Double_t sin) :
    36         fCosOffset(offset<=0?0:TMath::Cos(offset*TMath::DegToRad())),
    37         fSinOffset(offset<=0?0:TMath::Sin(offset*TMath::DegToRad())),
     36        fCosOffset(offset==0 ? 0 : TMath::Cos(offset*TMath::DegToRad())),
     37        fSinOffset(offset==0 ? 0 : TMath::Sin(offset*TMath::DegToRad())),
    3838        fCosAngle(cos), fSinAngle(sin)
    3939    {
     
    4545    ZdAz Calc(const ZdAz &pos, Double_t *sn=0, Double_t *cs=0) const
    4646    {
     47        // This is to avoid unnecessary calculations
     48        // in case the offset is zero
    4749        if (fCosOffset==0 && fSinOffset==0)
    4850        {
    4951            if (sn)
    50                 *sn = fSinAngle;
     52                *sn = -fCosAngle;
    5153            if (cs)
    52                 *cs = fCosAngle;
     54                *cs =  fSinAngle;
    5355            return pos;
    5456        }
     
    119121Bool_t MMoonPointing::CalcPosition(const ZdAz &moon, ZdAz &srcpos, ZdAz &pointpos) const
    120122{
    121     // Avoid unnecessary calculations
    122     if (fOffsetShadow==0)
    123     {
    124         pointpos = srcpos = moon;
    125         return kTRUE;
    126     }
    127 
    128123    const Double_t fcos = const_cast<TGraph2D&>(fCos).Interpolate(moon.Az(), moon.Zd());
    129124    const Double_t fsin = const_cast<TGraph2D&>(fSin).Interpolate(moon.Az(), moon.Zd());
     
    134129        return kFALSE;
    135130
    136     // Calculate Moon Shadow Position and apply a small numerical improvement
     131    // Apply a small numerical improvement
    137132    Double_t sn=fsin/norm;
    138133    Double_t cs=fcos/norm;
    139134
     135    // Calculate moon shadow position
    140136    const MPositionOffsetCalc calc1(fOffsetShadow, fcos, fsin);
    141137    srcpos = calc1.Calc(moon, &sn, &cs);
    142138    if (srcpos.Zd()==0)
    143139        return kFALSE;
    144 
    145     // Avoid unnecessary calculations
    146     if (fOffsetWobble==0)
    147     {
    148         pointpos = srcpos;
    149         return kTRUE;
    150     }
    151140
    152141    // Calaculate Telescope pointing position:
Note: See TracChangeset for help on using the changeset viewer.