1#ifndef __JASTRONOMY__JRESOLUTION__
2#define __JASTRONOMY__JRESOLUTION__
68 virtual std::istream&
read(std::istream& in) = 0;
77 virtual std::ostream&
write(std::ostream& out)
const = 0;
94 public JClonable<JResolution, JResolutionGauss>
102 virtual std::istream&
read(std::istream& in)
override
114 virtual std::ostream&
write(std::ostream& out)
const override
134 const double phi =
gRandom->Uniform(-PI, +PI);
154 public JClonable<JResolution, JResolutionTF1>
162 virtual std::istream&
read(std::istream& in)
override
166 if (buffer.ReadLine(in)) {
168 f1.reset(
new TF1(
"f1", buffer));
170 if (!
f1->IsValid()) {
185 virtual std::ostream&
write(std::ostream& out)
const override
188 return out <<
f1->GetExpFormula();
208 const double phi =
gRandom->Uniform(-PI, +PI);
219 std::shared_ptr<TF1>
f1;
228 public JClonable<JResolution, JResolutionTH1>
247 virtual std::istream&
read(std::istream&
in)
override
264 virtual std::ostream&
write(std::ostream& out)
const override
285 const double phi =
gRandom->Uniform(-PI, +PI);
344 const double phi =
gRandom->Uniform(-PI, +PI);
366 public std::map<std::string, resolution_type>
393 const_iterator p = this->find(key);
395 if (p != this->end()) {
397 object.reset(p->second->clone());
399 object->setTitle(key);
442 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.
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.
Template definition of a multi-dimensional oscillation probability interpolation table.
std::ostream & operator<<(std::ostream &out, const morphology_type &object)
Write morphology to output stream.
static const JResolutionHelper resolution_helper
Helper object for resolution I/O.
std::shared_ptr< JResolution > resolution_type
Type definition of generic resolution.
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 Gaussian detector resolution.
virtual std::istream & read(std::istream &in) override
Read detector resolution from input stream.
JDirection3D get() const override
Get direction.
virtual std::ostream & write(std::ostream &out) const override
Write detector resolution to output stream.
Helper data structure for detector resolution I/O.
JResolutionHelper()
Default constructor.
std::istream & operator()(std::istream &in, resolution_type &object) const
Parse detector resolution from input stream.
Implementation of detector resolution based on histogram filled according log10(alpha).
JDirection3D get() const override
Get direction.
Implementation of detector resolution based on a formula.
virtual std::istream & read(std::istream &in) override
Read detector resolution from input stream.
JDirection3D get() const override
Get direction.
std::shared_ptr< TF1 > f1
virtual std::ostream & write(std::ostream &out) const override
Write detector resolution to output stream.
Implementation of detector resolution based on histogram.
virtual std::istream & read(std::istream &in) override
Read detector resolution from input stream.
virtual ~JResolutionTH1()
Virtual destructor.
void load()
Load histogram from file.
JDirection3D get() const override
Get direction.
virtual std::ostream & write(std::ostream &out) const override
Write detector resolution to output stream.
Interface for detector resolution simulation.
virtual JDirection3D get() const =0
Get direction.
virtual ~JResolution()
Virtual destructor.
virtual std::istream & read(std::istream &in)=0
Read detector resolution from input stream.
virtual std::ostream & write(std::ostream &out) const =0
Write detector resolution to output stream.
Template class for object cloning.