Project
Loading...
Searching...
No Matches
o2::cad::bench::BallastShape Class Reference

#include <RepresentationBench.h>

Inherits TGeoBBox.

Public Member Functions

 BallastShape (const char *name, double dx, double dy, double dz, int burn)
 
double ballast (const double *point) const
 
bool Contains (const double *point) const override
 
double Safety (const double *point, bool in=kTRUE) const override
 
double DistFromOutside (const double *point, const double *dir, int iact=1, double step=TGeoShape::Big(), double *safe=nullptr) const override
 
double DistFromInside (const double *point, const double *dir, int iact=1, double step=TGeoShape::Big(), double *safe=nullptr) const override
 

Detailed Description

A TGeoBBox that is deliberately slower than a TGeoBBox, by a controllable amount.

The timing harness's negative control: every kernel timed here is also timed against this, and the ratio must exceed a stated factor.

The burn loop is a data dependency on the point, so it cannot be hoisted or constant-folded, and its result is folded into the returned value so it cannot be dropped.

Definition at line 534 of file RepresentationBench.h.

Constructor & Destructor Documentation

◆ BallastShape()

o2::cad::bench::BallastShape::BallastShape ( const char name,
double  dx,
double  dy,
double  dz,
int  burn 
)
inline

Definition at line 537 of file RepresentationBench.h.

Member Function Documentation

◆ ballast()

double o2::cad::bench::BallastShape::ballast ( const double *  point) const
inline

Definition at line 540 of file RepresentationBench.h.

◆ Contains()

bool o2::cad::bench::BallastShape::Contains ( const double *  point) const
inlineoverride

Definition at line 549 of file RepresentationBench.h.

◆ DistFromInside()

double o2::cad::bench::BallastShape::DistFromInside ( const double *  point,
const double *  dir,
int  iact = 1,
double  step = TGeoShape::Big(),
double *  safe = nullptr 
) const
inlineoverride

Definition at line 562 of file RepresentationBench.h.

◆ DistFromOutside()

double o2::cad::bench::BallastShape::DistFromOutside ( const double *  point,
const double *  dir,
int  iact = 1,
double  step = TGeoShape::Big(),
double *  safe = nullptr 
) const
inlineoverride

Definition at line 557 of file RepresentationBench.h.

◆ Safety()

double o2::cad::bench::BallastShape::Safety ( const double *  point,
bool  in = kTRUE 
) const
inlineoverride

Definition at line 553 of file RepresentationBench.h.


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