86 Error(
"ctor",
"path not valid");
155 if (!newmat && !newshape)
return kFALSE;
157 Error(
"Align",
"Not performed. Geometry in LOCKED mode !");
161 Error(
"Align",
"Cannot align using gGeoIdentity. Use some default matrix constructor to represent identities.");
166 Error(
"Align",
"Cannot align division nodes: %s\n",node->
GetName());
177 for (i=0; i<
fLevel; i++) {
188 for (i=0; i<
fLevel; i++) {
205 Fatal(
"Align",
"Cannot make copy node for %s", node->
GetName());
239 for (i=0; i<nd; i++) {
241 if (node==nnode)
continue;
259 Error(
"Align",
"Cannot clone node %s", node->
GetName());
271 if (!shared)
Error(
"Align",
"The matrix replaced for %s is not actually shared",
GetName());
278 Error(
"Align",
"The composite shape having a shared matrix on the subtracted branch must be positioned using identity matrix.");
306 if (newshape) vd->
SetShape(newshape);
309 for (i=
fLevel-1; i>0; i--) {
331 if (!node)
return kTRUE;
333 Info(
"Align",
"The check for overlaps for node: \n%s\n cannot be performed since the node is declared possibly overlapping",
342 Info(
"Align",
"The check for overlaps for assembly node: \n%s\n cannot be performed since the parent %s is declared possibly overlapping",
387 if (level>
fLevel)
return 0;
397 if (level>
fLevel)
return 0;
427 if (!painter)
return;
439 printf(
" local matrix:\n");
442 printf(
" global matrix:\n");
443 if (
GetMatrix(i)->IsIdentity()) printf(
" IDENTITY\n");
447 printf(
" original local matrix:\n");
468 Error(
"SetBranchAsState",
"no state available");
472 Error(
"SetBranchAsState",
"not implemented for full cache");
486 *current = *matrices[i];
517 Error(
"SetPath",
"wrong path -> maybe RestoreMasterVolume");
531 Fatal(
"SetBranchAsState",
"no state available");
545 TGeoPNEntry::TGeoPNEntry()
559 TString errmsg(
"Cannot define a physical node link without a closed geometry and a valid path !");
588 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.
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
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
Bool_t TestBit(UInt_t f) const
void * GetMatrices() const
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
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.
void SetShape(const TGeoShape *shape)
set the shape associated with this volume
virtual const char * GetName() const
Get the shape name.
void SetNeedRebuild(Bool_t flag=kTRUE)
TNamed & operator=(const TNamed &rhs)
TNamed assignment operator.
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 ovelaps. 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)
TGeoMatrix * GetRightMatrix() const
void SetVolume(TGeoVolume *volume)
Binding & operator=(OUT(*fun)(void))
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.
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 overlaping 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.