Jpp 20.0.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JASTRONOMY::JResolutionLog Struct Reference

Implementation of detector resolution based on histogram filled according log10(alpha). More...

#include <JResolution.hh>

Inheritance diagram for JASTRONOMY::JResolutionLog:
JASTRONOMY::JResolutionTH1 JASTRONOMY::JResolution

Public Member Functions

JDirection3D get () const override
 Get direction.
 
virtual std::istream & read (std::istream &in) override
 Read detector resolution from input stream.
 
virtual std::ostream & write (std::ostream &out) const override
 Write detector resolution to output stream.
 

Public Attributes

std::string filename
 
std::string histname
 

Protected Member Functions

void load ()
 Load histogram from file.
 

Protected Attributes

TFile * in = NULL
 
TH1D * h1 = NULL
 

Detailed Description

Implementation of detector resolution based on histogram filled according log10(alpha).

Note that all input angles are in degrees.

Definition at line 321 of file JResolution.hh.

Member Function Documentation

◆ get()

JDirection3D JASTRONOMY::JResolutionLog::get ( ) const
inlineoverridevirtual

Get direction.

Returns
direction

Implements JASTRONOMY::JResolution.

Definition at line 329 of file JResolution.hh.

330 {
331 using namespace JPP;
332
333 JDirection3D u(0.0, 0.0, 1.0);
334
335 if (h1 != NULL) {
336
337 const double theta = getRadians(pow(10.0,h1->GetRandom(gRandom)));
338 const double phi = gRandom->Uniform(-PI, +PI);
339
340 const JRotation3D R(JAngle3D(theta, phi));
341
342 u.rotate_back(R);
343 }
344
345 return u;
346 }
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.
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

◆ read()

virtual std::istream & JASTRONOMY::JResolutionTH1::read ( std::istream & in)
inlineoverridevirtualinherited

Read detector resolution from input stream.

Parameters
ininput stream
Returns
input stream

Implements JASTRONOMY::JResolution.

Definition at line 241 of file JResolution.hh.

242 {
243 in >> this->filename
244 >> this->histname;
245
246 load();
247
248 return in;
249 }
void load()
Load histogram from file.

◆ write()

virtual std::ostream & JASTRONOMY::JResolutionTH1::write ( std::ostream & out) const
inlineoverridevirtualinherited

Write detector resolution to output stream.

Parameters
outoutput stream
Returns
output stream

Implements JASTRONOMY::JResolution.

Definition at line 258 of file JResolution.hh.

259 {
260 return out << this->filename << ' '
261 << this->histname;
262 }

◆ load()

void JASTRONOMY::JResolutionTH1::load ( )
inlineprotectedinherited

Load histogram from file.

Definition at line 297 of file JResolution.hh.

298 {
299 in = TFile::Open(filename.c_str(), "exist");
300
301 if (in == NULL || !in->IsOpen()) {
302 THROW(JFileOpenException, "File: " << filename << " not opened.");
303 }
304
305 h1 = dynamic_cast<TH1D*>(in->Get(histname.c_str()));
306
307 if (h1 == NULL) {
308 THROW(JValueOutOfRange, "Histogram: " << histname << " not found.");
309 }
310 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.

Member Data Documentation

◆ filename

std::string JASTRONOMY::JResolutionTH1::filename
inherited

Definition at line 290 of file JResolution.hh.

◆ histname

std::string JASTRONOMY::JResolutionTH1::histname
inherited

Definition at line 291 of file JResolution.hh.

◆ in

TFile* JASTRONOMY::JResolutionTH1::in = NULL
mutableprotectedinherited

Definition at line 312 of file JResolution.hh.

◆ h1

TH1D* JASTRONOMY::JResolutionTH1::h1 = NULL
mutableprotectedinherited

Definition at line 313 of file JResolution.hh.


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