source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/radiativetransfer/include/RadiativeProcessesCalculator.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: 1.6 KB
Line 
1// ESAF : Euso Simulation and Analysis Framework
2// $Id: RadiativeProcessesCalculator.hh 2764 2006-11-15 14:15:25Z moreggia $
3// Sylvain Moreggia created Jan,  9 2004
4
5#ifndef __RADIATIVEPROCESSESCALCULATOR_HH_
6#define __RADIATIVEPROCESSESCALCULATOR_HH_
7
8#include "euso.hh"
9#include <vector>
10#include <string>
11#include "EarthVector.hh"
12#include "EsafMsgSource.hh"
13
14class BunchOfPhotons;
15class SinglePhoton;
16class TF1;
17
18class RadiativeProcessesCalculator : public EsafMsgSource {
19public:
20
21    // ctor
22    RadiativeProcessesCalculator();
23
24    // dtor
25    virtual ~RadiativeProcessesCalculator();
26   
27    // Total transmission between photon position and finalpos
28    virtual Double_t Trans(const SinglePhoton&, const EarthVector&, Double_t*) const = 0;
29   
30    // Total transmission between bunch and a final position
31    virtual Double_t Trans(const BunchOfPhotons&,const EarthVector&,vector<Double_t*>&) const = 0;
32
33    // Scattering phase function
34    virtual Double_t RayleighPhaseFunction(const EarthVector&,const EarthVector&) const;
35    virtual Double_t Mie_HG_PhaseFunction(const EarthVector&,const EarthVector&,Double_t) const;
36    virtual Double_t GetMaxPhaseFunction(string) const;
37   
38   
39    // get a random direction, sampling relevant scattering phase function
40    virtual void RandomDir(string type,EarthVector& dir,Double_t g=-10) const;
41
42    // get ready for next event
43    virtual void Reset() = 0;
44
45    // Get methods
46    inline string GetName() {return fName;}
47   
48protected:
49   
50    string fName;
51
52    ClassDef(RadiativeProcessesCalculator,0)
53};
54
55#endif  /* __RADIATIVEPROCESSESCALCULATOR_HH_ */
56
Note: See TracBrowser for help on using the repository browser.