97 Error(
"ctor",
"path not valid");
166 if (!newmat && !newshape)
return kFALSE;
168 Error(
"Align",
"Not performed. Geometry in LOCKED mode !");
172 Error(
"Align",
"Cannot align using gGeoIdentity. Use some default matrix constructor to represent identities.");
177 Error(
"Align",
"Cannot align division nodes: %s\n",node->
GetName());
188 for (i=0; i<
fLevel; i++) {
199 for (i=0; i<
fLevel; i++) {
216 Fatal(
"Align",
"Cannot make copy node for %s", node->
GetName());
250 for (i=0; i<nd; i++) {
252 if (node==nnode)
continue;
270 Error(
"Align",
"Cannot clone node %s", node->
GetName());
282 if (!shared)
Error(
"Align",
"The matrix replaced for %s is not actually shared",
GetName());
289 Error(
"Align",
"The composite shape having a shared matrix on the subtracted branch must be positioned using identity matrix.");
317 if (newshape) vd->
SetShape(newshape);
320 for (i=
fLevel-1; i>0; i--) {
342 if (!node)
return kTRUE;
344 Info(
"Align",
"The check for overlaps for node: \n%s\n cannot be performed since the node is declared possibly overlapping",
353 Info(
"Align",
"The check for overlaps for assembly node: \n%s\n cannot be performed since the parent %s is declared possibly overlapping",
398 if (level>
fLevel)
return 0;
408 if (level>
fLevel)
return 0;
438 if (!painter)
return;
450 printf(
" local matrix:\n");
453 printf(
" global matrix:\n");
454 if (
GetMatrix(i)->IsIdentity()) printf(
" IDENTITY\n");
458 printf(
" original local matrix:\n");
479 Error(
"SetBranchAsState",
"no state available");
483 Error(
"SetBranchAsState",
"not implemented for full cache");
497 *current = *matrices[i];
528 Error(
"SetPath",
"wrong path -> maybe RestoreMasterVolume");
542 Fatal(
"SetBranchAsState",
"no state available");
570 TString errmsg(
"Cannot define a physical node link without a closed geometry and a valid path !");
599 Warning(
"SetPhysicalNode",
"Physical node changed for entry %s",
GetName());
void SetPhysicalNode(TGeoPhysicalNode *node)
Setter for the corresponding physical node.
virtual TGeoVolume * CloneVolume() const
Clone this volume.
virtual const char * GetName() const
Returns name of object.
A node containing local transformation.
void Print(Option_t *option="") const
print the matrix in 4x4 format
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
virtual TGeoNode * MakeCopyNode() const
virtual void Voxelize(Option_t *option="")
Voxelize attached volume according to option If the volume is an assembly, make sure the bbox is comp...
TGeoPhysicalNode()
Default constructor.
void SetAligned(Bool_t flag=kTRUE)
TGeoNode * GetMother(Int_t levup=1) const
Return parent at LEVUP generation.
TGeoPhysicalNode & operator=(const TGeoPhysicalNode &)
assignment operator
Bool_t IsOverlapping() const
Geometrical transformation package.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
TGeoNodeCache * GetCache() const
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
void * GetMatrices() const
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) 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 ...
TGeoNodeCache * GetCache() const
TGeoHMatrix * fMatrixOrig
TObject * At(Int_t idx) const
TGeoNode * GetNode(Int_t level=-1) const
Return node in branch at LEVEL. If not specified, return last leaf.
TGeoHMatrix * fGlobalOrig
The shape encapsulating an assembly (union) of volumes.
virtual TGeoBoolNode * MakeClone() const =0
void Refresh()
Refresh this physical node.
TGeoVoxelFinder * GetVoxels() const
Getter for optimization structure.
TGeoVolume * GetMotherVolume() const
Int_t PushPath(Int_t startlevel=0)
Int_t GetNdaughters() const
void SetMatrixOrig(const TGeoMatrix *local)
Allows PN entries (or users) to preset the local original matrix for the last node pointed by the pat...
TGeoMatrix * GetLeftMatrix() const
The TNamed class is the base class for all named ROOT classes.
TGeoHMatrix * GetMatrix(Int_t level=-1) const
Return global matrix for node at LEVEL.
static Bool_t IsLocked()
Check lock state.
virtual void Paint(Option_t *option="")
Paint this node and its content according to visualization settings.
Bool_t SetPath(const char *path)
Specify the path for this node.
Bool_t IsIdentity() const
void SetVisibility(Bool_t flag=kTRUE)
virtual TGeoMatrix * GetMatrix() const =0
virtual ~TGeoPNEntry()
Destructor.
Special pool of reusable nodes.
The knowledge of the path to the objects that need to be misaligned is essential since there is no ot...
Physical nodes are the actual 'touchable' objects in the geometry, representing a path of positioned ...
void SetShape(const TGeoShape *shape)
set the shape associated with this volume
Class handling Boolean composition of shapes.
virtual const char * GetName() const
Get the shape name.
void SetNeedRebuild(Bool_t flag=kTRUE)
TNamed & operator=(const TNamed &rhs)
TNamed assignment operator.
Base abstract class for all shapes.
void CheckOverlaps(Double_t ovlp=0.1, Option_t *option="")
Check overlaps bigger than OVLP hierarchically, starting with this node.
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
void SetMotherVolume(TGeoVolume *mother)
void SetMatrix(const TGeoHMatrix *matrix)
Set the additional matrix for this node entry.
void Clear(Option_t *option="")
clear the data for this matrix
virtual ~TGeoPhysicalNode()
Destructor.
virtual TObject * RemoveAt(Int_t idx)
Remove object at index idx.
Int_t GetIndex(const TGeoNode *node) const
get index number for a given daughter
virtual Bool_t IsComposite() const
void SetMatrix(const TGeoMatrix *matrix)
Matrix setter.
Bool_t IsRegistered() const
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TGeoHMatrix * GetCurrentMatrix() const
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
Bool_t CheckPath(const char *path) const
Check if a geometry path is valid without changing the state of the current navigator.
TGeoNode * GetTopNode() const
void Draw(Option_t *option="")
Draw this node.
Bool_t ReplaceMatrix(TGeoMatrix *mat, TGeoMatrix *newmat)
Replace one of the matrices.
void SetCheckedNode(TGeoNode *node)
Assign a given node to be checked for overlaps. Any other overlaps will be ignored.
virtual void AddAt(TObject *obj, Int_t idx)
Add object at position ids.
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
TGeoPNEntry()
Default constructor.
TObject * UncheckedAt(Int_t i) const
R__EXTERN TGeoManager * gGeoManager
TGeoVolume * GetVolume(Int_t level=-1) const
Return volume associated with node at LEVEL in the branch.
void CdTop()
Make top level node the current node.
void SetIsVolAtt(Bool_t flag=kTRUE)
Finder class handling voxels.
TGeoMatrix * GetRightMatrix() const
void SetVolume(TGeoVolume *volume)
Binding & operator=(OUT(*fun)(void))
Class providing navigation API for TGeo geometries.
Bool_t Align(TGeoMatrix *newmat=0, TGeoShape *newshape=0, Bool_t check=kFALSE, Double_t ovlp=0.001)
Align a physical node with a new relative matrix/shape.
Abstract class for geometry painters.
A node represent a volume positioned inside another.They store links to both volumes and to the TGeoM...
R__EXTERN TGeoIdentity * gGeoIdentity
void SetVisibleFull(Bool_t flag=kTRUE)
Bool_t IsMatchingState(TGeoNavigator *nav) const
Checks if a given navigator state matches this physical node.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
void FindOverlaps() const
loop all nodes marked as overlaps and find overlapping brothers
TGeoShape * GetShape() const
void SetBranchAsState()
Set node branch according to current state.
TGeoShape * GetShape(Int_t level=-1) const
Return shape associated with volume.
TGeoBoolNode * GetBoolNode() const
TVirtualGeoPainter * GetGeomPainter()
Make a default painter if none present. Returns pointer to it.
TGeoVolume * GetVolume() const
virtual void Print(Option_t *option="") const
Print info about this node.
TObjArray * GetListOfGShapes() const
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
const TGeoHMatrix * fMatrix
const char * Data() const
virtual Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.