Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JMuonPDF_t Struct Reference

Auxiliary data structure for muon PDF. More...

#include <JPDF_t.hh>

Public Types

typedef JPP::JSplineFunction1D< JPP::JSplineElement2S< double, double >, JPP::JCollection, JPP::JResultPDF< double > > JFunction1D_t
 
typedef JPP::JMAPLIST< JPP::JPolint1FunctionalMap, JPP::JPolint0FunctionalGridMap, JPP::JPolint0FunctionalGridMap >::maplist JPDFMaplist_t
 
typedef JPP::JPDFTable< JFunction1D_t, JPDFMaplist_tJPDF_t
 
typedef JFunction1D_t::result_type result_type
 

Public Member Functions

 JMuonPDF_t (const std::string &fileDescriptor, const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10)
 Constructor.
 
result_type calculate (const double E, const double R, const double theta, const double phi, const double t1) const
 Get PDF.
 

Public Attributes

JPDF_t pdfA
 PDF for minimum ionising particle.
 
JPDF_t pdfB
 PDF for average energy losses.
 
JPDF_t pdfC
 PDF for delta-rays.
 

Detailed Description

Auxiliary data structure for muon PDF.

Definition at line 135 of file JPDF_t.hh.

Member Typedef Documentation

◆ JFunction1D_t

◆ JPDFMaplist_t

◆ JPDF_t

◆ result_type

Constructor & Destructor Documentation

◆ JMuonPDF_t()

JMuonPDF_t::JMuonPDF_t ( const std::string & fileDescriptor,
const double TTS,
const int numberOfPoints = 25,
const double epsilon = 1.0e-10 )
inline

Constructor.

The PDF file descriptor should contain the wild card character JPHYSICS::WILDCARD.
The TTS corresponds to the additional time smearing applied to the PDFs.

Parameters
fileDescriptorPDF file descriptor
TTSTTS [ns]
numberOfPointsnumber of points for Gauss-Hermite integration of TTS
epsilonprecision for Gauss-Hermite integration of TTS

Definition at line 159 of file JPDF_t.hh.

163 {
164 using namespace std;
165 using namespace JPP;
166
167 const JPDFType_t pdf_t[] = { DIRECT_LIGHT_FROM_MUON,
168 SCATTERED_LIGHT_FROM_MUON,
169 DIRECT_LIGHT_FROM_EMSHOWERS,
170 SCATTERED_LIGHT_FROM_EMSHOWERS,
171 DIRECT_LIGHT_FROM_DELTARAYS,
172 SCATTERED_LIGHT_FROM_DELTARAYS };
173
174 const int N = sizeof(pdf_t) / sizeof(pdf_t[0]);
175
176 JPDF_t pdf[N];
177
178 const JPDF_t::JSupervisor supervisor(new JPDF_t::JDefaultResult(zero));
179
180 for (int i = 0; i != N; ++i) {
181
182 const string file_name = getFilename(fileDescriptor, pdf_t[i]);
183
184 cout << "loading input from file " << file_name << "... " << flush;
185
186 pdf[i].load(file_name.c_str());
187
188 pdf[i].setExceptionHandler(supervisor);
189
190 cout << "OK" << endl;
191 }
192
193 // Add PDFs
194
195 cout << "adding PDFs... " << flush;
196
197 pdfA = pdf[1]; pdfA.add(pdf[0]);
198 pdfB = pdf[3]; pdfB.add(pdf[2]);
199 pdfC = pdf[5]; pdfC.add(pdf[4]);
200
201 cout << "OK" << endl;
202
203 if (TTS > 0.0) {
204
205 cout << "bluring PDFs... " << flush;
206
207 pdfA.blur(TTS, numberOfPoints, epsilon);
208 pdfB.blur(TTS, numberOfPoints, epsilon);
209 pdfC.blur(TTS, numberOfPoints, epsilon);
210
211 cout << "OK" << endl;
212
213 } else if (TTS < 0.0) {
214
215 THROW(JValueOutOfRange, "Illegal value of TTS [ns]: " << TTS);
216 }
217 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
int numberOfPoints
Definition JResultPDF.cc:22
Exception for accessing a value in a collection that is outside of its range.
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
Definition JPDFTable.hh:111
void add(const JMultiFunction_t &input)
Add function.
JPDFType_t
PDF types.
Definition JPDFTypes.hh:24
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JPP::JPDFTable< JFunction1D_t, JPDFMaplist_t > JPDF_t
Definition JPDF_t.hh:144
JPDF_t pdfB
PDF for average energy losses.
Definition JPDF_t.hh:260
JPDF_t pdfC
PDF for delta-rays.
Definition JPDF_t.hh:261
JPDF_t pdfA
PDF for minimum ionising particle.
Definition JPDF_t.hh:259

Member Function Documentation

◆ calculate()

result_type JMuonPDF_t::calculate ( const double E,
const double R,
const double theta,
const double phi,
const double t1 ) const
inline

Get PDF.

The orientation of the PMT should be defined according this documentation.
In this, the zenith and azimuth angles are limited to

\[\left[0, \pi\right]\]

.

Parameters
Emuon energy at minimum distance of approach [GeV]
Rminimum distance of approach [m]
thetaPMT zenith angle [rad]
phiPMT azimuth angle [rad]
t1arrival time relative to Cherenkov hypothesis [ns]
Returns
hypothesis value

Definition at line 233 of file JPDF_t.hh.

238 {
239 using namespace JPP;
240
241 result_type h1 = (pdfA(R, theta, phi, t1) +
242 pdfB(R, theta, phi, t1) * E +
243 pdfC(R, theta, phi, t1) * getDeltaRaysFromMuon(E));
244
245 // safety measures
246
247 if (h1.f <= 0.0) {
248 h1.f = 0.0;
249 h1.fp = 0.0;
250 }
251
252 if (h1.v <= 0.0) {
253 h1.v = 0.0;
254 }
255
256 return h1;
257 }
double getDeltaRaysFromMuon(const double E, const JRange< double > T_GeV=JRange< double >(DELTARAY_TMIN, DELTARAY_TMAX))
Equivalent EM-shower energy due to delta-rays per unit muon track length.
JFunction1D_t::result_type result_type
Definition JPDF_t.hh:145

Member Data Documentation

◆ pdfA

JPDF_t JMuonPDF_t::pdfA

PDF for minimum ionising particle.

Definition at line 259 of file JPDF_t.hh.

◆ pdfB

JPDF_t JMuonPDF_t::pdfB

PDF for average energy losses.

Definition at line 260 of file JPDF_t.hh.

◆ pdfC

JPDF_t JMuonPDF_t::pdfC

PDF for delta-rays.

Definition at line 261 of file JPDF_t.hh.


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