TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Volumes are the basic objects used in building the geometrical hierarchy. They represent unpositioned objects but store all information about the placement of the other volumes they may contain. Therefore a volume can be replicated several times in the geometry. In order to create a volume, one has to put together a shape and a medium which are already defined. Volumes have to be named by users at creation time. Every different name may represent a an unique volume object, but may also represent more general a family (class) of volume objects having the same shape type and medium, but possibly different shape parameters. It is the user's task to provide different names for different volume families in order to avoid ambiguities at tracking time. A generic family rather than a single volume is created only in two cases : when a generic shape is provided to the volume constructor or when a division operation is applied. Each volume in the geometry stores an unique ID corresponding to its family. In order to ease-up their creation, the manager class is providing an API that allows making a shape and a volume in a single step.
Volumes are objects that can be visualized, therefore having visibility, colour, line and fill attributes that can be defined or modified any time after the volume creation. It is advisable however to define these properties just after the first creation of a volume namespace, since in case of volume families any new member created by the modeler inherits these properties.
In order to provide navigation features, volumes have to be able to find the proper container of any point defined in the local reference frame. This can be the volume itself, one of its positioned daughter volumes or none if the point is actually outside. On the other hand, volumes have to provide also other navigation methods such as finding the distances to its shape boundaries or which daughter will be crossed first. The implementation of these features is done at shape level, but the local mother-daughters management is handled by volumes that builds additional optimisation structures upon geometry closure. In order to have navigation features properly working one has to follow the general rules for building a valid geometry (see TGeoManager class).
Now let's make a simple volume representing a copper wire. We suppose that a medium is already created (see TGeoMedium class on how to create media). We will create a TUBE shape for our wire, having Rmin=0cm, Rmax=0.01cm and a half-length dZ=1cm :
One may omit the name for the shape if no retrieving by name is further needed during geometry building. The same shape can be shared by different volumes having different names and materials. Now let's make the volume for our wire. The prototype for volumes constructor looks like :
TGeoVolume::TGeoVolume(const char *name, TGeoShape *shape, TGeoMedium *med)
Since TGeoTube derives from the base shape class, we can provide it to the volume constructor :
Do not bother to delete neither the media, shapes or volumes that you have created since all will be automatically cleaned on exit by the manager class. If we would have taken a look inside TGeoManager::MakeTube() method, we would have been able to create our wire with a single line :
The same applies for all primitive shapes, for which there can be found corresponding MakeSHAPE() methods. Their usage is much more convenient unless a shape has to be shared between more volumes. Let's make now an aluminium wire having the same shape, supposing that we have created the copper wire with the line above :
Now that we have learned how to create elementary volumes, let's see how we can create a geometrical hierarchy.
When creating a volume one does not specify if this will contain or not other volumes. Adding daughters to a volume implies creating those and adding them one by one to the list of daughters. Since the volume has to know the position of all its daughters, we will have to supply at the same time a geometrical transformation with respect to its local reference frame for each of them. The objects referencing a volume and a transformation are called NODES and their creation is fully handled by the modeler. They represent the link elements in the hierarchy of volumes. Nodes are unique and distinct geometrical objects ONLY from their container point of view. Since volumes can be replicated in the geometry, the same node may be found on different branches.
An important observation is that volume objects are owned by the TGeoManager class. This stores a list of all volumes in the geometry, that is cleaned upon destruction.
Let's consider positioning now our wire in the middle of a gas chamber. We need first to define the gas chamber :
Now we can put the wire inside :
If we inspect now the chamber volume in a browser, we will notice that it has one daughter. Of course the gas has some container also, but let's keep it like that for the sake of simplicity. The full prototype of AddNode() is :
Since we did not supplied the third argument, the wire will be positioned with an identity transformation inside the chamber. One will notice that the inner radii of the wire and chamber are both zero - therefore, aren't the two volumes overlapping ? The answer is no, the modeler is even relaying on the fact that any daughter is fully contained by its mother. On the other hand, neither of the nodes positioned inside a volume should overlap with each other. We will see that there are allowed some exceptions to those rules.
Positioning volumes that does not overlap their neighbours nor extrude their container is sometimes quite strong constraint. Some parts of the geometry might overlap naturally, e.g. two crossing tubes. The modeller supports such cases only if the overlapping nodes are declared by the user. In order to do that, one should use TGeoVolume::AddNodeOverlap() instead of TGeoVolume::AddNode(). When 2 or more positioned volumes are overlapping, not all of them have to be declared so, but at least one. A point inside an overlapping region equally belongs to all overlapping nodes, but the way these are defined can enforce the modeler to give priorities. The general rule is that the deepest node in the hierarchy containing a point have the highest priority. For the same geometry level, non-overlapping is prioritised over overlapping. In order to illustrate this, we will consider few examples. We will designate non-overlapping nodes as ONLY and the others MANY as in GEANT3, where this concept was introduced:
One needs to know that navigation inside geometry parts MANY nodes is much slower. Any overlapping part can be defined based on composite shapes - this is always recommended.
What can we do if our chamber contains two identical wires instead of one ? What if then we would need 1000 chambers in our detector ? Should we create 2000 wires and 1000 chamber volumes ? No, we will just need to replicate the ones that we have already created.
The 2 nodes that we have created inside chamber will both point to a wire_co object, but will be completely distinct : WIRE_CO_1 and WIRE_CO_2. We will want now to place symmetrically 1000 chambers on a pad, following a pattern of 20 rows and 50 columns. One way to do this will be to replicate our chamber by positioning it 1000 times in different positions of the pad. Unfortunately, this is far from being the optimal way of doing what we want. Imagine that we would like to find out which of the 1000 chambers is containing a (x,y,z) point defined in the pad reference. You will never have to do that, since the modeller will take care of it for you, but let's guess what it has to do. The most simple algorithm will just loop over all daughters, convert the point from mother to local reference and check if the current chamber contains the point or not. This might be efficient for pads with few chambers, but definitely not for 1000. Fortunately the modeler is smarter than that and create for each volume some optimization structures called voxels (see Voxelization) to minimize the penalty having too many daughters, but if you have 100 pads like this in your geometry you will anyway loose a lot in your tracking performance.
The way out when volumes can be arranged according to simple patterns is the usage of divisions. We will describe them in detail later on. Let's think now at a different situation : instead of 1000 chambers of the same type, we may have several types of chambers. Let's say all chambers are cylindrical and have a wire inside, but their dimensions are different. However, we would like all to be represented by a single volume family, since they have the same properties.
Definition at line 44 of file TGeoVolume.h.
Public Types | |
enum | EGeoVolumeTypes { kVolumeReplicated = (1ULL << ( 14 )) , kVolumeSelected = (1ULL << ( 15 )) , kVolumeDiv = (1ULL << ( 16 )) , kVolumeOverlap = (1ULL << ( 17 )) , kVolumeImportNodes = (1ULL << ( 18 )) , kVolumeMulti = (1ULL << ( 19 )) , kVoxelsXYZ = (1ULL << ( 20 )) , kVoxelsCyl = (1ULL << ( 21 )) , kVolumeClone = (1ULL << ( 22 )) , kVolumeAdded = (1ULL << ( 23 )) , kVolumeOC = (1ULL << ( 21 )) } |
Public Types inherited from TObject | |
enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
Public Types inherited from TGeoAtt | |
enum | { kBitMask = 0x00ffffff } |
enum | EGeoActivityAtt { kActOverride = (1ULL << ( 8 )) , kActNone = (1ULL << ( 9 )) , kActThis = (1ULL << ( 10 )) , kActDaughters = (1ULL << ( 11 )) } |
enum | EGeoOptimizationAtt { kUseBoundingBox = (1ULL << ( 16 )) , kUseVoxels = (1ULL << ( 17 )) , kUseGsord = (1ULL << ( 18 )) } |
enum | EGeoSavePrimitiveAtt { kSavePrimitiveAtt = (1ULL << ( 19 )) , kSaveNodesAtt = (1ULL << ( 20 )) } |
enum | EGeoVisibilityAtt { kVisOverride = (1ULL << ( 0 )) , kVisNone = (1ULL << ( 1 )) , kVisThis = (1ULL << ( 2 )) , kVisDaughters = (1ULL << ( 3 )) , kVisOneLevel = (1ULL << ( 4 )) , kVisStreamed = (1ULL << ( 5 )) , kVisTouched = (1ULL << ( 6 )) , kVisOnScreen = (1ULL << ( 7 )) , kVisContainers = (1ULL << ( 12 )) , kVisOnly = (1ULL << ( 13 )) , kVisBranch = (1ULL << ( 14 )) , kVisRaytrace = (1ULL << ( 15 )) } |
Public Member Functions | |
TGeoVolume () | |
dummy constructor | |
TGeoVolume (const char *name, const TGeoShape *shape, const TGeoMedium *med=nullptr) | |
default constructor | |
virtual | ~TGeoVolume () |
Destructor. | |
virtual TGeoNode * | AddNode (TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="") |
Add a TGeoNode to the list of nodes. | |
void | AddNodeOffset (TGeoVolume *vol, Int_t copy_no, Double_t offset=0, Option_t *option="") |
Add a division node to the list of nodes. | |
virtual void | AddNodeOverlap (TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="") |
Add a TGeoNode to the list of nodes. | |
void | Browse (TBrowser *b) |
How to browse a volume. | |
Double_t | Capacity () const |
Computes the capacity of this [cm^3] as the capacity of its shape. | |
virtual void | cd (Int_t inode) const |
Actualize matrix of node indexed <inode> | |
void | CheckGeometry (Int_t nrays=1, Double_t startx=0, Double_t starty=0, Double_t startz=0) const |
Shoot nrays with random directions from starting point (startx, starty, startz) in the reference frame of this volume. | |
void | CheckOverlaps (Double_t ovlp=0.1, Option_t *option="") const |
Overlap checking tool. | |
void | CheckShape (Int_t testNo, Int_t nsamples=10000, Option_t *option="") |
Tests for checking the shape navigation algorithms. See TGeoShape::CheckShape() | |
void | CheckShapes () |
check for negative parameters in shapes. | |
void | CleanAll () |
Clean data of the volume. | |
void | ClearNodes () |
void | ClearShape () |
Clear the shape of this volume from the list held by the current manager. | |
virtual void | ClearThreadData () const |
void | CloneNodesAndConnect (TGeoVolume *newmother) const |
Clone the array of nodes. | |
virtual TGeoVolume * | CloneVolume () const |
Clone this volume. | |
Bool_t | Contains (const Double_t *point) const |
Int_t | CountNodes (Int_t nlevels=1000, Int_t option=0) |
Count total number of subnodes starting from this volume, nlevels down. | |
virtual void | CreateThreadData (Int_t nthreads) |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
compute the closest distance of approach from point px,py to this volume | |
virtual TGeoVolume * | Divide (const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step, Int_t numed=0, Option_t *option="") |
Division a la G3. | |
virtual void | Draw (Option_t *option="") |
draw top volume according to option | |
virtual void | DrawOnly (Option_t *option="") |
draw only this volume | |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
Execute mouse actions on this volume. | |
Int_t | Export (const char *filename, const char *name="", Option_t *option="") |
Export this volume to a file. | |
Bool_t | FindMatrixOfDaughterVolume (TGeoVolume *vol) const |
Find a daughter node having VOL as volume and fill TGeoManager::fHMatrix with its global matrix. | |
TGeoNode * | FindNode (const char *name) const |
search a daughter inside the list of nodes | |
void | FindOverlaps () const |
loop all nodes marked as overlaps and find overlapping brothers | |
virtual Int_t | GetByteCount () const |
get the total size in bytes for this volume | |
virtual Int_t | GetCurrentNodeIndex () const |
TObject * | GetField () const |
TGeoPatternFinder * | GetFinder () const |
TGeoExtension * | GetFWExtension () const |
TGeoManager * | GetGeoManager () const |
const char * | GetIconName () const |
Returns mime type name of object. | |
Int_t | GetIndex (const TGeoNode *node) const |
get index number for a given daughter | |
TGeoMaterial * | GetMaterial () const |
TGeoMedium * | GetMedium () const |
Int_t | GetNdaughters () const |
virtual Int_t | GetNextNodeIndex () const |
TGeoNode * | GetNode (const char *name) const |
get the pointer to a daughter node | |
TGeoNode * | GetNode (Int_t i) const |
Int_t | GetNodeIndex (const TGeoNode *node, Int_t *check_list, Int_t ncheck) const |
Get the index of a daughter within check_list by providing the node pointer. | |
TObjArray * | GetNodes () |
Int_t | GetNtotal () const |
Int_t | GetNumber () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
Get volume info for the browser. | |
Bool_t | GetOptimalVoxels () const |
Returns true if cylindrical voxelization is optimal. | |
Option_t * | GetOption () const |
const char * | GetPointerName () const |
Provide a pointer name containing uid. | |
Int_t | GetRefCount () const |
TGeoShape * | GetShape () const |
Char_t | GetTransparency () const |
TGeoExtension * | GetUserExtension () const |
TGeoVoxelFinder * | GetVoxels () const |
Getter for optimization structure. | |
void | Grab () |
void | GrabFocus () |
Move perspective view focus to this volume. | |
TGeoExtension * | GrabFWExtension () const |
Get a copy of the framework extension pointer. | |
TGeoExtension * | GrabUserExtension () const |
Get a copy of the user extension pointer. | |
void | Gsord (Int_t) |
void | InspectMaterial () const |
Inspect the material for this volume. | |
void | InspectShape () const |
void | InvisibleAll (Bool_t flag=kTRUE) |
Make volume and each of it daughters (in)visible. | |
virtual TClass * | IsA () const |
Bool_t | IsActive () const |
Bool_t | IsActiveDaughters () const |
Bool_t | IsAdded () const |
Bool_t | IsAllInvisible () const |
Return TRUE if volume and all daughters are invisible. | |
virtual Bool_t | IsAssembly () const |
Returns true if the volume is an assembly or a scaled assembly. | |
Bool_t | IsCylVoxels () const |
virtual Bool_t | IsFolder () const |
Return TRUE if volume contains nodes. | |
Bool_t | IsOverlappingCandidate () const |
Bool_t | IsRaytracing () const |
Check if the painter is currently ray-tracing the content of this volume. | |
Bool_t | IsReplicated () const |
Bool_t | IsRunTime () const |
Bool_t | IsSelected () const |
Bool_t | IsStyleDefault () const |
check if the visibility and attributes are the default ones | |
Bool_t | IsTopVolume () const |
True if this is the top volume of the geometry. | |
Bool_t | IsValid () const |
Bool_t | IsVisContainers () const |
virtual Bool_t | IsVisible () const |
Bool_t | IsVisibleDaughters () const |
Bool_t | IsVisLeaves () const |
Bool_t | IsVisOnly () const |
virtual Bool_t | IsVolumeMulti () const |
Bool_t | IsXYZVoxels () const |
TH2F * | LegoPlot (Int_t ntheta=20, Double_t themin=0., Double_t themax=180., Int_t nphi=60, Double_t phimin=0., Double_t phimax=360., Double_t rmin=0., Double_t rmax=9999999, Option_t *option="") |
Generate a lego plot fot the top volume, according to option. | |
void | MakeCopyNodes (const TGeoVolume *other) |
make a new list of nodes and copy all nodes of other volume inside | |
virtual TGeoVolume * | MakeCopyVolume (TGeoShape *newshape) |
make a copy of this volume build a volume with same name, shape and medium | |
TGeoVolume * | MakeReflectedVolume (const char *newname="") const |
Make a copy of this volume which is reflected with respect to XY plane. | |
Bool_t | OptimizeVoxels () |
Perform an extensive sampling to find which type of voxelization is most efficient. | |
virtual void | Paint (Option_t *option="") |
paint volume | |
virtual void | Print (Option_t *option="") const |
Print volume info. | |
void | PrintNodes () const |
print nodes | |
void | PrintVoxels () const |
Print the voxels for this volume. | |
void | RandomPoints (Int_t npoints=1000000, Option_t *option="") |
Draw random points in the bounding box of this volume. | |
void | RandomRays (Int_t nrays=10000, Double_t startx=0, Double_t starty=0, Double_t startz=0, const char *target_vol=nullptr, Bool_t check_norm=kFALSE) |
Random raytracing method. | |
void | Raytrace (Bool_t flag=kTRUE) |
Draw this volume with current settings and perform raytracing in the pad. | |
void | RegisterYourself (Option_t *option="") |
Register the volume and all materials/media/matrices/shapes to the manager. | |
void | Release () |
void | RemoveNode (TGeoNode *node) |
Remove an existing daughter. | |
TGeoNode * | ReplaceNode (TGeoNode *nodeorig, TGeoShape *newshape=nullptr, TGeoMatrix *newpos=nullptr, TGeoMedium *newmed=nullptr) |
Replace an existing daughter with a new volume having the same name but possibly a new shape, position or medium. | |
void | ReplayCreation (const TGeoVolume *other) |
Recreate the content of the other volume without pointer copying. | |
void | SaveAs (const char *filename, Option_t *option="") const |
Save geometry having this as top volume as a C++ macro. | |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
Save a primitive as a C++ statement(s) on output stream "out". | |
void | SelectVolume (Bool_t clear=kFALSE) |
Select this volume as matching an arbitrary criteria. | |
void | SetActiveDaughters (Bool_t flag=kTRUE) |
void | SetActivity (Bool_t flag=kTRUE) |
void | SetAdded () |
void | SetAsTopVolume () |
Set this volume as the TOP one (the whole geometry starts from here) | |
void | SetAttVisibility (Bool_t vis) |
void | SetCurrentPoint (Double_t x, Double_t y, Double_t z) |
Set the current tracking point. | |
void | SetCylVoxels (Bool_t flag=kTRUE) |
void | SetField (TObject *field) |
void | SetFinder (TGeoPatternFinder *finder) |
void | SetFWExtension (TGeoExtension *ext) |
Connect framework defined extension to the volume. | |
void | SetInvisible () |
virtual void | SetLineColor (Color_t lcolor) |
Set the line color. | |
virtual void | SetLineStyle (Style_t lstyle) |
Set the line style. | |
virtual void | SetLineWidth (Width_t lwidth) |
Set the line width. | |
virtual void | SetMedium (TGeoMedium *medium) |
void | SetNodes (TObjArray *nodes) |
void | SetNtotal (Int_t ntotal) |
void | SetNumber (Int_t number) |
void | SetOption (const char *option) |
Set the current options (none implemented) | |
void | SetOverlappingCandidate (Bool_t flag) |
void | SetReplicated () |
void | SetShape (const TGeoShape *shape) |
set the shape associated with this volume | |
void | SetTransparency (Char_t transparency=0) |
void | SetUserExtension (TGeoExtension *ext) |
Connect user-defined extension to the volume. | |
virtual void | SetVisContainers (Bool_t flag=kTRUE) |
Set visibility for containers. | |
virtual void | SetVisibility (Bool_t vis=kTRUE) |
set visibility of this volume | |
virtual void | SetVisLeaves (Bool_t flag=kTRUE) |
Set visibility for leaves. | |
virtual void | SetVisOnly (Bool_t flag=kTRUE) |
Set visibility for leaves. | |
void | SetVoxelFinder (TGeoVoxelFinder *finder) |
void | SortNodes () |
sort nodes by decreasing volume of the bounding box. | |
virtual void | Streamer (TBuffer &) |
Stream an object of class TGeoVolume. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
void | UnmarkSaved () |
Reset SavePrimitive bits. | |
Bool_t | Valid () const |
Check if the shape of this volume is valid. | |
void | VisibleDaughters (Bool_t vis=kTRUE) |
set visibility for daughters | |
void | Voxelize (Option_t *option) |
build the voxels for this volume | |
Double_t | Weight (Double_t precision=0.01, Option_t *option="va") |
Estimate the weight of a volume (in kg) with SIGMA(M)/M better than PRECISION. | |
Double_t | WeightA () const |
Analytical computation of the weight. | |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed copy ctor. | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TNamed destructor. | |
void | Clear (Option_t *option="") override |
Set name and title to empty strings (""). | |
TObject * | Clone (const char *newname="") const override |
Make a clone of an object using the Streamer facility. | |
Int_t | Compare (const TObject *obj) const override |
Compare two TNamed objects. | |
void | Copy (TObject &named) const override |
Copy this to obj. | |
virtual void | FillBuffer (char *&buffer) |
Encode TNamed into output buffer. | |
const char * | GetName () const override |
Returns name of object. | |
const char * | GetTitle () const override |
Returns title of object. | |
ULong_t | Hash () const override |
Return hash value for this object. | |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
List TNamed name and title. | |
TNamed & | operator= (const TNamed &rhs) |
TNamed assignment operator. | |
void | Print (Option_t *option="") const override |
Print TNamed name and title. | |
virtual void | SetName (const char *name) |
Set the name of the TNamed. | |
virtual void | SetNameTitle (const char *name, const char *title) |
Set all the TNamed parameters (name and title). | |
virtual void | SetTitle (const char *title="") |
Set the title of the TNamed. | |
virtual Int_t | Sizeof () const |
Return size of the TNamed part of the TObject. | |
void | Streamer (TBuffer &) override |
Stream an object of class TObject. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TObject | |
TObject () | |
TObject constructor. | |
TObject (const TObject &object) | |
TObject copy ctor. | |
virtual | ~TObject () |
TObject destructor. | |
void | AbstractMethod (const char *method) const |
Use this method to implement an "abstract" method that you don't want to leave purely abstract. | |
virtual void | AppendPad (Option_t *option="") |
Append graphics object to current pad. | |
ULong_t | CheckedHash () |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
virtual const char * | ClassName () const |
Returns name of class to which the object belongs. | |
virtual void | Delete (Option_t *option="") |
Delete this object. | |
virtual void | DrawClass () const |
Draw class inheritance tree of the class to which this object belongs. | |
virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1) . | |
virtual void | Dump () const |
Dump contents of object on stdout. | |
virtual void | Error (const char *method, const char *msgfmt,...) const |
Issue error message. | |
virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
Execute method on this object with the given parameter string, e.g. | |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
Execute method on this object with parameters stored in the TObjArray. | |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
Issue fatal error message. | |
virtual TObject * | FindObject (const char *name) const |
Must be redefined in derived classes. | |
virtual TObject * | FindObject (const TObject *obj) const |
Must be redefined in derived classes. | |
virtual Option_t * | GetDrawOption () const |
Get option used by the graphics system to draw this object. | |
virtual UInt_t | GetUniqueID () const |
Return the unique object id. | |
virtual Bool_t | HandleTimer (TTimer *timer) |
Execute action in response of a timer timing out. | |
Bool_t | HasInconsistentHash () const |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
virtual void | Info (const char *method, const char *msgfmt,...) const |
Issue info message. | |
virtual Bool_t | InheritsFrom (const char *classname) const |
Returns kTRUE if object inherits from class "classname". | |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
Returns kTRUE if object inherits from TClass cl. | |
virtual void | Inspect () const |
Dump contents of this object in a graphics canvas. | |
void | InvertBit (UInt_t f) |
Bool_t | IsDestructed () const |
IsDestructed. | |
virtual Bool_t | IsEqual (const TObject *obj) const |
Default equal comparison (objects are equal if they have the same address in memory). | |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
virtual Bool_t | Notify () |
This method must be overridden to handle object notification. | |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
Use this method to declare a method obsolete. | |
void | operator delete (void *ptr) |
Operator delete. | |
void | operator delete[] (void *ptr) |
Operator delete []. | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
TObject assignment operator. | |
virtual void | Pop () |
Pop on object drawn in a pad to the top of the display list. | |
virtual Int_t | Read (const char *name) |
Read contents of object with specified name from the current directory. | |
virtual void | RecursiveRemove (TObject *obj) |
Recursively remove this object from a list. | |
void | ResetBit (UInt_t f) |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
Set or unset the user status bits as specified in f. | |
virtual void | SetDrawOption (Option_t *option="") |
Set drawing option for object. | |
virtual void | SetUniqueID (UInt_t uid) |
Set the unique object id. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
Issue system error message. | |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
Issue warning message. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
Write this object to the current directory. | |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Write this object to the current directory. | |
Public Member Functions inherited from TGeoAtt | |
TGeoAtt () | |
Default constructor. | |
TGeoAtt (Option_t *vis_opt, Option_t *activity_opt="", Option_t *optimization_opt="") | |
Constructor. | |
virtual | ~TGeoAtt () |
Destructor. | |
Bool_t | IsActive () const |
Bool_t | IsActiveDaughters () const |
Bool_t | IsVisBranch () const |
Bool_t | IsVisContainers () const |
Bool_t | IsVisDaughters () const |
Bool_t | IsVisible () const |
Bool_t | IsVisLeaves () const |
Bool_t | IsVisOnly () const |
Bool_t | IsVisRaytrace () const |
Bool_t | IsVisStreamed () const |
Bool_t | IsVisTouched () const |
void | ResetAttBit (UInt_t f) |
void | SetActiveDaughters (Bool_t flag=kTRUE) |
void | SetActivity (Bool_t flag=kTRUE) |
void | SetAttBit (UInt_t f) |
void | SetAttBit (UInt_t f, Bool_t set) |
void | SetOptimization (Option_t *option) |
Set optimization flags. | |
void | SetVisBranch () |
Set branch type visibility. | |
void | SetVisDaughters (Bool_t vis=kTRUE) |
Set visibility for the daughters. | |
void | SetVisRaytrace (Bool_t flag=kTRUE) |
void | SetVisStreamed (Bool_t vis=kTRUE) |
Mark attributes as "streamed to file". | |
void | SetVisTouched (Bool_t vis=kTRUE) |
Mark visualization attributes as "modified". | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Bool_t | TestAttBit (UInt_t f) const |
Public Member Functions inherited from TAttLine | |
TAttLine () | |
AttLine default constructor. | |
TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth) | |
AttLine normal constructor. | |
virtual | ~TAttLine () |
AttLine destructor. | |
void | Copy (TAttLine &attline) const |
Copy this line attributes to a new TAttLine. | |
Int_t | DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2) |
Compute distance from point px,py to a line. | |
virtual Color_t | GetLineColor () const |
Return the line color. | |
virtual Style_t | GetLineStyle () const |
Return the line style. | |
virtual Width_t | GetLineWidth () const |
Return the line width. | |
virtual void | Modify () |
Change current line attributes if necessary. | |
virtual void | ResetAttLine (Option_t *option="") |
Reset this line attributes to default values. | |
virtual void | SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1) |
Save line attributes as C++ statement(s) on output stream out. | |
virtual void | SetLineAttributes () |
Invoke the DialogCanvas Line attributes. | |
virtual void | SetLineColorAlpha (Color_t lcolor, Float_t lalpha) |
Set a transparent line color. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TAttFill | |
TAttFill () | |
AttFill default constructor. | |
TAttFill (Color_t fcolor, Style_t fstyle) | |
AttFill normal constructor. | |
virtual | ~TAttFill () |
AttFill destructor. | |
void | Copy (TAttFill &attfill) const |
Copy this fill attributes to a new TAttFill. | |
virtual Color_t | GetFillColor () const |
Return the fill area color. | |
virtual Style_t | GetFillStyle () const |
Return the fill area style. | |
virtual Bool_t | IsTransparent () const |
virtual void | Modify () |
Change current fill area attributes if necessary. | |
virtual void | ResetAttFill (Option_t *option="") |
Reset this fill attributes to default values. | |
virtual void | SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001) |
Save fill attributes as C++ statement(s) on output stream out. | |
virtual void | SetFillAttributes () |
Invoke the DialogCanvas Fill attributes. | |
virtual void | SetFillColor (Color_t fcolor) |
Set the fill area color. | |
virtual void | SetFillColorAlpha (Color_t fcolor, Float_t falpha) |
Set a transparent fill color. | |
virtual void | SetFillStyle (Style_t fstyle) |
Set the fill area style. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TAtt3D | |
TAtt3D () | |
virtual | ~TAtt3D () |
virtual void | Sizeof3D () const |
Set total size of this 3D object (used by X3D interface). | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static void | CreateDummyMedium () |
Create a dummy medium. | |
static const char * | DeclFileName () |
static TGeoMedium * | DummyMedium () |
static TGeoVolume * | Import (const char *filename, const char *name="", Option_t *option="") |
Import a volume from a file. | |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
Return destructor only flag. | |
static Bool_t | GetObjectStat () |
Get status of object stat flag. | |
static void | SetDtorOnly (void *obj) |
Set destructor only flag. | |
static void | SetObjectStat (Bool_t stat) |
Turn on/off tracking of objects in the TObjectTable. | |
Static Public Member Functions inherited from TGeoAtt | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TAttLine | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TAttFill | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TAtt3D | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Protected Attributes | |
TObject * | fField |
pointer to TGeoManager owning this volume | |
TGeoPatternFinder * | fFinder |
dummy medium | |
TGeoExtension * | fFWExtension |
Transient user-defined extension to volumes. | |
TGeoManager * | fGeoManager |
TGeoMedium * | fMedium |
TObjArray * | fNodes |
Int_t | fNtotal |
Int_t | fNumber |
option - if any | |
TString | fOption |
just a hook for now | |
Int_t | fRefCount |
TGeoShape * | fShape |
TGeoExtension * | fUserExtension |
TGeoVoxelFinder * | fVoxels |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Protected Attributes inherited from TGeoAtt | |
UInt_t | fGeoAtt |
Protected Attributes inherited from TAttLine | |
Color_t | fLineColor |
Line color. | |
Style_t | fLineStyle |
Line style. | |
Width_t | fLineWidth |
Line width. | |
Protected Attributes inherited from TAttFill | |
Color_t | fFillColor |
Fill area color. | |
Style_t | fFillStyle |
Fill area style. | |
Static Protected Attributes | |
static TGeoMedium * | fgDummyMedium = 0 |
Private Member Functions | |
TGeoVolume (const TGeoVolume &)=delete | |
Transient framework-defined extension to volumes. | |
TGeoVolume & | operator= (const TGeoVolume &)=delete |
Additional Inherited Members | |
Protected Types inherited from TObject | |
enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
Interface to ErrorHandler (protected). | |
void | MakeZombie () |
#include <TGeoVolume.h>
Enumerator | |
---|---|
kVolumeReplicated | |
kVolumeSelected | |
kVolumeDiv | |
kVolumeOverlap | |
kVolumeImportNodes | |
kVolumeMulti | |
kVoxelsXYZ | |
kVoxelsCyl | |
kVolumeClone | |
kVolumeAdded | |
kVolumeOC |
Definition at line 76 of file TGeoVolume.h.
|
privatedelete |
Transient framework-defined extension to volumes.
TGeoVolume::TGeoVolume | ( | ) |
dummy constructor
Definition at line 448 of file TGeoVolume.cxx.
TGeoVolume::TGeoVolume | ( | const char * | name, |
const TGeoShape * | shape, | ||
const TGeoMedium * | med = nullptr |
||
) |
default constructor
Definition at line 469 of file TGeoVolume.cxx.
|
virtual |
Destructor.
Definition at line 502 of file TGeoVolume.cxx.
|
virtual |
Add a TGeoNode to the list of nodes.
This is the usual method for adding daughters inside the container volume.
Reimplemented in TGeoVolumeMulti, and TGeoVolumeAssembly.
Definition at line 932 of file TGeoVolume.cxx.
void TGeoVolume::AddNodeOffset | ( | TGeoVolume * | vol, |
Int_t | copy_no, | ||
Double_t | offset = 0 , |
||
Option_t * | option = "" |
||
) |
Add a division node to the list of nodes.
The method is called by TGeoVolume::Divide() for creating the division nodes.
Definition at line 972 of file TGeoVolume.cxx.
|
virtual |
Add a TGeoNode to the list of nodes.
This is the usual method for adding daughters inside the container volume.
Reimplemented in TGeoVolumeAssembly, and TGeoVolumeMulti.
Definition at line 997 of file TGeoVolume.cxx.
|
virtual |
Double_t TGeoVolume::Capacity | ( | ) | const |
Computes the capacity of this [cm^3] as the capacity of its shape.
In case of assemblies, the capacity is computed as the sum of daughter's capacities.
Definition at line 553 of file TGeoVolume.cxx.
|
virtual |
Actualize matrix of node indexed <inode>
Definition at line 923 of file TGeoVolume.cxx.
void TGeoVolume::CheckGeometry | ( | Int_t | nrays = 1 , |
Double_t | startx = 0 , |
||
Double_t | starty = 0 , |
||
Double_t | startz = 0 |
||
) | const |
Shoot nrays with random directions from starting point (startx, starty, startz) in the reference frame of this volume.
Track each ray until exiting geometry, then shoot backwards from exiting point and compare boundary crossing points.
Definition at line 568 of file TGeoVolume.cxx.
Overlap checking tool.
Check for illegal overlaps within a limit OVLP. Use option="s[number]" to force overlap checking by sampling volume with [number] points.
Ex:
Definition at line 589 of file TGeoVolume.cxx.
Tests for checking the shape navigation algorithms. See TGeoShape::CheckShape()
Definition at line 623 of file TGeoVolume.cxx.
void TGeoVolume::CheckShapes | ( | ) |
check for negative parameters in shapes.
Definition at line 648 of file TGeoVolume.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 244 of file TGeoVolume.h.
void TGeoVolume::CleanAll | ( | ) |
Clean data of the volume.
Definition at line 631 of file TGeoVolume.cxx.
|
inline |
Definition at line 100 of file TGeoVolume.h.
void TGeoVolume::ClearShape | ( | ) |
Clear the shape of this volume from the list held by the current manager.
Definition at line 640 of file TGeoVolume.cxx.
|
virtual |
Reimplemented in TGeoVolumeAssembly.
Definition at line 424 of file TGeoVolume.cxx.
void TGeoVolume::CloneNodesAndConnect | ( | TGeoVolume * | newmother | ) | const |
Clone the array of nodes.
Definition at line 1760 of file TGeoVolume.cxx.
|
virtual |
Clone this volume.
build a volume with same name, shape and medium
Reimplemented in TGeoVolumeAssembly.
Definition at line 1711 of file TGeoVolume.cxx.
Definition at line 109 of file TGeoVolume.h.
Count total number of subnodes starting from this volume, nlevels down.
Definition at line 702 of file TGeoVolume.cxx.
|
static |
Create a dummy medium.
Definition at line 412 of file TGeoVolume.cxx.
|
virtual |
Reimplemented in TGeoVolumeAssembly.
Definition at line 432 of file TGeoVolume.cxx.
|
inlinestatic |
Definition at line 244 of file TGeoVolume.h.
compute the closest distance of approach from point px,py to this volume
Reimplemented from TObject.
Definition at line 1134 of file TGeoVolume.cxx.
|
virtual |
Division a la G3.
The volume will be divided along IAXIS (see shape classes), in NDIV slices, from START with given STEP. The division volumes will have medium number NUMED. If NUMED=0 they will get the medium number of the divided volume (this). If NDIV<=0, all range of IAXIS will be divided and the resulting number of divisions will be centered on IAXIS. If STEP<=0, the real STEP will be computed as the full range of IAXIS divided by NDIV. Options (case insensitive):
Reimplemented in TGeoVolumeMulti, and TGeoVolumeAssembly.
Definition at line 1051 of file TGeoVolume.cxx.
|
virtual |
draw top volume according to option
Reimplemented from TObject.
Definition at line 1147 of file TGeoVolume.cxx.
|
virtual |
draw only this volume
Reimplemented in TGeoVolumeAssembly.
Definition at line 1164 of file TGeoVolume.cxx.
|
static |
Definition at line 440 of file TGeoVolume.cxx.
Execute mouse actions on this volume.
Reimplemented from TObject.
Definition at line 1599 of file TGeoVolume.cxx.
Export this volume to a file.
NOTE that to use this option, the PYTHONPATH must be defined like export PYTHONPATH=$ROOTSYS/lib:$ROOTSYS/gdml
Definition at line 887 of file TGeoVolume.cxx.
Bool_t TGeoVolume::FindMatrixOfDaughterVolume | ( | TGeoVolume * | vol | ) | const |
Find a daughter node having VOL as volume and fill TGeoManager::fHMatrix with its global matrix.
Definition at line 2258 of file TGeoVolume.cxx.
TGeoNode * TGeoVolume::FindNode | ( | const char * | name | ) | const |
search a daughter inside the list of nodes
Definition at line 1609 of file TGeoVolume.cxx.
void TGeoVolume::FindOverlaps | ( | ) | const |
loop all nodes marked as overlaps and find overlapping brothers
Definition at line 2087 of file TGeoVolume.cxx.
|
virtual |
get the total size in bytes for this volume
Definition at line 2067 of file TGeoVolume.cxx.
|
inlinevirtual |
Reimplemented in TGeoVolumeAssembly.
Definition at line 166 of file TGeoVolume.h.
|
inline |
Definition at line 175 of file TGeoVolume.h.
|
inline |
Definition at line 176 of file TGeoVolume.h.
|
inline |
Definition at line 137 of file TGeoVolume.h.
|
inline |
Definition at line 172 of file TGeoVolume.h.
|
inlinevirtual |
Returns mime type name of object.
Used by the TBrowser (via TGMimeTypes class). Override for class of which you would like to have different icons for objects of the same class.
Reimplemented from TObject.
Definition at line 178 of file TGeoVolume.h.
get index number for a given daughter
Definition at line 1630 of file TGeoVolume.cxx.
|
inline |
Definition at line 173 of file TGeoVolume.h.
|
inline |
Definition at line 174 of file TGeoVolume.h.
|
inline |
Definition at line 351 of file TGeoVolume.h.
|
inlinevirtual |
Reimplemented in TGeoVolumeAssembly.
Definition at line 167 of file TGeoVolume.h.
TGeoNode * TGeoVolume::GetNode | ( | const char * | name | ) | const |
get the pointer to a daughter node
Definition at line 2057 of file TGeoVolume.cxx.
Definition at line 181 of file TGeoVolume.h.
Get the index of a daughter within check_list by providing the node pointer.
Definition at line 1617 of file TGeoVolume.cxx.
|
inline |
Definition at line 168 of file TGeoVolume.h.
|
inline |
Definition at line 170 of file TGeoVolume.h.
|
inline |
Definition at line 183 of file TGeoVolume.h.
Get volume info for the browser.
Reimplemented from TObject.
Definition at line 1645 of file TGeoVolume.cxx.
Bool_t TGeoVolume::GetOptimalVoxels | ( | ) | const |
Returns true if cylindrical voxelization is optimal.
Definition at line 1656 of file TGeoVolume.cxx.
|
inlinevirtual |
Reimplemented from TObject.
Definition at line 186 of file TGeoVolume.h.
const char * TGeoVolume::GetPointerName | ( | ) | const |
Provide a pointer name containing uid.
Definition at line 1674 of file TGeoVolume.cxx.
|
inline |
Definition at line 135 of file TGeoVolume.h.
|
inline |
Definition at line 189 of file TGeoVolume.h.
|
inline |
Definition at line 188 of file TGeoVolume.h.
|
inline |
Definition at line 136 of file TGeoVolume.h.
TGeoVoxelFinder * TGeoVolume::GetVoxels | ( | ) | const |
Getter for optimization structure.
Definition at line 1684 of file TGeoVolume.cxx.
|
inline |
Definition at line 140 of file TGeoVolume.h.
void TGeoVolume::GrabFocus | ( | ) |
Move perspective view focus to this volume.
Definition at line 1693 of file TGeoVolume.cxx.
TGeoExtension * TGeoVolume::GrabFWExtension | ( | ) | const |
Get a copy of the framework extension pointer.
The user must call Release() on the copy pointer once this pointer is not needed anymore (equivalent to delete() after calling new())
Definition at line 1435 of file TGeoVolume.cxx.
TGeoExtension * TGeoVolume::GrabUserExtension | ( | ) | const |
Get a copy of the user extension pointer.
The user must call Release() on the copy pointer once this pointer is not needed anymore (equivalent to delete() after calling new())
Definition at line 1424 of file TGeoVolume.cxx.
|
inline |
Definition at line 191 of file TGeoVolume.h.
|
static |
Import a volume from a file.
Definition at line 837 of file TGeoVolume.cxx.
void TGeoVolume::InspectMaterial | ( | ) | const |
Inspect the material for this volume.
Definition at line 829 of file TGeoVolume.cxx.
|
inline |
Definition at line 194 of file TGeoVolume.h.
Make volume and each of it daughters (in)visible.
Definition at line 764 of file TGeoVolume.cxx.
|
inlinevirtual |
Reimplemented from TObject.
Reimplemented in TGeoVolumeMulti, and TGeoVolumeAssembly.
Definition at line 244 of file TGeoVolume.h.
|
inline |
Definition at line 144 of file TGeoVolume.h.
|
inline |
Definition at line 145 of file TGeoVolume.h.
|
inline |
Definition at line 146 of file TGeoVolume.h.
Bool_t TGeoVolume::IsAllInvisible | ( | ) | const |
Return TRUE if volume and all daughters are invisible.
Definition at line 753 of file TGeoVolume.cxx.
|
virtual |
Returns true if the volume is an assembly or a scaled assembly.
Reimplemented in TGeoVolumeAssembly.
Definition at line 1702 of file TGeoVolume.cxx.
|
inline |
Definition at line 150 of file TGeoVolume.h.
|
virtual |
Return TRUE if volume contains nodes.
Reimplemented from TObject.
Definition at line 792 of file TGeoVolume.cxx.
|
inline |
Definition at line 147 of file TGeoVolume.h.
Bool_t TGeoVolume::IsRaytracing | ( | ) | const |
Check if the painter is currently ray-tracing the content of this volume.
Definition at line 821 of file TGeoVolume.cxx.
|
inline |
Definition at line 148 of file TGeoVolume.h.
|
inline |
Definition at line 114 of file TGeoVolume.h.
|
inline |
Definition at line 149 of file TGeoVolume.h.
Bool_t TGeoVolume::IsStyleDefault | ( | ) | const |
check if the visibility and attributes are the default ones
Definition at line 800 of file TGeoVolume.cxx.
Bool_t TGeoVolume::IsTopVolume | ( | ) | const |
True if this is the top volume of the geometry.
Definition at line 812 of file TGeoVolume.cxx.
|
inline |
Definition at line 153 of file TGeoVolume.h.
|
inline |
Definition at line 156 of file TGeoVolume.h.
|
inlinevirtual |
Reimplemented in TGeoVolumeAssembly.
Definition at line 154 of file TGeoVolume.h.
|
inline |
Definition at line 155 of file TGeoVolume.h.
|
inline |
Definition at line 157 of file TGeoVolume.h.
|
inline |
Definition at line 158 of file TGeoVolume.h.
|
inlinevirtual |
Reimplemented in TGeoVolumeMulti.
Definition at line 115 of file TGeoVolume.h.
|
inline |
Definition at line 151 of file TGeoVolume.h.
TH2F * TGeoVolume::LegoPlot | ( | Int_t | ntheta = 20 , |
Double_t | themin = 0. , |
||
Double_t | themax = 180. , |
||
Int_t | nphi = 60 , |
||
Double_t | phimin = 0. , |
||
Double_t | phimax = 360. , |
||
Double_t | rmin = 0. , |
||
Double_t | rmax = 9999999 , |
||
Option_t * | option = "" |
||
) |
Generate a lego plot fot the top volume, according to option.
Definition at line 1266 of file TGeoVolume.cxx.
void TGeoVolume::MakeCopyNodes | ( | const TGeoVolume * | other | ) |
make a new list of nodes and copy all nodes of other volume inside
Definition at line 1786 of file TGeoVolume.cxx.
|
virtual |
make a copy of this volume build a volume with same name, shape and medium
Reimplemented in TGeoVolumeMulti.
Definition at line 1803 of file TGeoVolume.cxx.
TGeoVolume * TGeoVolume::MakeReflectedVolume | ( | const char * | newname = "" | ) | const |
Make a copy of this volume which is reflected with respect to XY plane.
Definition at line 1833 of file TGeoVolume.cxx.
|
privatedelete |
Bool_t TGeoVolume::OptimizeVoxels | ( | ) |
Perform an extensive sampling to find which type of voxelization is most efficient.
Definition at line 1185 of file TGeoVolume.cxx.
|
virtual |
|
virtual |
void TGeoVolume::PrintNodes | ( | ) | const |
print nodes
Definition at line 1254 of file TGeoVolume.cxx.
void TGeoVolume::PrintVoxels | ( | ) | const |
Print the voxels for this volume.
Definition at line 1220 of file TGeoVolume.cxx.
Draw random points in the bounding box of this volume.
Definition at line 1322 of file TGeoVolume.cxx.
void TGeoVolume::RandomRays | ( | Int_t | nrays = 10000 , |
Double_t | startx = 0 , |
||
Double_t | starty = 0 , |
||
Double_t | startz = 0 , |
||
const char * | target_vol = nullptr , |
||
Bool_t | check_norm = kFALSE |
||
) |
Random raytracing method.
Definition at line 1335 of file TGeoVolume.cxx.
Draw this volume with current settings and perform raytracing in the pad.
Definition at line 1348 of file TGeoVolume.cxx.
void TGeoVolume::RegisterYourself | ( | Option_t * | option = "" | ) |
Register the volume and all materials/media/matrices/shapes to the manager.
Definition at line 1282 of file TGeoVolume.cxx.
|
inline |
Definition at line 141 of file TGeoVolume.h.
void TGeoVolume::RemoveNode | ( | TGeoNode * | node | ) |
Remove an existing daughter.
Definition at line 2108 of file TGeoVolume.cxx.
TGeoNode * TGeoVolume::ReplaceNode | ( | TGeoNode * | nodeorig, |
TGeoShape * | newshape = nullptr , |
||
TGeoMatrix * | newpos = nullptr , |
||
TGeoMedium * | newmed = nullptr |
||
) |
Replace an existing daughter with a new volume having the same name but possibly a new shape, position or medium.
Not allowed for positioned assemblies. For division cells, the new shape/matrix are ignored.
Definition at line 2122 of file TGeoVolume.cxx.
void TGeoVolume::ReplayCreation | ( | const TGeoVolume * | other | ) |
Recreate the content of the other volume without pointer copying.
Voxels are ignored and supposed to be created in a later step via Voxelize.
Definition at line 1229 of file TGeoVolume.cxx.
|
virtual |
Save geometry having this as top volume as a C++ macro.
Reimplemented from TObject.
Definition at line 1367 of file TGeoVolume.cxx.
|
virtual |
Save a primitive as a C++ statement(s) on output stream "out".
Reimplemented from TObject.
Definition at line 1444 of file TGeoVolume.cxx.
Select this volume as matching an arbitrary criteria.
The volume is added to a static list and the flag TGeoVolume::kVolumeSelected is set. All flags need to be reset at the end by calling the method with CLEAR=true. This will also clear the list.
Definition at line 2173 of file TGeoVolume.cxx.
Definition at line 209 of file TGeoVolume.h.
Definition at line 208 of file TGeoVolume.h.
|
inline |
Definition at line 211 of file TGeoVolume.h.
void TGeoVolume::SetAsTopVolume | ( | ) |
Set this volume as the TOP one (the whole geometry starts from here)
Definition at line 1922 of file TGeoVolume.cxx.
|
inline |
Definition at line 221 of file TGeoVolume.h.
Set the current tracking point.
Definition at line 1930 of file TGeoVolume.cxx.
Definition at line 214 of file TGeoVolume.h.
|
inline |
Definition at line 219 of file TGeoVolume.h.
|
inline |
Definition at line 232 of file TGeoVolume.h.
void TGeoVolume::SetFWExtension | ( | TGeoExtension * | ext | ) |
Connect framework defined extension to the volume.
The volume "grabs" a copy, so the original object can be released by the producer. Release the previously connected extension if any.
NOTE: This interface is intended for the use by TGeo and the users should NOT connect extensions using this method
Definition at line 1412 of file TGeoVolume.cxx.
|
inline |
Definition at line 229 of file TGeoVolume.h.
|
virtual |
Set the line color.
Reimplemented from TAttLine.
Reimplemented in TGeoVolumeMulti.
Definition at line 2033 of file TGeoVolume.cxx.
|
virtual |
Set the line style.
Reimplemented from TAttLine.
Reimplemented in TGeoVolumeMulti.
Definition at line 2041 of file TGeoVolume.cxx.
|
virtual |
Set the line width.
Reimplemented from TAttLine.
Reimplemented in TGeoVolumeMulti.
Definition at line 2049 of file TGeoVolume.cxx.
|
inlinevirtual |
Reimplemented in TGeoVolumeMulti.
Definition at line 230 of file TGeoVolume.h.
|
inline |
Definition at line 215 of file TGeoVolume.h.
|
inline |
Definition at line 234 of file TGeoVolume.h.
|
inline |
Definition at line 233 of file TGeoVolume.h.
void TGeoVolume::SetOption | ( | const char * | option | ) |
Set the current options (none implemented)
Definition at line 2025 of file TGeoVolume.cxx.
|
inline |
Definition at line 216 of file TGeoVolume.h.
|
inline |
Definition at line 212 of file TGeoVolume.h.
void TGeoVolume::SetShape | ( | const TGeoShape * | shape | ) |
set the shape associated with this volume
Definition at line 1938 of file TGeoVolume.cxx.
|
inline |
Definition at line 218 of file TGeoVolume.h.
void TGeoVolume::SetUserExtension | ( | TGeoExtension * | ext | ) |
Connect user-defined extension to the volume.
The volume "grabs" a copy, so the original object can be released by the producer. Release the previously connected extension if any.
NOTE: This interface is intended for user extensions and is guaranteed not to be used by TGeo
Definition at line 1397 of file TGeoVolume.cxx.
Set visibility for containers.
Reimplemented from TGeoAtt.
Definition at line 2212 of file TGeoVolume.cxx.
set visibility of this volume
Reimplemented from TGeoAtt.
Reimplemented in TGeoVolumeMulti.
Definition at line 2195 of file TGeoVolume.cxx.
Set visibility for leaves.
Reimplemented from TGeoAtt.
Definition at line 2224 of file TGeoVolume.cxx.
Set visibility for leaves.
Reimplemented from TGeoAtt.
Definition at line 2236 of file TGeoVolume.cxx.
|
inline |
Definition at line 231 of file TGeoVolume.h.
void TGeoVolume::SortNodes | ( | ) |
sort nodes by decreasing volume of the bounding box.
ONLY nodes comes first, then overlapping nodes and finally division nodes.
Definition at line 1951 of file TGeoVolume.cxx.
|
virtual |
Stream an object of class TGeoVolume.
Reimplemented from TObject.
Reimplemented in TGeoVolumeMulti, and TGeoVolumeAssembly.
Definition at line 2001 of file TGeoVolume.cxx.
|
inline |
Definition at line 244 of file TGeoVolume.h.
void TGeoVolume::UnmarkSaved | ( | ) |
Reset SavePrimitive bits.
Definition at line 1589 of file TGeoVolume.cxx.
Bool_t TGeoVolume::Valid | ( | ) | const |
Check if the shape of this volume is valid.
Definition at line 2249 of file TGeoVolume.cxx.
set visibility for daughters
Definition at line 2289 of file TGeoVolume.cxx.
void TGeoVolume::Voxelize | ( | Option_t * | option | ) |
build the voxels for this volume
Definition at line 2299 of file TGeoVolume.cxx.
Estimate the weight of a volume (in kg) with SIGMA(M)/M better than PRECISION.
Option can contain : v - verbose, a - analytical (default)
Definition at line 2332 of file TGeoVolume.cxx.
Double_t TGeoVolume::WeightA | ( | ) | const |
Analytical computation of the weight.
Definition at line 2345 of file TGeoVolume.cxx.
|
protected |
pointer to TGeoManager owning this volume
Definition at line 59 of file TGeoVolume.h.
|
protected |
dummy medium
Definition at line 55 of file TGeoVolume.h.
|
protected |
Transient user-defined extension to volumes.
Definition at line 65 of file TGeoVolume.h.
|
staticprotected |
Definition at line 54 of file TGeoVolume.h.
|
protected |
Definition at line 57 of file TGeoVolume.h.
|
protected |
Definition at line 53 of file TGeoVolume.h.
|
protected |
Definition at line 51 of file TGeoVolume.h.
|
protected |
Definition at line 62 of file TGeoVolume.h.
|
protected |
option - if any
Definition at line 61 of file TGeoVolume.h.
|
protected |
just a hook for now
Definition at line 60 of file TGeoVolume.h.
|
protected |
Definition at line 63 of file TGeoVolume.h.
|
protected |
Definition at line 52 of file TGeoVolume.h.
|
protected |
Definition at line 64 of file TGeoVolume.h.
|
protected |
Definition at line 56 of file TGeoVolume.h.