59      Fatal(
"ComputeBBox", 
"Assembly shape %s without volume", 
GetName());
 
   77   for (
Int_t i = 0; i < nd; i++) {
 
  104   fDZ = 0.5 * (zmax - zmin);
 
  105   fOrigin[2] = 0.5 * (zmin + zmax);
 
 
  158   fDZ = 0.5 * (zmax - zmin);
 
  159   fOrigin[2] = 0.5 * (zmin + zmax);
 
 
  208         nav->GetCache()->ReleaseInfo();
 
  211      for (
id = 0; 
id < 
ncheck; 
id++) {
 
  218            nav->GetCache()->ReleaseInfo();
 
  222      nav->GetCache()->ReleaseInfo();
 
  226   for (
id = 0; 
id < nd; 
id++) {
 
 
  253   Info(
"DistFromInside", 
"Cannot compute distance from inside the assembly (but from a component)");
 
 
  315      for (i = 0; i < 3; i++)
 
  334      for (i = 0; i < nd; i++) {
 
  348               printf(
"%s[%d] %s -> from local=(%19.16f, %19.16f, %19.16f, %19.16f, %19.16f, %19.16f)\n",
 
  386      for (i = 0; i < 
ncheck; i++) {
 
  398               printf(
"%s[%d] %s -> from local=(%19.16f, %19.16f, %19.16f, %19.16f, %19.16f, %19.16f)\n",
 
  411   nav->GetCache()->ReleaseInfo();
 
 
  436   Error(
"Divide", 
"Assemblies cannot be divided. Division volume %s not created", 
divname);
 
 
  446   Error(
"GetMakeRuntimeShape", 
"Assemblies cannot be parametrized.");
 
 
  457   printf(
" Bounding box:\n");
 
 
  468   Error(
"SetSegsAndPols", 
"Drawing functions should not be called for assemblies, but rather for their content");
 
 
  506   for (
Int_t id = 0; 
id < nd; 
id++) {
 
  507      if (
boxes && 
id > 0) {
 
 
  548   Error(
"SetPoints", 
"Drawing functions should not be called for assemblies, but rather for their content");
 
 
  556   Error(
"SetPoints", 
"Drawing functions should not be called for assemblies, but rather for their content");
 
 
float Float_t
Float 4 bytes (float)
 
const char Option_t
Option string (const char)
 
static void indent(ostringstream &buf, int indent_level)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
 
R__EXTERN TGeoManager * gGeoManager
 
Generic 3D primitive description class.
 
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
Compute distance from outside point to surface of the box.
 
void InspectShape() const override
Prints shape parameters.
 
Bool_t Contains(const Double_t *point) const override
Test if point is inside this shape.
 
TGeoNavigator * GetCurrentNavigator() const
Returns current navigator for the calling thread.
 
static Int_t GetVerboseLevel()
Set verbosity level (static function).
 
Geometrical transformation package.
 
Class providing navigation API for TGeo geometries.
 
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
 
TGeoVolume * GetVolume() const
 
virtual TGeoMatrix * GetMatrix() const =0
 
virtual void LocalToMasterVect(const Double_t *local, Double_t *master) const
Convert a vector from local reference system to mother reference.
 
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
Convert the point coordinates from local reference system to mother reference.
 
virtual void MasterToLocal(const Double_t *master, Double_t *local) const
Convert the point coordinates from mother reference to local reference system.
 
virtual void MasterToLocalVect(const Double_t *master, Double_t *local) const
Convert a vector from mother reference to local reference system.
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
computes the closest distance from given point to this shape
 
The shape encapsulating an assembly (union) of volumes.
 
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
compute distance from outside point to surface of the hyperboloid.
 
~TGeoShapeAssembly() override
destructor
 
void SetPoints(Double_t *points) const override
No mesh for assemblies.
 
void InspectShape() const override
print shape parameters
 
TGeoShapeAssembly()
Default constructor.
 
TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const override
in case shape has some negative parameters, these has to be computed in order to fit the mother
 
void ComputeBBox() override
Compute bounding box of the assembly.
 
void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const override
Compute distance from array of input points having directions specified by dirs. Store output in dist...
 
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
compute closest distance from point px,py to each vertex. Should not be called.
 
TGeoVolumeAssembly * fVolume
 
void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const override
Check the inside status for each of the points in the array.
 
void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const override
Compute safe distance from each of the points in the input array.
 
void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const override
Compute normal to closest surface from POINT. Should not be called.
 
void RecomputeBoxLast()
Recompute bounding box of the assembly after adding a node.
 
Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=nullptr) const override
Compute distance from inside point to surface of the hyperboloid.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a primitive as a C++ statement(s) on output stream "out".
 
Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const override
computes the closest distance from given point to this shape, according to option.
 
Bool_t Contains(const Double_t *point) const override
Test if point is inside the assembly.
 
void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const override
Compute distance from array of input points having directions specified by dirs. Store output in dist...
 
void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize) override
Compute the normal for an array o points so that norm.dot.dir is positive Input: Arrays of point coor...
 
TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step) override
Cannot divide assemblies.
 
void SetSegsAndPols(TBuffer3D &buff) const override
Fill TBuffer3D structure for segments and polygons.
 
void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const override
Returns numbers of vertices, segments and polygons composing the shape mesh.
 
Base abstract class for all shapes.
 
static Bool_t IsSameWithinTolerance(Double_t a, Double_t b)
Check if two numbers differ with less than a tolerance.
 
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const =0
 
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm) const =0
 
virtual 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 =0
 
const char * GetName() const override
Get the shape name.
 
virtual void ComputeBBox()=0
 
virtual Bool_t Contains(const Double_t *point) const =0
 
Int_t GetNextNodeIndex() const override
 
void SetNextNodeIndex(Int_t index)
 
Int_t GetCurrentNodeIndex() const override
 
void SetCurrentNodeIndex(Int_t index)
 
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
 
Int_t GetNdaughters() const
 
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
 
TGeoVoxelFinder * GetVoxels() const
Getter for optimization structure.
 
TGeoShape * GetShape() const
 
virtual Int_t GetCurrentNodeIndex() const
 
virtual Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.
 
Finder class handling voxels.
 
const char * GetName() const override
Returns name of object.
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
 
Statefull info for the current geometry level.