14#ifndef ALICEO2_CADSUPPORT_O2BVHASSEMBLY_
15#define ALICEO2_CADSUPPORT_O2BVHASSEMBLY_
17#include "TGeoShapeAssembly.h"
19class TGeoVolumeAssembly;
49 Bool_t
Contains(
const Double_t* point)
const override;
50 Double_t
DistFromOutside(
const Double_t* point,
const Double_t* dir, Int_t iact = 1,
51 Double_t step = TGeoShape::Big(), Double_t* safe =
nullptr)
const override;
52 Double_t
Safety(
const Double_t* point, Bool_t in = kTRUE)
const override;
57 Double_t step = TGeoShape::Big())
const;
58 Double_t
Safety_Loop(
const Double_t* point, Bool_t in = kTRUE)
const;
65 void EnsureBuilt()
const;
static O2BVHAssembly * MakeBVHAssembly(TGeoVolumeAssembly *volume)
Replace volume's shape by an O2BVHAssembly and return it.
Double_t DistFromOutside_Loop(const Double_t *point, const Double_t *dir, Double_t step=TGeoShape::Big()) const
Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=nullptr) const override
DistFromOutside – daughters are queried with the fixed query bound, so the answer is visit-order inde...
void BuildBVH()
(Re)build the acceleration structure from the volume's current daughter list.
size_t GetBVHMemory() const
Bytes held by the BVH nodes and the primitive-index permutation.
O2BVHAssembly(const O2BVHAssembly &)=delete
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
Safety – from inside as ROOT; from outside a nearest-daughter descent of the BVH.
Double_t Safety_Loop(const Double_t *point, Bool_t in=kTRUE) const
O2BVHAssembly & operator=(const O2BVHAssembly &)=delete
Bool_t Contains_Loop(const Double_t *point) const
Bool_t Contains(const Double_t *point) const override
Contains.
int GetNbuilt() const
Number of daughter placements the current BVH covers, -1 if it was never built.
~O2BVHAssembly() override
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...