1 #ifndef StiVMCToolKit_h
2 #define StiVMCToolKit_h
5 #include "TGeoManager.h"
6 #include "TGeoPhysicalNode.h"
7 #include "TGeoVolume.h"
9 #include "TGeoMaterial.h"
10 #include "TGeoMedium.h"
11 #include "TGeoMatrix.h"
16 #include "TGeoPatternFinder.h"
19 #include "TGeoPolygon.h"
20 #include "TGeoSphere.h"
21 #include "TGeoTorus.h"
30 const Char_t *comment;
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,
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);