1#ifndef __JASTRONOMY__JRESOLUTION__
2#define __JASTRONOMY__JRESOLUTION__
62 virtual std::istream&
read(std::istream& in) = 0;
71 virtual std::ostream&
write(std::ostream& out)
const = 0;
96 virtual std::istream&
read(std::istream& in)
override
108 virtual std::ostream&
write(std::ostream& out)
const override
128 const double phi = gRandom->Uniform(-PI, +PI);
156 virtual std::istream&
read(std::istream& in)
override
160 if (buffer.ReadLine(in)) {
162 f1.reset(
new TF1(
"f1", buffer));
164 if (!
f1->IsValid()) {
179 virtual std::ostream&
write(std::ostream& out)
const override
182 return out <<
f1->GetExpFormula();
201 const double theta =
getRadians(
f1->GetRandom(gRandom));
202 const double phi = gRandom->Uniform(-PI, +PI);
213 std::shared_ptr<TF1>
f1;
241 virtual std::istream&
read(std::istream&
in)
override
258 virtual std::ostream&
write(std::ostream& out)
const override
278 const double theta =
getRadians(
h1->GetRandom(gRandom));
279 const double phi = gRandom->Uniform(-PI, +PI);
301 if (
in == NULL || !
in->IsOpen()) {
312 mutable TFile*
in = NULL;
313 mutable TH1D*
h1 = NULL;
337 const double theta =
getRadians(pow(10.0,
h1->GetRandom(gRandom)));
338 const double phi = gRandom->Uniform(-PI, +PI);
355 public std::shared_ptr<JResolution>
386 static_cast<std::shared_ptr<JResolution>&
>(object) =
object.
dictionary[key];
388 object.setTitle(key);
411 out <<
object.getTitle() <<
' ';
413 if (
static_cast<const std::shared_ptr<JResolution>&
>(
object)) {
#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.
double getRadians(const double angle)
Convert angle to radians.
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.
Implementation of detector resolution based on histogram filled according <tt>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.
Helper for detector resolution.
friend std::ostream & operator<<(std::ostream &out, const JResolution_t &object)
Write detector resolution to output stream.
JResolution_t()
Default constructor.
friend std::istream & operator>>(std::istream &in, JResolution_t &object)
Read detector resolution from input stream.
std::map< std::string, std::shared_ptr< JResolution > > dictionary
Inteface 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.