ppc C++ API Reference

struct aniz

Public Members

float k1
float k2
float ra
float rb
cl_float k1
cl_float k2
cl_float ra
cl_float rb
struct aniz

Public Members

cl_float k1
cl_float k2
cl_float ra
cl_float rb
struct asens

Public Functions

inline asens()
inline float f(float x, float z = NAN)
inline float f(const xppc::pout &p, const xppc::ikey &om, int n = -1, int m = -1)

Public Members

bool flag
float mas
float s[ANUM]
vector<V<3>> ds
map<xppc::ikey, V<3>> cx
vector<float> cs
map<xppc::ikey, float> dx
struct cable

Public Functions

inline cable()
inline bool cyl(const float h[], const float r[], float ph)
inline bool cab(const float h[], const float r[], float ph)
inline double cab(double *X, double *D)

Public Members

double nr
double cs
double sn
double rn
double rc
double dc
double nx
double ny
double nz
double rx
double ry
double rz
double xx
bool cylr
struct cascade : public xyz, public dir

Public Functions

inline cascade()
inline bool ini()
inline double gaus()
inline void move(double dr = dR, double da = dA, double di = dI)
void unfold(double[], double[], vector<pair<xkey, hit>>[], int)
void unfold_t(double[], double[], vector<pair<xkey, hit>>[], int, double&)
void runc(map<xkey, vector<hix>>&)
void runf(map<xkey, vector<hix>>&)
void ffit()
double optte(double&, double&)
void ppc(vector<pair<xkey, hix>>*)
void end()
double llh(vector<pair<xkey, hix>>*, bool, bool)
void printout(vector<pair<xkey, hix>>[], int)
void refine(const multimap<double, cascade>&, int)

Public Members

double e
double t
double s
double a
vector<double> unfE
struct dat

Public Functions

inline bool isok(double t)
inline void prep(double t0)
inline void pfill()
inline void fill(double dt)
inline double llh(double dt, double nsim)
inline void clear()
inline double G(double L, double D)
inline void optimize()
inline void join()
inline void bins()
inline bool in()
inline bool good()

Public Members

double r[3]
xkey dom
double t0
vector<pair<double, double>> ert
vector<hit> draw
vector<hit> sraw
vector<hit> praw
double dbin[num]
double sbin[num]
double dtot
double stot
double qtot
int n1
int n2
int ntop
double *dtop
double *stop
double opt[num]
int lastchange[num]
double dat[num]
double sim[num]
int fnum

Public Static Functions

static inline double llf(double s, double d, double nsim, double ndat, double sig = LSSL::SIG)
struct dats

Public Members

unsigned int hidx
unsigned int tn
unsigned int tx
unsigned int ab
unsigned int mp
short bmp[4]
short blockIdx
short gridDim
unsigned int gdev
unsigned int gnum
unsigned int gini
unsigned int gspc
unsigned int gtot
unsigned int gdiv
float rx
float hifl
unsigned int hnum
int size
int rsize
int gsize
short tmod
short vthk
float dh
float rdh
float hmin
float ocv
float sf
float g
float gr
float xR
float SF
float G
float GR
float hr
float hr2
float hs
float ha
float azx
float azy
int cn[2]
float cl[2]
float crst[2]
float cb[2][2]
int lnum
int lpts
int l0
float lmin
float lrdz
float r0
float lnx
float lny
float lr[LMAX]
float mmin[2]
float mstp[2]
int mnum[2]
int mcut[2]
float k1
float k2
float kz
float fr
aniz az[MAXLYS]
unsigned short ls[NSTR]
unsigned short is[CX][CY]
char mcol[CTX][CTY]
float sum
float bfr[12]
line sc[NSTR]
datz *z
hit *hits
photon *pz
pbuf *bf
DOM *oms
cl_uint hidx
cl_uint ab
cl_uint gdev
cl_uint gnum
cl_uint gini
cl_uint gspc
cl_uint gtot
cl_uint gdiv
cl_float rx
cl_float hifl
cl_uint hnum
cl_int size
cl_int rsize
cl_int gsize
cl_short tmod
cl_short vthk
cl_float dh
cl_float rdh
cl_float hmin
cl_float ocv
cl_float sf
cl_float g
cl_float gr
cl_float xR
cl_float SF
cl_float G
cl_float GR
cl_float hr
cl_float hr2
cl_float hs
cl_float ha
cl_float azx
cl_float azy
cl_int cn[2]
cl_float cl[2]
cl_float crst[2]
cl_float cb[2][2]
cl_int lnum
cl_int lpts
cl_int l0
cl_float lmin
cl_float lrdz
cl_float r0
cl_float lnx
cl_float lny
cl_float lr[LMAX]
cl_float mmin[2]
cl_float mstp[2]
cl_int mnum[2]
cl_int mcut[2]
cl_float k1
cl_float k2
cl_float kz
cl_float fr
cl_ushort ls[NSTR]
cl_ushort is[CX][CY]
cl_char mcol[CTX][CTY]
cl_float sum
cl_float bfr[12]
struct dats

Public Members

cl_uint hidx
cl_uint ab
cl_uint gdev
cl_uint gnum
cl_uint gini
cl_uint gspc
cl_uint gtot
cl_uint gdiv
cl_float rx
cl_float hifl
cl_uint hnum
cl_int size
cl_int rsize
cl_int gsize
cl_short tmod
cl_short vthk
cl_float dh
cl_float rdh
cl_float hmin
cl_float ocv
cl_float sf
cl_float g
cl_float gr
cl_float xR
cl_float SF
cl_float G
cl_float GR
cl_float hr
cl_float hr2
cl_float hs
cl_float ha
cl_float azx
cl_float azy
cl_int cn[2]
cl_float cl[2]
cl_float crst[2]
cl_float cb[2][2]
cl_int lnum
cl_int lpts
cl_int l0
cl_float lmin
cl_float lrdz
cl_float r0
cl_float lnx
cl_float lny
cl_float lr[LMAX]
cl_float mmin[2]
cl_float mstp[2]
cl_int mnum[2]
cl_int mcut[2]
cl_float k1
cl_float k2
cl_float kz
cl_float fr
aniz az[MAXLYS]
cl_ushort ls[NSTR]
cl_ushort is[CX][CY]
cl_char mcol[CTX][CTY]
cl_float sum
cl_float bfr[12]
line sc[NSTR]
struct datz

Public Members

ices w[WNUM]
float2 lp[LMAX][LYRS]
unsigned int rm[MAXRND]
unsigned long long rs[MAXRND]
cl_float2 lp[LMAX][LYRS]
cl_uint rm[MAXRND]
cl_ulong rs[MAXRND]
struct datz

Public Members

ices w[WNUM]
cl_float2 lp[LMAX][LYRS]
cl_uint rm[MAXRND]
cl_ulong rs[MAXRND]
struct dir

Subclassed by cascade, vert

Public Functions

inline dir()
inline dir(const double n[])
inline bool operator<(const dir &rhs) const
inline dir()
inline void normalize()
inline double xvmf(double da)
inline void setn()
inline void seta()
inline void setp()
inline void setu()
inline void rotate(double z)

Public Members

double n[3]
double th
double ph
double p1[3]
double p2[3]
double u[3]
struct DOM

Subclassed by OM, OM

Public Members

float R
float F
float r[3]
cl_float R
cl_float F
cl_float r[3]
struct DOM
#include <ppc.h>

Subclassed by xppc::OM, xppc::OM, xppc::OM

Public Members

float R
float F
float r[3]
cl_float R
cl_float F
cl_float r[3]
struct doms

Public Members

DOM oms[MAXGEO]
name names[MAXGEO]
float wvs[WNUM]
hit *hits
photon *pz
pbuf *bf
float eff
cl_float eff
struct doms

Public Members

DOM oms[MAXGEO]
name names[MAXGEO]
float wvs[WNUM]
hit *hits
photon *pz
pbuf *bf
cl_float eff
struct face

Public Functions

inline face(const dir &x, const dir &y, const dir &z)
inline void half(dir h[])

Public Members

dir v[3]
class framedata

Public Functions

inline framedata()
inline bool empty()

Public Members

I3MCPESeriesMapPtr hits
std::map<std::pair<int, int>, std::vector<I3Photon>> photuns
std::map<std::pair<int, unsigned long long>, std::vector<I3Particle>> photons
struct gpu

Public Functions

inline string &replace(string &in, string old, string str)
inline gpu(int device)
inline void ini()
inline void fin()
inline void set()
inline void my_wait()
inline void kernel_i()
inline void kernel_c()
inline void kernel_f()
inline void stop()
inline void ini_f(unsigned int &c, unsigned int t, unsigned int div = 1)

Public Members

dats d
int device
int mult
cl_uint nblk
size_t nthr
size_t ntot
unsigned int npho
unsigned int pmax
unsigned int pmxo
unsigned int old
unsigned int num
float deviceTime
cl_event event
cl_platform_id pfID
cl_device_id devID
cl_context ctx
cl_command_queue cq
cl_program program
cl_kernel clkernel
cl_mem ed
cl_mem ez
cl_mem eh
cl_mem ep
cl_mem bf
cl_mem eo
struct hit

Subclassed by hix

Public Functions

inline hit()
inline hit(float t, float q)

Public Members

unsigned int i
unsigned int n
unsigned int z
float t
float pth
float pph
float dth
float dph
float q
cl_uint i
cl_uint n
cl_uint z
cl_float t
cl_float pth
cl_float pph
cl_float dth
cl_float dph
struct hit

Public Members

cl_uint i
cl_uint n
cl_uint z
cl_float t
cl_float pth
cl_float pph
cl_float dth
cl_float dph
struct hix : public hit

Public Functions

inline hix()
inline hix(float t, float q, float c)

Public Members

float c
class I3CLSimStepToPhotonConverterPPC : public I3StepToPhotonConverter

Public Functions

I3CLSimStepToPhotonConverterPPC(const I3CLSimStepToPhotonConverterPPC&) = delete
I3CLSimStepToPhotonConverterPPC(const I3CLSimStepToPhotonConverterPPC&&) = delete
virtual ~I3CLSimStepToPhotonConverterPPC()
inline virtual void SetWlenGenerators(const std::vector<I3CLSimRandomValueConstPtr> &wlenGenerators)

Sets the wavelength generators. The first generator (index 0) is assumed to return a Cherenkov spectrum that may have a bias applied to it. This bias factor needs to be set using SetWlenBias(). All other generator indices are assumed to be for flasher/laser light generation. During generation, no Cherenkov angle rotation will be applied to those photons with indices >= 1. Will throw if used after the call to Initialize().

inline virtual void SetWlenBias(I3CLSimFunctionConstPtr wlenBias)

Sets the wavelength weights. Set this to a constant value of 1 if you do not need biased photon generation. The wavelength spectrum set with SetWlenGenerator() is assumed to have a biassing factor already applied to it. This call sets this factor in order to be able to assign correct weights. Will throw if used after the call to Initialize().

inline virtual void SetMediumProperties(I3CLSimMediumPropertiesConstPtr mediumProperties)

Sets the medium properties. Will throw if used after the call to Initialize().

inline virtual void SetGeometry(I3SimpleGeometryConstPtr geometry)

Sets the geometry. Will throw if used after the call to Initialize().

virtual void Initialize()

Initializes the simulation. Will throw if already initialized.

inline virtual bool IsInitialized() const

Returns true if initialized. Never throws.

virtual void EnqueueSteps(I3SimStepSeriesConstPtr steps, uint32_t identifier)

Adds a new I3SimStepSeries to the queue. The resulting I3CLSimPhotonSeries can be retrieved from the I3StepToPhotonConverter_ after some processing time.

Enqueuing a vector after calling EnqueueBarrier will throw if not all photons have been retrieved.

Will throw if not initialized.

inline virtual std::size_t GetWorkgroupSize() const

Gets the current workgroup size.

inline virtual std::size_t GetMaxNumWorkitems() const

Gets the number of parallel work items.

inline virtual std::size_t QueueSize() const

Reports the current queue size. The queue works asynchronously, so this value will probably have changed once you use it.

Will throw if not initialized.

inline virtual bool MorePhotonsAvailable() const

Returns true if more photons are available. If the return value is false, the current simulation is finished and a new step vector may be set.

Will throw if not initialized.

virtual ConversionResult_t GetConversionResult()

Returns a bunch of photons stored in a vector<I3CLSimPhoton>.

The return value is a pair<uint, vector<I3CLSimPhoton> >. The integer is the same identifier as specified in the call to EnqueueSteps().

Might block if no photons are available.

Will throw if not initialized.

virtual std::map<std::string, double> GetStatistics() const

Public Static Functions

static boost::shared_ptr<I3CLSimStepToPhotonConverterPPC> GetInstance()

Get the global shared instance

Private Types

typedef std::chrono::high_resolution_clock clock_type

Private Functions

I3CLSimStepToPhotonConverterPPC()

Private Members

bool isInitialized_
I3SimpleGeometryConstPtr geometry_
I3CLSimFunctionConstPtr wavelenthBias_
size_t workgroupSize_
size_t maxBunchSize_
I3CLSimQueue<std::pair<I3SimStepSeriesConstPtr, uint32_t>> inbox_
stats_bundle stats_

Private Static Attributes

static boost::weak_ptr<I3CLSimStepToPhotonConverterPPC> instance_
class i3ppc : public I3ConditionalModule

Public Functions

SET_LOGGER ("i3ppc")
inline i3ppc(const I3Context &context)
inline ~i3ppc()
inline void Configure()
inline void DAQ(I3FramePtr frame)
inline void Finish()

Private Functions

inline void popframes(int fx)
inline void pushframe()
inline bool isinside(double x, double y, double z)
inline bool isinside(double x, double y, double z, double nx, double ny, double nz, double l)
inline int iType(const I3Particle &p)
inline void pparticle(I3MCTreeConstPtr tree, I3MCTree::const_iterator sub)
inline double CalculateEnergyLoss(double beta, bool cDensityCorrection)
inline float directCherenkovLightUnnormalizedyield(double beta)
inline float indirectCherenkovLightUnnormalizedyield(double beta)
inline float luminescenceLightUnnormalizedyield(double beta, double dnde)
inline double setParticleProbabilities(double directCherenkov, double indirectCherenkov, double luminescence)
inline void addp_monopole(float rx, float ry, float rz, float t, float E, float length, float beta)

Private Members

bool ini
bool verbose
bool save_photons
bool save_pseries
std::map<std::pair<int, unsigned long long>, const I3MMCTrack*> i3mmctracks
bool cyl
bool keep_
map<xppc::ikey, xppc::xgeo> modules
int gpu
OMKey fla
double nph
double wid
double efficiency_scaling_
unsigned oversize_
double charge_
std::string mct
int fb
int fe
std::deque<I3FramePtr> frames
std::string infoName_
I3MapStringDoublePtr ppcinfo
I3Vector<std::pair<double, double>> tau_dnde_vec_
std::map<int, framedata> mcpes
double Radius
double Top
double Bottom
double Padding
struct ices

Public Members

int wvl
float ocm
float coschr
float sinchr
float abs
float sca
struct ices::[anonymous] z[MAXLYS]
cl_int wvl
cl_float ocm
cl_float coschr
cl_float sinchr
cl_float abs
cl_float sca
struct ices::[anonymous] z[MAXLYS]
struct ices

Public Members

cl_int wvl
cl_float ocm
cl_float coschr
cl_float sinchr
cl_float abs
cl_float sca
struct xppc::ices::[anonymous] z[MAXLYS]
struct Ico
struct ihit
#include <ppc.h>

Public Functions

inline bool operator<(const ihit &rhs) const
inline bool operator<(const ihit &rhs) const

Public Members

mcid track
ikey omkey
int pmt
float dir
float time
struct ikey

Subclassed by name, name, OM, OM

Public Functions

inline bool isinice() const
inline bool operator<(const ikey &rhs) const
inline bool operator!=(const ikey &rhs) const
inline bool isinice() const
inline bool operator<(const ikey &rhs) const
inline bool operator!=(const ikey &rhs) const

Public Members

int str
int dom
struct ikey
#include <ppc.h>

Subclassed by xppc::name, xppc::OM, xppc::OM, xppc::OM

Public Functions

inline bool isinice() const
inline bool operator<(const ikey &rhs) const
inline bool operator!=(const ikey &rhs) const
inline bool isinice() const
inline bool operator<(const ikey &rhs) const
inline bool operator!=(const ikey &rhs) const
inline bool isinice() const
inline bool operator<(const ikey &rhs) const
inline bool operator!=(const ikey &rhs) const

Public Members

int str
int dom
struct ini

Public Functions

inline float ctr(line &s, int m)
inline void set()
inline float ctr(line &s, int m)
inline void set()
struct ini

Public Functions

inline float ctr(line &s, int m)
inline void set()
struct irde

Public Functions

inline irde()
inline void addr(float r)
inline float wav(float i)
inline float binf(float p)
inline float v(const vector<float> &x, int i)
inline float vlo(const vector<float> &x, int i)
inline float vhi(const vector<float> &x, int i)
inline float u(const vector<float> &x, int i)
inline void read(const vector<float> &qw, const vector<float> &qf, float blo = -1.f, float bhi = -1.f)
inline irde()
inline void addr(float r)
inline float wav(float i)
inline float binf(float p)
inline float v(const vector<float> &x, int i)
inline float vlo(const vector<float> &x, int i)
inline float vhi(const vector<float> &x, int i)
inline float u(const vector<float> &x, int i)
inline void read(const vector<float> &qw, const vector<float> &qf, float blo = -1.f, float bhi = -1.f)

Public Members

int num
float bin
float wmin
float wmax
float rde
vector<float> dat
vector<float> sum
vector<float> rat
int oms
float rmax
float blo
float bhi
struct irde

Public Functions

inline irde()
inline void addr(float r)
inline float wav(float i)
inline float binf(float p)
inline float v(const vector<float> &x, int i)
inline float vlo(const vector<float> &x, int i)
inline float vhi(const vector<float> &x, int i)
inline float u(const vector<float> &x, int i)
inline void read(const vector<float> &qw, const vector<float> &qf, float blo = -1.f, float bhi = -1.f)

Public Members

int num
float bin
float wmin
float wmax
float rde
vector<float> dat
vector<float> sum
vector<float> rat
int oms
float rmax
float blo
float bhi
struct itype

Public Functions

inline itype()
inline void add(string file)
inline void add(float th, float ph)
inline float aS(float x)
inline float f(float x)
inline float xarea(float dot)
inline void fraq()
inline int getPMT(V<3> dir, V<3> pos, V<3> tilt, float rnd, float ph = -1.f)
inline itype()
inline void add(string file)
inline void add(float th, float ph)
inline float aS(float x)
inline float f(float x)
inline float xarea(float dot)
inline void fraq()
inline int getPMT(V<3> dir, V<3> pos, V<3> tilt, float rnd, float ph = -1.f)

Public Members

float area
float beta
float rde
float fx
float Rr
float Rz
float cable
vector<V<3>> dirs
bool def
float ave
float mas
vector<float> s
struct itype

Public Functions

inline itype()
inline void add(string file)
inline void add(float th, float ph)
inline float aS(float x)
inline float f(float x)
inline float xarea(float dot)
inline void fraq()
inline int getPMT(V<3> dir, V<3> pos, V<3> tilt, float rnd, float ph = -1.f)

Public Members

float area
float beta
float rde
float fx
float Rr
float Rz
float cable
vector<V<3>> dirs
bool def
float ave
float mas
vector<float> s
struct line

Public Members

short n
short max
float x
float y
float r
float h
float d
float dl
float dh
cl_short n
cl_short max
cl_float x
cl_float y
cl_float r
cl_float h
cl_float d
cl_float dl
cl_float dh
struct line

Public Members

cl_short n
cl_short max
cl_float x
cl_float y
cl_float r
cl_float h
cl_float d
cl_float dl
cl_float dh
struct mcid : public std::pair<int, unsigned long long>, public std::pair<int, unsigned long long>
#include <ppc.h>

Public Functions

inline bool operator<(const mcid &rhs) const
inline bool operator<(const mcid &rhs) const

Public Members

int frame
double t0
class medium : public myvect

Public Types

enum type

Values:

enumerator any
enumerator ordinary
enumerator extraordinary

Public Functions

inline medium()
inline medium(myvect q)
inline medium(double x, double y, double z)
inline void set_n()
inline void set_n(double n)
inline void eires(myvect q, myvect E, myvect D)
inline void eires(myvect q, myvect qi, myvect E, myvect Ei, myvect D, myvect Di)
inline void set_k(myvect q, photon &o, photon &e, bool p = false)
inline void set_k(myvect q, myvect qi, photon &o, photon &e)
inline vector<photon> set_k(myvect k, surface s, bool same)

Public Members

double no
double ne
double beta
enum medium::type current
struct mesh

Public Functions

inline int ini(const string &file)
inline int ini(const string &file)

Public Members

vector<V<3>> dirs
struct mesh

Public Functions

inline int ini(const string &file)

Public Members

vector<V<3>> dirs
class myvect

Subclassed by medium, photon, surface

Public Functions

inline myvect()
inline myvect(double x, double y, double z)
inline void set(myvect q)
inline void divide(double p)
inline void multiply(double p)
inline myvect operator*(double p)
inline myvect operator/(double p)
inline myvect operator+(myvect q)
inline myvect operator-(myvect q)
inline myvect smallest()
inline myvect cross(myvect q)
inline double dot(myvect q)
inline double norm()
inline void normalize()
inline myvect np(myvect q)

Public Members

double x
double y
double z
struct name : public ikey, public ikey

Public Functions

inline name()
inline name(ikey k, int m, int t, float r, float h, V<3> &axis, float ph)
inline name()
inline name(ikey k, int m, int t, float r, float h, V<3> &axis, float ph)

Public Members

int omt
int type
float rde
float hv
float azi
V<3> tilt
struct name : public xppc::ikey

Public Functions

inline name()
inline name(ikey k, int m, int t, float r, float h, V<3> &axis, float ph)

Public Members

int omt
int type
float rde
float hv
float azi
V<3> tilt
struct OM : public DOM, public ikey, public DOM, public ikey
struct OM : public xppc::DOM, public xppc::ikey, public xppc::DOM, public xppc::ikey, public xppc::DOM, public xppc::ikey
#include <ppc.h>
struct pbuf

Public Members

float4 r
float4 n
unsigned int q
unsigned int i
int fla
int ofla
cl_float4 r
cl_float4 n
cl_uint q
cl_uint i
cl_int fla
cl_int ofla
struct pbuf

Public Members

cl_float4 r
cl_float4 n
cl_uint q
cl_uint i
cl_int fla
cl_int ofla
struct photon : public myvect

Public Functions

inline photon()
inline photon(myvect q)
inline photon(double x, double y, double z)
inline void advance(double r)

Public Members

double n
myvect s
myvect k
myvect ki
myvect H
myvect Hi
myvect E
myvect Ei
myvect D
myvect Di
float4 r
float4 n
unsigned int q
unsigned int num
int type
float f
float a
float b
float beta
float tau
float ka
float up
float fldr
short fla
short ofla
int4 c
union photon::[anonymous] [anonymous]
cl_float4 r
cl_float4 n
cl_uint q
cl_uint num
cl_int type
cl_float f
cl_float a
cl_float b
cl_float beta
cl_float tau
cl_float ka
cl_float up
cl_float fldr
cl_short fla
cl_short ofla
cl_int4 c
union photon::[anonymous] [anonymous]
struct photon

Public Members

cl_float4 r
cl_float4 n
cl_uint q
cl_uint num
cl_int type
cl_float f
cl_float a
cl_float b
cl_float beta
cl_float tau
cl_float ka
cl_float up
cl_float fldr
cl_short fla
cl_short ofla
cl_int4 c
union xppc::photon::[anonymous] [anonymous]
struct pout
#include <ppc.h>

Public Members

float r[4]
float n[4]
struct stats_bundle

Public Functions

inline stats_bundle()

Public Members

clock_type::time_point last_call
size_t total_kernel_calls
size_t total_host_duration
double startup_device_duration
size_t total_num_photons_generated
size_t total_num_photons_atDOMs
class surface : public myvect

Public Functions

inline surface()
inline surface(myvect q)
inline surface(double x, double y, double z)
inline void setp(myvect q)
inline void setp()
inline myvect ellipsoid()
inline myvect rand()
inline double elong_sampling(double p)
inline myvect rand_x()
inline myvect rand_i(myvect q)
inline myvect rand_c(bool reset = false)

Public Members

myvect p1
myvect p2
myvect e
bool skip
myvect r_sav
template<int n>
class V

Public Functions

inline V()
inline float &operator[](int i)
inline float dot(V<n> q)

Private Members

float x[n]
template<int n>
class V

Public Functions

inline V()
inline float &operator[](int i)
inline float dot(V<n> q)
inline V()
inline double &operator[](int i)
inline V()
inline float &operator[](int i)
inline float dot(V<n> q)

Private Members

float x[n]
double x[n]
struct vert : public dir

Public Functions

inline vert()
inline vert(const dir n, double f)

Public Members

double f
struct xgeo
#include <ppc.h>

Public Functions

inline xgeo()
inline xgeo()

Public Members

int num
int type
float r[3]
float hv
float rde
struct xkey : public key

Public Functions

inline xkey()
inline xkey(key x)
inline xkey(key x, int y)

Public Members

int pmt
struct xrnd

Public Functions

inline xrnd()
inline ~xrnd()
inline double u()

Public Members

gsl_rng *r
struct xyz

Subclassed by cascade

Public Functions

inline xyz()
inline xyz(double x, double y, double z)
inline xyz()
inline xyz(double x, double y, double z)
inline void ini()

Public Members

double x
double y
double z
namespace LSSL

Functions

double llh_stat(double *x, double *dx)
double llh_syst(double *x, double *dx)
double llh(double *x, double *dx = NULL)
double lnllh(double *x, double *dx = NULL)
void wref_fdf(const gsl_vector *x, void *par, double *f, gsl_vector *df)
void wref_df(const gsl_vector *x, void *par, gsl_vector *df)
double wref_f(const gsl_vector *x, void *par)
double wllh(double *A, double *D, double *X, double *S, int N, int M)
double wref(double *A, double *D, double *V, double *S, int N, int M, double trs = 0, double *as = NULL, double xmin = 0, double xmax = 1, double *XA = NULL, double *XS = NULL)

Variables

const bool verbose = true
const double xx = 1.e-8
double SIG = 0.10
int n
int m
double *a
double *c
double *d
double *s
double *xa
double *xs
namespace NNLS

Functions

double sign(double x, double y)
double square(double x)
void g1(double a, double b, double &cterm, double &sterm, double &sig)
void h12(int mode, int lpivot, int l1, int m, double u[], int iue, double &up, double c[], int ice, int icv, int ncv)
int nnls(double a[], int mda, int m, int n, double b[], double x[], double &rnorm, double w[], double zz[], int index[], int &nsetp)
double nnls(double a[], double b[], double x[], int m, int n)
double nsum(double a[], double b[], double x[], int m, int n)
namespace std

STL namespace.

namespace xppc

Typedefs

typedef std::map<ihit, std::vector<pout>> outz

Functions

float xrnd()
float grnd()
void start()
void stop()
void choose(int)
void ini()
void fin()
void eout()
void flone(unsigned long long)
size_t getMaxBunchSize()
size_t getWorkgroupSize()
float getTotalDeviceTime()
void initialize(float)
const DOM &flset(int, int)
const float *fldir()
void flshift(float[], float[], float* = NULL)
void set_res(float)
void set_res(float, float)
void efin()
void sett(float, float, float, std::pair<int, unsigned long long>, int, double = 0)
void addp(float, float, float, float, float, float, int, float = 1)
void addp_clst(float, float, float, float, unsigned long long, float, float)
void addp_mopo(float, float, float, float, float, float, float, float, float)
float square(float x)
int findcol (__local dats *d, int x, int y)
float zshift (__local dats *d, float4 r, float *dz, __global datz *p)
float cherenkov(float wva)
unsigned short sname(int n)
void rs_ini()
void setq()
void checkError(cl_int result)
int gcd(int a, int b)
int lcm(int a, int b)
void listDevices()
void print()
void kernel(unsigned int num)
float yield(float E, float dr, int type)
int hcmp(const void *a, const void *b)
void output()
void addh(unsigned long long num)
double gammln(double xx)
unsigned long long poidev(double xm)
unsigned long long bnldev(unsigned long long n, double pp)
void finc()
void f2k()
void flasher(int str, int dom, unsigned long long num, int itr)
void addp_clst(float, float, float, float, unsigned long long, float, float)

Variables

std::vector<OM> i3oms
std::map<ikey, int> omts
std::map<ikey, float> hvs
std::map<ikey, std::pair<float, int>> rdes
outz hitz
bool nextgen = false
static const float doma = FPI * OMR * OMR
static const float omav = 0.335822
static const float dppm = 2450.08
static const float fcv = FPI / 180.f
static unsigned int ovr = 1
map<int, pair<float, float>> strs
struct xppc::mesh ico
map<int, itype> types
map<pair<int, int>, irde> irdes
irde env
map<ikey, V<3>> cx
map<ikey, float> dx
dats d
datz z
struct xppc::doms q
static const float zoff = 1948.07
unsigned int sv = 0
struct xppc::ini m
string kernel_source
unsigned int pmax
unsigned int pmxo
unsigned int pn
unsigned int pk
unsigned int hquo
bool xgpu = false
vector<pair<cl_platform_id, cl_device_id>> all
vector<gpu> gpus
static unsigned int old = 0
static const float rho = 0.9216f
static const float m0 = 0.105658389f
photon p
photon pfl
deque<string> flnz
unsigned int flnb = 0
unsigned int flne = 0
unsigned int flnd = 0
file bfr.cxx
#include <cmath>
#include <cstdlib>
#include <vector>
#include <fstream>
#include <iostream>
#include <gsl/gsl_multifit.h>

Functions

double xrnd()
ostream &operator<<(ostream &o, const myvect &q)
ostream &operator<<(ostream &o, const photon &q)
bool interact(medium one, medium two, surface plane, photon &p)
void test()
void test2(double p, int num, int tot)
int main(int arg_c, char *arg_a[])

Variables

bool verbose = false
bool girdle = true
bool orefr = false
bool orefl = false
bool loop = true
double frac = 0.0
double elong = 1.0
double xx = 1.e-10
surface plane_saved
file gpu/f2k.cxx

Functions

float xrnd()
float grnd()
float yield(float E, float dr, int type)
int hcmp(const void *a, const void *b)
void print()
void output()
void addh(unsigned long long num)
double gammln(double xx)
unsigned long long poidev(double xm)
unsigned long long bnldev(unsigned long long n, double pp)
void addp(float rx, float ry, float rz, float t, float E, float dr, int type, float scale = 1)
void finc()
void eout()
void f2k()
void flone(unsigned long long num)
const DOM &flset(int str, int dom)
void flasher(int str, int dom, unsigned long long num, int itr)

Variables

static const float rho = 0.9216f
static const float m0 = 0.105658389f
photon p
photon pfl
deque<string> flnz
unsigned int flnb = 0
unsigned int flne = 0
unsigned int flnd = 0
file ocl/f2k.cxx

Functions

float xrnd()
float grnd()
float yield(float E, float dr, int type)
int hcmp(const void *a, const void *b)
void print()
void output()
void addh(unsigned long long num)
double gammln(double xx)
unsigned long long poidev(double xm)
unsigned long long bnldev(unsigned long long n, double pp)
void addp(float rx, float ry, float rz, float t, float E, float dr, int type, float scale = 1)
void finc()
void eout()
void f2k()
void flone(unsigned long long num)
const DOM &flset(int str, int dom)
void flasher(int str, int dom, unsigned long long num, int itr)

Variables

static const float rho = 0.9216f
static const float m0 = 0.105658389f
photon p
photon pfl
deque<string> flnz
unsigned int flnb = 0
unsigned int flne = 0
unsigned int flnd = 0
file I3CLSimStepToPhotonConverterPPC.cxx
#include “ppc.h
file I3CLSimStepToPhotonConverterPPC.h
#include <chrono>
#include “sim-services/I3StepToPhotonConverter.h”
#include “simclasses/I3CLSimQueue.h”
file i3ppc.cxx
#include <icetray/I3Frame.h>
#include <icetray/I3ConditionalModule.h>
#include <simclasses/I3MMCTrack.h>
#include <simclasses/I3MCPE.h>
#include <dataclasses/physics/I3MCTree.h>
#include <dataclasses/physics/I3MCTreeUtils.h>
#include <dataclasses/geometry/I3Geometry.h>
#include <dataclasses/calibration/I3Calibration.h>
#include <dataclasses/status/I3DetectorStatus.h>
#include <phys-services/I3RandomService.h>
#include <simclasses/I3SimStep.h>
#include <boost/foreach.hpp>
#include <simclasses/I3Photon.h>
#include <dataclasses/ModuleKey.h>
#include “ppc.h

Functions

I3_MODULE(i3ppc)
file ico.cxx
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <iostream>
#include <algorithm>

Functions

ostream &operator<<(ostream &out, const dir &n)
main(int arg_c, char *arg_a[])
file gpu/ini.cxx

Defines

LMAX
LYRS
CTX
CTY
DIR1
DIR2
CX
CY
NSTR
OVER
NPHO
WNUM
MAXLYS
MAXGEO
MAXRND
XXX
FPI
OMR

Functions

float cherenkov(float wva)
unsigned short sname(int n)
void rs_ini()

Variables

static const float doma = FPI * OMR * OMR
static const float omav = 0.335822
static const float dppm = 2450.08
static const float fcv = FPI / 180.f
static unsigned int ovr = 1
vector<OM> i3oms
map<int, pair<float, float>> strs
struct mesh ico
bool nextgen = false
map<ikey, int> omts
map<int, itype> types
map<pair<int, int>, irde> irdes
irde env
map<ikey, float> hvs
map<ikey, pair<float, int>> rdes
map<ikey, V<3>> cx
map<ikey, float> dx
struct datz z
struct dats d
struct doms q
static const float zoff = 1948.07
unsigned int sv = 0
struct ini m
file ocl/ini.cxx

Functions

float cherenkov(float wva)
unsigned short sname(int n)
void rs_ini()

Variables

static const float doma = FPI * OMR * OMR
static const float omav = 0.335822
static const float dppm = 2450.08
static const float fcv = FPI / 180.f
static unsigned int ovr = 1
vector<OM> i3oms
map<int, pair<float, float>> strs
struct mesh ico
bool nextgen = false
map<ikey, int> omts
map<int, itype> types
map<pair<int, int>, irde> irdes
irde env
map<ikey, float> hvs
map<ikey, pair<float, int>> rdes
map<ikey, V<3>> cx
map<ikey, float> dx
dats d
datz z
struct doms q
static const float zoff = 1948.07
unsigned int sv = 0
struct ini m
file inv.cxx
#include <string>
#include <sstream>
#include <fstream>
#include <iostream>
#include <map>
#include <vector>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_multifit.h>
#include <gsl/gsl_multimin.h>
#include <gsl/gsl_sf_gamma.h>
#include “../llh/nnls.cxx
#include “../llh/lssl.cxx

Typedefs

typedef pair<int, int> key

Functions

main(int arg_c, char *arg_a[])

Variables

const int dim = 1
const double noise = 25 * 500e-9
file llh.cxx
#include <set>
#include <map>
#include <vector>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <sstream>
#include <fstream>
#include <iostream>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_multifit.h>
#include <gsl/gsl_multimin.h>
#include <gsl/gsl_sf_gamma.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
#include <gsl/gsl_permutation.h>
#include “ppc.h
#include “nnls.cxx
#include “lssl.cxx

Defines

ANUM

Typedefs

typedef pair<int, int> key

Functions

void step()
double square(double x)
double xrnd()
double cab(double*, double*)
void cab_fdf(const gsl_vector *x, void *par, double *f, gsl_vector *df)
void cab_df(const gsl_vector *x, void *par, gsl_vector *df)
double cab_f(const gsl_vector *x, void *par)
ostream &operator<<(ostream &s, const xkey &x)
bool isgood(const key &om)
bool isok(const key &om)
double qint(double q)
float spe()
float spe(unsigned int n)
float spe(const pair<xppc::ihit, vector<xppc::pout>> &dh, int n = -1, int m = -1)
float delay()
ostream &operator<<(ostream &o, cascade &c)
double fllh(double dt, double nsim)
double fllh(const gsl_vector *x, void *p)
double fllt(double x, void *p)
void loc_rs(cascade &ci)
void spsa(cascade &ci)
double pv(double y1, double y2, double y3)
void spsawh(cascade &ci)
void half()
void mcmc(cascade &ci)
void errors(cascade &ci)
void err_mc(cascade &ci)
void method(cascade &ci, int n)
int main(int arg_c, char *arg_a[])

Variables

double fdur = 70.14
double tau = 4.00
bool norm = false
bool fail = false
bool fast = false
bool oldf = true
bool mlpd = false
bool unfm = true
bool flasher = false
int munf = 0
int srep = 1
int drep = 1
int cnum = 1
double cbin = 2. / cnum
const int num = 200
const bool cutz = true
const double bin = 25
const double qmin = 0.1
double qsat = 500
bool sumw = false
const double nsrt = 500e-9
vector<double> noise
vector<double> noise_q
int fsep = 1
int loop = 1000
double lbin = bin
double nsq = nsrt * lbin * drep
double rr = 0
double dR = 10
double dA = 30
double dI = 0
double LX = 0
const double cv = M_PI / 180
const double sol = 0.299792458
const double OMR = 0.16510
struct xrnd xr
struct cable c
struct asens ang
key fla
float fln[3] = {0, 0, 1}
set<key> bad
set<key> good
map<xkey, dat> all
unsigned int nchn = 1
unsigned int ndof = 1
double COG[3] = {0}
double qdat = 0
double qsim = 0
double nohit = 0
double tshift = 0
bool unh = false
int lcsp = 0
bool spef = false
bool nois = false
bool pass = false
file lssl.cxx
file nnls.cxx

Defines

c(x)
u(x, y)
b(x)
x(y)
w(x)
zz(x)
index(x)
a(x, y)
file ppc.cxx
#include <map>
#include <deque>
#include <vector>
#include <sstream>
#include <fstream>
#include <iostream>
#include <unistd.h>
#include <algorithm>
#include <sys/time.h>
#include <cmath>
#include <cstring>
#include <CL/opencl.h>
#include “pro.cxx
#include “ini.cxx
#include “f2k.cxx

Defines

CL_USE_DEPRECATED_OPENCL_1_2_APIS
log_info_stream(msg)
LMAX
LYRS
CTX
CTY
DIR1
DIR2
CX
CY
NSTR
OVER
NPHO
WNUM
MAXLYS
MAXGEO
MAXRND
XXX
FPI
OMR
BUG_with_Unload
SHRT

Functions

float zshift(cl_float4 r)
int main(int arg_c, char *arg_a[])

Variables

float zdh
file llh/ppc.h
file ppc.h
file pro.cxx

Defines

__local
__global
convert_int_sat_rtn
clamp(x, y, z)
int2
int3
float2
float3
float4
STRINGIFY(A)
XTRINGIFY(A)
sin
cos
pow
exp
log
exp2
sqrt
rsqrt
clamp(x, y, z)
__local
__global
convert_int_sat_rtn
clamp(x, y, z)
int2
int3
float2
float3
float4

Functions

float square(float x)
int findcol (__local dats *d, int x, int y)
float zshift (__local dats *d, float4 r, float *dz, __global datz *p)
file pybindings.cxx
#include “pybindings.hpp”
#include <icetray/load_project.h>

Functions

static void register_I3CLSimStepToPhotonConverterPPC()
I3_PYTHON_MODULE(ppc)
dir bfr
dir gpu
dir icetray
dir llh
dir ocl
dir ppc
dir ppc
dir private