1 | #ifndef MARS_MTransCelLocCam
|
---|
2 | #define MARS_MTransCelLocCam
|
---|
3 |
|
---|
4 | #ifndef ROOT_TROOT
|
---|
5 | #include <TROOT.h>
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef MARS_MAGIC
|
---|
9 | #include "MAGIC.h"
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | class MGeomCam;
|
---|
13 | class MObservatory;
|
---|
14 |
|
---|
15 | class MTransCelLocCam
|
---|
16 | {
|
---|
17 | private:
|
---|
18 | Double_t fDistCam; // distance camera reflector [mm]
|
---|
19 | Double_t fCLat; // cos(Lat)
|
---|
20 | Double_t fSLat; // sin(Lat)
|
---|
21 |
|
---|
22 | Double_t fGridBinning; // degrees
|
---|
23 | Double_t fGridFineBin; // degrees
|
---|
24 |
|
---|
25 | public:
|
---|
26 | MTransCelLocCam(const MGeomCam &cam, const MObservatory &obs);
|
---|
27 |
|
---|
28 | Bool_t Loc0CamToLoc(Double_t theta0deg, Double_t phi0deg,
|
---|
29 | Double_t X, Double_t Y,
|
---|
30 | Double_t &thetadeg, Double_t &phideg);
|
---|
31 |
|
---|
32 | Bool_t Loc0LocToCam(Double_t theta0deg, Double_t phi0deg,
|
---|
33 | Double_t thetadeg, Double_t phideg,
|
---|
34 | Double_t &X, Double_t &Y);
|
---|
35 |
|
---|
36 | Bool_t LocCamToLoc0(Double_t thetadeg, Double_t phideg,
|
---|
37 | Double_t X, Double_t Y,
|
---|
38 | Double_t &theta0deg, Double_t &phi0deg);
|
---|
39 |
|
---|
40 | Bool_t Cel0CamToCel(Double_t dec0deg, Double_t h0hour,
|
---|
41 | Double_t X, Double_t Y,
|
---|
42 | Double_t &decdeg, Double_t &hhour);
|
---|
43 |
|
---|
44 | Bool_t Cel0CelToCam(Double_t dec0deg, Double_t h0hour,
|
---|
45 | Double_t decdeg, Double_t hhour,
|
---|
46 | Double_t &X, Double_t &Y);
|
---|
47 |
|
---|
48 | Bool_t CelCamToCel0(Double_t decdeg, Double_t hhour,
|
---|
49 | Double_t X, Double_t Y,
|
---|
50 | Double_t &dec0deg, Double_t &h0hour);
|
---|
51 |
|
---|
52 | Bool_t LocCamCamToLoc(Double_t theta1deg, Double_t phi1deg,
|
---|
53 | Double_t X1, Double_t Y1,
|
---|
54 | Double_t X2, Double_t Y2,
|
---|
55 | Double_t &theta2deg, Double_t &phi2deg);
|
---|
56 |
|
---|
57 | Bool_t LocCamLocToCam(Double_t theta1deg, Double_t phi1deg,
|
---|
58 | Double_t X1, Double_t Y1,
|
---|
59 | Double_t theta2deg, Double_t phi2deg,
|
---|
60 | Double_t &X2, Double_t &Y2);
|
---|
61 |
|
---|
62 | Bool_t CelCamCamToCel(Double_t dec1deg, Double_t h1hour,
|
---|
63 | Double_t X1, Double_t Y1,
|
---|
64 | Double_t X2, Double_t Y2,
|
---|
65 | Double_t &dec2deg, Double_t &h2hour);
|
---|
66 |
|
---|
67 | Bool_t CelCamCelToCam(Double_t dec1deg, Double_t h1hour,
|
---|
68 | Double_t X1, Double_t Y1,
|
---|
69 | Double_t dec2deg, Double_t h2hour,
|
---|
70 | Double_t &X2, Double_t &Y2);
|
---|
71 |
|
---|
72 | Bool_t CelToLoc(Double_t decdeg, Double_t hhour,
|
---|
73 | Double_t &thetadeg, Double_t &phideg);
|
---|
74 |
|
---|
75 | Bool_t LocToCel(Double_t thetadeg, Double_t phideg,
|
---|
76 | Double_t &decdeg, Double_t &hhour);
|
---|
77 |
|
---|
78 | Bool_t PlotGridAtDec0H0(TString name,
|
---|
79 | Double_t dec0deg, Double_t h0hour);
|
---|
80 | Bool_t PlotGridAtTheta0Phi0(TString name,
|
---|
81 | Double_t theta0deg, Double_t phi0deg);
|
---|
82 |
|
---|
83 | Bool_t SetGridParameters(Double_t gridbinning, Double_t gridfinebin);
|
---|
84 |
|
---|
85 | Bool_t PlotGrid(TString name,
|
---|
86 | Double_t theta0deg, Double_t phi0deg,
|
---|
87 | Double_t dec0deg, Double_t h0hour);
|
---|
88 |
|
---|
89 | ClassDef(MTransCelLocCam, 0) // Class for transformations between Celestial, Local and Camera coordinates
|
---|
90 | };
|
---|
91 |
|
---|
92 | #endif
|
---|
93 |
|
---|
94 |
|
---|
95 |
|
---|
96 |
|
---|
97 |
|
---|
98 |
|
---|
99 |
|
---|
100 |
|
---|
101 |
|
---|
102 |
|
---|
103 |
|
---|