102 double omega_min = -domega;
103 double omega_max = +domega;
111 if (max > omega_min && min < omega_max) {
112 double interval_min =
min;
113 double interval_max =
max;
114 if (interval_min < omega_min) {
115 interval_min = omega_min;
117 if (interval_max > omega_max) {
118 interval_max = omega_max;
120 intervals.push_back(std::make_pair(interval_min,interval_max));
126 if (max > omega_min_plus && min < omega_max_plus) {
127 double interval_min =
min;
128 double interval_max =
max;
129 if (interval_min < omega_min_plus) {
130 interval_min = omega_min_plus;
132 if (interval_max > omega_max_plus) {
133 interval_max = omega_max_plus;
135 intervals.push_back(std::make_pair(interval_min,interval_max));
141 if (max > omega_min_minus && min < omega_max_minus) {
142 double interval_min =
min;
143 double interval_max =
max;
144 if (interval_min < omega_min_minus) {
145 interval_min = omega_min_minus;
147 if (interval_max > omega_max_minus) {
148 interval_max = omega_max_minus;
150 intervals.push_back(std::make_pair(interval_min,interval_max));
157 intervals.push_back(std::make_pair(min,max));
189 map = &(pmap->
map());
195 map = &(pcube->
cube());
200 if (pconst != NULL) {
268 #if defined(G_NAN_CHECK)
270 std::cout <<
"*** ERROR: cta_npsf_kern_rad_azsym::eval";
271 std::cout <<
" NaN/Inf encountered";
272 std::cout <<
" (value=" << value;
273 std::cout <<
", delta=" << delta;
274 std::cout <<
", phi=" << phi <<
")";
275 std::cout << std::endl;
304 double nroi = nroi_spatial * nroi_spectral * nroi_temporal;
354 double omega_min = -domega;
355 double omega_max = +domega;
360 if (rho_kludge < 0.0) {
368 #if defined(G_DEBUG_MODEL_ZERO)
370 std::cout <<
"*** WARNING: cta_irf_radial_kern_rho::eval";
371 std::cout <<
" zero model for (rho)=(";
374 std::cout <<
" radians" << std::endl;
412 #if defined(G_NAN_CHECK)
414 std::cout <<
"*** ERROR: cta_irf_radial_kern_rho";
415 std::cout <<
"(rho=" << rho <<
"):";
416 std::cout <<
" NaN/Inf encountered";
417 std::cout <<
" (irf=" << irf;
418 std::cout <<
", domega=" << domega;
419 std::cout <<
", model=" << model;
420 std::cout <<
", sin_rho=" << sin_rho <<
")";
421 std::cout << std::endl;
486 double azimuth = 0.0;
498 #if defined(G_NAN_CHECK)
500 std::cout <<
"*** ERROR: cta_irf_radial_kern_omega::eval";
501 std::cout <<
"(omega=" << omega <<
"):";
502 std::cout <<
" NaN/Inf encountered";
503 std::cout <<
" (irf=" << irf;
504 std::cout <<
", delta=" << delta;
505 std::cout <<
", offset=" << offset;
506 std::cout <<
", azimuth=" << azimuth <<
")";
507 std::cout << std::endl;
555 double omega_min =
m_omega0 - domega;
556 double omega_max =
m_omega0 + domega;
561 if (rho_kludge < 0.0) {
569 #if defined(G_DEBUG_MODEL_ZERO)
571 std::cout <<
"*** WARNING: cta_nroi_radial_kern_rho::eval";
572 std::cout <<
" zero model for (rho)=(";
575 std::cout <<
" radians" << std::endl;
604 #if defined(G_NAN_CHECK)
606 std::cout <<
"*** ERROR: cta_nroi_radial_kern_rho::eval";
607 std::cout <<
"(rho=" << rho <<
"):";
608 std::cout <<
" NaN/Inf encountered";
609 std::cout <<
" (nroi=" << nroi;
610 std::cout <<
", model=" << model;
611 std::cout <<
", omega=[" << omega_min <<
"," << omega_max <<
"]";
612 std::cout <<
", sin_rho=" << sin_rho;
613 std::cout <<
")" << std::endl;
658 #if defined(G_NAN_CHECK)
660 std::cout <<
"*** ERROR: cta_nroi_radial_kern_omega::eval";
661 std::cout <<
"(omega=" << omega <<
"):";
662 std::cout <<
" NaN/Inf encountered";
663 std::cout <<
" (nroi=" << nroi;
664 std::cout <<
", cos_omega=" << cos_omega;
665 std::cout <<
", sin_omega=" << sin_omega;
666 std::cout <<
")" << std::endl;
743 if (rho_kludge < 0.0) {
773 double omega_min = -domega;
774 double omega_max = +domega;
794 if (omega_width > 0.0) {
811 double omega1_min = omega_0 - omega_width;
812 double omega1_max = omega_0 + omega_width;
826 for (
int i = 0; i < intervals1.size(); ++i) {
827 double min = intervals1[i].first;
828 double max = intervals1[i].second;
833 for (
int i = 0; i < intervals2.size(); ++i) {
834 double min = intervals2[i].first;
835 double max = intervals2[i].second;
844 #if defined(G_NAN_CHECK)
846 std::cout <<
"*** ERROR: cta_irf_elliptical_kern_rho";
847 std::cout <<
"(rho=" << rho <<
"):";
848 std::cout <<
" NaN/Inf encountered";
849 std::cout <<
" (irf=" << irf;
850 std::cout <<
", domega=" << domega;
851 std::cout <<
", sin_rho=" << sin_rho <<
")";
852 std::cout << std::endl;
919 #if defined(G_DEBUG_MODEL_ZERO)
924 double cosinus =
std::cos(diff_angle);
925 double sinus =
std::sin(diff_angle);
926 double arg1 = m_semiminor_rad * cosinus;
927 double arg2 = m_semimajor_rad * sinus;
928 double r_ellipse = m_semiminor_rad * m_semimajor_rad /
930 std::cout <<
"*** WARNING: cta_irf_elliptical_kern_omega::eval:";
931 std::cout <<
" zero model for (rho,omega)=(";
933 std::cout << omega*gammalib::rad2deg <<
")";
934 std::cout <<
" semiminor=" << m_semiminor_rad;
935 std::cout <<
" semimajor=" << m_semimajor_rad;
938 std::cout <<
" rho/r_ellipse=" << (
m_rho/r_ellipse);
939 std::cout << std::endl;
968 #if defined(G_NAN_CHECK)
970 std::cout <<
"*** ERROR: cta_irf_elliptical_kern_omega::eval";
971 std::cout <<
"(omega=" << omega <<
"):";
972 std::cout <<
" NaN/Inf encountered";
973 std::cout <<
" (irf=" << irf;
974 std::cout <<
", model=" << model;
975 std::cout <<
", delta=" << delta;
976 std::cout <<
", theta=" << theta;
977 std::cout <<
", phi=" << phi <<
")";
978 std::cout << std::endl;
1045 if (rho_kludge < 0.0) {
1073 double omega_min = -domega;
1074 double omega_max = +domega;
1095 if (omega_width > 0.0) {
1111 double omega1_min = omega_0 - omega_width;
1112 double omega1_max = omega_0 + omega_width;
1126 for (
int i = 0; i < intervals1.size(); ++i) {
1127 double min = intervals1[i].first;
1128 double max = intervals1[i].second;
1133 for (
int i = 0; i < intervals2.size(); ++i) {
1134 double min = intervals2[i].first;
1135 double max = intervals2[i].second;
1144 #if defined(G_NAN_CHECK)
1146 std::cout <<
"*** ERROR: cta_nroi_elliptical_kern_rho::eval";
1147 std::cout <<
"(rho=" << rho <<
"):";
1148 std::cout <<
" NaN/Inf encountered";
1149 std::cout <<
" (nroi=" << nroi;
1150 std::cout <<
", sin_rho=" << sin_rho;
1151 std::cout <<
", cos_rho=" << cos_rho;
1152 std::cout <<
")" << std::endl;
1198 #if defined(G_DEBUG_MODEL_ZERO)
1203 double cosinus =
std::cos(diff_angle);
1204 double sinus =
std::sin(diff_angle);
1205 double arg1 = m_semiminor_rad * cosinus;
1206 double arg2 = m_semimajor_rad * sinus;
1207 double r_ellipse = m_semiminor_rad * m_semimajor_rad /
1209 std::cout <<
"*** WARNING: cta_nroi_elliptical_kern_omega::eval";
1210 std::cout <<
" zero model for (rho,omega)=(";
1212 std::cout << omega*gammalib::rad2deg <<
")";
1213 std::cout <<
" rho-r_ellipse=" << (
m_rho-r_ellipse) <<
" radians";
1214 std::cout << std::endl;
1222 double cos_omega =
std::cos(omega_model);
1223 double sin_omega =
std::sin(omega_model);
1240 #if defined(G_NAN_CHECK)
1242 std::cout <<
"*** ERROR: cta_nroi_elliptical_kern_omega::eval";
1243 std::cout <<
"(omega=" << omega <<
"):";
1244 std::cout <<
" NaN/Inf encountered";
1245 std::cout <<
" (nroi=" << nroi;
1246 std::cout <<
", model=" << model;
1247 std::cout <<
", cos_omega=" << cos_omega;
1248 std::cout <<
", sin_omega=" << sin_omega;
1249 std::cout <<
")" << std::endl;
1308 double sin_theta =
std::sin(theta);
1309 double cos_theta =
std::cos(theta);
1338 #if defined(G_DEBUG_INTEGRAL)
1339 if (!integral.isvalid()) {
1340 std::cout <<
"cta_irf_diffuse_kern_theta(theta=";
1342 std::cout << psf <<
":" << std::endl;
1343 std::cout << integral.
print() << std::endl;
1348 #if defined(G_NAN_CHECK)
1350 std::cout <<
"*** ERROR: cta_irf_diffuse_kern_theta";
1351 std::cout <<
"(theta=" << theta <<
"):";
1352 std::cout <<
" NaN/Inf encountered";
1353 std::cout <<
" (irf=" << irf;
1354 std::cout <<
", psf=" << psf;
1355 std::cout <<
", sin_theta=" << sin_theta;
1356 std::cout <<
", cos_theta=" << cos_theta;
1357 std::cout <<
", sin_ph=" << sin_ph;
1358 std::cout <<
", cos_ph=" << cos_ph;
1360 std::cout << std::endl;
1431 if (intensity > 0.0) {
1437 double azimuth = 0.0;
1450 #if defined(G_NAN_CHECK)
1452 std::cout <<
"*** ERROR: cta_irf_diffuse_kern_phi::eval";
1453 std::cout <<
"(phi=" << phi <<
"):";
1454 std::cout <<
" NaN/Inf encountered";
1455 std::cout <<
" (irf=" << irf;
1456 std::cout <<
", intensity=" << intensity;
1457 std::cout <<
", offset=" << offset;
1458 std::cout <<
", azimuth=" << azimuth;
1460 std::cout << std::endl;
1506 double sin_theta =
std::sin(theta);
1524 #if defined(G_DEBUG_INTEGRAL)
1525 if (!integral.isvalid()) {
1526 std::cout <<
"cta_nroi_diffuse_kern_theta(theta=";
1528 std::cout << integral.
print() << std::endl;
1533 #if defined(G_NAN_CHECK)
1535 std::cout <<
"*** ERROR: cta_nroi_radial_kern_theta::eval";
1536 std::cout <<
"(theta=" << theta <<
"):";
1537 std::cout <<
" NaN/Inf encountered";
1538 std::cout <<
" (nroi=" << nroi;
1539 std::cout <<
", sin_theta=" << sin_theta;
1540 std::cout <<
")" << std::endl;
1590 if (intensity > 0.0) {
1596 #if defined(G_NAN_CHECK)
1598 std::cout <<
"*** ERROR: cta_nroi_diffuse_kern_phi::eval";
1599 std::cout <<
"(phi=" << phi <<
"):";
1600 std::cout <<
" NaN/Inf encountered";
1601 std::cout <<
" (nroi=" << nroi;
1602 std::cout <<
", intensity=" << intensity;
1603 std::cout <<
", cos_phi=" << cos_phi;
1604 std::cout <<
", sin_phi=" << sin_phi;
1605 std::cout <<
")" << std::endl;
1669 if (rho_kludge < 0.0) {
1677 #if defined(G_DEBUG_MODEL_ZERO)
1679 std::cout <<
"*** WARNING: cta_psf_radial_kern_rho::eval";
1680 std::cout <<
" zero model for (rho)=(";
1683 std::cout <<
" radians" << std::endl;
1691 double omega_min = -domega;
1692 double omega_max = +domega;
1718 #if defined(G_NAN_CHECK)
1720 std::cout <<
"*** ERROR: cta_psf_radial_kern_rho";
1721 std::cout <<
"(rho=" << rho <<
"):";
1722 std::cout <<
" NaN/Inf encountered";
1723 std::cout <<
" (irf=" << irf;
1724 std::cout <<
", domega=" << domega;
1725 std::cout <<
", model=" << model;
1726 std::cout <<
", sin_rho=" << sin_rho <<
")";
1727 std::cout << std::endl;
1780 #if defined(G_NAN_CHECK)
1782 std::cout <<
"*** ERROR: cta_psf_radial_kern_omega::eval";
1783 std::cout <<
"(omega=" << omega <<
"):";
1784 std::cout <<
" NaN/Inf encountered";
1785 std::cout <<
" (irf=" << irf;
1786 std::cout <<
", delta=" << delta;
1787 std::cout <<
", omega=" << omega <<
")";
1788 std::cout << std::endl;
1847 double phi_min = -dphi;
1848 double phi_max = +dphi;
1851 double sin_delta =
std::sin(delta);
1852 double cos_delta =
std::cos(delta);
1872 #if defined(G_NAN_CHECK)
1874 std::cout <<
"*** ERROR: cta_psf_radial_kern_delta::eval";
1875 std::cout <<
"(delta=" << delta <<
"):";
1876 std::cout <<
" NaN/Inf encountered";
1877 std::cout <<
" (value=" << value;
1878 std::cout <<
")" << std::endl;
1921 double theta_kluge = theta - 1.0e-12;
1922 if (theta_kluge < 0.0) {
1930 #if defined(G_DEBUG_MODEL_ZERO)
1932 std::cout <<
"*** WARNING: cta_psf_radial_kern_phi::eval";
1933 std::cout <<
" zero model for (phi)=(";
1936 std::cout <<
" radians" << std::endl;
1941 #if defined(G_NAN_CHECK)
1943 std::cout <<
"*** ERROR: cta_psf_radial_kern_phi::eval";
1944 std::cout <<
"(phi=" << phi <<
"):";
1945 std::cout <<
" NaN/Inf encountered";
1946 std::cout <<
" (value=" << value;
1947 std::cout <<
")" << std::endl;
2013 if (rho_kludge < 0.0) {
2038 double omega_min = -domega;
2039 double omega_max = +domega;
2059 if (omega_width > 0.0) {
2076 double omega1_min = omega_0 - omega_width;
2077 double omega1_max = omega_0 + omega_width;
2091 for (
int i = 0; i < intervals1.size(); ++i) {
2092 double min = intervals1[i].first;
2093 double max = intervals1[i].second;
2098 for (
int i = 0; i < intervals2.size(); ++i) {
2099 double min = intervals2[i].first;
2100 double max = intervals2[i].second;
2109 #if defined(G_NAN_CHECK)
2111 std::cout <<
"*** ERROR: cta_psf_elliptical_kern_rho";
2112 std::cout <<
"(rho=" << rho <<
"):";
2113 std::cout <<
" NaN/Inf encountered";
2114 std::cout <<
" (irf=" << irf;
2115 std::cout <<
", domega=" << domega;
2116 std::cout <<
", sin_rho=" << sin_rho <<
")";
2117 std::cout << std::endl;
2172 #if defined(G_DEBUG_MODEL_ZERO)
2177 double cosinus =
std::cos(diff_angle);
2178 double sinus =
std::sin(diff_angle);
2179 double arg1 = semiminor_rad * cosinus;
2180 double arg2 = semimajor_rad * sinus;
2181 double r_ellipse = semiminor_rad * semimajor_rad /
2183 std::cout <<
"*** WARNING: cta_psf_elliptical_kern_omega::eval";
2184 std::cout <<
" zero model for (rho,omega)=";
2186 std::cout << omega*gammalib::rad2deg <<
")";
2187 std::cout <<
" rho-r_ellipse=" << (
m_rho-r_ellipse) <<
" radians";
2188 std::cout << std::endl;
2202 #if defined(G_NAN_CHECK)
2204 std::cout <<
"*** ERROR: cta_psf_elliptical_kern_omega::eval";
2205 std::cout <<
"(omega=" << omega <<
"):";
2206 std::cout <<
" NaN/Inf encountered";
2207 std::cout <<
" (irf=" << irf;
2208 std::cout <<
", model=" << model;
2209 std::cout <<
", delta=" << delta;
2210 std::cout <<
", rho=" <<
m_rho;
2211 std::cout <<
", omega=" << omega <<
")";
2212 std::cout << std::endl;
2260 double sin_delta =
std::sin(delta);
2261 double cos_delta =
std::cos(delta);
2266 sin_delta, cos_delta);
2286 #if defined(G_NAN_CHECK)
2288 std::cout <<
"*** ERROR: cta_psf_diffuse_kern_delta::eval";
2289 std::cout <<
"(delta=" << delta <<
"):";
2290 std::cout <<
" NaN/Inf encountered";
2291 std::cout <<
" (value=" << value;
2292 std::cout <<
")" << std::endl;
2333 #if defined(G_NAN_CHECK)
2335 std::cout <<
"*** ERROR: cta_psf_diffuse_kern_phi::eval";
2336 std::cout <<
"(phi=" << phi <<
"):";
2337 std::cout <<
" NaN/Inf encountered";
2338 std::cout <<
" (value=" << value;
2339 std::cout <<
")" << std::endl;
double m_zeta
Distance model centre - measured photon.
const GCTAObservation * m_obs
CTA observation.
double m_cos_psf
Cosine term for PSF offset angle computation.
double eval(const double &rho)
Kernel for zenith angle Nroi integration or radial model.
CTA response helper classes definition.
std::vector< std::pair< double, double > > cta_omega_intervals
virtual double nroi(const GModelSky &model, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return integral of event probability for a given sky model over ROI.
const GCTAResponseCube * m_rsp
CTA response.
double m_omega0
Position angle of ROI.
GEnergy m_srcEng
True photon energy.
GEnergy m_srcEng
True photon energy.
GEnergy m_srcEng
True photon energy.
double roi_arclength(const double &rad, const double &dist, const double &cosdist, const double &sindist, const double &roi, const double &cosroi)
Returns length of circular arc within circular ROI.
GTime m_srcTime
True photon time.
GTime m_obsTime
Observed photon arrival time.
GEnergy m_srcEng
True photon energy.
double m_theta_max
Maximum model radius.
double m_cos_ph
Cosine term for photon offset angle computation.
double romberg(std::vector< double > bounds, const int &order=5)
Perform Romberg integration.
const GSkyProjection * projection(void) const
Returns pointer to sky projection.
double eval(const double &rho)
Kernel for zenith angle Nroi integration of elliptical model.
virtual double eval(const GPhoton &photon, const bool &gradients=false) const =0
Kernel for radial model azimuth angle IRF integration.
double m_sin_zeta
Sine of zeta.
double m_cos_delta
cos(delta)
double m_sin_rho
Sine of offset angle.
double m_cos_rho_obs
Cosine of m_rho_obs.
double m_posangle_roi
Position angle of ROI.
double m_rho_obs
Distance of model centre from measured photon.
double m_sin_rho
Sine of offset angle.
GModelSpectral * spectral(void) const
Return spectral model component.
double m_cos_radius
Cosine of ROI+PSF radius.
double m_zenith
Zenith angle.
double m_zenith
Zenith angle of source in Earth system.
const GModelSpatialElliptical * m_model
Elliptical model.
double m_cosroi
Cosine of ROI radius.
double m_delta_max
Maximum PSF radius.
const GModelSpatialElliptical * m_model
Elliptical model.
virtual bool use_edisp(void) const
Signal if response uses energy dispersion.
const GMatrix * m_rot
Rotation matrix.
double eval(const double &rho)
Kernel for elliptical model integration over model's zenith angle.
GVector abs(const GVector &vector)
Computes absolute of vector elements.
const GCTAResponseCube * m_rsp
CTA response.
const GModelSpatialElliptical * m_model
Elliptical model.
GEnergy m_srcEng
True photon energy.
double m_theta
Photon offset angle.
GVector cos(const GVector &vector)
Computes cosine of vector elements.
double eval(const double &theta)
Kernel for Nroi offest angle integration of diffuse model.
double m_radius_roi
ROI+PSF radius.
const GSkyMap & map(void) const
Get map.
double m_sin_psf
Sine term for PSF offset angle computation.
GEnergy m_obsEng
Observed photon energy.
virtual double eval(const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const =0
const GMatrix * m_rot
Rotation matrix.
GModelTemporal * temporal(void) const
Return temporal model component.
const GCTAResponseIrf * m_rsp
CTA response.
double m_semiminor
Ellipse boundary semiminor axis.
double m_dist
Distance model-ROI centre.
double m_omega0
Azimuth of pointing in model system.
const GModelSpatial * m_model
Spatial model.
GTime m_srcTime
True photon arrival time.
double m_azimuth
Azimuth angle.
double m_sin_theta
Sine of offset angle.
GVector m_native
Pre-allocate memory for native coordinates.
GTime m_obsTime
Measured arrival time.
double m_cos_psf
Cosine term for PSF offset angle computation.
const GMatrix * m_rot
Rotation matrix.
GEnergy m_srcEng
True photon energy.
const GModelSpatial * m_model
Spatial model.
double m_delta_max
Maximum PSF radius.
double m_sin_rho_obs
Sine of m_rho_obs.
GPhoton m_photon
Pre-allocate memory for a photon object.
const GModelSpatialRadial * m_model
Radial model.
GEnergy m_obsEng
Observed photon energy.
double m_logE
Log10 of true photon energy (E/TeV).
double m_cos_delta_max
Cosine of maximum PSF radius.
double m_cos_ph
Cosine term in angular distance equation.
GTime m_srcTime
True photon arrival time.
double eval(const double &delta)
Integration kernel for npsf() method.
const GCTAResponseIrf * m_rsp
CTA response.
GEnergy m_srcEng
True photon energy.
int m_iter
Integration iterations.
double m_cos_eta
Cosine of angular distance between.
const GModelSpatialElliptical * m_model
Spatial model.
GEnergy m_obsEng
Observed photon energy.
double acos(const double &arg)
Computes acos by avoiding NaN due to rounding errors.
double log10TeV(void) const
Return log10 of energy in TeV.
GEnergy m_obsEng
Measured energy.
const GCTAResponseIrf * m_rsp
CTA response.
double m_zenith
Zenith angle.
int m_iter
Integration iterations.
GTime m_srcTime
True photon arrival time.
double MeV(void) const
Return energy in MeV.
double m_resolution
Spatial map resolution.
int m_max_iter
Maximum number of Romberg iterations.
GEnergy m_obsEng
Measured event energy.
GTime m_srcTime
True photon arrival time.
GIntegral class interface definition.
double m_sin_lambda
Sine of lambda.
double eval(const double &omega)
Kernel for radial model integration over azimuth angle.
const GModelSpatialElliptical * m_model
Elliptical model.
double m_lambda
Distance model centre - pointing.
int m_iter
Integration iterations.
double eval(const double &rho)
Kernel for radial model integration over zenith angle.
GTime m_srcTime
True photon arrival time.
double m_phi
Azimuth angle of source in camera system.
const GModelSpatialRadial * m_model
Radial spatial model.
double m_zenith
Pointing zenith angle.
const GMatrix * m_rot
Rotation matrix.
double min(const GVector &vector)
Computes minimum vector element.
Kernel for ellitpical model azimuth angle IRF integration.
double m_posangle
Ellipse boundary position angle.
double m_psf
PSF-ROI centre distance in radians.
const GCTAResponseIrf * m_rsp
CTA response.
const GCTAResponseIrf * m_rsp
CTA response.
const double g_ellipse_kludge_radius
About 0.2 arc seconds.
const GMatrix * m_rot
Rotation matrix.
GTime m_srcTime
True photon time.
GTime m_obsTime
Observed photon arrival time.
GSkyDir m_srcDir
True photon arrival direction.
const GCTAResponseIrf * m_rsp
CTA response.
double m_sin_delta
sin(delta)
GSkyDir m_srcDir
True photon sky direction.
bool is_notanumber(const double &x)
Signal if argument is not a number.
GEnergy m_srcEng
True photon energy.
GSkyDir m_srcDir
True photon arrival direction.
double m_zenith
Zenith angle.
double m_cos_zeta
Cosine of zeta.
double m_sin_delta_mod
Sine of m_delta_mod.
double m_cos_delta_mod
Cosine of m_delta_mod.
Class that handles photons.
const GCTAObservation * m_obs
CTA observation.
bool is_infinite(const double &x)
Signal if argument is infinite.
GSkyDir m_srcDir
True photon arrival direction.
GTime m_obsTime
Observed photon arrival time.
Definition of support function used by CTA classes.
double eval(const double &etrue)
Integration kernel for GCTAResponseIrf::nroi method.
double eval(const double &theta)
Kernel for IRF offest angle integration of the diffuse source model.
const GCTAPsf * psf(void) const
Return pointer to point spread function.
virtual double eval(const double &theta, const GEnergy &energy, const GTime &time, const bool &gradients=false) const =0
double m_radius
ROI+PSF radius.
double semiminor(void) const
Return semi-minor axis of ellipse.
double eval(const double &omega)
Kernel for radial model azimuth angle IRF integration.
double m_cos_lambda
Cosine of lambda.
GVector sqrt(const GVector &vector)
Computes square root of vector elements.
const GCTAObservation * m_obs
CTA observation.
const GMatrix * m_rot
Rotation matrix.
double eval(const double &omega)
Kernel for azimuth angle Nroi integration of radial model.
double m_cos_dist
Cosine of distance model-ROI centre.
GEnergy m_srcEng
True photon energy.
GSkyDir m_srcDir
True photon sky direction.
double m_sin_ph
Sine term in angular distance equation.
double m_cos_rho_obs
Cosine of m_rho_obs.
const GCTAResponseIrf * m_rsp
CTA response function.
double m_posangle_obs
Photon position angle measured from model centre.
GEnergy m_srcEng
True photon energy.
Kernel for Psf phi angle integration used for stacked analysis.
double m_azimuth
Azimuth angle.
double m_rho_roi
Distance between model and ROI centre.
GTime m_srcTime
True photon arrival time.
double m_delta_max
Maximum PSF radius.
GTime m_srcTime
True photon arrival time.
const GModelSpatial * m_model
Spatial model.
GTime m_srcTime
True photon time.
const GCTAAeff * aeff(void) const
Return pointer to effective area response.
int m_iter
Integration iterations.
double m_sin_eta
Sine of angular distance between.
const GCTACubePsf & psf(void) const
Return cube analysis point spread function.
const GCTAObservation * m_obs
CTA observation.
double m_cos_rho_roi
Cosine of m_rho_roi.
double m_sin_ph
Sine term for photon offset angle computation.
const GModelSpatial * m_model
Spatial model.
Integration class for set of functions interface definition.
double eval(const double &omega)
Kernel for elliptical model integration over model's azimuth angle.
double m_azimuth
Azimuth angle.
double m_posangle_obs
Measured photon position angle from model centre.
double eval(const double &rho)
Kernel for radial model zenith angle integration of Irf.
GTime m_srcTime
True photon time.
void celvector(const GVector &vector)
Set sky direction from 3D vector in celestial coordinates.
const GModelSpatialRadial * m_model
Radial model.
const GCTAResponseCube * m_rsp
Response cube.
double eval(const double &phi)
Kernel for map integration of spatial model.
const GCTAResponseIrf * m_rsp
CTA response.
double m_posangle_obs
Photon position angle measured from model centre.
double m_sin_psf
Sine term for PSF offset angle computation.
GEnergy m_srcEng
True photon energy.
Kernel for IRF azimuth angle integration of the diffuse source model.
double cdelt(const int &inx) const
Return pixel size.
double nirf(const GPhoton &photon, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Return spatial integral of Instrument Response Function.
GEnergy m_obsEng
Observed photon energy.
double m_posangle
Ellipse boundary position angle.
double m_cos_theta
Cosine of offset angle.
double m_srcLogEng
True photon log energy.
double m_sin_ph
Sine term for photon offset angle computation.
double m_cos_rho
Cosine of offset angle.
double m_zenith
Zenith angle.
GEnergy m_obsEng
Measured event energy.
double m_sin_rho_roi
Sine of m_rho_roi.
double m_semimajor
Ellipse boundary semimajor axis.
double m_cos_rho_pnt
Cosine of m_rho_pnt.
const GTime & time(void) const
Return photon time.
double m_omega_pnt
Azimuth of pointing in model system.
const GMatrix * m_rot
Rotation matrix.
double resolution(const GModelSpatial *model)
Determine resolution of spatial model.
double m_cos_fact
cos(delta)*cos(delta_mod)
Abstract CTA energy dispersion base class definition.
double m_roi
ROI radius in radians.
const GModelSpatialElliptical * m_model
Elliptical model.
virtual double eval(const GTime &srcTime, const bool &gradients=false) const =0
double m_cos_psf
Cosine term for PSF offset angle computation.
double m_sin_fact
sin(delta)*sin(delta_mod)
double m_srcLogEng
True photon log energy.
Isotropic spatial model class interface definition.
const GModelSpatialRadial * m_model
Radial spatial model.
Vector class interface definition.
GSkyDir m_srcDir
True photon arrival direction.
GEnergy m_srcEng
True photon energy.
double m_sin_rho_pnt
Sine of m_rho_pnt.
GTime m_srcTime
True arrival time.
GEnergy m_srcEng
True photon energy.
double m_cos_delta_max
Cosine of maximum PSF radius.
double m_cospsf
Cosine of PSF-ROI centre distance.
double max(const GVector &vector)
Computes maximum vector element.
GTime m_srcTime
True photon arrival time.
const double g_kludge_radius
Tiny angle (radians)
double m_posangle_roi
Position angle of ROI.
double m_cos_theta
Cosine of offset angle.
const GCTAResponseIrf * m_rsp
CTA response function.
double eval(const double &phi)
Kernel for azimuthal radial model integration.
GEnergy m_obsEng
Measured event energy.
double eval(const double &omega)
Kernel for elliptical model integration over azimuth angle.
GEnergy m_obsEng
Observed photon energy.
double eval(const double &rho)
Kernel for elliptical model integration over zenith angle.
const GCTAResponseIrf * m_rsp
CTA response.
GEnergy m_srcEng
True photon energy.
int m_iter
Integration iterations.
double m_azimuth
Azimuth angle.
double m_phi
Photon azimuth angle.
const GCTAObservation * m_obs
CTA observation.
double m_rho_obs
Distance of model centre from measured photon.
const GCTAResponseCube * m_rsp
Response cube.
const GCTAResponseIrf * m_rsp
CTA response.
const GMatrix * m_rot
Rotation matrix.
double m_sin_dist
Sine of distance model-ROI centre.
cta_omega_intervals limit_omega(const double &min, const double &max, const double &domega)
Limit omega interval.
double m_sin_psf
Sine term for PSF offset angle computation.
Abstract world coordinate system base class.
double eval(const double &delta)
Kernel for PSF integration of radial model.
int iter_phi(const double &rho, const double &resolution, const int &iter_min, const int &iter_max)
Determine number of azimuthal Romberg iterations.
GEnergy m_srcEng
True photon energy.
GEnergy m_srcEng
True photon energy.
double m_posangle_obs
Measured photon position angle from model centre.
std::string print(const GChatter &chatter=NORMAL) const
Print integral information.
double eval(const double &omega)
Kernel for azimuth angle Nroi integration of elliptical model.
GTime m_srcTime
True photon arrival time.
double m_rho_obs
Distance of model centre from measured photon.
double eval(const double &phi)
Kernel for Nroi azimuth angle integration of diffuse model.
double m_cos_theta_max
Cosine of m_theta_max.
double m_sin_rho_obs
Sine of m_rho_obs.
GEnergy m_srcEng
True photon energy.
GEnergy m_obsEng
Observed photon energy.
double eval(const double &delta)
Kernel for PSF integration of spatial model.
double m_cos_rho
Cosine of offset angle.
const GMatrix * m_rot
Rotation matrix.
double posangle(void) const
Return Position Angle of model.
const GModelSpatial * m_model
Spatial model.
double eval(const double &phi)
Kernel for IRF azimuth angle integration of the diffuse source model.
double m_cos_rho_obs
Cosine of m_rho_obs.
Spatial map cube model class interface definition.
const GObservation * m_obs
Observation.
GEnergy m_srcEng
True photon energy.
double m_semimajor
Ellipse boundary semimajor axis.
GEnergy m_obsEng
Measured event energy.
double m_cos_delta_max
Cosine of maximum PSF radius.
double m_semiminor
Ellipse boundary semiminor axis.
double m_azimuth
Azimuth angle of source in Earth system.
double m_azimuth
Azimuth angle.
double m_rho
Model zenith angle.
double m_posangle
Ellipse boundary position angle.
double m_cos_radius_roi
Cosine of m_radius_roi.
double m_theta
Offset angle of source in camera system.
GVector sin(const GVector &vector)
Computes sine of vector elements.
double m_sin_psf
Sine term for PSF offset angle computation.
const GEnergy & energy(void) const
Return photon energy.
double m_sin_rho_obs
Sine of m_rho_obs.
virtual double theta_max(void) const =0
const GModelSpatialRadial * m_model
Radial model.
double m_cos_ph
Cosine term for photon offset angle computation.
int m_iter
Integration iterations.
void fixed_iter(const int &iter)
Set fixed number of iterations.
GTime m_obsTime
Observed photon arrival time.
Abstract spatial model base class.
double m_rho
Model zenith angle.
GTime m_srcTime
True photon time.
const GCTAResponseIrf * m_rsp
CTA response.
GTime m_obsTime
Observed photon arrival time.
const GModelSky * m_model
Sky model.
GTime m_srcTime
True photon time.
GTime m_srcTime
True photon arrival time.
const GMatrix * m_rot
Rotation matrix.
double m_sin_theta
Sine of offset angle.
virtual double eval(const double &theta, const double &posangle, const GEnergy &energy, const GTime &time, const bool &gradients=false) const =0
double m_sinpsf
Sine of PSF-ROI centre distance.
const GCTAResponseIrf * m_rsp
CTA response.
GEnergy m_srcEng
True photon energy.
double m_zenith
Zenith angle.
const GCTAEdisp * edisp(void) const
Return pointer to energy dispersion.
double m_delta_mod
Distance of model from Psf.
double m_cos_delta_max
Cosine of maximum PSF radius.
const GCTAResponseIrf * m_rsp
CTA response.
Kernel for azimuth angle Nroi integration of elliptical model.
Integration class interface definition.
const GCTAResponseCube * m_rsp
CTA response.
double m_delta_max
Maximum PSF radius.
double m_omega0
Azimuth of pointing in model system.
const GSkyMap & cube(void) const
Get map cube.
GTime m_obsTime
Observed photon arrival time.
int m_iter
Integration iterations.
const GCTAObservation * m_obs
CTA observation.
Kernel for Nroi azimuth angle integration of diffuse model.
GEnergy m_srcEng
True photon energy.
double m_azimuth
Pointing azimuth angle.
double semimajor(void) const
Return semi-major axis of ellipse.
int m_iter
Integration iterations.
const GSkyDir & dir(void) const
Return photon sky direction.
Spatial map model class interface definition.
GTime m_srcTime
True photon arrival time.
GEnergy m_obsEng
Measured event energy.
GTime m_srcTime
True photon arrival time.
Kernel for Psf phi angle integration used for stacked analysis.
const GModelSpatial * m_model
Spatial model.
const GCTAResponseCube * m_rsp
CTA response.
Abstract world coordinate system base class definition.
int m_min_iter
Minimum number of Romberg iterations.
double m_semimajor
Ellipse boundary semimajor axis.
double m_omega_pnt
Azimuth of pointing in model system.
GEnergy m_obsEng
Measured event energy.
Mathematical function definitions.
double m_cos_psf
Cosine term for PSF offset angle computation.
Class that handles energies in a unit independent way.
Kernel for radial model azimuth angle integration.
double m_semiminor
Ellipse boundary semiminor axis.