Jpp 20.0.0-rc.9-4-g539b3ce77
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 JLANG::JClonable< JClonable_t, JDerived_t >

Public Types

typedef JClonable< JClonable_t >::clone_type clone_type
 

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.
 
virtual clone_type clone () const override
 Get clone of this object.
 

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 327 of file JResolution.hh.

Member Typedef Documentation

◆ clone_type

template<class JClonable_t , class JDerived_t >
JClonable<JClonable_t>::clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone_type
inherited

Definition at line 61 of file JClonable.hh.

Member Function Documentation

◆ get()

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

Get direction.

Returns
direction

Definition at line 335 of file JResolution.hh.

336 {
337 using namespace JPP;
338
339 JDirection3D u(0.0, 0.0, 1.0);
340
341 if (h1 != NULL) {
342
343 const double theta = getRadians(pow(10.0,h1->GetRandom(gRandom)));
344 const double phi = gRandom->Uniform(-PI, +PI);
345
346 const JRotation3D R(JAngle3D(theta, phi));
347
348 u.rotate_back(R);
349 }
350
351 return u;
352 }
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

Definition at line 247 of file JResolution.hh.

248 {
249 in >> this->filename
250 >> this->histname;
251
252 load();
253
254 return in;
255 }
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

Definition at line 264 of file JResolution.hh.

265 {
266 return out << this->filename << ' '
267 << this->histname;
268 }

◆ load()

void JASTRONOMY::JResolutionTH1::load ( )
inlineprotectedinherited

Load histogram from file.

Definition at line 303 of file JResolution.hh.

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

◆ clone()

template<class JClonable_t , class JDerived_t >
virtual clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone ( ) const
inlineoverridevirtualinherited

Member Data Documentation

◆ filename

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

Definition at line 296 of file JResolution.hh.

◆ histname

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

Definition at line 297 of file JResolution.hh.

◆ in

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

Definition at line 318 of file JResolution.hh.

◆ h1

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

Definition at line 319 of file JResolution.hh.


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