94 Error(
"ctor",
"path not valid");
136 if (!newmat && !newshape)
139 Error(
"Align",
"Not performed. Geometry in LOCKED mode !");
143 Error(
"Align",
"Cannot align using gGeoIdentity. Use some default matrix constructor to represent identities.");
148 Error(
"Align",
"Cannot align division nodes: %s\n", node->
GetName());
159 for (i = 0; i <
fLevel; i++) {
170 for (i = 0; i <
fLevel; i++) {
187 Fatal(
"Align",
"Cannot make copy node for %s", node->
GetName());
200 fNodes->AddAt(nnode, i + 1);
226 for (i = 0; i < nd; i++) {
250 Error(
"Align",
"Cannot clone node %s", node->
GetName());
263 Error(
"Align",
"The matrix replaced for %s is not actually shared",
GetName());
270 Error(
"Align",
"The composite shape having a shared matrix on the subtracted branch must be "
271 "positioned using identity matrix.");
304 for (i =
fLevel - 1; i > 0; i--) {
335 "The check for overlaps for node: \n%s\n cannot be performed since the node is declared possibly "
341 while ((node =
GetNode(--i))) {
347 "The check for overlaps for assembly node: \n%s\n cannot be performed since the parent %s is declared "
348 "possibly overlapping",
453 printf(
" local matrix:\n");
455 printf(
" IDENTITY\n");
458 printf(
" global matrix:\n");
460 printf(
" IDENTITY\n");
465 printf(
" original local matrix:\n");
486 Error(
"SetBranchAsState",
"no state available");
490 Error(
"SetBranchAsState",
"not implemented for full cache");
504 fNodes->AddAtAndExpand(branch[i], i);
506 *current = *matrices[i];
512 fNodes->AddAtAndExpand(branch[i], i);
542 Error(
"SetPath",
"wrong path -> maybe RestoreMasterVolume");
556 Fatal(
"SetBranchAsState",
"no state available");
567 if (
fNodes->At(i) != branch[i])
589 TString errmsg(
"Cannot define a physical node link without a closed geometry and a valid path !");
590 Error(
"ctor",
"%s", errmsg.Data());
619 Warning(
"SetPhysicalNode",
"Physical node changed for entry %s",
GetName());
int Int_t
Signed integer 4 bytes (int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char).
externTGeoManager * gGeoManager
externTGeoIdentity * gGeoIdentity
Bool_t ReplaceMatrix(TGeoMatrix *mat, TGeoMatrix *newmat)
Replace one of the matrices.
TGeoMatrix * GetRightMatrix() const
TGeoMatrix * GetLeftMatrix() const
virtual TGeoBoolNode * MakeClone() const =0
Composite shapes are Boolean combinations of two or more shape components.
TGeoBoolNode * GetBoolNode() const
Matrix class used for computing global transformations Should NOT be used for node definition.
void Multiply(const TGeoMatrix *right)
multiply to the right with an other transformation if right is identity matrix, just return
static Bool_t IsLocked()
Check lock state.
Geometrical transformation package.
void Print(Option_t *option="") const override
print the matrix in 4x4 format
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
Bool_t IsIdentity() const
Bool_t IsRegistered() const
Class providing navigation API for TGeo geometries.
TGeoNodeCache * GetCache() const
Special pool of reusable nodes.
void * GetMatrices() const
A node containing local transformation.
void SetMatrix(const TGeoMatrix *matrix)
Matrix setter.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
Bool_t IsOverlapping() const
TGeoVolume * GetVolume() const
void SetVolume(TGeoVolume *volume)
virtual TGeoMatrix * GetMatrix() const =0
void SetMotherVolume(TGeoVolume *mother)
virtual TGeoNode * MakeCopyNode() const
TGeoVolume * GetMotherVolume() const
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check overlaps bigger than OVLP hierarchically, starting with this node.
const TGeoHMatrix * fMatrix
~TGeoPNEntry() override
Destructor.
void SetPhysicalNode(TGeoPhysicalNode *node)
Setter for the corresponding physical node.
TGeoHMatrix * fGlobalOrig
TGeoPNEntry()
Default constructor.
void SetMatrix(const TGeoHMatrix *matrix)
Set the additional matrix for this node entry.
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
void SetBranchAsState()
Set node branch according to current state.
TGeoNode * GetMother(Int_t levup=1) const
Return parent at LEVUP generation.
TGeoNode * GetNode(Int_t level=-1) const
Return node in branch at LEVEL. If not specified, return last leaf.
void Refresh()
Refresh this physical node.
Bool_t SetPath(const char *path)
Specify the path for this node.
void SetVisibility(Bool_t flag=kTRUE)
TGeoPhysicalNode()
Default constructor.
void SetAligned(Bool_t flag=kTRUE)
void Paint(Option_t *option="") override
Paint this node and its content according to visualization settings.
void Print(Option_t *option="") const override
Print info about this node.
~TGeoPhysicalNode() override
Destructor.
void SetVisibleFull(Bool_t flag=kTRUE)
Bool_t IsMatchingState(TGeoNavigator *nav) const
Checks if a given navigator state matches this physical node.
void SetMatrixOrig(const TGeoMatrix *local)
Allows PN entries (or users) to preset the local original matrix for the last node pointed by the pat...
TGeoHMatrix * GetMatrix(Int_t level=-1) const
Return global matrix for node at LEVEL.
void Draw(Option_t *option="") override
Draw this node.
TGeoHMatrix * fMatrixOrig
Bool_t Align(TGeoMatrix *newmat=nullptr, TGeoShape *newshape=nullptr, Bool_t check=kFALSE, Double_t ovlp=0.001)
Align a physical node with a new relative matrix/shape.
TGeoVolume * GetVolume(Int_t level=-1) const
Return volume associated with node at LEVEL in the branch.
void SetIsVolAtt(Bool_t flag=kTRUE)
TGeoShape * GetShape(Int_t level=-1) const
Return shape associated with volume.
The shape encapsulating an assembly (union) of volumes.
Base abstract class for all shapes.
virtual Bool_t IsComposite() const
const char * GetName() const override
Get the shape name.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
virtual TGeoVolume * CloneVolume() const
Clone this volume.
Int_t GetNdaughters() const
void FindOverlaps() const
loop all nodes marked as overlaps and find overlapping brothers
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
Int_t GetIndex(const TGeoNode *node) const
get index number for a given daughter
TGeoVoxelFinder * GetVoxels() const
Getter for optimization structure.
void SetShape(const TGeoShape *shape)
set the shape associated with this volume
TGeoShape * GetShape() const
virtual Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.
Finder class handling voxels.
void SetNeedRebuild(Bool_t flag=kTRUE)
virtual void Voxelize(Option_t *option="")
Voxelize attached volume according to option If the volume is an assembly, make sure the bbox is comp...
const char * GetName() const override
Returns name of object.
void AddAt(TObject *obj, Int_t idx) override
Add object at position ids.
TObject * RemoveAt(Int_t idx) override
Remove object at index idx.
Bool_t TestBit(UInt_t f) const
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.
Abstract class for geometry painters.