StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StiVMCToolKit.h
1 #ifndef StiVMCToolKit_h
2 #define StiVMCToolKit_h
3 
4 #include "TString.h"
5 #include "TGeoManager.h"
6 #include "TGeoPhysicalNode.h"
7 #include "TGeoVolume.h"
8 #include "TGeoShape.h"
9 #include "TGeoMaterial.h"
10 #include "TGeoMedium.h"
11 #include "TGeoMatrix.h"
12 #include "TGeoCone.h"
13 //#include "TGeoParaboloid.h"
14 #include "TGeoPara.h"
15 #include "TGeoArb8.h"
16 #include "TGeoPatternFinder.h"
17 #include "TGeoPcon.h"
18 #include "TGeoPgon.h"
19 #include "TGeoPolygon.h"
20 #include "TGeoSphere.h"
21 #include "TGeoTorus.h"
22 #include "TGeoTrd1.h"
23 #include "TGeoTrd2.h"
24 #include "TGeoTube.h"
25 #include "TGeoXtru.h"
26 #include "TGeoEltu.h"
27 class Elem_t;
28 struct VolumeMap_t {
29  const Char_t *name;
30  const Char_t *comment;
31  const Char_t *path;
32  const Char_t *set;
33  const Char_t *det;
34 };
35 
36 namespace StiVMCToolKit {
37  void PrintShape(TGeoShape *shape);
38  Int_t Add2ElementList(Int_t NElem,const TGeoMaterial *mat, Elem_t *ElementList);
39  Int_t Merge2ElementList(Int_t NElem, Elem_t *ElementList,
40  Int_t NElemD, Elem_t *ElementListD, Double_t weight);
41  Int_t NormolizeElementList(Int_t NElem, Elem_t *ElementList);
42  Double_t GetWeight(TGeoNode *nodeT = 0, const TString &pathT = "HALL_1/CAVE_1/SVTT_1",
43  Int_t *NElem = 0, Elem_t *ElementList = 0);
44  Double_t GetVolumeWeight(TGeoVolume *volT, Int_t *NElem = 0, Elem_t *ElementList = 0);
45  void MakeAverageVolume(TGeoVolume *volT, TGeoShape *&newshape, TGeoMedium *&newmed,
46  Double_t *xyzM=0);
47  TGeoManager *GetVMC();
48  TGeoPhysicalNode *Alignment(const TGeoNode *nodeT,const Char_t *pathT, TGeoVolume *volT,
49  TGeoShape *newshape, TGeoMedium* newmed);
50  TGeoPhysicalNode *LoopOverNodes(const TGeoNode *nodeT, const Char_t *pathT, const Char_t *name = 0, void ( *callback)(TGeoPhysicalNode *nodeP)=0);
51  void TestVMC4Reconstruction();
52  void GetVMC4Reconstruction(const Char_t *pathT=0, const Char_t *nameT=0);
53  Double_t GetShapeVolume(TGeoShape *shape);
54  void MakeVolume(TGeoPhysicalNode *nodeP);
55  Double_t GetPotI(const TGeoMaterial *mat);
56  Double_t Nice(Double_t phi);
57  void SetDebug(Int_t m);
58  Int_t Debug();
59 }
60 #endif