Volume families.
A volume family is represented by the class TGeoVolumeMulti. It represents a class of volumes having the same shape type and each member will be identified by the same name and volume ID. Any operation applied to a TGeoVolume equally affects all volumes in that family. The creation of a family is generally not a user task, but can be forced in particular cases:
where VNAME is the family name, NMED is the medium number and SHAPE is the shape type that can be:
Volumes are then added to a given family upon adding the generic name as node inside other volume:
here:
The parameters order and number are the same as in the corresponding shape constructors.
Another particular case where volume families are used is when we want that a volume positioned inside a container to match one ore more container limits. Suppose we want to position the same box inside 2 different volumes and we want the Z size to match the one of each container:
Note that the third parameter of PVOL is negative, which does not make sense as half-length on Z. This is interpreted as: when positioned, create a box replacing all invalid parameters with the corresponding dimensions of the container. This is also internally handled by the TGeoVolumeMulti class, which does not need to be instantiated by users.
Volumes can be divided according a pattern. The most simple division can be done along one axis, that can be: X, Y, Z, Phi, Rxy or Rxyz. Let's take the most simple case: we would like to divide a box in N equal slices along X coordinate, representing a new volume family. Supposing we already have created the initial box, this can be done like:
where SLICE is the name of the new family representing all slices and 1 is the slicing axis. The meaning of the axis index is the following: for all volumes having shapes like box, trd1, trd2, trap, gtra or para - 1,2,3 means X,Y,Z; for tube, tubs, cone, cons - 1 means Rxy, 2 means phi and 3 means Z; for pcon and pgon - 2 means phi and 3 means Z; for spheres 1 means R and 2 means phi. In fact, the division operation has the same effect as positioning volumes in a given order inside the divided container - the advantage being that the navigation in such a structure is much faster. When a volume is divided, a volume family corresponding to the slices is created. In case all slices can be represented by a single shape, only one volume is added to the family and positioned N times inside the divided volume, otherwise, each slice will be represented by a distinct volume in the family. Divisions can be also performed in a given range of one axis. For that, one have to specify also the starting coordinate value and the step:
A check is always done on the resulting division range : if not fitting into the container limits, an error message is posted. If we will browse the divided volume we will notice that it will contain N nodes starting with index 1 upto N. The first one has the lower X limit at START position, while the last one will have the upper X limit at START+N*STEP. The resulting slices cannot be positioned inside an other volume (they are by default positioned inside the divided one) but can be further divided and may contain other volumes:
When doing that, we have to remember that SLICEY represents a family, therefore all members of the family will be divided on Y and the other volume will be added as node inside all. In the example above all the resulting slices had the same shape as the divided volume (box). This is not always the case. For instance, dividing a volume with TUBE shape on PHI axis will create equal slices having TUBESEG shape. Other divisions can also create slices having shapes with different dimensions, e.g. the division of a TRD1 volume on Z. When positioning volumes inside slices, one can do it using the generic volume family (e.g. slicey). This should be done as if the coordinate system of the generic slice was the same as the one of the divided volume. The generic slice in case of PHI division is centered with respect to X axis. If the family contains slices of different sizes, any volume positioned inside should fit into the smallest one. Examples for specific divisions according to shape types can be found inside shape classes.
The GEANT3 option MANY is supported by TGeoVolumeOverlap class. An overlapping volume is in fact a virtual container that does not represent a physical object. It contains a list of nodes that are not its daughters but that must be checked always before the container itself. This list must be defined by users and it is checked and resolved in a priority order. Note that the feature is non-standard to geometrical modelers and it was introduced just to support conversions of GEANT3 geometries, therefore its extensive usage should be avoided.
Definition at line 254 of file TGeoVolume.h.
Public Member Functions | |
TGeoVolumeMulti () | |
dummy constructor | |
TGeoVolumeMulti (const char *name, TGeoMedium *med=nullptr) | |
default constructor | |
virtual | ~TGeoVolumeMulti () |
Destructor. | |
virtual TGeoNode * | AddNode (TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat, Option_t *option="") |
Add a new node to the list of nodes. | |
virtual void | AddNodeOverlap (TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat, Option_t *option="") |
Add a new node to the list of nodes, This node is possibly overlapping with other daughters of the volume or extruding the volume. | |
void | AddVolume (TGeoVolume *vol) |
Add a volume with valid shape to the list of volumes. | |
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 of multiple volumes | |
Int_t | GetAxis () const |
TGeoShape * | GetLastShape () const |
Returns the last shape. | |
Int_t | GetNdiv () const |
Int_t | GetNvolumes () const |
Double_t | GetStart () const |
Double_t | GetStep () const |
TGeoVolume * | GetVolume (Int_t id) const |
virtual TClass * | IsA () const |
virtual Bool_t | IsVolumeMulti () const |
virtual TGeoVolume * | MakeCopyVolume (TGeoShape *newshape) |
Make a copy of this volume build a volume with same name, shape and medium. | |
virtual void | SetLineColor (Color_t lcolor) |
Set the line color for all components. | |
virtual void | SetLineStyle (Style_t lstyle) |
Set the line style for all components. | |
virtual void | SetLineWidth (Width_t lwidth) |
Set the line width for all components. | |
virtual void | SetMedium (TGeoMedium *medium) |
Set medium for a multiple volume. | |
virtual void | SetVisibility (Bool_t vis=kTRUE) |
Set visibility for all components. | |
virtual void | Streamer (TBuffer &) |
Stream an object of class TGeoVolume. | |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TGeoVolume | |
TGeoVolume () | |
dummy constructor | |
TGeoVolume (const char *name, const TGeoShape *shape, const TGeoMedium *med=nullptr) | |
default constructor | |
virtual | ~TGeoVolume () |
Destructor. | |
void | AddNodeOffset (TGeoVolume *vol, Int_t copy_no, Double_t offset=0, Option_t *option="") |
Add a division node 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 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. | |
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 |
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 | |
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 () |
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 | 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. | |
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 const char * | DeclFileName () |
Static Public Member Functions inherited from TGeoVolume | |
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 () |
Private Member Functions | |
TGeoVolumeMulti (const TGeoVolumeMulti &)=delete | |
TGeoVolumeMulti & | operator= (const TGeoVolumeMulti &)=delete |
Private Attributes | |
Bool_t | fAttSet |
Int_t | fAxis |
TGeoVolumeMulti * | fDivision |
Int_t | fNdiv |
Int_t | fNumed |
Double_t | fStart |
Double_t | fStep |
TObjArray * | fVolumes |
Additional Inherited Members | |
Public Types inherited from TGeoVolume | |
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 )) } |
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 () |
Protected Attributes inherited from TGeoVolume | |
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 inherited from TGeoVolume | |
static TGeoMedium * | fgDummyMedium = 0 |
#include <TGeoVolume.h>
|
privatedelete |
TGeoVolumeMulti::TGeoVolumeMulti | ( | ) |
dummy constructor
Definition at line 2372 of file TGeoVolume.cxx.
TGeoVolumeMulti::TGeoVolumeMulti | ( | const char * | name, |
TGeoMedium * | med = nullptr |
||
) |
default constructor
Definition at line 2388 of file TGeoVolume.cxx.
|
virtual |
Destructor.
Definition at line 2408 of file TGeoVolume.cxx.
|
virtual |
Add a new node to the list of nodes.
This is the usual method for adding daughters inside the container volume.
Reimplemented from TGeoVolume.
Definition at line 2452 of file TGeoVolume.cxx.
|
virtual |
Add a new node to the list of nodes, This node is possibly overlapping with other daughters of the volume or extruding the volume.
Reimplemented from TGeoVolume.
Definition at line 2473 of file TGeoVolume.cxx.
void TGeoVolumeMulti::AddVolume | ( | TGeoVolume * | vol | ) |
Add a volume with valid shape to the list of volumes.
Copy all existing nodes to this volume
Definition at line 2417 of file TGeoVolume.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 294 of file TGeoVolume.h.
|
inlinestatic |
Definition at line 294 of file TGeoVolume.h.
|
virtual |
division of multiple volumes
Reimplemented from TGeoVolume.
Definition at line 2502 of file TGeoVolume.cxx.
|
inline |
Definition at line 282 of file TGeoVolume.h.
TGeoShape * TGeoVolumeMulti::GetLastShape | ( | ) | const |
Returns the last shape.
Definition at line 2492 of file TGeoVolume.cxx.
|
inline |
Definition at line 283 of file TGeoVolume.h.
|
inline |
Definition at line 281 of file TGeoVolume.h.
|
inline |
Definition at line 284 of file TGeoVolume.h.
|
inline |
Definition at line 285 of file TGeoVolume.h.
|
inline |
Definition at line 275 of file TGeoVolume.h.
|
inlinevirtual |
Reimplemented from TGeoVolume.
Definition at line 294 of file TGeoVolume.h.
|
inlinevirtual |
Reimplemented from TGeoVolume.
Definition at line 286 of file TGeoVolume.h.
|
virtual |
Make a copy of this volume build a volume with same name, shape and medium.
Reimplemented from TGeoVolume.
Definition at line 2554 of file TGeoVolume.cxx.
|
privatedelete |
|
virtual |
Set the line color for all components.
Reimplemented from TGeoVolume.
Definition at line 2613 of file TGeoVolume.cxx.
|
virtual |
Set the line style for all components.
Reimplemented from TGeoVolume.
Definition at line 2627 of file TGeoVolume.cxx.
|
virtual |
Set the line width for all components.
Reimplemented from TGeoVolume.
Definition at line 2641 of file TGeoVolume.cxx.
|
virtual |
Set medium for a multiple volume.
Reimplemented from TGeoVolume.
Definition at line 2655 of file TGeoVolume.cxx.
Set visibility for all components.
Reimplemented from TGeoVolume.
Definition at line 2670 of file TGeoVolume.cxx.
|
virtual |
Stream an object of class TGeoVolume.
Reimplemented from TGeoVolume.
|
inline |
Definition at line 294 of file TGeoVolume.h.
|
private |
Definition at line 264 of file TGeoVolume.h.
|
private |
Definition at line 261 of file TGeoVolume.h.
|
private |
Definition at line 258 of file TGeoVolume.h.
|
private |
Definition at line 260 of file TGeoVolume.h.
|
private |
Definition at line 259 of file TGeoVolume.h.
|
private |
Definition at line 262 of file TGeoVolume.h.
|
private |
Definition at line 263 of file TGeoVolume.h.
|
private |
Definition at line 257 of file TGeoVolume.h.