86 Error(
"ctor",
"path not valid");
107 fMatrices(gpn.fMatrices),
109 fMatrixOrig(gpn.fMatrixOrig)
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");
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");
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 void Print(Option_t *option="") const
Print info about this node.
virtual void Voxelize(Option_t *option="")
Voxelize attached volume according to option If the volume is an assembly, make sure the bbox is comp...
TGeoVolume * GetVolume() const
void SetAligned(Bool_t flag=kTRUE)
TGeoHMatrix * GetMatrix(Int_t level=-1) const
Return global matrix for node at LEVEL.
TGeoPhysicalNode & operator=(const TGeoPhysicalNode &)
assignment operator
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
TGeoHMatrix * GetCurrentMatrix() const
void Multiply(const TGeoMatrix *right)
multiply to the right with an other transformation if right is identity matrix, just return ...
TGeoHMatrix * fMatrixOrig
virtual TGeoNode * MakeCopyNode() const
TGeoHMatrix * fGlobalOrig
virtual TGeoBoolNode * MakeClone() const =0
void Refresh()
Refresh this physical node.
Int_t GetNdaughters() const
Int_t PushPath(Int_t startlevel=0)
const char * Data() const
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
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 * GetRightMatrix() const
Bool_t IsOverlapping() const
TGeoNode * GetTopNode() const
The TNamed class is the base class for all named ROOT classes.
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.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Bool_t CheckPath(const char *path) const
Check if a geometry path is valid without changing the state of the current navigator.
TObject * UncheckedAt(Int_t i) const
void SetShape(const TGeoShape *shape)
set the shape associated with this volume
ClassImp(TGeoPhysicalNode) TGeoPhysicalNode
Default constructor.
virtual TGeoVolume * CloneVolume() const
Clone this volume.
void SetNeedRebuild(Bool_t flag=kTRUE)
TNamed & operator=(const TNamed &rhs)
TNamed assignment operator.
Int_t GetIndex(const TGeoNode *node) const
get index number for a given daughter
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 Bool_t IsAssembly() const
Returns true if the volume is an assembly or a scaled assembly.
virtual TObject * RemoveAt(Int_t idx)
Remove object at index idx.
TGeoVolume * GetVolume(Int_t level=-1) const
Return volume associated with node at LEVEL in the branch.
void SetMatrix(const TGeoMatrix *matrix)
Matrix setter.
Bool_t TestBit(UInt_t f) const
TGeoBoolNode * GetBoolNode() const
virtual void RegisterYourself()
Register the matrix in the current manager, which will become the owner.
virtual const char * GetName() const
Returns name of object.
TGeoNodeCache * GetCache() const
void Draw(Option_t *option="")
Draw this node.
TGeoMatrix * GetLeftMatrix() const
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.
TGeoNode * GetMother(Int_t levup=1) const
Return parent at LEVUP generation.
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
virtual void AddAt(TObject *obj, Int_t idx)
Add object at position ids.
virtual const char * GetName() const
Get the shape name.
TGeoNodeCache * GetCache() const
TGeoNode * GetNode(Int_t level=-1) const
Return node in branch at LEVEL. If not specified, return last leaf.
virtual Bool_t cd(const char *path="")
Browse the tree of nodes starting from fTopNode according to pathname.
TGeoShape * GetShape() const
R__EXTERN TGeoManager * gGeoManager
TGeoVoxelFinder * GetVoxels() const
Getter for optimization structure.
virtual Bool_t IsComposite() const
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
void CdTop()
Make top level node the current node.
void SetIsVolAtt(Bool_t flag=kTRUE)
Bool_t IsRegistered() const
void Print(Option_t *option="") const
print the matrix in 4x4 format
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 * GetMatrices() const
void SetVisibleFull(Bool_t flag=kTRUE)
TObjArray * GetListOfGShapes() const
TGeoVolume * GetMotherVolume() const
void FindOverlaps() const
loop all nodes marked as overlaps and find overlaping brothers
TObject * At(Int_t idx) const
TGeoShape * GetShape(Int_t level=-1) const
Return shape associated with volume.
void SetBranchAsState()
Set node branch according to current state.
TVirtualGeoPainter * GetGeomPainter()
Make a default painter if none present. Returns pointer to it.
Bool_t IsMatchingState(TGeoNavigator *nav) const
Checks if a given navigator state matches this physical node.
const TGeoHMatrix * fMatrix
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.