23 worldRadius =
pow(reqNodes,.5)*sizeBase;
25 worldRadius =
pow(reqNodes,.3)*sizeBase;
29 (
"WORLD", medEmptySpace, worldRadius, worldRadius, worldRadius);
42 for (i = 0; i < volumeCount; i++) {
44 sprintf(
name,
"Volume_%d", i);
48 if (reqSpheres && reqTubes) {
67 if (color ==
kBlack) color += 1;
73 printf(
"Volume %d : Color %d, Sphere, Radius %f\n", i, color, rMax);
77 volumes[i] = geom->
MakeTube(
name, medSolid, rMin, rMax, dz);
78 printf(
"Volume %d : Color %d, Tube, Inner Radius %f, "
79 "Outer Radius %f, Length %f\n",
80 i, color, rMin, rMax, dz);
84 volumes[i] = geom->
MakeTubs(
name, medSolid, rMin, rMax, dz,
86 printf(
"Volume %d : Color %d, Tube Seg, Inner Radius %f, "
87 "Outer Radius %f, Length %f, Phi1 %f, Phi2 %f\n",
88 i, color, rMin, rMax, dz, phi1, phi2);
98 volumes[i] = geom->
MakeCtub(
name, medSolid, rMin, rMax, dz,
99 phi1, phi2, n1[0], n1[1], n1[2],
100 n2[0], n2[1], n2[2]);
101 printf(
"Volume %d : Color %d, Cut Tube, Inner Radius %f, "
102 "Outer Radius %f, Length %f, Phi1 %f, Phi2 %f, "
103 "n1 (%f,%f,%f), n2 (%f,%f,%f)\n",
104 i, color, rMin, rMax, dz, phi1, phi2,
105 n1[0], n1[1], n1[2], n2[0], n2[1], n2[2]);
116 printf(
"\nCreated %d volumes\n\n", volumeCount);
120 for (i = 0; i < reqNodes; i++) {
137 UInt_t perSide =
pow(reqNodes,1.0/3.0)+0.5;
140 zi = i / (perSide*perSide);
141 yi = (i / perSide) % perSide;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
R__EXTERN TRandom * gRandom
Class describing rotation + translation.
The manager class for any TGeo geometry.
TGeoVolume * MakeTube(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz)
Make in one step a volume pointing to a tube shape with given medium.
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
Make in one step a volume pointing to a box shape with given medium.
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
TGeoVolume * MakeCtub(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2, Double_t lx, Double_t ly, Double_t lz, Double_t tx, Double_t ty, Double_t tz)
Make in one step a volume pointing to a tube segment shape with given medium.
void SetNsegments(Int_t nseg)
Set number of segments for approximating circles in drawing.
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a tube segment shape with given medium.
Base class describing materials.
Media are used to store properties related to tracking and which are useful only when using geometry ...
Class describing rotations.
Class describing translations.
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
Add a TGeoNode to the list of nodes.
virtual void Draw(Option_t *option="")
draw top volume according to option
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
Double_t Rndm() override
Machine independent random number generator.
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
virtual UInt_t Integer(UInt_t imax)
Returns a random integer uniformly distributed on the interval [ 0, imax-1 ].
RVec< PromoteTypes< T0, T1 > > pow(const T0 &x, const RVec< T1 > &v)