28 #ifndef __GyotoPhoton_H_ 29 #define __GyotoPhoton_H_ 35 namespace Astrobj {
class Generic; }
78 double transmission_freqobs_;
92 double * transmission_;
101 virtual std::string className() const ;
102 virtual std::string className_l() const ;
111 Photon(Photon* orig, size_t i0, int dir, double step_max);
115 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
119 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
120 SmartPointer<Screen> screen, double d_alpha, double d_delta);
124 virtual double getMass() const ;
127 void astrobj(SmartPointer<Astrobj::Generic>);
133 void metric(SmartPointer<Metric::Generic>);
137 void spectrometer(SmartPointer<Spectrometer::Generic> spr);
139 SmartPointer<Spectrometer::Generic> spectrometer() const ;
142 void freqObs(double);
144 double freqObs() const;
166 void setInitialCondition(SmartPointer<Metric::Generic> gg,
167 SmartPointer<Astrobj::Generic> obj,
168 const double coord[8]) ;
189 void setInitialCondition(SmartPointer<Metric::Generic> gg,
190 SmartPointer<Astrobj::Generic> obj,
191 const double coord[8],
192 const double Ephi[4],
193 const double Etheta[4]) ;
207 void setInitialCondition(SmartPointer<Metric::Generic> gg,
208 SmartPointer<Astrobj::Generic> obj,
209 SmartPointer<Screen> screen,
219 int hit(Astrobj::Properties *data=NULL);
239 double findMin(Functor::Double_constDoubleArray* object,
240 double t1, double t2, double &tmin,
241 double threshold = DBL_MIN) ;
256 void findValue(Functor::Double_constDoubleArray* object,
258 double tinside, double &toutside) ;
260 #ifdef GYOTO_USE_XERCES 261 virtual void setParameters(FactoryMessenger *fmp) ;
268 void resetTransmission() ;
278 double getTransmission(size_t i) const ;
287 double getTransmissionMax() const ;
293 double const * getTransmission() const ;
302 virtual void transmit(size_t i, double t);
305 virtual void transfer(double * Inu, double * Qnu, double * Unu, double * Vnu,
306 double const * aInu, double const * aQnu,
307 double const * aUnu, double const * aVnu,
308 double const * rQnu, double const * rUnu, double const * rVnu) ;
312 void _allocateTransmission();
346 virtual void transmit(
size_t i,
double t);
348 virtual void transfer(
double * Inu,
double * Qnu,
double * Unu,
double * Vnu,
349 double const * aInu,
double const * aQnu,
350 double const * aUnu,
double const * aVnu,
351 double const * rQnu,
double const * rUnu,
double const * rVnu) ;
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
Timelike or null geodesics.
Definition: GyotoWorldline.h:226
A null geodesic transporting light.
Definition: GyotoPhoton.h:52
Classes with an operator() method.
#define GYOTO_OBJECT_THREAD_SAFETY
Declare virtual bool isThreadSafe() const.
Definition: GyotoObject.h:99
void setInitialCondition(SmartPointer< Metric::Generic > gg, const double coord[8], const int dir, double const Ephi[4], double const Etheta[4])
Set or re-set the initial condition prior to integration.
Photon * parent_
Parent Photon.
Definition: GyotoPhoton.h:342
Refine last step of integration in a Photon.
Definition: GyotoPhoton.h:340
Gyoto ubiquitous macros and typedefs.
Timelike or null geodesics.
Base class for metric description.
#define GYOTO_WORLDLINE
Declare the Worldline interface wrappers.
Definition: GyotoWorldline.h:156
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:45
Can be pointed to by a SmartPointer.
Definition: GyotoSmartPointer.h:80
Object with properties.
Definition: GyotoObject.h:151
Description of the observer screen.
SmartPointer< Metric::Generic > metric() const
Get metric.
SmartPointer< Astrobj::Generic > Subcontractor(FactoryMessenger *fmp, std::vector< std::string > const &plugin)
A template for Subcontractor_t functions.
Definition: GyotoAstrobj.h:76