Jpp  18.5.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | List of all members
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_t
JPDF_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. More...
 
result_type calculate (const double E, const double R, const double theta, const double phi, const double t1) const
 Get PDF. More...
 

Public Attributes

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

Detailed Description

Auxiliary data structure for muon PDF.

Definition at line 135 of file JPDF_t.hh.

Member Typedef Documentation

Definition at line 139 of file JPDF_t.hh.

Definition at line 143 of file JPDF_t.hh.

Definition at line 144 of file JPDF_t.hh.

Definition at line 145 of file JPDF_t.hh.

Constructor & Destructor Documentation

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,
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 
210 
211  cout << "OK" << endl;
212 
213  } else if (TTS < 0.0) {
214 
215  THROW(JValueOutOfRange, "Illegal value of TTS [ns]: " << TTS);
216  }
217  }
JPP::JPDFTable< JFunction1D_t, JPDFMaplist_t > JPDF_t
Definition: JPDF_t.hh:144
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
direct light from EM showers
Definition: JPDFTypes.hh:29
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
static const JZero zero
Function object to assign zero value.
Definition: JZero.hh:105
direct light from muon
Definition: JPDFTypes.hh:26
scattered light from muon
Definition: JPDFTypes.hh:27
JPDF_t pdfB
PDF for average energy losses.
Definition: JPDF_t.hh:260
void add(const JMultiFunction_t &input)
Add function.
scattered light from delta-rays
Definition: JPDFTypes.hh:33
scattered light from EM showers
Definition: JPDFTypes.hh:30
JPDFType_t
PDF types.
Definition: JPDFTypes.hh:24
JPDF_t pdfC
PDF for delta-rays.
Definition: JPDF_t.hh:261
direct light from delta-rays
Definition: JPDFTypes.hh:32
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
int numberOfPoints
Definition: JResultPDF.cc:22
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
Definition: JeepToolkit.hh:128
JPDF_t pdfA
PDF for minimum ionising particle.
Definition: JPDF_t.hh:259
const double epsilon
Definition: JQuadrature.cc:21

Member Function Documentation

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  }
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
JFunction1D_t::result_type result_type
Definition: JPDF_t.hh:145
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
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
double getDeltaRaysFromMuon(const double E)
Equivalent EM-shower energy due to delta-rays per unit muon track length.
Definition: JPDFToolkit.hh:67
JPDF_t pdfA
PDF for minimum ionising particle.
Definition: JPDF_t.hh:259

Member Data Documentation

JPDF_t JMuonPDF_t::pdfA

PDF for minimum ionising particle.

Definition at line 259 of file JPDF_t.hh.

JPDF_t JMuonPDF_t::pdfB

PDF for average energy losses.

Definition at line 260 of file JPDF_t.hh.

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: