Project
Loading...
Searching...
No Matches
O2OverlapCheck.cxx File Reference

An overlap census that asks the shapes: every sampled point is verified to lie on its solid's boundary, and the depth, not containment, separates touching from interpenetrating pairs. More...

#include "CADSupport/O2OverlapCheck.h"
#include "CADSupport/O2FlatCSG.h"
#include "TGeoShape.h"
#include "TGeoBBox.h"
#include "TGeoMatrix.h"
#include "TGeoVolume.h"
#include "TGeoNode.h"
#include <algorithm>
#include <chrono>
#include <cmath>
#include <cstring>
#include <limits>

Go to the source code of this file.

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::cad
 

Functions

const charo2::cad::OverlapVerdictName (OverlapVerdict verdict)
 
int o2::cad::SampleBoundaryPoints (const TGeoShape *shape, int npoints, double residualTolerance, std::vector< double > &points, int &rejected, double &worstResidual, bool *usedPointsOnSegments=nullptr)
 
OverlapPair o2::cad::CheckPairOverlap (const TGeoShape *shapeA, const TGeoMatrix *matA, const std::string &nameA, const TGeoShape *shapeB, const TGeoMatrix *matB, const std::string &nameB, const OverlapOptions &options=OverlapOptions())
 Test one placed pair. matA / matB take each shape's local frame to the common frame.
 
OverlapCensus o2::cad::CheckWorldOverlaps (const TGeoVolume *volume, const OverlapOptions &options=OverlapOptions())
 Census every pair of volume's immediate daughters, and optionally each daughter against volume.
 

Detailed Description

An overlap census that asks the shapes: every sampled point is verified to lie on its solid's boundary, and the depth, not containment, separates touching from interpenetrating pairs.

Author
Sandro Wenzel sandr.nosp@m.o.we.nosp@m.nzel@.nosp@m.cern.nosp@m..ch
Since
2026-08

Definition in file O2OverlapCheck.cxx.

Variable Documentation

◆ contained

int contained = 0

Definition at line 216 of file O2OverlapCheck.cxx.

◆ deep

int deep = 0

Definition at line 217 of file O2OverlapCheck.cxx.

◆ deepestMaster

double deepestMaster[3] = {0., 0., 0.}

Definition at line 219 of file O2OverlapCheck.cxx.

◆ lower

double lower[3] = {0., 0., 0.}

Definition at line 59 of file O2OverlapCheck.cxx.

◆ maxDepth

double maxDepth = 0.

Definition at line 218 of file O2OverlapCheck.cxx.

◆ minSeparation

double minSeparation = std::numeric_limits<double>::max()

Definition at line 220 of file O2OverlapCheck.cxx.

◆ upper

double upper[3] = {0., 0., 0.}

Definition at line 60 of file O2OverlapCheck.cxx.

◆ valid

bool valid = false

Definition at line 61 of file O2OverlapCheck.cxx.