Ignore:
Timestamp:
09/13/04 08:57:58 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mpointing/MPointing.h

    r4804 r4966  
    44#ifndef ROOT_TArrayD
    55#include <TArrayD.h>
     6#endif
     7
     8#ifndef ROOT_TVector3
     9#include <TVector3.h>
    610#endif
    711
     
    2428    Double_t Alt() const { return fX; }
    2529    Double_t Az() const  { return fY; }
     30    ClassDef(AltAz, 1)
    2631};
    2732
     
    3439    Double_t Zd() const { return fX; }
    3540    Double_t Az() const { return fY; }
     41    ClassDef(ZdAz, 1)
    3642};
    3743#endif
     
    95101    void Reset();
    96102
    97     ZdAz  Correct(const ZdAz &zdaz) const;
    98     AltAz Correct(const AltAz &aaz) const;
    99 
    100     ZdAz  CorrectBack(const ZdAz &zdaz) const;
    101     AltAz CorrectBack(const AltAz &aaz) const;
    102 
    103     ZdAz operator()(const ZdAz &zdaz) const { return Correct(zdaz); }
    104     AltAz operator()(const AltAz &aaz) const { return Correct(aaz); }
     103    ZdAz     Correct(const ZdAz &zdaz) const;
     104    AltAz    Correct(const AltAz &aaz) const;
     105    TVector3 Correct(const TVector3 &v) const;
     106
     107    ZdAz     CorrectBack(const ZdAz &zdaz) const;
     108    AltAz    CorrectBack(const AltAz &aaz) const;
     109    TVector3 CorrectBack(const TVector3 &v) const;
     110
     111    ZdAz     operator()(const ZdAz &zdaz)  const { return Correct(zdaz); }
     112    AltAz    operator()(const AltAz &aaz)  const { return Correct(aaz); }
     113    TVector3 operator()(const TVector3 &v) const { return Correct(v); }
    105114
    106115    ZdAz operator()(const ZdAz &zdaz, void (*fcn)(ZdAz &zdaz, Double_t *par)) const
     
    122131    }
    123132
     133    TVector3 operator()(const TVector3 &aaz, void (*fcn)(TVector3 &aaz, Double_t *par)) const
     134    {
     135        Double_t par[fNumPar];
     136        GetParameters(par);
     137        TVector3 v = aaz;
     138        fcn(v, par);
     139        return v;
     140    }
     141
    124142    AltAz  AddOffsets(const AltAz &aa) const;
    125143    ZdAz   AddOffsets(const ZdAz &zdaz) const
     
    129147        return ZdAz(TMath::Pi()/2-c.Alt(), c.Az());
    130148    }
     149    TVector3 AddOffsets(const TVector3 &v) const
     150    {
     151        AltAz p(TMath::Pi()/2-v.Theta(), v.Phi());
     152        AltAz c = AddOffsets(p);
     153        TVector3 rc;
     154        rc.SetMagThetaPhi(1, TMath::Pi()/2-c.Alt(), c.Az());
     155        return rc;
     156    }
    131157
    132158    AltAz  SubtractOffsets(const AltAz &aa) const;
     
    136162        AltAz c = SubtractOffsets(p);
    137163        return ZdAz(TMath::Pi()/2-c.Alt(), c.Az());
     164    }
     165    TVector3 SubtractOffsets(const TVector3 &v) const
     166    {
     167        AltAz p(TMath::Pi()/2-v.Theta(), v.Phi());
     168        AltAz c = SubtractOffsets(p);
     169        TVector3 rc;
     170        rc.SetMagThetaPhi(1, TMath::Pi()/2-c.Alt(), c.Az());
     171        return rc;
    138172    }
    139173
Note: See TracChangeset for help on using the changeset viewer.