FairRoot/PandaRoot
PndGeoHypGeCrystal.h
Go to the documentation of this file.
1 // ******** Header of class to build HypGe encapsulated HPGe Crystal needed to build cluster detectors *************
2 // by steinen@kph.uni-mainz.de
3 
4 #ifndef PNDGEOHYPGECRYSTAL_H
5 #define PNDGEOHYPGECRYSTAL_H
6 
7 #include "TGeoMedium.h"
8 #include "TGeoTube.h"
9 #include "TGeoPgon.h"
10 #include "TGeoTorus.h"
11 #include "TGeoVolume.h"
12 //#include "TGeoVolumeAssembly.h" // does not exist, class in inside TGeoVolume.h
13 #include "TGeoMatrix.h" // all the translations, rotations ..
14 #include "TGeoCompositeShape.h"
15 #include "TMath.h"
16 #include <stdio.h>
17 
19 {
20 protected:
21  //Media
22  TGeoMedium *Ge;
23  TGeoMedium *Al;
24 
25 
26  //objects to build the encapsulation of the crystal
31  char *CapsuleName;
32 
33  TGeoTube *CapsuleOuterTube;
34  TGeoTube *CapsuleInnerTube;
35  TGeoPgon *CapsuleOuterPgon;
36  TGeoPgon *CapsuleInnerPgon;
37  TGeoTube *CapsuleTopCover;
38  TGeoTranslation *CapsuleTopZTranslation;
39  TGeoTranslation *CapsuleInnerZTranslation;
40  TGeoCompositeShape *CapsuleOuterShape;
41  TGeoCompositeShape *CapsuleInnerShape;
42  TGeoCompositeShape *CapsuleCompleteShape; //OuterShape - InnerShape
43  TGeoVolume *Capsule;
44 
45  //objects to build the crystal
46 
51  char *CrystalName;
52 
53  //objects to build the main crystal shape
54  TGeoTube *CrystalTube;
55  TGeoPgon *CrystalPgon;
56  //objects to build the inner crystal hole
57  TGeoTube *CrystalInnerTube;
58  TGeoTranslation *CrystalInnerTubeZTranslation;
63  //objects to get the top rounding of the crystal
67  TGeoCompositeShape *CrystalTopRoundingTooling;
69  //objects to build the guard ring of the crystal
77  //building the whole crystal
78  TGeoCompositeShape *CrystalShape;
79  TGeoVolume *Crystal;
80 
81  //objects to combine crystal and capsule
82  TGeoVolumeAssembly *CrystalPlusCapsule;
83  TGeoCombiTrans *CapsuleCombiTrans;
86 
87 
88 
89 
90 
91 
92 
93 public:
95  PndGeoHypGeCrystal(TGeoMedium *ExtGe, TGeoMedium *ExtAl,Int_t ExtCrystalNumber);
97 
98  Int_t GetCrystalNumber();
99  Int_t GetNdaughters();
100  void PrintNodes();
101 
102  void PlaceCrystal(TGeoVolume *top, TGeoMatrix* CrystalPlaceAndDirectionTranslation); // places the encapsulated crystal
103 
104 
105  ClassDef(PndGeoHypGeCrystal,0); // Class for PndGeoHypGeCrystal
106 };
107 
108 #endif /* !PNDGEOHYPGECRYSTAL_H */
TGeoCombiTrans * CapsuleCombiTrans
TGeoCompositeShape * CrystalShape
TGeoTranslation * CrystalTopRoundingTubeZTranslation
TGeoTranslation * CrystalTopRoundingToolingZTranslation
TGeoVolumeAssembly * CrystalPlusCapsule
TGeoTorus * CrystalTopRoundingTorus
Double_t CrystalFrontPgonInnerRadius
TGeoTranslation * CrystalGuardRingTorusZTranslation
TGeoCompositeShape * CrystalTopRoundingTooling
TGeoVolume * top
void PlaceCrystal(TGeoVolume *top, TGeoMatrix *CrystalPlaceAndDirectionTranslation)
TGeoCompositeShape * CapsuleCompleteShape
TGeoTranslation * CrystalGuardRingMiniExtraTubeZTranslation
TGeoTranslation * CrystalInnerTubeTorusZTranslation
TGeoTranslation * CrystalInnerTubeZTranslation
TGeoTube * CrystalGuardRingTube
Double_t
TGeoTorus * CrystalInnerTubeTorus
ClassDef(PndGeoHypGeCrystal, 0)
TGeoTranslation * CrystalGuardRingTubeZTranslation
TGeoCompositeShape * CapsuleOuterShape
TGeoTube * CrystalInnerTubeMiniExtraTube
TGeoCompositeShape * CapsuleInnerShape
TGeoTube * CrystalGuardRingMiniExtraTube
TGeoTranslation * CrystalInnerTubeMiniExtraTubeZTranslation
TGeoTranslation * CapsuleTopZTranslation
TGeoTranslation * CapsuleInnerZTranslation
TGeoCombiTrans * CrystalInsideCapsuleCombiTrans
TGeoTorus * CrystalGuardRingTorusInner
TGeoTorus * CrystalGuardRingTorus
TGeoTube * CrystalTopRoundingTube