source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/detector/optics/include/DetectorGeometry.hh @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 2.8 KB
Line 
1// $Id: DetectorGeometry.hh 2819 2009-03-13 11:48:16Z naumov $
2// Author: Alessandro Thea   2005/03/10
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: DetectorGeometry                                                     *
8 *  Package: Optics                                                          *
9 *  Coordinator: Alessandro.Thea                                             *
10 *                                                                           *
11 *****************************************************************************/
12
13#ifndef __DETECTORGEOMETRY_HH__
14#define __DETECTORGEOMETRY_HH__
15
16#include "euso.hh"
17#include "EsafRefFrame.hh"
18
19class EarthVector;
20
21
22////////////////////////////////////////////////////////////////////////////////
23//                                                                            //
24// DetectorGeometry                                                           //
25//                                                                            // 
26// Contains the fundamental information of the detector seen from "outside":  //
27// Position, orientation in the space, external radius and field of view.     //
28//                                                                            // 
29////////////////////////////////////////////////////////////////////////////////
30
31class DetectorGeometry : public EsafRefFrame {
32public:
33    DetectorGeometry();
34    virtual ~DetectorGeometry();
35
36    virtual Double_t GetRadius() const { return fRadius; }
37    virtual Double_t GetOpticsRadius() const { return fOpticsRadius; }
38    virtual Double_t GetFoV() const { return fFoV; }
39    virtual Double_t GetTargetZ() const { return fTargetZ; }
40    // Returns the solid angle made by Euso pupil as seen from a position in the atmosphere
41    virtual Double_t SolidAngle(const EarthVector&) const;
42    virtual Double_t MaxSolidAngle(const EarthVector&) const;
43   
44    virtual inline TVector3 OpticalAxis() const { return -fZaxis; }
45   
46    virtual inline void SetRadius( Double_t r ) { fRadius = r; }
47    virtual inline void SetOpticsRadius(Double_t radius ) {fOpticsRadius = radius;}
48
49    virtual inline void SetFoV( Double_t fov ) { fFoV = fov; }
50    virtual inline void SetTargetZ( Double_t z ) { fTargetZ = z; }
51   
52    // tell if incoming direction is in FoV or not
53    Bool_t IsInFoV(const TVector3&) const;
54   
55protected:
56
57    Double_t fRadius;
58    Double_t fOpticsRadius; // radius of the entrance pupil (not necessary equal to radius of the telescope)
59    Double_t fFoV;
60    Double_t fTargetZ;
61
62    ClassDef(DetectorGeometry,0)
63};
64
65#endif  /* __DETECTORGEOMETRY_HH__ */
66
Note: See TracBrowser for help on using the repository browser.