1#ifndef __JASTRONOMY__JMORPHOLOGY__
2#define __JASTRONOMY__JMORPHOLOGY__
97 virtual std::istream&
read(std::istream& in) = 0;
106 virtual std::ostream&
write(std::ostream& out)
const = 0;
123 public JClonable<JMorphology, JMorphologyPoint>
131 virtual std::istream&
read(std::istream& in)
override
143 virtual std::ostream&
write(std::ostream& out)
const override
174 public JClonable<JMorphology, JMorphologyGauss>
182 virtual std::istream&
read(std::istream& in)
override
195 virtual std::ostream&
write(std::ostream& out)
const override
216 const double phi = gRandom->Uniform(-PI, +PI);
240 public JClonable<JMorphology, JMorphologyGauss2D>
248 virtual std::istream&
read(std::istream& in)
override
261 virtual std::ostream&
write(std::ostream& out)
const override
306 public JClonable<JMorphology, JMorphologyBinary>
314 virtual std::istream&
read(std::istream& in)
override
328 virtual std::ostream&
write(std::ostream& out)
const override
345 const double w = gRandom->Uniform(0.0,
w1 +
w2);
357 const double theta = gRandom->Gaus(0.0, s);
358 const double phi = gRandom->Uniform(-PI, +PI);
388 public JClonable<JMorphology, JMorphologyHistogram>
407 virtual std::istream&
read(std::istream&
in)
override
425 virtual std::ostream&
write(std::ostream& out)
const override
445 h2->GetRandom2(x, y, gRandom);
470 if (
in == NULL || !
in->IsOpen()) {
481 mutable TFile*
in = NULL;
482 mutable TH2D*
h2 = NULL;
496 public std::map<std::string, morphology_type>
524 const_iterator p = this->find(key);
526 if (p != this->end()) {
528 object.reset(p->second->clone());
530 object->setTitle(key);
573 out <<
object->getTitle() <<
' ';
Interface methods for SLALIB and auxiliary classes and methods for astronomy.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Data structure for angles in three dimensions.
Data structure for direction in three dimensions.
JDirection3D & rotate_back(const JRotation3D &R)
Rotate back.
Exception for opening of file.
Exception for parsing value.
Auxiliary class for title.
Exception for accessing a value in a collection that is outside of its range.
static const JMorphologyHelper morphology_helper
Helper object for morphology I/O.
std::shared_ptr< JMorphology > morphology_type
Type definition of generic morphology.
std::ostream & operator<<(std::ostream &out, const morphology_type &object)
Write morphology to output stream.
double getRadians(const double angle)
Convert angle to radians.
std::istream & operator>>(std::istream &in, morphology_type &object)
Read morphology from input stream.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Implementation of binary source morphology.
virtual std::ostream & write(std::ostream &out) const override
Write source morphology to output stream.
virtual JSourceLocation get() const override
Get location on sky.
virtual std::istream & read(std::istream &in) override
Read source morphology from input stream.
Implementation of 2D-Gaussian source morphology.
virtual JSourceLocation get() const override
Get location on sky.
virtual std::ostream & write(std::ostream &out) const override
Write source morphology to output stream.
virtual std::istream & read(std::istream &in) override
Read source morphology from input stream.
Implementation of Gaussian source morphology.
virtual std::ostream & write(std::ostream &out) const override
Write source morphology to output stream.
virtual std::istream & read(std::istream &in) override
Read source morphology from input stream.
virtual JSourceLocation get() const override
Get location on sky.
Helper data structure for source morphology I/O.
JMorphologyHelper()
Default constructor.
std::istream & operator()(std::istream &in, morphology_type &object) const
Parse source morphology from input stream.
Implementation of histogram source morphology.
virtual std::istream & read(std::istream &in) override
Read source morphology from input stream.
virtual JSourceLocation get() const override
Get location on sky.
virtual ~JMorphologyHistogram()
Virtual destructor.
virtual std::ostream & write(std::ostream &out) const override
Write source morphology to output stream.
void load()
Load histogram from file.
Implementation of point source morphology.
virtual std::ostream & write(std::ostream &out) const override
Write source morphology to output stream.
virtual std::istream & read(std::istream &in) override
Read source morphology from input stream.
virtual JSourceLocation get() const override
Get location on sky.
Interface for source morphology simulation.
static std::istream & read(std::istream &in, JSourceLocation &source)
Read source location in degrees from input stream.
virtual std::ostream & write(std::ostream &out) const =0
Write source morphology to output stream.
virtual std::istream & read(std::istream &in)=0
Read source morphology from input stream.
static std::ostream & write(std::ostream &out, const JSourceLocation &source)
Write source location in degrees to output stream.
virtual ~JMorphology()
Virtual destructor.
virtual JSourceLocation get() const =0
Get location on sky.
Location of astrophysical source.
Auxiliary data structure for pair of angles.
void set(const angle_type_deg &angle)
Convert angle.
friend struct angle_type_deg
Template class for object cloning.