source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/simulation/detector/optics/include/VirtualDetectorTransportManager.hh @ 117

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

ESAF version compilable on mac OS

File size: 2.1 KB
Line 
1// VirtualDetectorTransportManager
2// copied from $Id: DetectorTransportManager.hh 2201 2005-10-15 10:12:59Z thea $
3
4#ifndef VIRTUALDETECTORTRANSPORTMANAGER_HH
5#define VIRTUALDETECTORTRANSPORTMANAGER_HH
6
7#include "OpticsFactory.hh"
8#include "Config.hh"
9#include "EsafConfigurable.hh"
10
11class PhotonsOnPupil;
12class EEvent;
13
14class VirtualDetectorTransportManager {
15protected:
16    OpticsFactory *of;
17
18    OpticalSystem*     fOptics;
19    IdealFocalSurface* fIdealFocalSurface;
20    FocalPlane*        fFocalPlane;
21
22    UInt_t fNout;
23    UInt_t fNbaffle;
24    UInt_t fNoptics;
25    UInt_t fNwalls;
26    UInt_t fNfocalplane;
27    UInt_t fNreflected;
28    UInt_t fNlost;
29
30    Int_t fMaxIterations;
31    Bool_t fDebug;
32
33    Double_t fTimeFirstPhoton;   // arrival time of the first photon
34    Double_t fTimeLastPhoton;    // arrival time of the last photon
35    Double_t fInnerRadius;       // radius of the walls of the det.
36    Double_t fOuterRadius;       // external detector's radius
37    Double_t fScaleFactor;       // detector size scale factor
38
39public:
40    VirtualDetectorTransportManager(): fDebug(kFALSE), fScaleFactor(1.) {};
41    virtual ~VirtualDetectorTransportManager() {};
42
43    virtual void Go( PhotonsOnPupil* )=0;
44    virtual Photon *Transport(Photon *) const = 0;
45
46    inline OpticalSystem*     GetOptics() { return fOptics; }
47    inline IdealFocalSurface* GetIdealFocalSurface() { return fIdealFocalSurface; }
48    inline FocalPlane*        GetFocalPlane() { return fFocalPlane; }
49
50    inline Double_t GetTimeFirstPhoton() const {return fTimeFirstPhoton;}
51    inline Double_t GetTimeLastPhoton() const {return fTimeLastPhoton;}
52
53    inline Double_t GetOuterRadius() { return fOuterRadius; }
54
55    virtual Double_t GetScaleFactor() const {return fScaleFactor; }
56    virtual void SetScaleFactor( Double_t scale ) { // set the detector size scaling factor
57                                                    if ( scale > 0 ) fScaleFactor = scale; }
58
59    virtual void Reset()=0;
60
61    EsafConfigClass(Optics,VirtualDetectorTransportManager)
62
63    ClassDef(VirtualDetectorTransportManager,0)
64};
65
66#endif /* VIRTUALDETECTORTRANSPORTMANAGER_HH */
Note: See TracBrowser for help on using the repository browser.