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 | |
---|
11 | class PhotonsOnPupil; |
---|
12 | class EEvent; |
---|
13 | |
---|
14 | class VirtualDetectorTransportManager { |
---|
15 | protected: |
---|
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 | |
---|
39 | public: |
---|
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 */ |
---|