Jpp test-rotations-old-533-g2bdbdb559
the software that should make you happy
Loading...
Searching...
No Matches
JASTRONOMY::JResolutionTH1 Struct Reference

Implementation of detector resolution based on histogram. More...

#include <JResolution.hh>

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

Public Member Functions

virtual ~JResolutionTH1 ()
 Virtual destructor.
 
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.
 
JDirection3D get () const override
 Get direction.
 

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.

Note that all input angles are in degrees.

Definition at line 223 of file JResolution.hh.

Constructor & Destructor Documentation

◆ ~JResolutionTH1()

virtual JASTRONOMY::JResolutionTH1::~JResolutionTH1 ( )
inlinevirtual

Virtual destructor.

Definition at line 229 of file JResolution.hh.

230 {
231 if (in != NULL) {
232 in->Close();
233 }
234 }

Member Function Documentation

◆ read()

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

Read detector resolution from input stream.

Parameters
ininput stream
Returns
input stream

Implements JASTRONOMY::JResolution.

Definition at line 243 of file JResolution.hh.

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

◆ write()

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

Write detector resolution to output stream.

Parameters
outoutput stream
Returns
output stream

Implements JASTRONOMY::JResolution.

Definition at line 260 of file JResolution.hh.

261 {
262 return out << this->filename << ' '
263 << this->histname;
264 }

◆ get()

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

Get direction.

Returns
direction

Implements JASTRONOMY::JResolution.

Definition at line 272 of file JResolution.hh.

273 {
274 using namespace JPP;
275
276 JDirection3D u(0.0, 0.0, 1.0);
277
278 if (h1 != NULL) {
279
280 const double theta = getRadians(h1->GetRandom(gRandom));
281 const double phi = gRandom->Uniform(-PI, +PI);
282
283 const JRotation3D R(JAngle3D(theta, phi));
284
285 u.rotate_back(R);
286 }
287
288 return u;
289 }
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.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

◆ load()

void JASTRONOMY::JResolutionTH1::load ( )
inlineprotected

Load histogram from file.

Definition at line 299 of file JResolution.hh.

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

Member Data Documentation

◆ filename

std::string JASTRONOMY::JResolutionTH1::filename

Definition at line 292 of file JResolution.hh.

◆ histname

std::string JASTRONOMY::JResolutionTH1::histname

Definition at line 293 of file JResolution.hh.

◆ in

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

Definition at line 314 of file JResolution.hh.

◆ h1

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

Definition at line 315 of file JResolution.hh.


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