1 | #ifndef MARS_MStereoPar
|
---|
2 | #define MARS_MStereoPar
|
---|
3 |
|
---|
4 | #ifndef MARS_MParContainer
|
---|
5 | #include "MParContainer.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef ROOT_TVector3
|
---|
9 | #include <TVector3.h>
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | class MHillas;
|
---|
13 | class MGeomCam;
|
---|
14 | class MPointingPos;
|
---|
15 |
|
---|
16 | class MStereoPar : public MParContainer
|
---|
17 | {
|
---|
18 | private:
|
---|
19 |
|
---|
20 | Float_t fCoreX; // Estimated core position on ground x
|
---|
21 | Float_t fCoreY; // Estimated core position on ground y
|
---|
22 |
|
---|
23 | Float_t fCoreX2; // Estimated core position on ground assuming that
|
---|
24 | Float_t fCoreY2; // the source direction is paralel to the tel. axis.
|
---|
25 |
|
---|
26 | Float_t fSourceX; // Estimated source position on the camera
|
---|
27 | Float_t fSourceY; // Units are degrees!
|
---|
28 |
|
---|
29 | Float_t fTheta2; // deg^2; Squared angular distance of estimated source position to cameracenter.
|
---|
30 |
|
---|
31 | Float_t fCT1Impact; // Estimated shower impact parameter from CT1
|
---|
32 | Float_t fCT2Impact; // Estimated shower impact parameter from CT2
|
---|
33 |
|
---|
34 | Float_t fCT1Impact2; // Estimated shower impact parameter from CT1
|
---|
35 | // assuming that the source direction is paralel
|
---|
36 | // to the telescope axis.
|
---|
37 |
|
---|
38 | Float_t fCT2Impact2; // Estimated shower impact parameter from CT2
|
---|
39 | // assuming that the source direction is paralel
|
---|
40 | // to the telescope axis.
|
---|
41 |
|
---|
42 | TVector3 CamToDir(const MGeomCam &geom, const MPointingPos &pos, Float_t x, Float_t y) const;
|
---|
43 | TVector3 CamToDir(const MGeomCam &geom, const MPointingPos &pos, const TVector2 &p) const;
|
---|
44 |
|
---|
45 | void CalcCT(const MHillas &h, const MPointingPos &p, const MGeomCam &g, TVector2 &cv1, TVector2 &cv2) const;
|
---|
46 |
|
---|
47 | TVector2 VersorToCore(const TVector2 &v1, const TVector2 &v2, const TVector2 &p1, const TVector2 &p2) const;
|
---|
48 |
|
---|
49 | Double_t CalcImpact(const TVector2 &w, const TVector2 &v, const TVector2 &p) const;
|
---|
50 | Double_t CalcImpact(const TVector3 &v, const TVector2 &p) const;
|
---|
51 | Double_t CalcImpact(const TVector2 &core, const TVector2 &p, const MPointingPos &point) const;
|
---|
52 |
|
---|
53 | public:
|
---|
54 | MStereoPar(const char *name=NULL, const char *title=NULL);
|
---|
55 |
|
---|
56 | void Reset();
|
---|
57 |
|
---|
58 | Float_t GetCoreX() const { return fCoreX; }
|
---|
59 | Float_t GetCoreY() const { return fCoreY; }
|
---|
60 | Float_t GetSourceX() const { return fSourceX; }
|
---|
61 | Float_t GetSourceY() const { return fSourceY; }
|
---|
62 | Float_t GetTheta2() const { return fTheta2; }
|
---|
63 | Float_t GetCT1Impact() const { return fCT1Impact; }
|
---|
64 | Float_t GetCT2Impact() const { return fCT2Impact; }
|
---|
65 | Float_t GetCT1Impact2() const { return fCT1Impact2; }
|
---|
66 | Float_t GetCT2Impact2() const { return fCT2Impact2; }
|
---|
67 |
|
---|
68 | void Calc(const MHillas &h1, const MPointingPos &p1, const MGeomCam &g1, const Float_t ct1_x, const Float_t ct1_y,
|
---|
69 | const MHillas &h2, const MPointingPos &p2, const MGeomCam &g2, const Float_t ct2_x, const Float_t ct2_y);
|
---|
70 |
|
---|
71 | ClassDef(MStereoPar, 1) // Container to hold new image parameters
|
---|
72 | };
|
---|
73 |
|
---|
74 | #endif
|
---|