Jpp issue-621
the software that should make you happy
Loading...
Searching...
No Matches
JASTRONOMY::JMorphologyGauss Struct Reference

Implementation of Gaussian source morphology. More...

#include <JMorphology.hh>

Inheritance diagram for JASTRONOMY::JMorphologyGauss:
JASTRONOMY::JMorphology JASTRONOMY::JSourceLocation JASTRONOMY::angle_type_rad JASTRONOMY::angle_type JLANG::JEquals< JFirst_t, JSecond_t >

Public Member Functions

virtual std::istream & read (std::istream &in) override
 Read source morphology from input stream.
 
virtual std::ostream & write (std::ostream &out) const override
 Write source morphology to output stream.
 
virtual JSourceLocation get () const override
 Get location on sky.
 
const JSourceLocation & getSourceLocation () const
 Get source location.
 
 operator JAngle3D () const
 Type conversion operator.
 
double getDeclination () const
 Get declination.
 
double getRightAscension () const
 Get right ascension.
 
double getDot (const JSourceLocation &location) const
 Dot product.
 
void set (const angle_type_deg &angle)
 Convert angle.
 
bool equals (const angle_type &angle, const double precision=std::numeric_limits< double >::min()) const
 Check equality.
 

Static Public Member Functions

static std::istream & read (std::istream &in, JSourceLocation &source)
 Read source location in degrees from input stream.
 
static std::ostream & write (std::ostream &out, const JSourceLocation &source)
 Write source location in degrees to output stream.
 

Public Attributes

double sigma_deg
 

Protected Attributes

double _theta_
 
double _phi_
 

Detailed Description

Implementation of Gaussian source morphology.

Note that all input angles are in degrees.

Definition at line 167 of file JMorphology.hh.

Member Function Documentation

◆ read() [1/2]

virtual std::istream & JASTRONOMY::JMorphologyGauss::read ( std::istream & in)
inlineoverridevirtual

Read source morphology from input stream.

Parameters
ininput stream
Returns
input stream

Implements JASTRONOMY::JMorphology.

Definition at line 176 of file JMorphology.hh.

177 {
178 return JMorphology::read(in, *this)
179 >> this->sigma_deg;
180 }
static std::istream & read(std::istream &in, JSourceLocation &source)
Read source location in degrees from input stream.

◆ write() [1/2]

virtual std::ostream & JASTRONOMY::JMorphologyGauss::write ( std::ostream & out) const
inlineoverridevirtual

Write source morphology to output stream.

Parameters
outoutput stream
Returns
output stream

Implements JASTRONOMY::JMorphology.

Definition at line 189 of file JMorphology.hh.

190 {
191 return JMorphology::write(out, *this)
192 << ' ' << this->sigma_deg;
193 }
static std::ostream & write(std::ostream &out, const JSourceLocation &source)
Write source location in degrees to output stream.

◆ get()

virtual JSourceLocation JASTRONOMY::JMorphologyGauss::get ( ) const
inlineoverridevirtual

Get location on sky.

Returns
location on sky

Implements JASTRONOMY::JMorphology.

Definition at line 201 of file JMorphology.hh.

202 {
203 using namespace JPP;
204
205 JDirection3D u(0.0, 0.0, 1.0);
206
207 if (sigma_deg > 0.0) {
208
209 const double theta = gRandom->Gaus(0.0, getRadians(sigma_deg));
210 const double phi = gRandom->Uniform(-PI, +PI);
211
212 const JRotation3D R(JAngle3D(theta, phi));
213
214 u.rotate_back(R);
215 }
216
217 const JRotation3D Rs(this->getSourceLocation());
218
219 u.rotate_back(Rs);
220
221 return JSourceLocation(u);
222 }
Data structure for angles in three dimensions.
Definition JAngle3D.hh:35
Data structure for direction in three dimensions.
double getRadians(const double angle)
Convert angle to radians.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
const JSourceLocation & getSourceLocation() const
Get source location.
JSourceLocation()
Default constructor.

◆ read() [2/2]

static std::istream & JASTRONOMY::JMorphology::read ( std::istream & in,
JSourceLocation & source )
inlinestaticinherited

Read source location in degrees from input stream.

Parameters
ininput stream
sourcesource
Returns
input stream

Definition at line 60 of file JMorphology.hh.

61 {
62 angle_type_deg angle;
63
64 in >> angle;
65
66 source.set(angle);
67
68 return in;
69 }

◆ write() [2/2]

static std::ostream & JASTRONOMY::JMorphology::write ( std::ostream & out,
const JSourceLocation & source )
inlinestaticinherited

Write source location in degrees to output stream.

Parameters
outoutput stream
sourcesource
Returns
output stream

Definition at line 79 of file JMorphology.hh.

80 {
81 return out << angle_type_deg(source);
82 }

◆ getSourceLocation()

const JSourceLocation & JASTRONOMY::JSourceLocation::getSourceLocation ( ) const
inlineinherited

Get source location.

Returns
source location

Definition at line 485 of file JAstronomy.hh.

486 {
487 return static_cast<const JSourceLocation&>(*this);
488 }

◆ operator JAngle3D()

JASTRONOMY::JSourceLocation::operator JAngle3D ( ) const
inlineinherited

Type conversion operator.

Returns
polar angles [rad]

Definition at line 496 of file JAstronomy.hh.

497 {
498 return JAngle3D(PI/2 - _theta_, _phi_);
499 }

◆ getDeclination()

double JASTRONOMY::JSourceLocation::getDeclination ( ) const
inlineinherited

Get declination.

Definition at line 502 of file JAstronomy.hh.

◆ getRightAscension()

double JASTRONOMY::JSourceLocation::getRightAscension ( ) const
inlineinherited

Get right ascension.

Definition at line 503 of file JAstronomy.hh.

◆ getDot()

double JASTRONOMY::JSourceLocation::getDot ( const JSourceLocation & location) const
inlineinherited

Dot product.

Parameters
locationsource location
Returns
dot product

Definition at line 512 of file JAstronomy.hh.

513 {
514 return
515 cos(this->_theta_) * cos(location._theta_) * cos(this->_phi_ - location._phi_) +
516 sin(this->_theta_) * sin(location._theta_);
517 }

◆ set()

void JASTRONOMY::angle_type_rad::set ( const angle_type_deg & angle)
inlineinherited

Convert angle.

Parameters
angleangle [rad]

Definition at line 293 of file JAstronomy.hh.

294 {
295 static_cast<angle_type_rad&>(*this) = angle_type_rad(angle);
296 }
angle_type_rad()
Default constructor.

◆ equals()

bool JASTRONOMY::angle_type::equals ( const angle_type & angle,
const double precision = std::numeric_limits<double>::min() ) const
inlineinherited

Check equality.

Parameters
anglepair of angles
precisionprecision
Returns
true if angles are equal; else false

Definition at line 194 of file JAstronomy.hh.

196 {
197 return (fabs(this->_theta_ - angle._theta_) <= precision &&
198 fabs(this->_phi_ - angle._phi_) <= precision);
199 }

Member Data Documentation

◆ sigma_deg

double JASTRONOMY::JMorphologyGauss::sigma_deg

Definition at line 225 of file JMorphology.hh.

◆ _theta_

double JASTRONOMY::angle_type::_theta_
protectedinherited

Definition at line 250 of file JAstronomy.hh.

◆ _phi_

double JASTRONOMY::angle_type::_phi_
protectedinherited

Definition at line 251 of file JAstronomy.hh.


The documentation for this struct was generated from the following file: